实验四:十进制计数器实验报告
实验日期:2014.4.15
学生姓名:陆小辉(学号:1228402025)
指导老师:黄秋萍
计数器是数字系统中使用最多的时序逻辑电路,其应用非常广泛。计数器不仅能应用于对时钟脉冲计数,而且应用于定势、分频、产生节拍脉冲和脉冲序列以及进行数字运算等。 一、设计要求:
设计十进制计数器,完成相应功能。可预置数、可加/减。
三、测试代码如下: 二、设计代码如下:
module PNcounter(clk,clean,ldn,enp,ent,i,q,rco); module test_PNcounter; reg clk,ldn,clean,enp,ent; input clk,ldn,clean,enp,ent;
reg[3:0] i; input[3:0] i;
wire [3:0]q; output [3:0]q;
wire rco; output rco;
PNcounter p1(clk,clean,ldn,enp,ent,i,q,rco); reg rco;
initial reg [3:0] q;
begin always@(posedge clk or negedge clean)
clk=1'b0; clean=1'b0; {ldn,enp,ent}=3'b0xx; begin
i=4'b0; if (~clean)
#20 clean=1'b1; begin q=0;rco=0;end
end else begin casex ({ldn,enp,ent})
initial 3'b0xx:q=i;
begin 3'b101:if (q>0) q=q-1;else q=9;
3'b110:if (q<9) q=q+1;else begin q=0;rco=1;end #100 {ldn,enp,ent}=3'b0xx; #100 {ldn,enp,ent}=3'b101; default:q=q;
#270 {ldn,enp,ent}=3'b110; endcase
#270 $stop; end
end end
always #10 clk=clk+1; endmodule
always #10 i=i+1;
endmodule
四、仿真波形如下:
续图