我通过以下方式使用同步:
sync true (ports.ocp_cmd$ == 3'b010);
我希望模拟器以相同的周期转到下一个命令中的数据ocp_cmd is 010
。目前模拟器会自动跳转 1 个周期,然后才进入下一个 specman 命令。
如何更改我的命令行以便不产生延迟(这样如果需要,我将能够在同一周期中提高 ack 信号)
由于同步 true 语句必须驻留在一个耗时的方法中。比较采样事件(对于耗时方法)相对于 ocp_cmd 变为 3'b010 的变化发生的时间。可能是您必须修改您的采样事件。
我猜你的意思是你ocp_cmd
在时钟的上升沿采样,这意味着你ocp_read
从那个时钟开始上升,这意味着两个信号之间会有 1 个周期的延迟。
如果您知道ocp_cmd
不会出现故障,您可以将同步更改为sync true (ports.ocp_cmd$ == 3'b010) @sim
.
在使用同步信号时,这不是正确的做法。你最好监控ocp_cmd
去010
和依赖它的原因。