首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Verilog中综合设计时的时序问题

在Verilog中综合设计时的时序问题
EN

Stack Overflow用户
提问于 2019-02-11 11:03:03
回答 1查看 125关注 0票数 0

我正在开发一个基于BCH码的解码器模块。该设计将在Virtex-7 FPGA上实现。我基本上有三个街区。校正子计算块、错误定位器发现器和错误定位器求解器块。校正子计算模块在现场可编程门阵列上工作正常,并以225 MHz的时钟工作。我正在研究错误定位器模块,它给了我一些时间问题。问题本质上是这样的:

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

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

EN

回答 1

Stack Overflow用户

发布于 2019-02-11 21:41:21

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

Xilinx放弃了这一策略,因为它在大型FPGA中无效(就像你的Virtex 7设备一样)。但是你有几个预定义的策略,它们也可以并行运行。只需打开Implementation Settings并尝试不同的策略,看看其中一种是否有效。

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

编辑:查看Xilinx UG904以获得不同实现策略的概述和简要描述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54623424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档