MATLAB与FPGA数字信号处理(数字滤波器设计)、数字IC、无线通信、图像处理、信道编码系列
实现 N 进制计数器(N小于等于100),计数器输入时钟 clk(上升沿有效),复位(Quartus使用rst_n,低电平有效;Vivado中使用rst,高电平有效),同步复位方式,复位有效时输出为0,复位无效时输出计数数据,在仿真中设置成十进制无符号数显示。
提示:可以使用parameter定义,并在TestBench传入指定的进制数。
复位的设计规则:复位会消耗大量的资源,能不用复位就不用复位,某些必须要用复位的,尽量避免使用全局复位,尽量使用“同步复位”。在复位电平设计上,由于Altera(现Intel)系列的FPGA和Xilinx的FPGA的内部器件的不同,Altera推荐低电平复位,Xilinx推荐高电平复位。
【解答】
- 代码
`timescale 1ns / 1ns
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Engineer: 公众号 FPGA探索者
// Description: N进制计数器,注意,传入的输出位宽要和进制数匹配!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
module counter(
clk,
rst,
data_out
);
parameter N = 9; //进制 N
parameter DWIDTH =