FPGA的設(shè)計(jì)原理 FPGA和CPLD的區(qū)別_第1頁
FPGA的設(shè)計(jì)原理 FPGA和CPLD的區(qū)別_第2頁
FPGA的設(shè)計(jì)原理 FPGA和CPLD的區(qū)別_第3頁
FPGA的設(shè)計(jì)原理 FPGA和CPLD的區(qū)別_第4頁
FPGA的設(shè)計(jì)原理 FPGA和CPLD的區(qū)別_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

FPGA的設(shè)計(jì)原理FPGA和CPLD的區(qū)別1984年,Xilinx公司的創(chuàng)始人之一,密西根大學(xué)畢業(yè)生,RossFreeman第一次提出了可編程邏輯器件(PLD)的概念,讓芯片成為一個(gè)空白的畫布,可由工程師通過編程在上面任意“涂鴉”。(瞻仰一下大神)Freeman也因?yàn)檫@項(xiàng)發(fā)明進(jìn)入2009美國發(fā)明家名人堂。遺憾的是英年早逝的他沒能看到他所締造的FPGA帝國是多么的輝煌。清華大學(xué)微電子研究所所長,中國半導(dǎo)體行業(yè)協(xié)會(huì)副理事長魏少軍先生曾用印一本書來區(qū)別芯片的設(shè)計(jì)、制造、封測(cè)過程:設(shè)計(jì)相當(dāng)于作家寫了一本書,制造相當(dāng)于印刷,封裝相當(dāng)于裝訂。那么FPGA是什么?如果是一個(gè)專業(yè)從事FPGA工作的老攻城獅可能會(huì)告訴你,”FieldProgrammableGateArray“,然后再補(bǔ)上一句”Itcanbeanythingyouwant“。網(wǎng)上也有很多通俗易懂的類比。例如把FPGA的開發(fā)看作是數(shù)字積木搭建,東南大學(xué)湯勇明老師就寫過一本《搭建你的數(shù)字積木——數(shù)字電路與邏輯設(shè)計(jì)》一個(gè)個(gè)IP就像是一塊塊積木,通過調(diào)用IP"搭建"特定功能的電路,這個(gè)比喻來說明FPGA的開發(fā)再合適不過了。也有人將FPGA比作是空白的大腦,大腦里面存在成千上萬的神經(jīng)元細(xì)胞,但是神經(jīng)元之間并沒有連接起來,也就還沒有大腦強(qiáng)大的功能,但是當(dāng)工程師用Verilog或者vhdl來對(duì)FPGA進(jìn)行布局布線之后,神經(jīng)元就連接到了一起,大腦也就有了一些功能,給大腦輸入羊肉泡饃的畫面,會(huì)流口水之類的反應(yīng)。這個(gè)比喻來形容FPGA的設(shè)計(jì)原理再合適不過了。另外,還有人將FPGA中的一些組成部分和生物化學(xué)有機(jī)體類比。FPGA中最基本的單元——可編程邏輯單元(CLB),可以類比為有機(jī)體中的蛋白質(zhì)分子,生物化學(xué)的角度上,蛋白質(zhì)可以合成更高更復(fù)雜的器官,例如心,肝,胃,胳膊腿等,那么同樣CLB作為電子有機(jī)體中的蛋白質(zhì)分子,當(dāng)然就可以合成一個(gè)電子有機(jī)體(類比人)的各個(gè)模塊(器官),有的器官復(fù)雜,需要很多蛋白質(zhì)分子分層次合成,那么同樣,有的電子系統(tǒng)的模塊的也極其復(fù)雜,需要CLB分層次合成。那么蛋白質(zhì)分子在合成各種不同的器官的時(shí)候,靠什么做指導(dǎo)嘞?人體內(nèi)部有著極其龐大復(fù)雜的DNA序列,這個(gè)DNA序列記錄著人體的所有信息。在受精卵生成胚胎階段,其中的某一段序列指導(dǎo)胚胎的這一坨(也就是這一堆蛋白質(zhì)分子)成為未來的手,另一端序列指導(dǎo)胚胎的另一堆蛋白質(zhì)分子成為未來的胳膊。那么同樣,在FPGA中也會(huì)有等價(jià)于生物化學(xué)有機(jī)體中的DNA,就是bit_stream。bit_stream和DNA完全類似,就是一段序列,指導(dǎo)著若干CLB合成某一個(gè)執(zhí)行具體功能的模塊。在有機(jī)體中還有脂肪的存在,脂肪的一大作用就是存儲(chǔ)能量,在FPGA中負(fù)責(zé)存儲(chǔ)的是BRAM,不同的是脂肪儲(chǔ)存的是能量,BRAM儲(chǔ)存的是數(shù)據(jù)。

