我目前正在实现一个 MUX,为了测试它,我创建了一个生成器和一个监视器,以很好地生成数据作为输入并监视其输出。
MUX 采用 Avalon Streaming 接口作为输入和输出,因此也支持背压。
我的问题是。我的测试台在下降沿运行,而我的 DUT 和输入数据在上升沿生成。我的输入时钟和我的输入数据都是在 Delta 周期 0 生成的。但是,我从 DUT 返回并控制发生器的背压就绪信号设置为 Delta 3。现在这会产生一些采样问题,因为 DUT 只能在每个周期加载数据来自发生器的时间数据(在 delta 0 处)有效且 DUT 就绪有效(在 Delta 3 处的背压信号)。
现在,如果我将 DUT 输入时钟倾斜 1 ps,它可以解决问题。但感觉这是错误的方法。这里正确的设计原则是什么。?
将时钟倾斜 1 ps 或至少将其移动 4 个增量,以便我确保我的所有信号都已在上升沿之前设置?
或者
移动我生成的数据,使其与 DUT 输出就绪信号对齐?
或者
这只是从测试台到测试台做出的决定吗?
我还认为测试台中的时钟应该在 delta 0 处生成,其他一切都必须在之后。
我正在模拟 Riviera-pro