本帖最后由 piscesfate 于 2021-6-19 12:55 编辑
本人FPGA小白一枚,最近使用到FPGA的IP核遇到一个问题。
比如说:某个IP,用于计算sin函数,使用了流水线机制,所有从输入到输出需要20个时钟周期的延时。另外,还有一个IP,从输入到输出需要1个时钟周期。最后,把两个的输出相加得到结果。
因为两个IP从输入到输出的延迟并不是一致的,所以当第二个IP结果已经出来但是第一个IP还在运行过程中时,整个框图的输出是错误的,只有当20个时钟周期结束,输出才是正确的。
我知道实际设计中肯定不是这么做的,我想到的处理方法是:
1.两个IP核都可以选择输出ready信号,所有可以等两个都ready之后才进行加法操作。
2.在第二个IP上加19个时钟的延时,这样两个IP的输出就同步了。
我不知道更加常规或者规范的做法什么,我觉得这个问题应该是大家平时设计时候经常会遇到的问题,毕竟不可能什么操作都在一个时钟周期内做完。
|