【发布时间】:2016-09-27 14:19:56
【问题描述】:
我收到了一个 verilog 项目,其中的一个关键组件已被加密。
FPGA 的性能因构建环境和配置而异[注 1],我怀疑这是由于时序约束不足造成的 [注 2]。
在 TimeQuest 时序分析器中,我可以看到加密内核中的引脚、网络、寄存器和端口的名称,但不查看实际代码我不知道它们的确切含义。
那么在这种情况下我应该如何开始编写 SDC 时序约束呢?
注1:
组件是 MIPI-CSI2 TX。在测试 RX 端,我不断收到 SoT 错误(SoT 错误和同步未实现),有时还有 ECC 错误。
有一段时间,要使其在 FPGA 上“工作”,代码必须构建在 Windows 机器上。然后对代码进行一些小的和不相关的更改,如果构建在 Linux 机器上,它可以工作。最近,Linux 构建机器的性能似乎比 Windows 机器好。
同时更改优化参数似乎会严重破坏代码。例如。目前只有“平衡”模式有效。应该提高性能的“性能”和“激进性能”模式会在接收信号中引起很多错误。上游信号处理模块的内存内容也会以这种方式影响 MIPI-CSI2 TX。
首先让我觉得有些不确定性并未完全受 SDC 时序约束。
注2:
我无法完全验证这一理论,因为我没有设备来全面测试信号,也无法进行门级仿真,因为加密代码不允许我生成 EDA 网表。
【问题讨论】: