verilog-testbench 时钟和复位模板

本文介绍了一种基于Verilog的时钟与复位模块设计方法,包括时钟频率定义、复位时间设置及边沿触发实现,并讨论了inout型testbench的写法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  /*********************************************
  ** Clocks & Reset
  *********************************************/
  `define CLOCK_FREQ    200e6  //时钟频率
  `define RESET_TIME    100

  reg clk;
  initial clk = 1'b0;
  localparam CLOCK_PERIOD = 1e9/`CLOCK_FREQ;
  always
    #(CLOCK_PERIOD) clk = ~clk;

  reg reset;
  initial begin
    reset = 1'b1;
    #(`RESET_TIME);
    @(posedge clk);
    reset = 1'b0;
  end

 边沿触发模板

    @(posedge clk);
    if (o_tvalid) begin
      $display("Test 1 FAILED!");
      $error("o_tvalid still asserted after emptying FIFO!");
      $stop;
    end

 inout型testbench的写法

使用相反控制信号inout口,等于两个模块之间用inout双向口互连。
这种方法要注意assign 语句只能放在initial和always块内。 

module test(); 

wire data_inout; 
reg data_reg; 
reg link; 
initial 
begin .......... end  
assign data_inout=link?data_reg:1'bz; 

endmodule 

 

转载于:https://www.cnblogs.com/yssrf-possible/p/7278628.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值