Verilog Test Fixture 等待语句

1、延时等待

        

#<delay_time>;

2、无限等待

forever
begin
    #1000    ;
end

3、变换等待

@( <signal> );

4、边沿等待

@( posedge <signal> );
@( negedge <signal> );

5、条件等待

wait( <signal> == <value> );

6、赋值等待

        连续赋值等待语句:

assign    #<delay_time>    <signal_a> = <signal_b>    ;

        阻塞赋值等待语句:

always@()
begin
    #<delay_time>    <signal>    =    <value>    ;
end

         非阻塞赋值等待语句:

always@()
begin
    #<delay_time>    <signal>    <=    <value>    ;
end

### Verilog HDL 74LS161 同步4位二进制加法计数器 测试代码 (Test Fixture) 以下是一个完整的测试代码示例,用于验证基于74LS161的同步4位二进制加法计数器的行为。此测试代码涵盖了异步清零、并行加载和正常计数功能。 ```verilog // 定义测试模块 module test_fixture_74ls161; // 输入信号定义 reg clk; // 时钟信号 reg clr; // 异步清零信号 (高有效) reg ld; // 并行加载使能信号 (低有效) reg enp, ent; // 计数允许控制信号 reg [3:0] d; // 数据输入端口 // 输出信号定义 wire [3:0] q; // 当前计数值输出端口 // 被测单元实例化 sync_counter_74ls161 uut ( .CLK(clk), .CLR(clr), .LD(ld), .ENP(enp), .ENT(ent), .D(d), .Q(q) ); // 初始化时钟信号 initial begin clk = 0; forever #5 clk = ~clk; // 每隔5时间单位翻转一次时钟信号 end // 初始条件设置 initial begin // 初始化所有输入信号 clr = 1'b1; // 设置初始清零信号为高电平 ld = 1'b1; // 禁止并行加载 enp = 1'b1; // 开启计数使能 ent = 1'b1; // 开启计数使能 d = 4'd0; // 默认数据输入为0 // 等待一段时间后再释放清零信号 #10 clr = 1'b0; // 解除清零信号 // 执行一系列测试用例 #20 ld = 1'b0; // 允许并行加载 d = 4'd5; // 设置加载值为5 #10 ld = 1'b1; // 结束并行加载 // 验证正常计数功能 #20 enp = 1'b0; // 关闭计数使能 #20 enp = 1'b1; // 再次开启计数使能 // 添加更多测试场景... #100 $stop; // 停止仿真 end endmodule ``` 以上代码模拟了一个典型的测试环境,其中包含了对不同工作模式下的验证[^1]。具体来说,它首先设置了系统的初始状态,随后逐步应用各种输入组合以观察其响应情况。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值