扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

数字频率计的设计Verilog代码Quartus仿真

2025/12/03
1238
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:数字频率计的设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

设计3 数字频率计

1.设计一个能测量方波信号的频率的频率计。

2.测量的频率范围是0~99999Hz。

3.结果用十进制数显示。

教学提示:

1.脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f=N/T,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。

2.被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端。

3.再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms、10ms、0.1s、1s等,时基信号的选择可以控制,即量程可以改变。

4.时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。

5.f=N/T,改变时基信号的周期T,即可得到不同的测频范围。

6.当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号,将计数器和所有触发器复位,为新的一次采样做好准备。

7.改变量程时,小数点能自动移位。

1、工程文件

2、程序文件

3、程序编译

4、RTL图

5、testbench

6、仿真图

整体仿真图

闸门控制模块

频率计算模块

显示模块

部分代码展示:

//频率计算模块
module frequency_calculate(
input clk_in,//输入基准时钟
input reset_p,//复位信号
input signal_in,//待测频率输入
input doors_open,//闸门信号
output [31:0]total_frequency//输出频率
);
reg signal_in_buf0=0;
reg signal_in_buf1=0;
wire signal_in_rise;
always@(posedge clk_in)
signal_in_buf0<=signal_in;//D触发器打拍
always@(posedge clk_in)
signal_in_buf1<=signal_in_buf0;//D触发器打拍
assign signal_in_rise=signal_in_buf0 & ~signal_in_buf1;//输入待测频率信号上升沿
wire [31:0] CNT;
//定义8位数
reg [3:0] bit0=4'd0;
reg [3:0] bit1=4'd0;
reg [3:0] bit2=4'd0;
reg [3:0] bit3=4'd0;
reg [3:0] bit4=4'd0;
reg [3:0] bit5=4'd0;
reg [3:0] bit6=4'd0;
reg [3:0] bit7=4'd0;
assign CNT={bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0};
always@(posedge clk_in)
begin

 

【来源:www.hdlcode.com

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录