十进制加减法计数器
1.实验要求
(1)在Modelsim环境中编写十进制加减法计数器程序;(2)编译无误后编写配套的测试程序;(3)仿真后添加信号,观察输出结果。
2.设计程序如下
moduledecade_counter
#(parameterSIZE=4
(inputclock,load_n,clear_n,updown,input[SIZE-1:0]load_data,outputreg[SIZE-1:0]q;always
@(negedgeload_n,negedgeclear_n,posedgeclockif(!load_nq<=load_data;elseif(!clear_nq<=0;else//clock???if(updownq<=(q+1%10;elsebeginif(q==0q<=9;elseq<=q-1;end
endmodule
3.测试程序如下
`timescale1ns/1ns
moduletest_decade_counte;
regclock,load_n,clear_n,updown;reg[3:0]load_data;wire[3:0]q;
decade_counterT1(clock,load_n,clear_n,updown,load_data,q;initialbeginclock=0;clear_n=0;
#30clear_n=1;load_n=0;load_data=7;#30load_n=1;updown=0;#300updown=1;#300updown=0;#300updown=1;#300$stop;endalways#10clock=~clock;always@(q
$display("Attime%t,q=%d",$time,q;endmodule
4.波形如下