名称:频率设计与仿真Verilog代码vivado ego1开发板(文末获取)
软件:vivado
语言:Verilog
代码功能:
要求
1、波形:方波
2、测频范围为100MHz以下
3、测频精度为1Hz
4、能够将測得的频率以十进制方式显示在8个数码管上
本代码已在 ego1开发板验证, ego1开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 资源占用
6. 管脚分配
7. Testbench
8. 仿真图
整体仿真图
控制模块仿真图
计数器模块仿真图
锁存器模块仿真图
显示模块仿真图
部分代码展示:
//频率计 module Freq_top( input clk,//100MHz input reset,//复位 input signal_in,//被测信号 output [7:0] LED_BIT,//数码管位选,8个数码管 output [7:0] LED_SEG_1,//数码管段选 output [7:0] LED_SEG_2//数码管段选 ); wire en; wire rst; wire lat; wire [31:0] number; wire [31:0] store_number;//锁存值 //控制模块 Frq_Ctrl i_Frq_Ctrl( . clk(clk),//100MHz . en(en),1S闸门信号 . rst(rst),//清零 . lat(lat)//锁存 ); //计数器模块 counter i_counter ( . signal_in(signal_in),//被测信号 . en(en),1S闸门信号 . rst(rst),//清零 . number(number)//计数值 ); //控制锁存器模块 data_store i_data_store( . reset(reset),//复位 . lat(lat),//锁存 . number(number),//计数值 . store_number(store_number)//锁存值 ); //数码管显示 LED_DISP i_LED_DISP( . clk(clk),// . store_number(store_number),//锁存值 . LED_BIT(LED_BIT),//数码管位选,8个数码管 . LED_SEG_1(LED_SEG_1),//数码管段选 . LED_SEG_2(LED_SEG_2)//数码管段选 ); endmodule
源代码
扫描文章末尾的公众号二维码