【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 代碼中已例化的原語。默認為不優化。
評論
查看更多