【问题标题】:What is correlation between clocking blocks and signal assignment时钟块和信号分配之间的相关性是什么
【发布时间】:2017-11-28 16:58:02
【问题描述】:

有人可以解释为什么这两个 sn-p 代码的行为不同。在第二种情况下,当我从 10 个事务开始序列时,我同时有前两个事务,一个覆盖另一个事务,它只发生在模拟开始时。之后一切正常。

 task fir_driver::drive_write(input fir_item#(D_WIDTH) it);
    seq_item_port.get_next_item(it);
    @mp_p.cb_fir;
    mp_p.cb_fir.i_data_sample       <= it.i_data_sample;
    seq_item_port.item_done(); 
  endtask : drive_write


  task fir_driver::drive_write(input fir_item#(D_WIDTH) it);
    seq_item_port.get_next_item(it);
    mp_p.cb_fir.i_data_sample       <= it.i_data_sample;
    @mp_p.cb_fir;
    seq_item_port.item_done(); 
  endtask : drive_write

【问题讨论】:

  • 你能提供时钟块的定义吗?
  • 时钟 cb_fir @(posedge clk);默认输入#1step 输出#1step;输出 i_data_sample、i_data_en、i_ping_pong_sel_v、i_coef_data、i_coef_we、i_coef_addr;结束时钟:cb_fir

标签: interface driver system-verilog uvm


【解决方案1】:

我会猜测调用drive_write() 之前的最后一个阻塞事件不是@mp_p.cb_fir 或者可能在时间0。并且在调用drive_write() 之间没有其他阻塞语句然后第一个驱动风与第二个驱动器重合。请参阅 1800-2012 LRM 中的14.16 同步驱动器部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 2017-06-01
    • 2010-11-19
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2019-04-17
    • 2015-06-10
    相关资源
    最近更新 更多