【发布时间】:2021-06-13 07:12:57
【问题描述】:
有一个测试台环境,我正在做一些测试,我注意到在波形中,如果我从 rtl 层次结构中提取输入到 rtl 的特定信号,并从驱动程序时钟块中提取相同的信号,我看到与驱动时钟模块层次结构中的相同信号相比,rtl 层次结构的信号延迟一个时钟,而如果我从 rtl 层次结构的 rtl 输出的波形中提取一个信号,并且在监视器时钟模块层次结构中提取相同的信号,我在监视器时钟块级别看到相同的信号延迟了一个周期。
与在 rtl 层次结构中看到的信号相比,监视器时钟块级别的信号是否总是延迟,而驱动器时钟块级别的信号是否总是提前一个时钟?
接口原型是这样的:
interface my_if(input bit clk, bit reset);
bit valid;
bit [31:0] data;
bit [2:0] crdt;
clocking monitor_cb @(posedge clk);
default input #1 output #1;
input valid;
input data;
input crdt;
endclocking
clocking tx_driver_cb @(posedge clk);
default input #1 output #1;
output valid;
output data;
input crdt;
endclocking
clocking rx_driver_cb @(posedge clk);
default input #1 output #1;
input valid;
input data;
output crdt;
endclocking
modport tx_driver (clocking tx_driverv_cb);
modport rx_driver (clocking rx_driver_cb);
modport monitor (clocking monitor_cb);
endinterface
【问题讨论】:
标签: verilog system-verilog clock uvm