湖北大学EDA实验四 频率计、串口

一、

实验目的

理解generate 相关语法、for 循环、阻塞赋值(=) 和非阻塞赋值(<=)的区别。 典型时序电路逻辑:状态机、多位十进制计数器。理解规约运算符(|和&)、位拼接运算符({})。 典型时序电路逻辑:计数器。关系运算符(>)位运算符(~)、关系运算符(<)、算术运算符(+)、always 引导时序电路描述方法、异步复位、parameter参数、localparam 局部参数(不可通过参数传递由外部修改)、模块例化及参数传递、异步复位、timescale、仿真延时、Verilog 系统数学 函数($clog2)。

二、实验内容:

建立一个频率计电路,用于测量输入波形的频率。该电路采用直 接测量法实现简单频率测量,间接测量法和等精度测量法等方法读者 可尝试自行设计。

该电路为简单时序电路,包含顶层模块、状态机模块、多位十进 制计数器模块,以及第 2.3 节中介绍的分频模块、第 2.4 节中介绍的 数码管扫描显示模块和第 2.5 节中介绍的计数器模块等。

状态机模块产生系统所需控制信号,主要包括计数清除、计数使 能、计数锁存等。顶层模块在计数使能条件下进行计数生成固定时间 为 1s 的闸门信号,并产生计数溢出信号。计数溢出信号指示闸门信 号结束,状态机据此进行状态跳转,产生计数锁存信号。将闸门信号 区间内对待测输入信号的计数值锁存,并通过数码管显示其高 4 位十 进制数(单位 10KHz)。随后产生计数清除信号,对相关计数器的计 数值进行清楚,准备进行下一次频率测量。

顶层模块包含产生待测信号的逻辑,分别对 27MHz 的输入时钟信 号进行 2、4、6、8 分频并输出到指定引脚。在下载测试时,可分别 将这些引脚与待测信号输入引脚相连,验证频率测量结果是否正确。

三、实验代码:

频率计部分代码:

(1)freq_meter_demo部分代码:

`timescale 1ns/1ns



module freq_meter_demo (

    input   clk,//时钟信号

    input   rst_n,//复位信号(负极性)

    output [3:0] clk_out_o,//输入时钟信号

    input   clk_in_i,//4位输出时钟信号

    output [3:0] dig_o,//4位数码显示输出信号

    output [7:0] seg_o//8位数码管段选输出信号

);



    localparam CLK_FREQ_HZ = 27000000;

    wire rst =~rst_n;  //经过取反操作的复位信号

    genvar i;

    generate

    for(i=0; i<4; i=i+1) begin : FREQ_DIV_GEN

        freq_div #(

              .DIV_RATE_2N((i+1)*2)

        )freq_div_i(

            .clk_in_i       (clk),

            .rst_i          (rst),

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值