一、六进制计数器仿真
题目内容如下:
- 自行绘制的电路结构RTL设计图
- Quartus扫描生成的电路RTL图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fQR5BEJy-1596875096420)(https://img-blog.csdn.net/20170503153422306?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ2xhcmFfRA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
- 电路的波形仿真截图
- HDL代码
module counter1(CLK,//输入时钟信号
RST,//输入复位清零信号,异步高电平有效
CNT);//输出计数值信号
parameter n=6;
parameter size=2;
output[size:0] CNT;
input RST;
input CLK;
reg [size:0]CNT;
always @ (posedge CLK or posedge RST)//同步时钟和异步高电平清零
begin
if(RST)
begin
CNT <= 0;
end
else if(CNT == (n-1))
begin
CNT <= 0;
end
else
begin
CNT=CNT+1;
end
end
endmodule
二、6-9进制循环计数器
题目内容如下:
- 自行绘制的电路结构RTL设计图
- Quartus扫描生成的电路RTL图
- 电路的波形仿真截图
- HDL代码
module counter2(CLK,RST,CNT,Q);
input CLK;
input RST;
output [size:0] Q ;
output [size:0] CNT;
parameter n_min=6;
parameter n_max=9;
parameter size=3 ;
reg [size:0] CNT;
reg [size:0] Q;
always @(posedge CLK or posedge RST)//同步时钟升和异步高电平清零
begin
if(RST)
begin
CNT<= 0 ;
Q <= n_min;
end
else if(CNT >= Q)
begin
CNT<= 0 ;
Q <= Q+1;
if(Q >= n_max)
begin
Q <= n_min;
end
end
else
begin
CNT = CNT+1;
end
end
endmodule