SystemC同步多个时钟

时间:2013-01-18 18:32:08

标签: systemc

我在sc_main中设置了大致以下的时钟方案:

double refclk_period = 8000;
double ck1_ratio = 10;
double ck2_ratio = 5;
double ck3_ratio = 6;

sc_clock refclk("refclk", refclk_period, SC_PS);
sc_clock ck1("ck1", refclk_period/ck1_ratio, SC_PS);
sc_clock ck2("ck2", refclk_period/ck2_ratio, SC_PS);
sc_clock ck3("ck3", refclk_period/ck3_ratio, SC_PS);

然后我SC_THREAD对每个时钟的pos()敏感。我已经意识到一个问题,即最终ck3将完全不同步,因为它不会均匀地划分refclk周期。例如,在8000 ps时,SC_THREAD观察ck3最后一次命中为7998 ps。理想情况下,所有时钟应在8000 ps下发射。

这必须是一个常见的问题。在我移植的SystemVerilog代码中,时钟都是手动驱动的。它的工作原理是因为参考时钟驱动其他3,不像我现在在SystemC中那样。是否有推荐的方法与SystemC同步时钟?谢谢!

0 个答案:

没有答案