我有一个Verilog设计,可以在Cyclone IV(EP4CE22F17C6N)上编译~15K LE。当我在Cyclone V(5CEFA2F23C8N)上编译相同的代码时,需要大约8500个ALM。基于Altera自己的LE等效特定Cyclone V,这将是~20K LE。现在,我意识到估计将高度依赖于特定的设计,但有效的"有效的"资源利用似乎很多。
所以这让我想知道是否有设计提示/技巧等。用于更有效地使用ALM。特别是,我正在寻找可以提高套准密度,织物密度,密集包装等的Verilog结构。
答案 0 :(得分:1)
我同意上述评论,通常您不应该进行优化,但是检查您的代码是否映射到所选的体系结构始终很重要。具体做法是:
重置强>
对您的体系结构使用错误的重置类型可能会导致问题。它也很容易意外地使合成工具插入逻辑来模拟时钟使能。有关详细信息,请参阅this answer。对于Altera,您应该使用同步取消断言的异步复位。
控制信号的优先级
在Altera中:
<强>栓强>
从报告中轻松获取,但除非你绝对确定它是有意的,否则闩锁通常是不好的mmmmkay。
<强>合成强>
有许多选项可用于调整合成过程的行为。以下是一些会影响您结果的内容:
ALM_REGISTER_PACKING_EFFORT
此选项可在将寄存器打包到ALM时指导Fitter。
MUX_RESTRUCTURE
允许编译器减少在设计中实现多路复用器所需的逻辑元件数量。
OPTIMIZATION_TECHNIQUE
指定Analysis&amp;的整体优化目标。综合:尝试最大限度地提高性能,最小化逻辑使用,或者以最小的逻辑使用来平衡高性能。
请记住,如果您的设备没有太满,该工具将无法获得更多激励&#34;除非你明确告诉它,否则最小化逻辑利用率。