【问题标题】:Timing issues while synthesizing a design in Verilog在 Verilog 中综合设计时的时序问题
【发布时间】:2019-02-11 03:03:02
【问题描述】:

我正在开发基于 BCH 代码的解码器模块。该设计将在 Virtex-7 FPGA 上实现。我基本上有三个街区。综合症计算块、错误定位器查找器和错误定位器求解器块。校正子计算模块在 FPGA 上运行良好,时钟频率为 225 MHz。我正在研究错误定位器查找器块,它给了我一些时间问题。问题本质上是这样的:

1) 我有一个只有一个 case 语句的模块。案例块有 1024 个条目。失败的路径包含此模块。如果我注释掉这个模块,设计就可以正常工作。在实现的设计中,该模块放置得太远,因此,我得到了巨大的网络/线路延迟。有没有办法让基于案例的模块更接近我的实际设计??

任何帮助将不胜感激。净延迟至少占总延迟的 60%。这对于我要解决的问题是不可接受的,因为该解码器需要至少在 200 MHz 下工作

【问题讨论】:

  • 正常的过程是在失败的路径中添加一个管道阶段。我知道,这可能需要对所有相邻路径逻辑进行重大重新设计,但这是要走的路。

标签: verilog fpga xilinx


【解决方案1】:

在之前的 Xilinx FPGA 工具套件(称为 ISE)中,您可以更改布局器成本表 (PCT),这会导致逻辑单元的不同位置布局,从而导致不同的时序结果。 PCT 可以在不同的实现运行(使用 SmartXplorer)中进行迭代,这些运行会停止,直到找到具有有效计时结果的 PCT。

Xilinx 放弃​​了这种策略,因为它在大型 FPGA(如您的 Virtex 7 器件)中无效。但是您有几个预定义的策略,它们也可以并行运行。只需打开实施设置并尝试不同的策略,看看是否有效。

如果没有,您必须在 HDL 级别优化您的设计。一般来说,流水线是一个很好的策略,但它很大程度上取决于你的代码。一般来说,您必须减少大型组合结构,而您的具有 1024 个条目的案例语句就是大型组合结构的候选者。

编辑:请参阅 Xilinx UG904 以获得对不同实施策略的概述和简要说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多