第六章:设计综合和行为仿真
6.1 设计综合
本节将详细介绍设计综合的概念,综合属性的设置,综合过程的实现,并且通过查看原理图符号更加直观的建立HDL高级描述和FPGA底层源语之间的联系。
6.1.1 行为综合描述
在集成电路设计领域,综合是指设计人员使用高级设计语言对系统逻辑功能的描述,在一个包含众多结构、功能、性能均已知的逻辑元件的逻辑单元库的支持下,将其转换成使用这些基本的逻辑单元组成的逻辑网络结构实现。这个过程一方面实在保证系统逻辑功能的情况下进行高级设计语言到逻辑网表的转换,另一方面是根据约束条件对逻辑网表进行时序和面积的优化。
行为级综合可以自动将系统直接从行为级描述综合为寄存器传输级描述。行为级综合的输入为系统的行为级描述,输出为寄存器传输级描述的数据通路。行为级综合工具可以让设计这从更加接近系统概念模型的角度来设计系统。同时,行为级综合工具能让设计者对于最终设计电路的面积,性能,功耗以及可预测性进行很方面的优化,行为级综合所需要完成的任务从广义来说可以分为分配、调度已经绑定。
分配包括决定系统实现所需要的各个功能组件的个数以及种类,这些组件以及资源来自采用寄存器传输级描述的元件库,包括诸如运算逻辑单元,加法器,乘法器和多路复用器等,分配同时也决定了系统中总线的数量、宽度以及类型。
调度为行为级描述中的每个操作指派时间间隙,这也称为控制执行步骤。数据流从以及寄存器流向下一级寄存器并按调度所指定的执行步骤在功能单元上执行,每一个执行步骤的时间长度通常为一个时钟周期,并且在一个执行步骤中的操作被绑定到特定寄存器传输级描述的组件上,上述这些操作完成后,系统所完成的功能被分配到各个功能单元模块,变量被存储在各个存储单元,并且不同功能单元之间的互联关系也建立起来了。
在设计的fpga设计流程中,逻辑综合将使用硬件逻辑描述语言描述的寄存器传输级描述,转换成使用逻辑单元库中基本逻辑元件描述的门级网表电路。
6.1.2 基于xst的综合
当完成所有的设计输入,并且检查完语法后,就可以使用xilinx 的xst工具或第三方综合工具对设计进行综合,综合工具使用可识别的输入文件生成ise所支持的网表格式edif或ngc。在此基础上,xilinx的实现工具将使用这些网表文件完成所有的处理过程。
综合工具在对设计的综合过程中,主要执行以下3个步骤:
(1)语法检查过程,检查设计文件语法是否有错误;
(2)编译过程,翻译和优化HDL代码,将其转换为综合工具可以识别的元件序列;
(3)映射过程,将这些可识别的元件序列转换为可识别的目标技术的基本元件。
在ise的主界面的处理子窗口的综合synthesis工具可以完成下面的任务
(1)查看综合报告(view synthesis report)
(2)查看rtl原理图(view rtl schematic)
(3)查看技术原理图(view technology schematic)
(4)检查语法(check syntax)
(5)产生综合后仿真模型(generate post-synthesis simulation model)
6.1.3 综合属性参数功能
1、综合选项
下列属性适用于使用xilinx综合技术(XST)综合工具的综合过程。
1)优化目标(Optimization Goal)
为面积和速度指定全局优化目标。从下拉列表中选择一个选项:
a、speed:通过减少逻辑层次来优化设计速度(默认设置);
b、area:通过减少用于实现的逻辑总量以优化面积。
2)优化努力(Optimization Effort)
指定综合优化的努力程度。从下拉列表中选择一个选项:
a、Normal:使用最小化和代数因式分解优化设计(默认设置);
b、High:执行额外的优化,匹配到所选的设备架构。由于多种优化算法试图为所选择的器件结构获得最佳的优化结果,因此需要更多的CPU时间进行优化。
c、Fast:这个属性只应用于Spartan-6、Virtex-6和Virtex-7系列的器件。通过关闭一些在通常努力级所使用的优化算法,来花费最小的运行时间执行综合过程,这将导
致 在优化方面的权衡。
3)降低功耗(PowerReduction,仅适用于V4/V5/V6/SP6/SP7系列器件)
当设置为Yes时,XST优化设计以消耗最小的功率,不论优化目标是速度还是面积,被允许降低功耗,但是适用该选项可能对最后总的面积和速度的设计有不利的影
响。默认情况下不选择属性设置。
4)使用综合约束文件(Use Synthesis Constraints file)
指定是否使用以前属性中输入的约束文件。默认情况,使用约束文件。
5)综合约束文件(Synthesis Constraints File)
指定一个xilinx约束文件(XCF)用于XST综合约束。输入综合过程中想要的约束位置和文件名称,或者单击浏览按钮浏览约束文件,默认情况下,特性为空。
6)库搜索顺序(Library Serch Order)
指定一个自定义库搜索顺序文件(*.lso),用于定义编译源文件的顺序。如果这里没有指定文件,将创建一个默认的库搜索文件
.lso。可以修改默认文件,但必 须在这一个属性中指定修改的文件。
7)保持分级结构(Keep Hierarchy)
指定相应的设计单元是否应该予以保留,并不合并到剩余的设计中。可以指定yes、no和soft。要是在综合的过程中保持层次化,但又不希望通过keep_hierarchy特性来 布局布线时,选择soft。默认情况下,此特性设置为No。
8)全局优化目标(Global Optimization Goal,仅限于FPGA)
指定全局时间优化目标。从下拉菜单中选中一个选项。
(1)AllClockNets:优化整个设计的周期(默认设置)。
(2)Inpad to Outpad:优化整个设计中从输入pad到输出pad的最大延迟。
(3)Offest In Before:优化从输入pad到时钟的最大延迟,用于整个设计或者指定的时钟。
(4)Offest Out After:优化从时钟到输出pad的最大延迟,用于整个设计或者指定的时钟。
(5)Maximum Delay:对于开始于输入,结束于输出的路径,全局优化将设置为最大的延迟约束。此选项包含上述所有选项的目标。
9)生成RTL原理图(Generate RTL Schematic)
生成一个用于设计的预先优化的RTL原理图。此属性的值由Yes、No和Only。Only在生成RTL原理图后,在优化之前,停止综合过程。默认值是Yes。
10)读取核(Read Cores,高级,仅限于FPGA)
指定综合引擎是否读取对应于例化和核的网表,用于时序和面积估计,用于对剩余的设计进行更好的优化。设置为True(复选框被选中,默认设置)时,XST解析已经
存在于工程工作目录或者由核搜索目录属性所指定的目录中的核网表(EDIF,NGC,NGO),提取时序和资源使用信息。由这方面的数据来决定围绕这些黑盒子的逻辑
优化。黑盒子网表不能被修改和重写。在设置为Flase(复选框为空)时,不能读取核。
11)内核搜索目录(Core Serch Directories,高级,仅限于FPGA)
指定黑盒子网表(EDIF、NGC、NGO)的位置,指定用于读取内核属性。为了指定多个搜索路径,输入多条路径,使用管道符号“|”分隔每个路径。也可以在其他路径中
单击浏览按钮浏览第一条路径,用管道符号分隔“|”每个路径。
12)写时序约束(Write Timing Constraints,仅限于FPGA)
指定是否在NGC文件中设置时序约束,NGC文件中的时序约束将在布局和布线已经综合优化过程中使用。默认情况下,此特性设置为False(复选框为空)。
13)跨时钟分析(CrossClock Analysis,高级,仅限于FPGA)
使能对由不同时钟驱动的相关同步元件进行时序分析。默认情况下,不执行时序分析。
14)层次分隔符(Hierarchy Separator,高级)
在没有设计层次时,为生成名字时使用指定层次分隔符。默认设置为“/”。可以指定下划线“_”。
15)总线定界符(Bus Delimiter,高级)
指定定界符类型,用于在生成的网表中定义矢量信号。从不同的定界符中选择,默认选择为<>。
16)Slice利用率(Slice Utilization Ratio)高级
指定XST在时序优化中不能超过的区域大小。如果不能满足面积约束,XST将忽略面积约束进行时序优化。默认率为100%。可以通过输入-1禁止自动资源管理。
17)LUT触发器对的利用率(LUT-FF Paris Utilization Ratio,高级)
指定XST在时序优化中不能超过的区域大小。如果区域约束不能满足,XST将忽视区域约束进行时序优化。默认率为100%,可以通过输入-1禁止自动资源管理。
18)BRAM利用率(BRAM Utilization Ratio,高级,仅限于FPGA)
指定XST在综合过程中不会超过的BRAM块的数量,默认比例是100%,可以通过输入-1禁止使用自动BRAM资源管理。
19)DSP利用率(DSP Utilization Ratio,高级,仅限于V4/V5/V6/SP3A/SP6/SP7系列)
指定XST在综合过程中不会超过的DSP48块的数量,默认值是100%。
20)大小写(Case,高级)
指定用于在最后的网表中实例和网络名字的大小写。可以选择使用小写(low case)、大写(upper case)或者保持现在的状态。默认情况下,此特性设置为保持 (Maintain)。
21)工作目录(Work Directory,高级)
指定中间HDL文件将被编译的地方。默认情况下,该特性为./xst,工程目录是%XILINX%/xst/work/。
22)HDL INI文件(HDL INI File,高级)
指定一个库映射文件,包含库名字和用于库编译的目录。
23)Verilog 2001
指定是否要以Verilog 2001标准在解释Verilog源代码。默认情况下,此特性设置为True(复选框被选中),由Verilog 2001解释Verilog源代码。
24)Verilog包含目录(Verilog Include Directory,高级)
指定在Verilog包含目录中分散的路径。为了指定多个路径,需键入多条路径,用管道符号“|”分隔每个路径。也可以在其他路径中点击浏览按钮浏览第一个路径,用管道
符号“|”分隔每个路径,这儿没有默认值。
25)类属、参数(Generics,parameters,高级)
允许重新定义在高层设计中定义了的类属(VHDL)和参数(Verilog)。在综合设计时,在这里定义的类属/参数将取代HDL源中的那部分。为了指定多个类属或参数,
输入多个条目,使用管道符号“|”来分隔每个类属或参数(例如company = "xilinx" | width = 5 | init_vector = b100101)。无默认值。
26)Verilog宏(Verilog Macros,高级)
允许为设计定义或重新定义宏。在综合设计时,在这里声明的宏将取代HDL源中的宏。为了指定多个宏,输入多个条目,使用符号“|”来分隔每个宏(例如:company =
"xilinx" | macro2 = "xilinx virtex 4")。无默认值。
27)定制编译文件列表(Custom Compile File List,高级)
指定一个定制编译列表文件(文本文件)。在该属性中所定义的用户定义列表文件用以为综合产生编译指令。如果没有设置该属性,将使用ISE生成的编译文件列表。 定制编译文件列表给出了编译的设计文件以及每个文件相关联的库。每一对文件和库由新的一行分开。设计文件的顺序决定编译顺序。下面是这种文件格式的一个例 子:
;
[;]
...
28)其他XST命令行选项(Other XST Command Line Options,高级)
输入其他命令行选项。多个选项用空格分开。在图形用户界面指定的所有其他的特性选项之前,在此属性中输入的选项首先出现在命令行上,避免重复设置属性选项。
2、HDL选项
下列属性适用于使用xilinx综合技术(XST)综合工具的综合过程
1)FSM编码算法(FSM Encoding Algorithm)
设置FSM编码约束决定了所使用的有限状态机的编码技术。从下拉菜单中选择一个选项。
(1)auto:在综合过程中选择所需的优化算法(默认设置)。
(2)one-hot:确保各个状态寄存器都是专用于某一个状态。在任意时刻,只有一个触发器是活动的。one-hot编码适用于大多数有大量可用的FPGA器件
,在试图优
化速度或减少功耗的情况下是一个很好的选择。
(3)compact:最小化状态变量和触发器的数量,这种技术是基于超立方浸润技术的。compact编码适用于对面积进行优化。
(4)sequential:由识别长路径和使用连续两个基数代码到这些路径的代码所组成,下一状态等式是最小化的。
(5)gray:保证在两个连续状态间只有一个状态变量切换,适于控制器在没有分支情况下的长路径。此外,这种编码技术最小化了危险和误操作。当使
用T或者JK触
发器实现状态寄存器时,能得到很好的结果。
(6)johnson:和gray类似,在包含长路径而没有分支的状态机中显示优势。
(7)User:综合工具使用的编码定义在源文件中。
(8)speed1:speed1编码方法用于速度优化。状态寄存器的比特位的数目取决于每个FSM,但通常情况下,比FSM状态的个数要多。
(9)none:禁止自动提取FSM。
2)安全实现(safe implementation)
指定一个有限状态机描述中是否使用安全实现。设置为Yes时,任何无效状态都将状态机恢复到原始状态,以执行正常操作。设置为NO时,逻辑不能从无效状态恢复,默认 情况下,此属性设置为NO。在FSM编码算法不为none时,此选项都适用。
3)case实现风格(case implementation style)
设定在综合中case语句的方式,可从下拉菜单的四个选项中选择一个。
(1)none:综合过程中没有适用case指定语句。
(2)full:Verilog元注释用来表明所有可能的选择器的值都已经用case、casex或者casez状态表示。没有表示的值认为是在正常电路操作中不能达到
的,并且指令阻
止XST为这些情况建立额外的硬件。
(3)parallel:verilog metacomment用来防止case语句以并行复用器的形式被综合,防止case语句转换为优先if/elseif语句的关联。
(4)full_parallel:parallel_case和full_case两个命令被用于case选择器。
对于FPGA,该属性默认为none,对于cpld,该属性默认为full-parallel。
4)FSM风格(fsm style)
指定使用LUT还是RAM块来映射FSM。默认情况下设置为LUT。
5)RAM提取(RAM Extraction,仅限于FPGA)
指定是否使用RAM宏推断。默认情况下,此属性设置为true,使能RAM推断。
6) RAM风格(RAM style,仅限于fpga)
指定宏生成器实现RAM宏的方式(该属性仅在RAM提取属性为true时可用)。可在下列三个选项中选择一个:
(1)auto:xst为每个宏决定最好的实现方式。
(2)distributed:以分布式RAM形式实现RAM。
(3)Block:以块RAM形式实现RAM。
7)ROM提取(ROM extraction,仅限于fpga)
指定是否使用ROM宏推断。默认为true,使能rom宏推断。
8)ROM类型(ROM style,仅限于fpga)
指定宏生成器实现rom宏的方式,(该属性只有在rom提取属性为true的时候可用)。可在下列三个选项中选择一个:
(1)auto:xst为每个宏决定最好实现方式。
(2)distributed:以分布式ROM形式实现ROM。
(3)Block:以块ROM形式实现ROM。
9)自动填充BRAM(Automatic BRAM Packing,高级,仅限于FPGA)
指定XST是否将两个小的单端口BRAM填充到一个BRAM原语或双端口BRAM中。当它们都在设计的同一层次上时,可以将它们填充。默认情况下,该属性设置为
No(复选框为空)。
10)多路复用器的提取(Mux Extraction,仅限于FPGA)
指定是否使用多路复用器宏推断。可在Yes、No和Force中选择。Force保存优化过程中的所有多路复用器,并不通过设计所剩余的逻辑对其进行优化。默认情 况下,此
属性的设置为Yes。
11)多路复用器的风格(Mux Style,仅限于FPGA)
指定宏生成器实现多路器宏的方式(此特性仅在多路复用器提取特性设置为Yes或Force时可用)。可以从下面三个选项选择一个。
(1)Auto:XST决定每个宏的最好实现方式(默认设置)。
(2)MUXF:基于Virtex和Spartan的MuxF5/F6/F7/F8资源。
(3)MUXCY:基于Virtex和Spartan的MuxCY资源。
12)译码器的提取(Decoder Extraction,仅限于FPGA)
指定是否适用于译码器宏推断,默认情况下,该属性设置为True(复选框选中)。
13)有限编码器的提取(Priority Encoder Extraction,仅限于FPGA)
指定是否使用有限编码器宏推断,可以选择Yes、No或Force。Force强迫XST提取宏,并不通过设计所剩余的逻辑对其进行优化,默认情况下,该属性设置为 Yes。
14)移位寄存器的提取(Shift Register Extraction,仅限于FPGA)
指定是否使用移位寄存器宏推断,默认情况下,该属性设置为True(复选框被选中)。移位寄存器宏被推断。
15)逻辑移位器的提取(Logic Shifter Extraction,仅限于FPGA)
指定是否推断逻辑移位器宏。默认情况下设置为True(复选框被选中)
16)异或压缩(XOR Collapsing,仅限于FPGA)
指定是否将级联的XOR压缩到一个单独的XOR,默认情况下,该属性设置为True(复选框被选中),级联XOR被压缩。
17)资源共享(Resource Sharing)
指定是否共享算术操作符资源,默认情况下,该属性设置为True(复选框被选中)。
18)乘法器风格(Multipiler Style)
该属性仅适用于Spartan-3、Spartan-3e和Spartan-3a。指定宏生成器实现乘法器宏的方式,从下拉菜单中选择一个选项。
(1)Auto:XST为每个宏查找最佳实现方法(默认设置)。
(2)Block:这种实现方式使用块乘法器资源。
(3)LUT:这种实现方式使用LUT资源。
(4)Pipe_LUT:仅在乘法器功能由LUT和寄存器构成的组个用于这种实现方式。它仅在乘法功能被寄存一次或多次时,允许XST均匀的将寄存器分散到乘
法
功能。
19)使用DSP48(Use DSP48,仅限于Virtex-4)
指定是否在Virtex-4设计中使用DSP48块。从下拉菜单中选择一个选项。
(1)Auto:XST检查在DSP48块中布局的优点,并决定最有效的实现方式(默认设置)。
(2)Yes:将所有的宏尽可能的放在DSP48内。这个选项使能查看被编译子模块中所使用DSP48块的个数。
(3)No:XST为这些宏使用标准FPGA资源。
20)使用DSP块(Use DSP Block,仅限于Virtex-5、Virtex-6、Spartan-3A DSP、Spartan-6和Spartan-7系列)
指定是否在设计中使用DSP块,从下拉列表中选择一个选项。
(1)Auto:XST检查在DSP块中布局的优点,并决定最有效的实现方式(默认设置)。
(2)Yes:将所有的宏尽可能的放在DSP内。这个选项使能查看编译子模块中使用的DSP块的个数。
(3)No:XST为这些宏使用标准的FPGA资源。
21)异步到同步(Asynchronous to Synchronous,高级,仅限于FPGA)
指定是否由设计中的同步信号代替异步复位信号。如果选中,DSP块或BRAM可以吸收寄存器。由于XST允许合并更多寄存器到专门的资源,将要改善设计结果 的质
量,此功能对功耗优化也有积极的影响。
注意:由同步信号代替异步信号,将使得生成网表不等效于初始RTL描述。必须保证同步设计满足初始规范。默认情况下,该属性设置为“No”
3、Xilinx指定选项
下列属性适用于使用Xilinx综合技术(XST)综合工具的综合过程,这些选项适用于FPGA、CPLD或者两者同时。
1)添加I/O缓冲器(Add I/O Buffers)
指定时候在设计中的最高层I/O端口上推断输入/输出缓冲器。输入/输出缓冲器(IBUF、OBUF、OBUFT)类型推断取决于端口在设计中的定义和使用方式 。编译器
仅在设计中例化但没有连接到I/O缓冲器的端口上添加I/O缓冲器。在所有高层端口上,模块在实现前都要求要有I/O缓冲器。此属性设置为False( 复选框为空)时,必须
在设计高层端口上实例化I/O端口,或者在设计实现前,在高层端口上用包含I/O缓冲器的高层设计来概括网表。默认情况下,该属性 设置为True(复选框被选中)。
2)最大扇出(Max Fanout,仅限于FPGA)
指定网络的最大扇出限制。约束值必须是一个正整数。对于Virtex-5,Virtex-6、Spartan-6和Spartan-7系列的器件,默认值是100000.对于Virtex-4、 Spartan-3、
Spartan-3e和Spartan-3a设备,默认值为500。
3)时钟缓冲器的个数/全局时钟缓冲器的个数(Number of Clock Buffers/Number of Global Buffers,高级)
为目标芯片指定全局缓冲器的个数(BUFG),默认值取决于芯片。
4)区域时钟缓冲器的个数(Number of Regional Clock Buffer,高级,仅限于Virtex-4和Virtex-5)
为目标芯片指定区域缓冲器(BUFG)个数,默认值取决于设备。
5)寄存器复制(Register Duplication,仅限于FPGA)
指定是否希望通过复制寄存器来帮助控制扇出。默认情况下,该属性这只为True(复选框被选中),在时序优化和控制扇出的过程中执行寄存器复制。
6)等效寄存器清楚(Equivalent Register Removal)
指定是否设置触发器最优化。触发器最优化包括清楚等效的触发器和常数输入的触发器,默认情况下,该属性这只为True(复选框被选中),执行触发 器最优化。
7)寄存器平衡(Register Balancing,仅限于FPGA)
将寄存器从组合逻辑均匀分配给寄存器间的路径延迟。这被称为触发器重定时。从下拉菜单中选择一个选项。
(1)No:XST不执行触发器重定时(默认设置)。
(2)Yes:可进行正向和反向重定时。
(3)Forward:触发器只能用于向前。
(4)Backward:触发器只能用于向后。
8)移出第一触发器级(Move First Flip-Flop,仅限于FPGA)
加强寄存器平衡特征,该属性仅在寄存器平衡属性设置为Yes、Forward或Backward时可用。默认情况下,该属性设置为True(复选框被选中),这是推 荐的设置方
式,在设置为Flase(复选框为空)时,寄存器平衡特征不能将路径中的第一寄存器超前放置。这会影响偏移时间和潜在的IOB合并。
9)移出最后寄存器级(Move Last Flip-Flop,仅限于FPGA)
使能寄存器平衡功能正确。该属性仅在寄存器平衡属性设置为Yes、Forward或Backward时可用。默认情况下,该属性设置为True(复选框被选中),这 是推荐的设
置方式,在设置为Flase(复选框为空)时,寄存器平衡特征不能将路径中的最后一个寄存器返回中间。这会影响偏移时间和潜在的IOB合并。
10)将I/O寄存器填充到IOB(Pack I/O Register into IOBs,仅限于FPGA)
控制IOB触发器合并能力,从下拉列表中选择一个选项:
(1)Auto:该选项使用时序规范(周期和偏移)来决定是否合并IOB触发器(默认情况)。
(2)Yes:在任何可能的情况下,该选项强迫所有连接到pad上的触发器填充到IOB缓冲器。
(3)No:该选项阻止IOB触发器填充的发生。
11)Slice填充(Slice Packing,仅限于FPGA)
指定是否使用某个原语,以强制元件在同一个Slice上,例如LUT#_L。该属性将改善整体性能和时序分析。默认情况下,该属性设置为True(复选框被选 中)。
12)转换三态逻辑(ConvertTristates to Logic,高级,仅限于FPGA)
指定是否在HDL中以MUX结构或TBUF结构推断三态缓冲器。转换三态缓冲器为逻辑(MUXes)将改善设计性能。默认情况下,该属性设置为Yes,三态缓冲 器在
HDL编码中以MUXes形式被推断。当设置为No时,三态缓冲器以TBUF形式被推断。
注意:该属性可用于Spartan-3,Virtex-4和Virtex-5族器件。XST将内部三态转换为逻辑。有些情况下,XST由于可能会引起不准确的设计行为,而不将
三态转
换为逻辑。在这些情况下,XST发布警告信息。
13)使用时钟使能(Use Clock Enable,高级,仅限于FPGA)
指定XST是否使用时钟使能引脚。设置为Auto时,如果能为设计整体质量的提供好处,XST使用特定的时钟使能引脚来做推断寄存器。当设置为Yes时,触 发器中使
用时钟使能引脚。设置为No时,时钟使能引脚不被使用,相应的功能在标准逻辑中实现。
默认情况下,对于Virtex-4和Virtex-5设备,该属性默认为Auto。其他设备默认为Yes。
14)使用同步设置(Use Synchronous Set,高级,仅限于FPGA)
指定XST是否使用同步设置引脚。设置为Auto时,如果能为设计整体质量提供好处,XST使用特定的同步设置引脚来推断寄存器。当设置为Yes时,触发器 中使用
同步设置引脚。当设置为No时,同步设置引脚不被使用,相应的功能在标准逻辑中实现。
默认情况下,对于Virtex-4、Virtex-5、Virtex-6、Spartan-6和Spartan-7设备,该属性默认为Auto。其他设备默认为Yes。
15)使用同步复位(Use Synchronous Reset,高级,仅限于FPGA)
指定XST是否使用同步复位引脚。设置为Auto时,如果能为设计整体质量提供好处,XST使用特定的同步复位引脚来推断寄存器。当设置为Yes时,触发器 中使用
同步复位引脚。当设置为No时,同步复位引脚不被使用,相应的功能在标准逻辑中实现。
默认情况下,对于Virtex-4、Virtex-5、Virtex-6、Spartan-6和Spartan-7设备,该属性默认为Auto。其他设备默认为Yes。
16)优化例化的原语(Optimize Instantiated Primitives,仅限于FPGA)
指定XST是否优化例化的原语。设置为True时,XST尽可能优化例化的原语。默认情况下,该属性的设置为False。
17)时钟使能(Clock Enable,仅限于CPLD)
指定在包含时钟使能时,时序逻辑的实现方式。该属性设置为True。指定使用时钟使能资源。该属性设置为Flase时,生成逻辑用来产生时钟使能。默认 情况下,该
属性设置为True。
18)宏保持(Macro Preserve,仅限于CPLD)
宏保持特性控制pld_mp约束,可使能或禁止层次平坦化的宏。默认情况下,该属性设置为True。
19)或门保持(XOR Preserve,仅限于CPLD)
或门保持特性控制pld_xp约束,可使能或禁止层次平坦化的或门宏。默认情况下,该属性设置为True。
20)WYSIWYG(仅限于FPGA)
指定网表是否在可能的情况下反应用户规范。默认情况下,该属性设置为None。该属性设置为VHDL/Verilog时,XST:
(1)在HDL设计中保留所有用户内部信号;
(2)在NGC文件中为所有的这些节点创建source_node约束;
(3)跳过设计的最优化(压缩、因子分解),仅执行布尔等式的最小化。