繁体   English   中英

一个SC_CTHREAD与另一个SC_CTHREAD之间的通信有一个时钟周期延迟

[英]One clock cycle delay in communication between one SC_CTHREAD and another SC_CTHREAD

我正在尝试使用一个主内存模块(一个sc_cthread和一个主内存状态机,也就是SC_CTHREAD对一个简单的直接映射缓存进行SC_CTHREAD 我观察到从主内存模块写入信号并在状态机上接收到一个时钟周期延迟。

我怎样才能在一个时钟周期内完成?

使用SC_CTHREAD时,您无法避免线程之间的延迟。 从一个CTHREAD写入sc_signal时,该值更改仅在下一个时钟沿对另一CTHREAD可见。

如果必须使用CTHREAD(即使用高级综合),则避免跨线程延迟的唯一方法是将两个功能都放在一个CTHREAD中。

如果仅需要行为模型进行仿真,则可以使用SC_THREADs和sc_events。 一个线程可以生成第二个线程正在等待的sc_event。 当第二个线程在该事件上唤醒时,它可以观察到第一个线程完成的sc_signal变化,然后产生输出(如果需要,与时钟沿对齐)。 使用sc_events可以在“时钟”沿之间“采样”和更新信号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM