xilinx fpga學習筆記5:Xst綜合屬性

第六章:設計綜合和行爲仿真

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),用於定義編譯源文件的順序。如果這裏沒有指定文件,將創建一個默認的庫搜索文件<design>.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生成的編譯文件列表。                  定製編譯文件列表給出了編譯的設計文件以及每個文件相關聯的庫。每一對文件和庫由新的一行分開。設計文件的順序決定編譯順序。下面是這種文件格式的一個例                    子:
    <library_name>;<file_name>
  [<library_name>;<file_name>]
   ...
     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)跳過設計的最優化(壓縮、因子分解),僅執行布爾等式的最小化。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章