有效使用ALM(自适应逻辑模块)?

时间:2014-09-08 20:28:27

标签: fpga intel-fpga

我有一个Verilog设计,可以在Cyclone IV(EP4CE22F17C6N)上编译~15K LE。当我在Cyclone V(5CEFA2F23C8N)上编译相同的代码时,需要大约8500个ALM。基于Altera自己的LE等效特定Cyclone V,这将是~20K LE。现在,我意识到估计将高度依赖于特定的设计,但有效的"有效的"资源利用似乎很多。

所以这让我想知道是否有设计提示/技巧等。用于更有效地使用ALM。特别是,我正在寻找可以提高套准密度,织物密度,密集包装等的Verilog结构。

1 个答案:

答案 0 :(得分:1)

我同意上述评论,通常您不应该进行优化,但是检查您的代码是否映射到所选的体系结构始终很重要。具体做法是:

重置

对您的体系结构使用错误的重置类型可能会导致问题。它也很容易意外地使合成工具插入逻辑来模拟时钟使能。有关详细信息,请参阅this answer。对于Altera,您应该使用同步取消断言的异步复位。

控制信号的优先级

Altera中:

  1. 异步清除,aclr最高优先级
  2. 异步加载,aload
  3. 启用,ena
  4. Synchronous Clear,sclr
  5. 同步加载,sload
  6. 数据输入,数据最低优先级
  7. <强>栓

    从报告中轻松获取,但除非你绝对确定它是有意的,否则闩锁通常是不好的mmmmkay。

    <强>合成

    有许多选项可用于调整合成过程的行为。以下是一些会影响您结果的内容:

      

    ALM_REGISTER_PACKING_EFFORT

         

    此选项可在将寄存器打包到ALM时指导Fitter。

         

    MUX_RESTRUCTURE

         

    允许编译器减少在设计中实现多路复用器所需的逻辑元件数量。

         

    OPTIMIZATION_TECHNIQUE

         

    指定Analysis&amp;的整体优化目标。综合:尝试最大限度地提高性能,最小化逻辑使用,或者以最小的逻辑使用来平衡高性能。

    请记住,如果您的设备没有太满,该工具将无法获得更多激励&#34;除非你明确告诉它,否则最小化逻辑利用率。