FPGA中還有一個(gè)很重要的東西叫做DSP,即數(shù)字信號(hào)處理器,在人的大腦里面有一片腦回溝區(qū)域?qū)iT負(fù)責(zé)數(shù)學(xué)運(yùn)算,兩者可以做一個(gè)類比。生物體中還有一個(gè)十分重要的器官叫心臟,而FPGA中有一個(gè)東西叫時(shí)鐘,心臟控制脈搏,時(shí)鐘則負(fù)責(zé)整個(gè)系統(tǒng)的工作頻率。有了心臟,人類才得以正?;顒?dòng),有了時(shí)鐘,系統(tǒng)才得以有條不紊的運(yùn)行。在FPGA的設(shè)計(jì)當(dāng)中編寫的RTL代碼,通過軟件工具可以生成人類看不懂的bit_stream,也就是說工程師每天的工作都是在編寫FPGA的DNA,在生物學(xué)領(lǐng)域,我相信大多數(shù)的科學(xué)家畢生都在做著解讀‘人類天書’DNA的工作吧。這樣一一類比下來感覺FPGA的開發(fā)就像是在造人一樣,頓時(shí)感覺代碼都不枯燥了。首款FPGA,即賽靈思XC2064,只包含64個(gè)邏輯模塊,每個(gè)模塊含有兩個(gè)3輸入查找表(LUT)和一個(gè)寄存器。按照現(xiàn)在的計(jì)算,該器件有64個(gè)邏輯單元——不足1000個(gè)邏輯門。盡管容量很小,XC2064晶片的尺寸卻非常大,比當(dāng)時(shí)的微處理器還要大;而且采用2.5微米工藝技術(shù)勉強(qiáng)能制造出這種器件。但隨著IC制造工藝的發(fā)展,F(xiàn)PGA也迅速發(fā)展,資源爆炸式增長,ZYNQ系列的Z-7100的邏輯單元已經(jīng)到了444k。

與FPGA同為PLD的還有CPLD,CPLD(ComplexProgrammableLogicDevice),復(fù)雜可編程邏輯器件。CPLD由可編程邏輯的功能圍繞一個(gè)可編程互連矩陣構(gòu)成,由固定長度的金屬線實(shí)現(xiàn)邏輯單元之間的互連,并增加了I/O控制模塊的數(shù)量和功能。CPLD的基本結(jié)構(gòu)可看成由可編程邏輯陣列(LAB),可編程I/O控制模塊和可編程內(nèi)部連線(PIA)等三部分組成??删幊踢壿嬯嚵校↙AB):由若干個(gè)可編程邏輯宏單元(LogicMacroCell,LMC)組成,LMC主要包括與陣列、或陣列、可編程觸發(fā)器和多路選擇器等電路,能獨(dú)立地配置為時(shí)序或組合工作方式。FPGA由可編程邏輯塊(CLB),輸入/輸出模塊(IOB)及可編程互連資源(PIR)等三種可編程電路和一個(gè)SRAM結(jié)構(gòu)的配置存儲(chǔ)單元組成。CLB是實(shí)現(xiàn)邏輯功能的基本單元,他們通常規(guī)則排列成一個(gè)陣列,散布于整個(gè)芯片中??删幊梯斎?輸出模塊(IOB)主要完成芯片上的邏輯與外部引腳的接口,它通常排列在芯片的四周。可編程互連資源(PIR)包括各種長度的連線線段和一些可編程鏈接開關(guān),他們將各個(gè)CLB之間或CLB與IOB之間以及IOB之間連接起來,構(gòu)成特定功能的電路。CLB主要由邏輯函數(shù)發(fā)生器,觸發(fā)器,數(shù)據(jù)選擇器等電路組成。邏輯函數(shù)發(fā)生器主要由查找表(LookUpTable)構(gòu)成。查找表LUT實(shí)質(zhì)上是一個(gè)RAM,當(dāng)用戶描述了一個(gè)邏輯電路后,軟件會(huì)計(jì)算所有可能的結(jié)果,并寫入RAM。每一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算,就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,輸出結(jié)果。這樣也大大加快了FPGA的運(yùn)算速度。FPGA和CPLD的區(qū)別主要有以下幾點(diǎn):(1)FPGA采用SRAM進(jìn)行功能配置,可重復(fù)編程,但系統(tǒng)掉電后,SRAM中的數(shù)據(jù)丟失,因此,需要在FPGA外加EPROM,將配置數(shù)據(jù)寫入其中,系統(tǒng)每次上電自動(dòng)將數(shù)據(jù)引入SRAM中。CPLD器件一般采用EEPROM存儲(chǔ)技術(shù),可重復(fù)編程,并且系統(tǒng)掉電后,EEPROM中的數(shù)據(jù)不會(huì)丟失,適用于數(shù)據(jù)的保密。(2)FPGA器件含有豐富的觸發(fā)器資源,易于實(shí)現(xiàn)時(shí)序邏輯,如果要求實(shí)現(xiàn)較復(fù)雜的組合電路,則需要幾個(gè)CLB結(jié)合起來實(shí)現(xiàn)。CPLD的與或陣列結(jié)構(gòu),更適用于實(shí)現(xiàn)大規(guī)模組合功能,但觸發(fā)器資源相對(duì)較少。(3)FPGA是細(xì)顆粒度結(jié)構(gòu),CPLD是粗粒度結(jié)構(gòu)。FPGA內(nèi)部有豐富連線資源,CLB分塊較小,芯片利用率高。CPLD宏單元的與或陣列較大,通常不能完全被應(yīng)用,且宏單元之間的主要通過高速數(shù)據(jù)通道連接,其容量有限,限制了器件的靈活布線,因此,CPLD利用率較FPGA器件低。(4)FPGA為非連續(xù)式布線,CPLD為連續(xù)式布線。FPGA器件每次編程時(shí)實(shí)現(xiàn)的邏輯功能一樣,但走的路線不同,因此延時(shí)不易控制,即時(shí)序延遲不可預(yù)測(cè)。CPLD每次布線路徑一樣,消除了分段式互連結(jié)構(gòu)在定時(shí)上的差異,并在邏輯單元之間提供快速且具有固定延時(shí)的通路,CPLD的延時(shí)小,且時(shí)序延遲可預(yù)測(cè)。CPLD比FPGA可工作在更高的頻率。所以FPGA是什么?It

canbe

anythingyouwant!參考文獻(xiàn):[1]知乎用戶PIPI.FPGA與C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論