所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的
逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件。
完成了输入、仿真以及管脚分配后就可以进行综合和实现了。在过程管理区双击Synthesize-XST。
如图所示
综合可能有3种结果:如果综合后完全正确,则在Synthesize-XST前面有一个打钩的绿色小圈圈;如果有警
告,则出现一个带感叹号的黄色小圆圈,如本例所示;如果有错误,则出现一个带叉的红色小圈圈。综合
完成之后,可以通过双击View RTL Schematics来查看RTL级结构图,察看综合结构是否按照设计意图来实
现电路。ISE会自动调用原理图编辑器ECS来浏览RTL结构,所得到的RTL结构如图所示,综合结果符合设计
者的意图。
可以得到资源使用的图标
一般在使用XST时,所有的属性都采用默认值。其实XST对不同的逻辑设计可提供丰富、灵活的属性配置。
下面对ISE13.2中内嵌的XST属性进行说明。打开ISE中的设计工程,在过程管理区选中“Synthesis –XST”
并单击右键,弹出界面如图所示。
XST配置页面分为综合选项(Synthesis Options)、HDL语言选项(HDL Options)以及Xilinx特殊选项(Xilinx
Specific Options)等三大类,分别用于设置综合的全局目标和整体策略、HDL硬件语法规则以及Xilinx特有的结
构属性
分别介绍一些选项的意义: 【Optimization Goal】:优化的目标。该参数决定了综合工具对设计进行优化时,是以面积还是以速度作为优 先原则。面积优先原则可以节省器件内部的逻辑资源,即尽可能地采用串行逻辑结构,但这是以牺牲速度为代价 的。而速度优先原则保证了器件的整体工作速度,即尽可能地采用并行逻辑结构,但这样将会浪费器件内部大量 的逻辑资源,因此,它是以牺牲逻辑资源为代价的。 〖Optimization Effort〗:优化器努力程度。这里有【normal】和【high】两种选择方式。对于 【normal】,优化器对逻辑设计仅仅进行普通的优化处理,其结果可能并不是最好的,但是综合和优化流程执行 地较快。如果选择【high】,优化器对逻辑设计进行反复的优化处理和分析,并能生成最理想的综合和优化结 果,在对高性能和最终的设计通常采用这种模式;当然在综合和优化时,需要的时间较长。 【Use Synthesis Constraints File】:使用综合约束文件。如果选择了该选项,那么综合约束文件XCF有效。 【Synthesis Constraints File】:综合约束文件。该选项用于指定XST综合约束文件XCF的路径 【Global Optimization Goal】:全局优化目标。可以选择的属性包括有【AllClockNets】、 【Inpad To Outpad】、【Offest In Before】、【Offest Out After】、【Maximm Delay】。 该参数仅对FPGA器件有效,可用于选择所设定的寄存器之间、输入引脚到寄存器之间、寄存器到输出引脚 之间,或者是输入引脚到输出引脚之间逻辑的优化策略。 【Generate RTL Schematic】:生成寄存器传输级视图文件。该参数用于将综合结果生成RTL视图。 【Write Timing Constraints】:写时序约束。该参数仅对FPGA有效,用来设置是否将HDL源代码中用于 控制综合的时序约束传给NGC网表文件,该文件用于布局和布线。 Xilinx特殊选项 Xilinx特殊选项用于将用户逻辑适配到Xilinx芯片的特殊结构中,不仅能节省资源,还能提高设计的工作频率. 也给大家介绍一些选项: 【Add I/O Buffers】:插入I/O缓冲器。该参数用于控制对所综合的模块是否自动插入I/O缓冲器。默认 为自动插入。 【Max Fanout】:最大扇出数。该参数用于指定信号和网线的最大扇出数。这里扇出数的选择与设计的 性能有直接的关系,需要用户合理选择。
【Register Duplication】:寄存器复制。该参数用于控制是否允许寄存器的复制。对于高扇出和时序不能 满足要求的寄存器进行复制,可以减少缓冲器输出的数目以及逻辑级数,改变时序的某些特性,提高设计 的工作频率。默认为允许寄存器复制。 【Equivalent Register Removal】:等效寄存器删除。该参数用于指定是否把寄存器传输级功能等效的寄存 器删除,这样可以减少寄存器资源的使用。如果某个寄存器是用Xilinx的硬件原语指定的,那么就不会被删 除。默认为使能。 【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内部寄存器实现。在Xilinx系列FPGA的IOB中分别有输入和输出寄存器。如果 将设计中的第一级寄存器或最后一级寄存器用IOB内部寄存器实现,那么就可以缩短IO引脚到寄存器之间 的路径,这通常可以缩短大约1~2ns的传输时延。默认为【Auto】。 【Slice Packing】:优化Slice结构。该参数仅对FPGA有效,用于控制是否将关键路径的查找表逻辑尽量 配置在同一个Slice或者CLB模块中,由此来缩短LUT之间的布线。这一功能对于提高设计的工作频率、改善 时序特性是非常有用的。 默认为允许优化Slice结构。 【Optimize Instantiated Primitives】:优化已例化的原语。该参数控制是否需要优化在HDL代码中已例 化的原语。默认为不优化。 转载自:http://bbs.21ic.com/blog-731039-96621.html |