FPGA實(shí)戰開(kāi)發(fā)技巧(8)
5.4 大規模設計帶來(lái)的綜合和布線(xiàn)問(wèn)題
FPGA 設計的時(shí)序性能是由物理器件、用戶(hù)代碼設計以及EDA 軟件共同決定的,忽略了任何一方面的因素,都會(huì )對時(shí)序性能有很大的影響。本節主要給出大規模設計中,賽靈思物理器件和EDA 軟件的最優(yōu)使用方案。
本文引用地址:http://dyxdggzs.com/article/201710/365612.htm1)IO 約束技巧
優(yōu)秀設計必須要考慮IO 約束的技巧。對于賽靈思器件來(lái)講,進(jìn)位鏈是垂直分布的、邏輯排列塊之間也有水平方向上三態(tài)緩沖線(xiàn)的直接連接、且硬核單元基本都是按列分布( 在水平方向就具備最短路徑),因此最優(yōu)的方案為:將用于控制信號的I/O 置于器件的頂部或底部,且垂直布置;數據總線(xiàn)的I/O 置于器件的左部和右部,且水平布置,如圖5-16 所示。
圖5-16 賽靈思器件的最佳IO布局示意圖
這種IO 分配方式充分利用了Xilinx FPGA 芯片架構的特點(diǎn),如進(jìn)位鏈排列方式以及塊RAM、硬核乘法器位置。進(jìn)位鏈的結構如圖5-17 所示。能解決多位寬加法、乘法從最低位向最高位的進(jìn)位延時(shí)問(wèn)題;塊RAM 和硬核乘法器可節約大量的邏輯資源且保證時(shí)序,二者在FPGA 芯片中都是自上而下成條狀分布,因此數據流水平、控制流垂直可最大限度地利用芯片底層架構。當然,在實(shí)際系統設計中,可能無(wú)法完全做到上述要求,但還是應該盡可能地將高速率、多位寬的信號布置在芯片左右兩側。
圖5-17 賽靈思器件的進(jìn)位鏈結構示意圖
2)ISE 的實(shí)現工具
ISE 中集成的實(shí)現工具具備不同的努力程度(Effort Level),當然使用最高級別的,可以提高時(shí)序性能,而不必采取其它措施( 如施加更高級的時(shí)序約束,使用高級工具或者更改代碼等),但需要花費很長(cháng)的計算時(shí)間。為此,賽靈思推薦的最佳流程如圖5-18 所示。
圖5-18 賽靈思實(shí)現工具的最佳使用策略
在第一遍實(shí)現時(shí),使用全局時(shí)序約束和缺省的實(shí)現參數選項,如果不能滿(mǎn)足時(shí)序要求,則可嘗試以下方法:
(1) 嘗試修改代碼,如使用合適的代碼風(fēng)格,增加流水線(xiàn)等;
(2) 修改綜合參數選項,如OpTImizaTIon Effort,Use Synthesis Constraints File,Keep Hierarchy,Register
DuplicaTIon,Register Balancing 等;
(3) 增加實(shí)現工具的努力程度;
(4) 在綜合和實(shí)現時(shí)采用指定路徑時(shí)序約束的方法。
實(shí)現工具分為映射(MAP) 和布局布線(xiàn)(PAR) 兩部分,和PAR 一樣,也可使用Map-TIming 參數選項針對關(guān)鍵路徑進(jìn)行約束。如:參數“Timing-Driven Packing and Placement”給關(guān)鍵路徑以?xún)?yōu)先時(shí)序約束的權利;用戶(hù)約束通過(guò)翻譯(Translate) 過(guò)程從User Constraints File (UCF ) 中傳遞到設計中。
評論