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