【FSM Encoding Algorithm】:有限状态机编码算法。该参数用于指定有限状态机的编码方式。选项有【Auto】、
【One-Hot】、【Compact】、【Sequential】、【Gray】、【Johnson】、【User】、【Speed1】、【None】编码方式,默认为【Auto】编码方式。
【Safe Implementation】:将添加安全模式约束来实现有限状态机,将添加额外的逻辑将状态机从无效状态
调转到有效状态,否则只能复位来实现,有【Yes】、【No】两种选择,默认为【No】。
【Case Implementation Sytle】:条件语句实现类型。该参数用于控制XST 综合工具解释和推论Verilog 的
条件语句。其中选项有【None】、【Full】、【Parallel】、【Full-Parallel】,默认为【None】。 对于这四种选项,区别如下:(1)【None】,XST 将保留程序中条件语句的原型,不进行任何处理;(2)【Full】,XST 认为条件语句是完整的,避免锁存器的产生;(3)【Parallel】,XST 认为在条件语句中不能产生分支,并且不使用优先级编码器;(4)【Full-Parallel】,XST 认为条件语句是完整的,并且在内部没有分支,不使用锁存器和优先级编码器。
【RAM Extraction】:存储器扩展。该参数仅对FPGA 有效,用于使能和禁止RAM 宏接口。默认为允许使用RAM 宏接口。
【RAM Style】:RAM 实现类型。该参数仅对FPGA 有效,用于选择是采用块RAM 还是分布式RAM 来作为RAM 的实现类型。默认为【Auto】。
【ROM Extraction】:只读存储器扩展。该参数仅对FPGA 有效,用于使能和禁止只读存储器ROM 宏接口。默认为允许使用ROM 宏接口。
【ROM Style】:ROM 实现类型。该参数仅对FPGA 有效,用于选择是采用块RAM 还是分布式RAM 来作为ROM 的实现和推论类型。默认为【Auto】。
【Mux Extraction】:多路复用器扩展。该参数用于使能和禁止多路复用器的宏接口。根据某些内定的算法,对于每个已识别的多路复用/ 选择器,XST 能够创建一个宏,并进行逻辑的优化。可以选择【Yes】、【No】和【Force】
中的任何一种,默认为【Yes】。
【Mux Style】:多路复用实现类型。该参数用于胃宏生成器选择实现和推论多路复用/ 选择器的宏类型。可以选择【Auto】、【MUXF】和【MUXCY】中的任何一种,默认为【Auto】。
【Decoder Extraction】:译码器扩展。该参数用于使能和禁止译码器宏接口,默认为允许使用该接口。
【Priority Encoder Extraction】:优先级译码器扩展。该参数用于指定是否使用带有优先级的编码器宏单元。
【Shift Register Extraction】:移位寄存器扩展。该参数仅对FPGA 有效,用于指定是否使用移位寄存器宏单元。默认为使能。
【Logical Shifter Extraction】:逻辑移位寄存器扩展。该参数仅对FPGA 有效,用于指定是否使用逻辑移位寄存器宏单元。默认为使能。
【XOR Collapsing】:异或逻辑合并方式。该参数仅对FPGA 有效,用于指定是否将级联的异或逻辑单元合并成一个大的异或宏逻辑结构。默认为使能。
【Resource Sharing】:资源共享。该参数用于指定在XST 综合时,是否允许复用一些运算处理模块,如加法器、减法器、加/ 减法器和乘法器。默认为使能。如果综合工具的选择是以速度为优先原则的,那么就不考虑资源共享。
【Multiplier Style】:乘法器实现类型。该参数仅对FPGA 有效,用于指定宏生成器使用乘法器宏单元的方式。选项有【Auto】、【Block】、【LUT】和【Pipe_LUT】。默认为【Auto】。选择的乘法器实现类型和所选择的器件有关。
2) 赛灵思特殊选项
赛灵思特殊选项用于将用户逻辑适配到赛灵思芯片的特殊结构中,不仅能节省资源,还能提高设计的工作频率,其配置界面如图5-6 所示,包括10 个配置选项,具体如下所列。
图5-6 赛灵思指定的选项
【Add I/O Buffers】:插入I/O 缓冲器。该参数用于控制对所综合的模块是否自动插入I/O 缓冲器。默认为自动插入。
【Max Fanout】:最大扇出数。该参数用于指定信号和网线的最大扇出数。这里扇出数的选择与设计的性能有直接的关系,需要用户合理选择。
【Register Duplication】:寄存器复制。该参数用于控制是否允许寄存器的复制。对于高扇出和时序不能满足要求的寄存器进行复制,可以减少缓冲器输出的数目以及逻辑级数,改变时序的某些特性,提高设计的工作频率。默认为允许寄存器复制。
【Equivalent Register Removal】:等效寄存器删除。该参数用于指定是否把寄存器传输级功能等效的寄存器删除,这样可以减少寄存器资源的使用。如果某个寄存器是用赛灵思的硬件原语指定的,那么就不会被删除。默认为使能。
【Register Balancing】:寄存器配平。该参数仅对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】,那么该参数的设置无效。
【Pack I/O Registers into IOBs】:I/O 寄存器置于输入输出块。该参数仅对FPGA 有效,用于控制是否将逻辑设计中的寄存器用IOB 内部寄存器实现。在赛灵思系列FPGA 的IOB 中分别有输入和输出寄存器。如果将设计中的第一级寄存器或最后一级寄存器用IOB 内部寄存器实现,那么就可以缩短IO 引脚到寄存器之间的路径,这通常可以缩短大约1~2ns 的传输时延。默认为【Auto】。
【Slice Packing】:优化Slice 结构。该参数仅对FPGA 有效,用于控制是否将关键路径的查找表逻辑尽量配置在同一个Slice 或者CLB 模块中,由此来缩短LUT 之间的布线。这一功能对于提高设计的工作频率、改善时序特性是非常有用的。 默认为允许优化Slice 结构。
【Optimize Instantiated Primitives】:优化已例化的原语。该参数控制是否需要优化在HDL 代码中已例化的原语。默认为不优化。
评论