1. 设计时钟基准电路和带使能的多周期计数器
本质上是两级计数器级联的电路结构——第一级计数器为时钟基准电路,生成时钟基准信号;第二级为多周期计数器用时钟基准信号作为计数使能进行计数;
实验要求:把后级计数器的计数范围改为 0-15,把计数器的 0-15 计数值经过译码,在DE0的 HEX LED上显示成 0-9-A-F 的十六进制数
- ① 模块例化(Verilog HDL代码)
时钟基准电路模块
module cnt_sync(
CLK , // clock
CNTVAL, // counter value
OV ); // overflow
input CLK;
output [32-1:0] CNTVAL;
output OV;
parameter MAX_VAL = 25_000_000; //MAX ADD NUM
reg [32-1:0] CNTVAL;
reg OV;
always @ (posedge CLK) begin
if(CNTVAL >= MAX_VAL)
CNTVAL <= 0;
else
CNTVAL <= CNTVAL + 1'b1;
end
always @ (CNTVAL) begin
if(CNTVAL == MAX_VAL)
OV = 1'b1;
else
OV = 1'b0;
end
endmodule //
0-15周期计数器模块
module cnt_en_0to15(
CLK , // clock
CNTVAL, // counter value
EN ,
OV ); // overflow
input CLK;
input EN;
output [4-1:0] CNTVAL;
output