实验1 十进制加减法计数器
实验地点:电子楼218 实验时间:2012年10月19日指导老师:黄秋萍、陈虞苏
实验要求:设计十进制加减法计数器,保留测试程序、设计程序、仿真结果
1.设计程序:
module count(EN,CLK,DOUT,F,RST);
input EN,CLK,F,RST;
output [3:0]DOUT;
reg [3:0]DOUT;
always@(posedge CLK)
begin :abc
if(EN)
if(!RST)
if(F)
begin :a
DOUT=DOUT+1;
if(DOUT==10)
DOUT=0;
end //END A
else
begin :b
DOUT=DOUT-1;
if(DOUT==15)
DOUT=9;
end
else
DOUT=0;
else
DOUT=DOUT;
end
endmodule
2.测试程序
`timescale 10ns/1ns
module test_count;
wire [3:0] DOUT;
reg EN,F,RST,CLK;
count M(EN,CLK,DOUT,F,RST);
initial
begin :ABC
CLK=0;
EN=0;
RST=1;
F=1;
#100 EN=1;
#200 RST=0;
#1500 F=0;
#3000 $stop;
end
always
#50 CLK=~CLK;
initial
$monitor("EN=%b,F=%b,RST=%b,DOUT%D",EN,F,RST,DOUT); endmodule
3.测试结果
# EN=0,F=1,RST=1,DOUT x
# EN=1,F=1,RST=1,DOUT x
# EN=1,F=1,RST=1,DOUT 0
# EN=1,F=1,RST=0,DOUT 0
# EN=1,F=1,RST=0,DOUT 1
# EN=1,F=1,RST=0,DOUT 2
# EN=1,F=1,RST=0,DOUT 3
# EN=1,F=1,RST=0,DOUT 4
# EN=1,F=1,RST=0,DOUT 5
# EN=1,F=1,RST=0,DOUT 6
# EN=1,F=1,RST=0,DOUT 7
# EN=1,F=1,RST=0,DOUT 8
# EN=1,F=1,RST=0,DOUT 9
# EN=1,F=1,RST=0,DOUT 0
# EN=1,F=1,RST=0,DOUT 1
# EN=1,F=1,RST=0,DOUT 2
# EN=1,F=1,RST=0,DOUT 3
# EN=1,F=1,RST=0,DOUT 4
# EN=1,F=1,RST=0,DOUT 5
# EN=1,F=0,RST=0,DOUT 5
# EN=1,F=0,RST=0,DOUT 4
# EN=1,F=0,RST=0,DOUT 3
# EN=1,F=0,RST=0,DOUT 2
# EN=1,F=0,RST=0,DOUT 1
# EN=1,F=0,RST=0,DOUT 0
# EN=1,F=0,RST=0,DOUT 9
# EN=1,F=0,RST=0,DOUT 8
# EN=1,F=0,RST=0,DOUT 7
# EN=1,F=0,RST=0,DOUT 6
# EN=1,F=0,RST=0,DOUT 5
# EN=1,F=0,RST=0,DOUT 4
# EN=1,F=0,RST=0,DOUT 3
# EN=1,F=0,RST=0,DOUT 2
# EN=1,F=0,RST=0,DOUT 1
# EN=1,F=0,RST=0,DOUT 0
# EN=1,F=0,RST=0,DOUT 9
# EN=1,F=0,RST=0,DOUT 8
# EN=1,F=0,RST=0,DOUT 7
# EN=1,F=0,RST=0,DOUT 6
# EN=1,F=0,RST=0,DOUT 5
# EN=1,F=0,RST=0,DOUT 4
# EN=1,F=0,RST=0,DOUT 3
# EN=1,F=0,RST=0,DOUT 2
# EN=1,F=0,RST=0,DOUT 1
# EN=1,F=0,RST=0,DOUT 0
# EN=1,F=0,RST=0,DOUT 9
# EN=1,F=0,RST=0,DOUT 8
# EN=1,F=0,RST=0,DOUT 7
# EN=1,F=0,RST=0,DOUT 6
# EN=1,F=0,RST=0,DOUT 5
4.波形显示
5.实验结果分析
RST为1是清零信号,CLK是时钟信号,当EN为1时使能信号,F为1时,加法计数,F=0时减法计数。
实验结果与设计一致。