异步寄存器仿真

此博客介绍了使用 Verilog 语言实现一个带有复位和加载功能的双位计数器模块。模块包含输入时钟、复位、加载信号和数据输入,以及输出计数值。同时,提供了测试平台的代码,用于验证计数器功能。测试平台通过改变输入信号,模拟了不同条件下的计数器行为,并在仿真图中展示了其工作过程。
摘要由CSDN通过智能技术生成

程序:

module jicunqi(
input clk,
input n_rst,
input load,
input [1:0]D,
output  [1:0]Q 
 );
 reg [1:0]Q;
  always @ (posedge clk or negedge n_rst)
    if (!n_rst)
    Q <= 0;
    else 
    if (load)
        Q <= D;
endmodule

testbench:

module jicunqi_test();
reg clk;
reg n_rst;
reg load;
reg [1:0]D;
wire [1:0]Q; 

initial begin
clk = 0 ; //初始值为0
n_rst = 0;
D = 2'b0;
load = 0;

#20
D <= 2'd2;

#40 
n_rst <= 1;
load <= 1;

#40
load <= 0;

#20
load <= 1;
D <= 2'b1;

#60
n_rst <= 0;
end

always #10 begin clk = ~clk ; end //20一个周期

jicunqi tb(
.clk(clk),
.n_rst(n_rst),
.load(load),
.D(D),
.Q(Q) 
);

endmodule

仿真图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值