赞
踩
2.1 设计输⼊
1. 模块名称:counter
2. 输⼊输出:CLK、Loadn、CLRn、D、Q、Co (位宽⾃定义)
2.2 引脚约束
1. 输⼊端 ⾃定义
2. 输出端 ⾃定义
2.3 设计要求
1. 计数模值为24,带置数、清零、进位功能
2. 使⽤RTL View分析电路的区别
2.4 电路仿真1. 使⽤ModelSim仿真
1.设计代码和编译:
模块名称:counter
输⼊输出:CLK、Loadn、CLRn、D(5bit)、Q(5bit)、Co(1bit)
模24计数器,4bit为0~15不够,5bit为0~31
module counter(CLK,Loadn,CLRn,D,Q,Co);
input CLK,Loadn,CLRn;
input [4:0]D;
output reg [4:0]Q;
output reg Co;
always@(posedge CLK or negedge CLRn or negedge Loadn)
begin
if(! CLRn)
begin
Q <= 0;
Co<= 0;
end
else if(! Loadn)
Q <= D;
else if(Q < 23)
begin
Q <= Q + 1;
Co<= 0;
end
else
begin
Q <= 0;
Co<= 1;
end
end
endmodule
(注意事项:使用前应先使其处于清零状态一段时间,即CLRn=0一段时间
D为置入的数据,固定在D=5'b10010,
Co是进位信号,当计了24个数的时候,Co=1
5.使用Modelsim进行仿真:
两个文件:counter.v (由源文件copy)和counter_tb.v(拿来测试仿真的textbench)
测试文件代码:
`timescale 1ns/1ns
module counter_tb1;
reg clk,clrn,loadn;
reg [4:0]d;
wire [4:0]q;
wire co;
counter U1(.CLK(clk),
.Loadn(loadn),
.CLRn(clrn),
.D(d),
.Q(q),
.Co(co));
always #10 clk=~clk;
initial begin
clk=0;
d<=5'b10010;
clrn=0;
loadn=0;
#30 loadn=1;
#20 clrn=1;
end
endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。