成功的關鍵在于靈活性,靈活性的關鍵是利用目標獨立性的設計方法,讓自己在將來的建設性變更中有選擇的余地。 一般而言,某一特定FPGA器件選擇不僅為它的邏輯功能,而且還因為FPGA一般能夠解決現實中小批量的生產和后期周期設計變更。 但是,在產品需求或市場動態變化時可以迅速重新評價這種選擇。有時可能有必要切換到一個完全不同的FPGA系列,例如能夠提供規模優勢或卓越的性能的FPGA系列。有時ASIC的是一個更好的選擇,因為它適合于大批量定制。 成功的關鍵在于靈活性,靈活性的關鍵是利用目標獨立性的設計方法。如若有一種設計方法類似ASIC或結構化ASIC允許適宜移植,使得從一個FPGA架構遷移到另一個FPGA架構變得更加容易。 利用目標獨立性的設計方法,讓自己在將來的建設性變更中有選擇的余地。 并非所有的制約因素都是平等的 確定時間限制幾乎跟RTL級本身的描述設計一樣重要,而且代碼一樣很復雜。沒有比被供應商專有的語法限制更令人沮喪的了,特別是存在同行業公認的方法。專有的約束語法可能是供應商的戰略,以“鎖定”客戶,也可以是用于嚴格的技術原因。在這兩種情況下,如果該項目要求時,轉移到ASIC的努力變得復雜。 在ASIC世界里,事實上的標準時間是Synopsys公司的設計約束( SDC )格式。領先的FPGA綜合工具通過這個語法促進從ASIC設計到FPGA實現的移植(或者用于生產或原型),或相反,從FPGA到ASIC的移植。 轉換SDC約束語法不僅僅是在文本文件里行使一個查找/替換,它可以繁瑣本身。某一專有語法缺乏明確的翻譯往往會帶來很多限制。專有語法同樣難以往相反的方向翻譯。 還值得指出,當一個FPGA供應商使用自己的語言進行時間約束,此語法最終必須聯合布局布線。 FPGA廠商有那部分流程,但沒有辦法解決它。但是有一個先進的合成工具,可以把任何引進或產生SDC文件譯成供應商的格式,并將其布局布線。通過這種方式,用戶可以在行業標準前面附上合成流程管理的文件格式。 這種方法用在ASIC和FPGA之間的移植非常行之有效,因為FPGA合成流程基本上是借鑒ASIC世界的約束格式。 一般思考,在FPGA的平臺,許多設計都是結合獨立的RTL技術 (Verilog , SystemVerilog或VHDL )和分區實例化技術來實現的。盡管不建議采用后一種辦法,并最好保持在最低限度使用。 設計師有一個選擇:要么具體實例某些分區技術,要么用合成工具在通用編碼準則的基礎上自動推斷出該功能。分區技術是指基元成分,如多路復用器,緩沖器,存儲器,乘法器,或DSP模塊。要獲得這些基元取決于FPGA。圖1顯示傳統的FPGA架構,包括塊標準邏輯可配置邏輯、芯片存儲器和DSP功能的嵌入式區,時鐘管理電路。 圖1 標準FPGA架構 實例的基元成分允許用戶能夠控制并實現自己的設計,但前提是需要遵循目標架構的規則。例如,實例化一個賽靈思特定DSP的分區意味著不同的實例來重新編碼該部分的HDL文件,并詳細了解該架構是否必要轉移到一個不同的平臺等細節。 推薦使用的另一種辦法是,寫一般的RTL并讓合成工具推斷出適當的FPGA實現。如果有必要(或可取)遷移到一個新的目標架構,在RTL一般保持不變,而合成工具會處理新的實現。圖2中的代碼描述一個簡單的乘數累加器通過合成工具推斷到目標FPGA器件中的專門DSP模塊。 圖2 RTL通過合成工具推斷到DSP 通用RTL編碼這一概念并不是一個新問題。事實上,這種方法普遍受到推崇,因為它使得從一個FPGA系列移植到另一系列得到了簡化,例如從一個賽靈思系列到一個Altera 系列。 重要的是,通用RTL編碼方法也同樣有利于FPGA和ASIC之間的移植。ASIC的合成流程可以解析通用的RTL,這意味著RTL變化需要不是很大時可以遵守通用編碼準則。 包裝帶移植到專門職能 但并非所有功能都可以在通用的RTL得到定義 。數字時鐘管理是一個明顯的例外。設計中的成倍增加時鐘速率或改變時鐘階段的任務最好通過由DLLs或PLLs (鎖相環或延遲鎖定回路)制成的FPGA芯片。這樣做通常是用實例化技術而不是通用RTL 。 專門的I / O單元是只實例化元件的另一個例子。這些IP模塊是通過設計高層對其中一個文件做任何修改,并根據包裝和編譯指示選擇適當的代碼,以便達到最好的管理。如圖3所示,該包裝模塊可用作其余RTL專門資源的接口。這樣,從賽靈思的DCM轉換到Altera的PLL需要特定的合成命令水平。 圖3包裝模塊使用環繞時鐘管理電路 另一方面,內存在整個設計中最容易,不僅僅因為它在最高層。通過在特定技術內存實例中增加一個通用包裝模塊,然后將這些特定技術內存實例保存在一個單獨的文件中,設計者只需要兩個版本的內存檔案——各自的技術。在編譯的時候,只有與技術指標相匹配的內存文件才被使用,該設計進行的是無縫編譯。 需注意的是,通用包裝模塊需要知道具體的內存大小,而不是傳統的設想FPGA大小。例如,要一個設計模塊,需要有一個512 × 16個單口RAM 。進一步試想設計師希望實現一個內存為512 × 16 1PS RAM的ASIC和一個18 kb的RAM的FPGA 。RTL模塊設計需要調用一個512 × 16單口RAM的內存實例。在ASIC特定內存文件,這是匹配到ASIC內存匯編的具體規模。在FPGA特定內存文件,一般情況接到FPGA特定RAM塊。只有包含正確的內存文件,設計的每個技術才能正確編譯。 誠然,必須為新的目標作準備。但該方法只是概括,使我們能夠為多個目標設計保持HDL源。 這里描述的邏輯功能被認為是“基礎”IP ,因為其中許多被用來創造一個設計。使用更大的IP模式,如處理器、接口控制器或總線邏輯是基于不同考慮的不同問題... 選擇最易移植的基礎成分 FPGA和ASIC的能力不斷增加,且設計規模也隨著越來越一體化和功能的增多而增長。需求越來越頻繁的受到購買力的阻滯。為討論本設計的可移植性,這些IP模塊可分為三類: 專有格式中的FPGA IP由FPGA廠商提供:這一類根本就不可移植,還包括了類似MicroBlaze和Nios處理器。采用專有IP取代專有職能需要做出很大的努力,使得設計技術不斷變化,。例如,更換處理器意味著在該處理器寫入的所有軟件也會隨之改變。 RTL格式中的開放市場IP:這種類型可以針對多個技術平臺。此類別設計根本不需要修改,但在第二次使用時IP業務許可證可能需要修改。例如,一個RTL塊可以在一種新技術中重新合成。 帶有行業標準接口的IP,可替換類似內核:這一類包括的IP如PCI Express ,其有行業定義的接口稱為PIPE( PCI Express的PHY接口)之間的物理和控制邏輯。如果設計人員的RTL以PIPE為接口,那么就可以移植。例如,如果在FPGA中使用兼容PIPE的FPGA收發器元素,那么相當于兼容PIPE收發器可以獲得授權分別用于ASIC設計,反之亦然。其它可移植IP的例子和各自的接口標準包括DDR (DFI)、USB接口( UTMI )、SATA接口( SAPIS )和10Gb的以太網( XGMII ) 。 結論 可移植設計可能是處于熱門的FPGA器件進入市場無堅不摧的標準產品的關鍵轉折點。利用SDC約束、推斷基元,包裝機周圍的特殊技術功能模塊,以及開放市場的IP ,設計人員可以獲得大量的FPGA和ASIC技術。 這樣,才能夠使他們的產品具有足夠的靈活性,以適應成本效益和利潤最大化的執行,無論需求如何變化。圖4總結了簡化結構的概念。今天的工程師們可以通過仔細規劃未來的可移植性為家庭經營設計奠定基礎。 圖4 目標獨立方法 |