色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA實戰(zhàn)開發(fā)技巧(3)

          FPGA實戰(zhàn)開發(fā)技巧(3)

          作者: 時間:2017-10-13 來源:網(wǎng)絡 收藏

          5.3.1 綜合工具XST的使用

          所謂綜合,就是將HDL語言、原理圖等設計輸入翻譯成由與、或、非門和RAM、觸發(fā)器等基本邏輯單元的邏輯連接( 網(wǎng)表),并根據(jù)目標和要求( 約束條件) 優(yōu)化所生成的邏輯連接,生成EDF 文件。XST 內嵌在ISE 3 以后的版本中,并且在不斷完善。此外,由于XST 是公司自己的綜合工具,對于部分芯片獨有的結構具有更好的融合性。

          本文引用地址:http://cafeforensic.com/article/201710/365619.htm

          完成了輸入、仿真以及管腳分配后就可以進行綜合和實現(xiàn)了。在過程管理區(qū)雙擊Synthesize-XST,如圖5-1所示,就可以完成綜合,并且能夠給出初步的資源消耗情況。圖5-2 給出了模塊所占用的資源。

          圖5-1 設計綜合窗口

          圖5-2 綜合結果報告

          綜合可能有3 種結果:如果綜合后完全正確,則在Synthesize-XST 前面有一個打鉤的綠色小圈圈;如果有警告,則出現(xiàn)一個帶感嘆號的黃色小圓圈;如果有錯誤,則出現(xiàn)一個帶叉的紅色小圈圈。綜合完成之后,可以通過雙擊View RTL SchemaTIcs 來查看RTL 級結構圖,察看綜合結構是否按照設計意圖來實現(xiàn)電路。ISE 會自動調用原理圖編輯器ECS 來瀏覽RTL 結構。對于一個計數(shù)器,其RTL 結構圖如圖5-3 所示,綜合結果符合設計者的意圖,調用了加法器和寄存器來完成邏輯。

          圖5-3 經(jīng)過綜合后的RTL級結構圖

          2.綜合參數(shù)的設置

          一般在使用XST 時,所有的屬性都采用默認值。其實XST 對不同的邏輯設計可提供豐富、靈活的屬性配置。下面對ISE9.1 中內嵌的XST 屬性進行說明。打開ISE 中的設計工程,在過程管理區(qū)選中“Synthesis –XST”并單擊右鍵,彈出界面如圖5-4 所示。

          圖5-4 綜合選項

          由圖5-4 可以看出,XST 配置頁面分為綜合選項(Synthesis OpTIons)、HDL 語言選項(HDL OpTIons) 以及特殊選項(Xilinx Specific OpTIons) 等三大類,分別用于設置綜合的全局目標和整體策略、HDL 硬件語法規(guī)則以及賽靈思特有的結構屬性。

          1) 綜合選項參數(shù)

          綜合參數(shù)配置界面如圖5-4 所示,包括8 個選項,具體如下所列:

          【Optimization Goal】:優(yōu)化的目標。該參數(shù)決定了綜合工具對設計進行優(yōu)化時,是以面積還是以速度作為優(yōu)先原則。面積優(yōu)先原則可以節(jié)省器件內部的邏輯資源,即盡可能地采用串行邏輯結構,但這是以犧牲速度為代價的。而速度優(yōu)先原則保證了器件的整體工作速度,即盡可能地采用并行邏輯結構,但這樣將會浪費器件內部大量的邏輯資源,因此,它是以犧牲邏輯資源為代價的。

          【Optimization Effort】:優(yōu)化器努力程度。這里有【normal】和【high】兩種選擇方式。對于【normal】,優(yōu)化器對邏輯設計僅僅進行普通的優(yōu)化處理,其結果可能并不是最好的,但是綜合和優(yōu)化流程執(zhí)行地較快。如果選擇【high】,優(yōu)化器對邏輯設計進行反復的優(yōu)化處理和分析,并能生成最理想的綜合和優(yōu)化結果,在對高性能和最終的設計通常采用這種模式;當然在綜合和優(yōu)化時,需要的時間較長。

          【Use Synthesis Constraints File】:使用綜合約束文件。如果選擇了該選項,那么綜合約束文件XCF 有效。

          【Synthesis Constraints File】:綜合約束文件。該選項用于指定XST 綜合約束文件XCF 的路徑。

          【Global Optimization Goal】:全局優(yōu)化目標??梢赃x擇的屬性包括有【AllClockNets】、【Inpad To
          Outpad】、【Offest In Before】、【Offest Out After】、【Maximm Delay】。該參數(shù)僅對 器件有效,可用于選擇所設定的寄存器之間、輸入引腳到寄存器之間、寄存器到輸出引腳之間,或者是輸入引腳到輸出引腳之間邏
          輯的優(yōu)化策略。

          【Generate RTL Schematic】:生成寄存器傳輸級視圖文件。該參數(shù)用于將綜合結果生成RTL 視圖。

          【W(wǎng)rite Timing Constraints】:寫時序約束。該參數(shù)僅對 有效,用來設置是否將HDL 源代碼中用于控制綜合的時序約束傳給NGC 網(wǎng)表文件,該文件用于布局和布線。

          【Verilog 2001】:選擇是否支持Verilog 2001 版本。

          HDL語言選項

          HDL 語言選項的配置界面如圖5-5 所示,包括16 個選項,具體如下所列:

          圖5-5 HDL語言選項的配置界面選項

          【FSM Encoding Algorithm】:有限狀態(tài)機編碼算法。該參數(shù)用于指定有限狀態(tài)機的編碼方式。選項有【Auto】、
          【One-Hot】、【Compact】、【Sequential】、【Gray】、【Johnson】、【User】、【Speed1】、【None】編碼方式,默認為【Auto】編碼方式。

          【Safe Implementation】:將添加安全模式約束來實現(xiàn)有限狀態(tài)機,將添加額外的邏輯將狀態(tài)機從無效狀態(tài)
          調轉到有效狀態(tài),否則只能復位來實現(xiàn),有【Yes】、【No】兩種選擇,默認為【No】。

          【Case Implementation Sytle】:條件語句實現(xiàn)類型。該參數(shù)用于控制XST 綜合工具解釋和推論Verilog 的
          條件語句。其中選項有【None】、【Full】、【Parallel】、【Full-Parallel】,默認為【None】。 對于這四種選項,區(qū)別如下:(1)【None】,XST 將保留程序中條件語句的原型,不進行任何處理;(2)【Full】,XST 認為條件語句是完整的,避免鎖存器的產生;(3)【Parallel】,XST 認為在條件語句中不能產生分支,并且不使用優(yōu)先級編碼器;(4)【Full-Parallel】,XST 認為條件語句是完整的,并且在內部沒有分支,不使用鎖存器和優(yōu)先級編碼器。

          【RAM Extraction】:存儲器擴展。該參數(shù)僅對 有效,用于使能和禁止RAM 宏接口。默認為允許使用RAM 宏接口。

          【RAM Style】:RAM 實現(xiàn)類型。該參數(shù)僅對FPGA 有效,用于選擇是采用塊RAM 還是分布式RAM 來作為RAM 的實現(xiàn)類型。默認為【Auto】。

          【ROM Extraction】:只讀存儲器擴展。該參數(shù)僅對FPGA 有效,用于使能和禁止只讀存儲器ROM 宏接口。默認為允許使用ROM 宏接口。

          【ROM Style】:ROM 實現(xiàn)類型。該參數(shù)僅對FPGA 有效,用于選擇是采用塊RAM 還是分布式RAM 來作為ROM 的實現(xiàn)和推論類型。默認為【Auto】。

          【Mux Extraction】:多路復用器擴展。該參數(shù)用于使能和禁止多路復用器的宏接口。根據(jù)某些內定的算法,對于每個已識別的多路復用/ 選擇器,XST 能夠創(chuàng)建一個宏,并進行邏輯的優(yōu)化??梢赃x擇【Yes】、【No】和【Force】
          中的任何一種,默認為【Yes】。

          【Mux Style】:多路復用實現(xiàn)類型。該參數(shù)用于胃宏生成器選擇實現(xiàn)和推論多路復用/ 選擇器的宏類型。可以選擇【Auto】、【MUXF】和【MUXCY】中的任何一種,默認為【Auto】。

          【Decoder Extraction】:譯碼器擴展。該參數(shù)用于使能和禁止譯碼器宏接口,默認為允許使用該接口。

          【Priority Encoder Extraction】:優(yōu)先級譯碼器擴展。該參數(shù)用于指定是否使用帶有優(yōu)先級的編碼器宏單元。

          【Shift Register Extraction】:移位寄存器擴展。該參數(shù)僅對FPGA 有效,用于指定是否使用移位寄存器宏單元。默認為使能。

          【Logical Shifter Extraction】:邏輯移位寄存器擴展。該參數(shù)僅對FPGA 有效,用于指定是否使用邏輯移位寄存器宏單元。默認為使能。

          【XOR Collapsing】:異或邏輯合并方式。該參數(shù)僅對FPGA 有效,用于指定是否將級聯(lián)的異或邏輯單元合并成一個大的異或宏邏輯結構。默認為使能。

          【Resource Sharing】:資源共享。該參數(shù)用于指定在XST 綜合時,是否允許復用一些運算處理模塊,如加法器、減法器、加/ 減法器和乘法器。默認為使能。如果綜合工具的選擇是以速度為優(yōu)先原則的,那么就不考慮資源共享。

          【Multiplier Style】:乘法器實現(xiàn)類型。該參數(shù)僅對FPGA 有效,用于指定宏生成器使用乘法器宏單元的方式。選項有【Auto】、【Block】、【LUT】和【Pipe_LUT】。默認為【Auto】。選擇的乘法器實現(xiàn)類型和所選擇的器件有關。

          2) 賽靈思特殊選項

          賽靈思特殊選項用于將用戶邏輯適配到賽靈思芯片的特殊結構中,不僅能節(jié)省資源,還能提高設計的工作頻率,其配置界面如圖5-6 所示,包括10 個配置選項,具體如下所列。

          圖5-6 賽靈思指定的選項

          【Add I/O Buffers】:插入I/O 緩沖器。該參數(shù)用于控制對所綜合的模塊是否自動插入I/O 緩沖器。默認為自動插入。

          【Max Fanout】:最大扇出數(shù)。該參數(shù)用于指定信號和網(wǎng)線的最大扇出數(shù)。這里扇出數(shù)的選擇與設計的性能有直接的關系,需要用戶合理選擇。

          【Register Duplication】:寄存器復制。該參數(shù)用于控制是否允許寄存器的復制。對于高扇出和時序不能滿足要求的寄存器進行復制,可以減少緩沖器輸出的數(shù)目以及邏輯級數(shù),改變時序的某些特性,提高設計的工作頻率。默認為允許寄存器復制。

          【Equivalent Register Removal】:等效寄存器刪除。該參數(shù)用于指定是否把寄存器傳輸級功能等效的寄存器刪除,這樣可以減少寄存器資源的使用。如果某個寄存器是用賽靈思的硬件原語指定的,那么就不會被刪除。默認為使能。

          【Register Balancing】:寄存器配平。該參數(shù)僅對FPGA 有效,用于指定是否允許平衡寄存器。可選項有【No】、【Yes】、【Forward】和【Backward】。采用寄存器配平技術,可以改善某些設計的時序條件。其中【Forward】
          為前移寄存器配平,【Backward】為后移寄存器配平。采用寄存器配平后,所用到的寄存器數(shù)就會相應地增減。默認為寄存器不配平。

          【Move First Flip-Flop Stage】:移動前級寄存器。該參數(shù)僅對FPGA 有效,用于控制在進行寄存器配平時,是否允許移動前級寄存器。如果【Register Balancing】的設置為【No】,那么該參數(shù)的設置無效。

          【Move Last Flip-Flop Stage】:移動后級寄存器。該參數(shù)僅對FPGA 有效,用于控制在進行寄存器配平時,是否允許移動后級寄存器。如果【Register Balancing】的設置為【No】,那么該參數(shù)的設置無效。

          【Pack I/O Registers into IOBs】:I/O 寄存器置于輸入輸出塊。該參數(shù)僅對FPGA 有效,用于控制是否將邏輯設計中的寄存器用IOB 內部寄存器實現(xiàn)。在賽靈思系列FPGA 的IOB 中分別有輸入和輸出寄存器。如果將設計中的第一級寄存器或最后一級寄存器用IOB 內部寄存器實現(xiàn),那么就可以縮短IO 引腳到寄存器之間的路徑,這通常可以縮短大約1~2ns 的傳輸時延。默認為【Auto】。

          【Slice Packing】:優(yōu)化Slice 結構。該參數(shù)僅對FPGA 有效,用于控制是否將關鍵路徑的查找表邏輯盡量配置在同一個Slice 或者CLB 模塊中,由此來縮短LUT 之間的布線。這一功能對于提高設計的工作頻率、改善時序特性是非常有用的。 默認為允許優(yōu)化Slice 結構。

          【Optimize Instantiated Primitives】:優(yōu)化已例化的原語。該參數(shù)控制是否需要優(yōu)化在HDL 代碼中已例化的原語。默認為不優(yōu)化。



          關鍵詞: FPGA 賽靈思

          評論


          相關推薦

          技術專區(qū)

          關閉