Actel、Altera、Lattice Semiconductor和Xilinx是目前業界最主要的四大FPGA供應商,為了幫助中國的應用開發工程師更深入地了解FPGA的具體設計訣竅,我們特別邀請到了Altera系統應用工程部總監Greg Steinke、Xilinx綜合方法經理Frederic Rivoallon、Xilinx高級技術市場工程師Philippe Garrault、Xilinx產品應用工程部高級經理Chris Stinson、Xilinx IP解決方案工程部總監Mike Frasier、Lattice Semiconductor應用工程部總監Bertrand Leigh和軟件產品規劃經理Mike Kendrick、Actel公司硅產品市場總監Martin Mason和應用高級經理Jonathan Alexander為大家傳經授道。
他們將就一系列大家非常關心的關鍵設計問題發表他們的獨到見解,包括:什么是目前FPGA應用工程師面對的最主要設計問題?如何解決?當開始一個新的FPGA設計時,你們會推薦客戶采用什么樣的流程?對于I/O信號分布的處理,你們有什么建議可以提供給客戶?如果你的客戶準備移植到另外一個FPGA、ASIC和結構化ASIC之間進行抉擇?結構化ASIC或ASIC,你會建議你的客戶如何做?
問:目前FPGA應用工程師面對的最主要設計問題是什么?如何解決?Actel:當用戶通過TAP接口進行JTAG測試或者編程時我們發現了許多問題。與目前最先進應用的邏輯復雜度和速度相比,TAP接口和指令集是非常簡單和慢速的。這導致用戶想當然地認為TAP接口處的信號完整性沒有問題,甚至設計中其他位置的其他信號也適當地進行了端接。雖然數據和時鐘速率很慢,但是其邊沿速率和其他任何信號一樣快,因此必須進行適當的端接匹配。此外,我們發現很多用戶在規劃減小SSO/SSN問題。
Altera:功耗、性能優化、調試、接口復雜性、信號完整性和系統復雜度是FPGA開發工程師目前面臨的最主要設計問題。
1. 功耗:Quartus II軟件的PowerPlay功率分析和優化技術與Stratix III可編程功率技術可以幫助用戶在設計過程中顯著減小功耗。
2. 性能優化:關注點集中在如何實現FMAX,以及系統級性能(如通過PCI Express接口實現足夠的吞吐量)。Quartus II軟件提供精確時序預報的TimeQuest時序分析器允許用戶定制系統需求的時序約束。
3. 調試:傳統上,工程師會使用一臺邏輯分析儀分析待測器件的引腳。不過,由于今天FPGA的高容量,很多元件可以集成到一個器件中,但邏輯分析儀不能檢測到設計內部的信號。SignalTap II邏輯分析儀是一個系統級調試工具,它可在一個系統級可編程芯片(SoPC)上捕獲和顯示實時的信號行為,從而為設計師提供了觀察系統設計中硬件和軟件之間交互的功能。
4. 接口復雜性:為了實現更高的性能,系統使用的接口正變得更加復雜(如DDRII SDRAM接口比以前的SRAM接口要復雜)。Altera提供多種IP核,它們可幫助設計師很輕松實現所需的接口。
5. 信號完整性:Altera提供了多種模型(包括HSPICE和IBIS)以及內置片內端接,這些有助于確保信號正確地從A傳輸到B。
6. 系統復雜度:設計者今天面臨的挑戰是,盡管開發的系統復雜度越來越大,但分配的開發時間不會比先前開發較低復雜度項目的少。Altera提供簡化系統通用部分設計開發的IP核、系統驗證和板級布局工具,從而允許用戶集中全力開發差異化性能。
Lattice:1. 滿足硬件時序要求。對規格的高級別評估,并判斷它是否能滿足系統的要求。例如,如果系統要求是1.2Gbps I/O,但是FPGA I/O只能支持到800Mbps,那么這種FPGA將不能滿足系統速度的要求。
2. FPGA設計時序收斂。進行足夠的靜態時序分析和時序仿真以確保HDL設計滿足硬件的時序要求。擁有已經過實踐驗證的硬件模塊,例如DDR存儲器I/O接口和串行/解串器(SERDES)/PCS模塊,將有助于FPGA設計師更輕松地滿足時序要求和減輕對軟件工具的依賴。我們低成本的 LatticeECP2/M FPGA系列和高端的LatticeSC FPGA系列可以提供這些硬件模塊。
3. SERDES在系統中的實現:雖然概念上比較簡單,但是硬件實現要求很多細節正確無誤,如信號端接、參考時鐘的生成、鎖相環(PLL)的使用、背板信號完整性和位錯誤率的評估。Lattice提供預定義的針對不同SERDES應用的SERDES示范平臺,如PCI Express和通用8/10位SERDES完整收發硬件演示平臺。
4. 功率管理:對所有FPGA電源規劃功率預算。通常,2到3個FPGA電源(VCC、VCCAUX和VCCIO)是關鍵的。需要對器件初始上電和運行期間的不同溫度進行精確估計。
5. 配置需求:這個關鍵步驟保證上電后FPGA將從外部引導閃存進行正確配置。
問:當用戶開始一個新的FPGA設計時,你們會推薦用戶采用什么樣的設計流程?
Actel:邏輯設計傳統上是利用硬件描述語言(如HDL)或圖形化的原理圖來實現的。對邏輯設計的描述越抽象,就需要更智能化的工具來自動進行推斷、編譯和實現這個設計。通過融合內部開發工具和業內領先的OEM和第三方工具,Actel支持所有這些不同的設計風格和工具流程。
另一個設計考慮是應該從頭開始創建你的設計,還是利用現有的私有或者商業化IP。高質量IP內核可使得產品能夠更快地推向市場。Actel在開發和支持內部開發的及第三方IP內核方面進行了很大的投資,我們的Libero IDE(集成設計環境)具有很多可幫助設計師高效查找和使用IP的功能。Actel也開發了已經過實踐驗證的系統級參考設計、HDL代碼、軟件驅動器、應用程序、有時甚至還包括PCB設計文件,以為設計師開展其定制工作提供一個起點。
Xilinx:客戶可以使用第三方工具,如用XST、Precision或Synplify進行綜合,然后使用Xilinx ISE 9.1i進行布局和布線。對于仿真,客戶可以使用ModelSim、NC Sim或VCS。他們始終應該輸入用于綜合的時序約束。
問:關于I/O信號分配的處理,你們有什么建議可以提供給客戶?應采用什么樣的順序對各種信號類型進行分配?(即從VREF開始,然后高速I/O等)
Actel:為了回答這個問題,讓我們假設用戶正在使用Actel基于閃存的ProASIC3E FPGA。它含有8個專用I/O塊,每個塊能夠被分成5個微型塊。這些專用I/O塊共享電源電壓(輸入VMV、輸出VCCI、GNDQ)。微型塊是在一個專用I/O塊內使用一個共同電壓參考VREF的I/O用戶定義組。只用共享電源電壓和電壓參考的I/O可以置于同一個專用塊內。
首先,安排專用I/O塊。Actel的I/O Bank Assigner工具將為該設計自動配置I/O塊。如果用戶想定制該I/O塊的配置,他可以很容易地利用PinEditor GUI或PDC約束腳本完成這一配置。
在安排I/O塊時,牢記SSO問題是很重要的。切換總線應該盡可能多地分布在整個裸片上,并且遠離PLL的電源管腳及異步輸入/輸出管腳。在安排好I/O塊之后,用戶可以開始分配I/O信號。利用GUI拖拉I/O并將它放置到合適的塊,或者在PDC約束文件中進行分配。差分I/O需要相鄰的N/P對,因此建議先分配差分I/O。然后,分配電壓參考I/O和相關的VREF管腳,它們可以從任何綁定的I/O中進行配置。最后,對所有其它單端I/O進行分配。
Altera:雖然靈活的管腳分配對FPGA很重要,但某種程度的專用化也可通過減少管腳電容改善信號的完整性和系統的性能。例如,用于高速收發(如PCI Express)的管腳不能用作通用I/O。Altera不要求按照某一順序對管腳進行分配,但管腳分配要求匹配管腳的功能。客戶可以在開始設計前使用 Quartus II軟件進行一次管腳檢查,從而允許同時進行板和芯片的設計。
Lattice:FPGA I/O結構比具有固定I/O管腳的標準產品復雜。FPGA需要正確的I/O布局來確保:分配的多個I/O在塊內能夠共存,沒有沖突;它們能夠以要求的I/O速度運行而沒有噪聲或信號完整性問題。
I/O分配應從專用I/O最先開始,如DDR2存儲器接口、SERDES接口和PCI接口等。這將決定關鍵的管腳分配,然后再在剩余管腳上分配通用I/O管腳,如LVCMOS33、LVCMOS25和LVTTL等。
此外,要特別注意特殊的引腳,如VREF、高速CLK輸入和PLL/DLL輸入。用戶可以指定使用哪個器件引腳,也可以讓工具選擇需要的引腳。在后一種情況下,用戶需要對這些引腳的分配進行備注,從而使得以后的PAR運行時繼續使用相同的配置。ispLEVER提供兩個基本特性以支持該功能。
Design Planner工具支持用戶生成符合復雜I/O塊規則的I/O布局約束。從封裝的角度來看,用戶可以直觀地過濾具有某一特定性能的管腳(如主時鐘輸入引腳和差分信號引腳對),然后將設計信號分配到過濾后的引腳上。I/O Assistant Flow允許實際的PAR引擎和用戶提供的I/O布局約束僅用在該設計的I/O環上,以生成一個合理的I/O布局。這可以在設計過程的較早階段完成,從而實現早期板級設計。
Xilinx:FPGA I/O分配常常必須調整多次才能成功,因為它有時候會和以下約束發生沖突:1. PCB約束,如冗余通道、板空間擁塞、信號完整性效應(長度匹配、最大衰減、最大過孔等);2. FPGA架構約束(I/O規則、SO、時鐘規則等);3. 客戶設計約束(時序、器件內邏輯源點/終點的位置等)。
每個FPGA架構/客戶設計都有其獨特的約束環境。提出通用的規則不是件容易的事。通常,你先要確定約束最強的FPGA管腳。管腳分配的一個典型順序可以是:1. 全局/局部時鐘輸入管腳和FPGA配置管腳;2. MGT(SERDES)、高速單端存儲器/CPU接口、差分信號、由于特殊的客戶設計(DCI參考電壓和輸入參考電壓)而不能用作用戶I/O的多功能管腳;3. 其它用于內部定時或PCB布局的需要在FPGA上具有鄰近管腳位置的管腳組(總線);4. 最后,慢信號(如復位信號)。
可以使用多種方法進行I/O分配:ISE(PACE、Floorplan Editor)、第三方供應商(Mentor Graphics I/O Designer)、PlanAhead,或甚至Excel電子數據表。
問:在處理不兼容的I/O標準、不同電壓參考和其他有關塊及區域兼容性問題時,你們建議用戶采用什么方法去解決?
Altera:我們的目標是使客戶盡可能方便地處理這個問題。為了達到這個目的,我們的FPGA管腳能夠支持工作在不同電壓的多個I/O標準(例如,大多數器件上采用 2.5V供電的管腳仍然可以接收3.3V的輸入)。此外,大多數管腳可以支持熱插拔,這使得我們的FPGA能夠作為插入一個帶電系統的板上接口。即便當系統規范沒有熱插拔要求時,這一特性仍然很重要。采用多個供電電壓的系統可能采用不同的上電順序,因此Altera設計的FPGA支持系統按照任意順序對內核、各種I/O塊以及信號驅動器上電。Altera FPGA的這一特性使得設計師可以輕松地將它與其它需要按照一定順序上電的芯片設計在一起,或至少減少了一個需要擔心的事情。
問:如果你的客戶準備移植到另外一個FPGA、結構化ASIC或ASIC,你會建議你的客戶如何做?
Actel:Actel已經為多代基于閃存的FPGA器件(從ProASIC到ProASIC Plus到ProASIC3)提供了獨一無二的管腳兼容移植功能。一般來說,只有當客戶必須采用更新的技術進行設計時才會考慮移植。此時,設計師可以先采用適合啟動設計/開發的較低風險成熟器件(或技術)。這也為客戶提供了一條到更低成本解決方案的簡單且預先確定好的移植路徑,該解決方案只需要最少的系統和設計修改(通常只需要重新綜合、布局和重新進行時序設計)就可進行批量生產。這一成本移植策略允許客戶避免移植到ASIC/標準單元時所冒的高風險和高成本。
Altera:如果從一個FPGA轉移到另一個相同系列的FPGA,我們提供管腳移植。如果從一個系列轉移到另外一個系列,通常需要開發出一塊衍生板,因為管腳排列是不同的。通過采用MegaFunctions(如lpm_mult),設計師可以確保最大限度地復制專用模塊(如DSP 模塊)的性能。
我們推薦使用HardCopy II結構化ASIC。在Quartus II軟件中選擇HardCopy選項,可以很輕松地移植到結構化ASIC。例如,通過確保所使用的管腳從FPGA映射到HardCopy II器件。另外一個關鍵點是,HardCopy II器件上的模塊(如存儲器、LVDS接口或PLL等)與FPGA是相同的,這可使得移植變得非常輕松。
將邏輯從FPGA移植到ASIC是相對比較簡單的。不過,把其它元件從FPGA移植到ASIC中就相對比較困難,因為PLL或存儲器模塊可能工作起來不太一樣。由于我們不知道ASIC模塊是怎樣工作的,因此在此方面提出建議已超出了我們的能力范圍。
Xilinx:考慮到結構化ASIC或ASIC轉換時必須在再驗證和測試向量生成方面花費很長的時間,因此降低FPGA設計成本的最好替代方法是使用Xilinx的 EasyPath解決方案。它利用同樣的FPGA芯片,但是使用不同的測試方法來創建一個提高良率和降低成本的面向設計的測試方法學。在這一移植過程中,沒有必要做特殊準備或者避免使用任何FPGA功能,因為這些功能都可以在EasyPath實現中獲得。
對于采用更大容量Xilinx FPGA做ASIC原型設計的用戶而言,簡化這一轉換過程的常用方法是將與器件相關的功能(如存儲器)保留在它們各自獨特的分層模塊中。這樣,它們以后就可以被具有相同功能的ASIC版本所取代。當然,這個方法的缺點是用戶放棄了充分使用嵌入式硬模塊的能力(如復雜RAM塊、DSP/乘法器模塊、數字時鐘管理器、以太網MAC和PCI Express端點模塊),除非在ASIC中創建有相似的定制功能。
問:當將FPGA器件整合到PCB上時,關于SSO/SSN問題你們會給客戶什么建議?
Actel:由于客戶需要更全面地了解和解釋SSN特性,因此我們非常重視這個問題。通過測試、描述和與客戶一起工作的經驗,我們發現造成SSN問題的主要因素是封裝的選擇、I/O布局和輸出時序。在PCB上進行適當的去耦、端接和布局是非常重要的。不過,最好是在問題的源頭完全避免SSN。
QFP封裝由于其封裝引腳和邦定走線帶來的電感越來越大,實際上不如市面上各種BGA封裝。因此,我們針對QFP封裝的SSN建議更為嚴厲。為了防止QFP封裝帶來的SSN問題,建議避免在裸片上將較大的SSO組安排在相近位置。不過,如果這是不可避免的,用戶應該確保靈敏的“安靜”I/O位于VCCI或者GND附近。或者,用戶可以利用相對不活躍的輸出將SSO總線與靈敏的I/O隔開。如果I/O布局已經被鎖定而且客戶無法滿足我們的建議,他們可以在總線內創建小的時序組。這里,I/O以大于1ns的間序交錯排列。如果做到了這點,總線輸出將不再同步切換。
問:你們建議如何處理全局和本地/區域時鐘?
Actel:我們基于閃存的ProASIC3E FPGA系列提供18個專用全局時鐘,這意味著大部分設計不會受到時鐘的限制。對于區域時鐘,這些全局時鐘中的12個被局部化到該器件的四分之一區域。那么,FPGA設計師應該如何處理跨越用戶設計區域和IP模塊的公共全局時鐘呢?通常,客戶必須在更低一級的模塊中例示一個全局時鐘,將其帶到一個輸出端口,然后再分發到設計的其他部分。借助Actel的Libero IDE 7.3,客戶可以獲得基于模塊的設計方法,并補救時鐘分配問題,客戶只需要例示一個全局時鐘占位符(CLKINT)。然后,全局緩存可以在設計的頂層中實現。這使得時鐘分配和分發更加直觀,并簡化了在多個設計中模塊的重利用。
問:在IP模塊集成方面,你看到了哪些問題?你能給工程師什么購買IP的建議?
Actel:IP產生了邊界,限制了自動化工具能夠優化的東西。另一方面,讓IP邊界可辨識對調試是非常有幫助的。對于一個復雜度越來越大的設計流程,IP模塊是一個用來限制改變的自然邊界。
現代FPGA除了邏輯門之外還有很多固定資源。通常多個IP模塊共享這些資源。很少FPGA供應商的工具可以最優化處理這一資源共享問題,但Actel Libero在設計時就考慮到了這一問題。其中一個例子是在Actel Fusion混合信號FPGA上多個IP模塊間時鐘和內存資源的高效共享。
在選擇IP時,應該檢查其功能和配置以確定它是否能滿足你的設計要求。你應該觀察該IP是否是針對你的目標FPGA而設計的,以及其尺寸和性能是否高效。好的IP還配有完整的測試向量和高質量的文檔。最后,在你答應使用前檢測一下該IP核的來歷和供應商。
Xilinx:在集成IP模塊時的確有一些小挑戰,這主要是由于IP供應商實際交付的IP模塊與那些可交付使用的IP模塊之間存在細微差別而引起的。集成IP模塊的一個較大的挑戰是確保客戶設計仍然能夠滿足時序和資源要求。我們提供給購買IP的工程師的最重要建議是,確定IP供應商是如何檢測和驗證該IP的,也就是確認質量和易用性。
問:什么樣的時序問題正在引起最大的麻煩?你們建議如何處理?
Actel:最小延時和保持時間分析似乎經常被忽視。外部保持時間和跨時鐘域路徑(而不是與時鐘歪斜時序相對的簡單的寄存器到寄存器數據路徑)會引起大部分導致硬件失敗的時序問題。首先,用戶應該進行時序仿真和靜態時序分析。仿真提供了功能驗證,靜態分析提供最好的時序覆蓋。為了進行精確的外部保持時間計算,時序應該在最好的工作條件下(包括最高電壓、最低溫度和最快速度)從發送端、接收端和PCB提取。Actel SmartTime時序分析儀允許用戶輸入外部輸入和輸出延時,然后進行所有這些計算。
我們看到的與跨時鐘域路徑相關的主要問題是時序驗證不夠充分。當設計中存在跨時鐘域路徑時,靜態時序分析是非常關鍵的。但是,一些靜態時序分析工具不能自動進行這一分析。為了進行這一分析,用戶必須定義每個時鐘的頻率,在最好和最壞的工作條件下進行分析,以及對于每一種工作條件,估計不同時鐘之間最大和最小時序偏移。
Lattice:下列三大時序問題正在引起最大的麻煩:高速時鐘域轉移、競爭條件和保持時間不足。隨著工作頻率提高,時序窗口正變得越來越小。仔細的時序分析和強大的軟件工具可以幫助工程師確定問題區域并解決這個問題。
由于Lattice FPGA交換邏輯的極高性能,保持時間不足的可能性已經開始明顯增加。保持時間不足通常發生在時鐘偏移大于數據時延的時候。即使Lattice FPGA的主時鐘走線具有非常小的偏移,但由于數據路由太快以致于這些不足情況是可能發生的。Lattice ispLEVER設計工具提供自動校正保持時間不足的功能。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603044 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121321 -
Altera
+關注
關注
37文章
782瀏覽量
153921
原文標題:四大FPGA供應商專家談FPGA設計訣竅
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論