FPGA是英文Field-Programmable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。
【FPGA工作原理】
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。FPGA的基本特點主要有:
1)采用FPGA設計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3)FPGA內部有豐富的觸發(fā)器和I/O引腳。
4)FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。
5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。
FPGA是由存放在片內RAM中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。
加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內部邏輯關系消失,因此,F(xiàn)PGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。
【FPGA配置模式】
FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。
如何實現(xiàn)快速的時序收斂、降低功耗和成本、優(yōu)化時鐘管理并降低FPGA與PCB并行設計的復雜性等問題,一直是采用FPGA的系統(tǒng)設計工程師需要考慮的關鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設計工程師在從這些優(yōu)異性能獲益的同時,不得不面對由于FPGA前所未有的性能和能力水平而帶來的新的設計挑戰(zhàn)。
例如,領先FPGA廠商Xilinx最近推出的Virtex-5系列采用65nm工藝,可提供高達33萬個邏輯單元、1,200個I/O和大量硬IP塊。超大容量和密度使復雜的布線變得更加不可預測,由此帶來更嚴重的時序收斂問題。此外,針對不同應用而集成的更多數(shù)量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時鐘管理和電壓分配問題變得更加困難。
幸運地是,F(xiàn)PGA廠商、EDA工具供應商正在通力合作解決65nm FPGA獨特的設計挑戰(zhàn)。不久以前,Synplicity與Xilinx宣布成立超大容量時序收斂聯(lián)合工作小組,旨在最大程度幫助地系統(tǒng)設計工程師以更快、更高效的方式應用65nm FPGA器件。設計軟件供應商Magma推出的綜合工具Blast FPGA能幫助建立優(yōu)化的布局,加快時序的收斂。
最近FPGA的配置方式已經(jīng)多元化!
【FPGA主要生產(chǎn)廠商介紹】
1、Altera
2、Xilinx
3、Actel
4、Lattice
其中Altera和Xilinx主要生產(chǎn)一般用途FPGA,其主要產(chǎn)品采用RAM工藝。Actel主要提供非易失性FPGA,產(chǎn)品主要基于反熔絲工藝和FLASH工藝。
【FPGA設計的注意事項】
不管你是一名邏輯設計師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關鍵設計問題。不過,你不必獨自面對這些挑戰(zhàn),因為在當前業(yè)內領先的FPGA公司里工作的應用工程師每天都會面對這些問題,而且他們已經(jīng)提出了一些將令你的設計工作變得更輕松的設計指導原則和解決方案。
I/O信號分配
可提供最多的多功能引腳、I/O標準、端接方案和差分對的FPGA在信號分配方面也具有最復雜的設計指導原則。盡管Altera的FPGA器件沒有設計指導原則(因為它實現(xiàn)起來比較容易),但賽靈思的FPGA設計指導原則卻很復雜。但不管是哪一種情況,在為I/O引腳分配信號時,都有一些需要牢記的共同步驟:
1. 使用一個電子數(shù)據(jù)表列出所有計劃的信號分配,以及它們的重要屬性,例如I/O標準、電壓、需要的端接方法和相關的時鐘。
2. 檢查制造商的塊/區(qū)域兼容性準則。
3. 考慮使用第二個電子數(shù)據(jù)表制訂FPGA的布局,以確定哪些管腳是通用的、哪些是專用的、哪些支持差分信號對和全局及局部時鐘、哪些需要參考電壓。
4. 利用以上兩個電子數(shù)據(jù)表的信息和區(qū)域兼容性準則,先分配受限制程度最大的信號到引腳上,最后分配受限制最小的。例如,你可能需要先分配串行總線和時鐘信號,因為它們通常只分配到一些特定引腳。
5. 按照受限制程度重新分配信號總線。在這個階段,可能需要仔細權衡同時開關輸出(SSO)和不兼容I/O標準等設計問題,尤其是當你具有很多個高速輸出或使用了好幾個不同的I/O標準時。如果你的設計需要局部/區(qū)域時鐘,你將可能需要使用高速總線附近的管腳,最好提前記住這個要求,以免最后無法為其安排最合適的引腳。如果某個特定塊所選擇的I/O標準需要參考電壓信號,記住先不要分配這些引腳。差分信號的分配始終要先于單端信號。如果某個FPGA提供了片內端接,那么它也可能適用于其他兼容性規(guī)則。
6. 在合適的地方分配剩余的信號。
在這個階段,考慮寫一個只包含端口分配的HDL文件。然后通過使用供應商提供的工具或使用一個文本編輯器手動創(chuàng)建一個限制文件,為I/O標準和SSO等增加必要的支持信息。準備好這些基本文件后,你可以運行布局布線工具來確認是否忽視了一些準則或者做了一個錯誤的分配。
這將使你在設計的初始階段就和布局工程師一起工作,共同規(guī)劃PCB的走線、冗余規(guī)劃、散熱問題和信號完整性。FPGA工具可能可以在這些方面提供幫助,并協(xié)助你解決這些問題,因此你必須確保了解你的工具包的功能。
你咨詢一位布局專家的時間越晚,你就越有可能需要去處理一些復雜的問題和設計反復,而這些可能可以通過一些前期分析加以避免。一旦你實現(xiàn)了滿意的信號分配,你就要用限制文件鎖定它們。
-------------------
基于CMOS的設計主要消耗三類切率:內部的(短路)、漏電的(靜態(tài)的)以及開關的(電容)。當門電路瞬變時,VDD與地之間短路連接消耗內部功率。漏電功耗是CMOS工藝普遍存在的寄生效應引起的。而開關功耗則是自負載電容,放電造成的。開關功耗與短路功耗合在一起稱為動態(tài)功耗。下面介紹降低靜態(tài)功耗和動態(tài)功耗的設計技巧。
降低靜態(tài)功耗
雖然靜態(tài)電流與動態(tài)電流相比可以忽略不計,然而對電池供電的手持設備就顯得十分重要,在設備通電而不工作時更是如此。靜態(tài)電流的因素眾多,包括處于沒有完全關斷或接通的狀態(tài)下的I/O以及內部晶體管的工作電流、內部連線的電阻、輸入與三態(tài)電驅動器上的拉或下拉電阻。在易失性技術中,保持編程信息也需一定的靜態(tài)功率。抗熔斷是一種非易失性技術,因此信息存儲不消耗靜態(tài)電流。
下面介紹幾種降低靜態(tài)功耗的設計方法:
◇驅動輸入應有充分的電壓電平,因而所有晶體管都是完全通導或關閉的。
◇由于I/O線上的上拉或下拉電阻要消耗一定的電流,因此盡量避免使用這些電阻。
◇少用驅動電阻或雙極晶體管,這些器件需維持一個恒定電流,從而增加了靜態(tài)電流。
◇將時鐘引腳按參數(shù)表推薦條件連接至低電平。懸空的時鐘輸入會大大增加靜態(tài)電流。
◇在將設計劃分為多個器件時,減少器件間I/O的使用。
eX器件LP方式引腳的使用
Actel eX系列設計了特殊的低功率“休眠”模式。在該引腳驅動至高電平800ns后,器件進入極低功率待機模式,待機電流小于100μA。在低功率模式下,所有I/O(除時鐘輸入外)都處于三態(tài),而內核全部斷電。由于內核被斷電,觸發(fā)器中存儲的信息會丟失,在進入工作模式(在引腳驅動至低平200ms后)時,用戶需再次對器件初始化。同樣,用戶也應關閉所有通過CLKA、CLKB以及HCLK輸入的時鐘。然而這些時鐘并不處于三態(tài),時鐘就可進入器件,從而增加功耗,因此在低功率模式下,時鐘輸入必須處于邏輯0或邏輯1。
有時用戶很難阻止時鐘進入器件。在此場合,用戶可使用與CLKA或CLKA相鄰的正常輸入引腳并在設計中加進CLKINT。這樣,時鐘將通過靠近時鐘引腳的正常輸入進入器件,再通過CLKINT向器件提供時鐘資源。
采用這種輸入電路后,由于常規(guī)I/O是三態(tài)的,因此用戶不必擔心時鐘進入器件。當然,增加一級門電路會產(chǎn)生0.6ns的較大時鐘延時,幸好這在多數(shù)低功率設計中是可以接受的。注意應將與CLKINT緩沖器相關的CLKA或CLKB引腳接地。
此外還要注意,CLKINT只可用作連線時鐘,HCLK并不具備將內部走線網(wǎng)連接到HCLK的能力,因而HCLK資源不能被常規(guī)輸入驅動。換句話說,如果使用LP引腳就不能使用HCLK;使用HCLK時就應在外部截斷時鐘信號。
降低動態(tài)功耗
動態(tài)功耗是在時鐘工作且輸入正在開關時的功耗。對CMOS電路,動態(tài)功耗基本上確定了總功耗。動態(tài)功耗包括幾個成分,主要是電容負載充電與放電(內部與I/O)以及短路電流。多數(shù)動態(tài)功率是內部或外部電容向器件充、放電消耗的。如果器件驅動多個I/O負載,大量的動態(tài)電流構成總功耗的主要部分。
對設計中給定的驅動器,動態(tài)功耗由下式計算
p=CL×V 2 DD×f
式中,CL是電容負載,VDD是電源電壓,f則是開關頻率??偣氖敲總€驅動器功耗之總和。
由于VDD是固定的,降低內部功耗就要降低平均邏輯開關頻率,減少每個時鐘沿處的邏輯開關總數(shù)、減少連線網(wǎng)絡,特別是高頻信號連線網(wǎng)絡中的電容值。對低功率設計,需要從系統(tǒng)至工藝的每個設計級別中采取相應預防措施,級別越高,效果越好。