本帖最后由 AutoESL 于 2011-6-2 15:26 编辑


常用设置:

1、首先确定选择是采用面积优化还是速度优化,面积优化一般是在资源比较紧张的情况下使用;如果资源充足,一般选择速度优化。

2、全局优化,选择所设定的寄存器之间、输入引脚到寄存器之间、寄存器到输出引脚之间,或者是输入引脚到输出引脚之间逻辑优化。

3、确定内部的RAM、ROM采用LUT还是BLOCK。

4、确定case语句采用【None】、【Full】、【Parallel】、【Full-Parallel】。

5、选择状态状态寄存器设置:【One-Hot】、【Compact】、【Sequential】、【Gray】、【Johnson】、【User】、【Speed1】、【None】

6、确定多路复用器、译码器、译码器、异或逻辑和乘法器的实现形式

7、确定是否需要资源共享,如果综合工具的选择是以速度为优先原则的,那么就不考虑资源共享。

8、确定是否需要插入缓冲器【Add I/O Buffers】:该参数用于控制对所综合的模块是否自动插入 I/O缓冲器。默认为自动插入。

9、【RegisterDuplication】:寄存器复制。该参数用于控制是否允许寄存器的复制。对于高扇出和时序不能满足要求的寄存器进行复制,可以减少缓冲器输出的数目以及逻辑级数,改变时序的某些特性,提高设计的工作

频率。默认为允许寄存器复制。

10、【Equivalent RegisterRemoval】:等效寄存器删除。该参数用于指定是否把寄存器传输级功能等效的寄存器删除,这样可以减少寄存器资源的使用。如果某个寄存器是用赛灵思的硬件原语指定的,那么就不会被删除。默认为使能。

11、【RegisterBalancing】:寄存器配平。该参数仅对FPGA有效,用于指定是否允许平衡寄存器。可选项有【No】、【Yes】、【Forward】和【Backward】。采用寄存器配平技术,可以改善某些设计的时序条件。其中,【Forward】为前移寄存器配平,【Backward】为后移寄存器配平。采用寄存器配平后,所用到的寄存器数就会相应地增减。默认为寄存器不配平。

【Move First Flip-Flop Stage】:移动前级寄存器。该参数仅对 FPGA有效,用于控制在进行寄存器配平时,

是否允许移动前级寄存器。如果【Register Balancing】的设置为【No】,那么该参数的设置无效。

【Move Last Flip-Flop Stage】:移动后级寄存器。该参数仅对 FPGA有效,用于控制在进行寄存器配平时,

是否允许移动后级寄存器。如果【Register Balancing】的设置为【No】,那么该参数的设置无效。

12、【Pack  I/O Registers into  IOBs】:I/O 寄存器置于输入输出块。该参数仅对 FPGA有效,用于控制是否将逻辑设计中的寄存器用IOB内部寄存器实现。在赛灵思系列FPGA的IOB中分别有输入和输出寄存器。如果将设计中的第一级寄存器或最后一级寄存器用IOB内部寄存器实现,那么就可以缩短IO引脚到寄存器之间的路径,

这通常可以缩短大约 1~2ns 的传输时延。默认为【Auto】。

13、【SlicePacking】:优化Slice结构。该参数仅对FPGA有效,用于控制是否将关键路径的查找表逻辑尽量

配置在同一个Slice或者CLB模块中,由此来缩短LUT之间的布线。这一功能对于提高设计的工作频率、改善

时序特性是非常有用的。 默认为允许优化 Slice 结构。

14、【Optimize  InstantiatedPrimitives】:优化已例化的原语。该参数控制是否需要优化在 HDL 代码中已例化的原语。默认为不优化。