首頁(yè) 新聞 > 科技 > 正文

FPGA開(kāi)發(fā)板快速教程(一)

前言FPGA在復(fù)雜邏輯電路以及數(shù)字信號(hào)處理領(lǐng)域中扮演者越來(lái)越重要的角色,SOC(片上系統(tǒng))以其低功耗,高性能,低成本,高可靠性等優(yōu)點(diǎn)成為嵌入式系統(tǒng)的發(fā)展趨勢(shì)。作為一個(gè)簡(jiǎn)明的教程,主要宗旨是讓初學(xué)者快速地了解FPGA/SOPC(可編程片上系統(tǒng))開(kāi)發(fā)的流程。目前IT技術(shù)的發(fā)展可以說(shuō)是一日千里,以本人的觀點(diǎn)來(lái)講,如果希望在電子設(shè)計(jì)領(lǐng)域有所作為,則必須具備快速掌握新技術(shù)的能力。電子設(shè)計(jì)最重要的是實(shí)踐的積累,我們只要具備了一定的基礎(chǔ),應(yīng)當(dāng)馬上投入實(shí)踐,否則很多概念都無(wú)法真正理解。有不少人包括我,當(dāng)下決心要成為一個(gè)合格的電子設(shè)計(jì)工程師的時(shí)候,總是想如果把有關(guān)電路方面的理論都掌握了才能所向披靡,有底氣參加實(shí)際項(xiàng)目設(shè)計(jì)。當(dāng)然如果能做到“把有關(guān)理論都掌握了”這樣的境界,我想應(yīng)該是很理想的,但經(jīng)驗(yàn)發(fā)現(xiàn)這并不實(shí)際。據(jù)我所知,我所認(rèn)識(shí)的不少電子設(shè)計(jì)牛人,他們的理論知識(shí)可能都比不上我們的本科生,但很多不錯(cuò)的產(chǎn)品都是從他們的手中開(kāi)發(fā)出來(lái)的,有了實(shí)踐的經(jīng)驗(yàn)后,他們掌握新技術(shù)的速度相當(dāng)驚人。有人跟我說(shuō):“新技術(shù)是拿來(lái)用的,不是拿來(lái)學(xué)的。”他們認(rèn)為掌握新的設(shè)計(jì)技術(shù)應(yīng)當(dāng)盡快掌握它的設(shè)計(jì)流程。因此,我參考朋友給我的意見(jiàn),寫(xiě)了這個(gè)簡(jiǎn)易的教程,以非常詳細(xì)的實(shí)例來(lái)讓初學(xué)者了解基于QuartusII和NiosII IDE的FPGA/SOPC開(kāi)發(fā)的基本流程,目的是為了讓初學(xué)者盡快上手FPGA/SOPC的開(kāi)發(fā)流程,盡快投入到實(shí)踐中。為了易于說(shuō)明問(wèn)題,本教程中的一些概念并不是很?chē)?yán)謹(jǐn),如果讀者對(duì)某些提法有異議,請(qǐng)參考相關(guān)資料和教材,并以相關(guān)資料和教材為準(zhǔn)。通過(guò)該簡(jiǎn)明教程,初學(xué)者能快速了解FPGA/SOPC的基本開(kāi)發(fā)流程,很多技巧和深入理解都靠長(zhǎng)期的經(jīng)驗(yàn)積累,因此初學(xué)者應(yīng)該在了解了基本流程以后,思維不能局限于此,應(yīng)在實(shí)踐中提高水平,并參考更全面和權(quán)威的資料。 本教程配套CT-SOPCx系列FPGA/SOPC開(kāi)發(fā)學(xué)習(xí)板套件(對(duì)于該套件的相關(guān)內(nèi)容請(qǐng)參考附錄。)以實(shí)踐為基礎(chǔ),適合具備基本的數(shù)字電路設(shè)計(jì)基礎(chǔ)的初學(xué)者。第一章是CPLD/FPGA的基本知識(shí),這部分內(nèi)容摘自互聯(lián)網(wǎng)并稍加刪改,對(duì)于CPLD/FPGA知識(shí)為零的初學(xué)者應(yīng)先了解這部分內(nèi)容;對(duì)于已經(jīng)有了一定基礎(chǔ)的同學(xué)可以跳過(guò)這部分內(nèi)容。第二章以兩個(gè)例子來(lái)讓初學(xué)者了解FPGA的基本開(kāi)發(fā)流程,并熟悉QuartusII軟件的使用。第三章以一個(gè)例子來(lái)讓初學(xué)者了解基于NiosII軟CPU核的SOPC設(shè)計(jì)流程,并熟識(shí)SOPC Builder和NiosII IDE的基本使用。附錄是本文所涉及的例子的學(xué)習(xí)板相關(guān)的內(nèi)容。 由于本人水平有限,錯(cuò)漏和不嚴(yán)謹(jǐn)之處在所難免,歡迎大家批評(píng)指正。 嵌入式控制研究室              http://www.21control.com 2006年4月20日 目 錄 第一章PLD/FPGA的基本知識(shí) ……………………………………………………………………… 第二章 FPGA基本教程 …………………………………………………………………………………… 第一節(jié) FPGA的基本開(kāi)發(fā)流程 ……………………………………………………………………………… 第二節(jié) 基于QuartusII的實(shí)例………………………………………………………………………………… 實(shí)驗(yàn)一 實(shí)驗(yàn)板上的KEY1按鈕控制FPGA核心板上的第一個(gè)LED燈介紹 ……………………………… 實(shí)驗(yàn)二 7段數(shù)碼管實(shí)驗(yàn) ………………………………………………………………………………… 實(shí)驗(yàn)三 用FPGA設(shè)計(jì)串口數(shù)據(jù)收發(fā) ………………………………………………………………………… 第三章 SOPC的基本開(kāi)發(fā)流程 ………………………………………………………………………………… 第一節(jié) SOPC vs MCU、DSP和FPGA ……………………………………………………………………… 第二節(jié) 基于QuantusII和NiosII的SOPC基本開(kāi)發(fā)流程 …………………………………………………… 第三節(jié) 基于QuantusII和NiosII的SOPC實(shí)例 …………………………………………………………… 實(shí)驗(yàn)一 核心板上的兩個(gè)LED交替閃爍 ………………………………………………………………… 實(shí)驗(yàn)二 4位7段數(shù)碼管IP core設(shè)計(jì)以及flash的燒寫(xiě)教程 ………………………………… 實(shí)驗(yàn)三 LCD設(shè)備驅(qū)動(dòng)開(kāi)發(fā) ……………………………………………………………………… 實(shí)驗(yàn)四 ALL_TEST綜合設(shè)計(jì) …………………………………………………………………………… 第四章 FPGA開(kāi)發(fā)板V3.0中嵌入U(xiǎn)clinux的步驟和方法…………………………………………………… 第一章 CPLD/FPGA的基本知識(shí) (一)可編程邏輯器件的歷史和概述 隨著數(shù)字電路應(yīng)用越來(lái)越廣泛,傳統(tǒng)通用的數(shù)字集成芯片已經(jīng)難以滿足系統(tǒng)的功能要求,而且隨著系統(tǒng)復(fù)雜程度的提高,所需通用集成電路的數(shù)量呈爆炸性增值,使得電路的體積膨大,可靠性難以保證。此外,現(xiàn)代產(chǎn)品的生命周期都很短,一個(gè)電路可能需要在很短的周期內(nèi)作改動(dòng)以滿足新的功能需求,對(duì)于采用通用的數(shù)字集成電路設(shè)計(jì)的電路系統(tǒng)來(lái)說(shuō)即意味著重新設(shè)計(jì)和重新布線。因此,系統(tǒng)設(shè)計(jì)師們希望自己設(shè)計(jì)專(zhuān)用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。 早期的可編程邏輯器件只有可編程只讀存貯器(PROM)、紫外線可按除只讀存貯器(EPROM)和電可擦除只讀存貯器(EEPROM)三種。由于結(jié)構(gòu)的限制,它們只能完成簡(jiǎn)單的數(shù)字邏輯功能。 其后,出現(xiàn)了一類(lèi)結(jié)構(gòu)上稍復(fù)雜的可編程芯片,即可編程邏輯器件(PLD),它能夠完成各種數(shù)字邏輯功能。典型的PLD由一個(gè)“與”門(mén)和一個(gè)“或”門(mén)陣列組成,而任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來(lái)描述,所以, PLD能以乘積和的形式完成大量的組合邏輯功能。 這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。PAL由一個(gè)可編程的“與”平面和一個(gè)固定的“或”平面構(gòu)成,或門(mén)的輸出可以通過(guò)觸發(fā)器有選擇地被置為寄存狀態(tài)。 PAL器件是現(xiàn)場(chǎng)可編程的,它的實(shí)現(xiàn)工藝有反熔絲技術(shù)、EPROM技術(shù)和EEPROM技術(shù)。還有一類(lèi)結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個(gè)“與”平面和一個(gè)“或”平面構(gòu)成,但是這兩個(gè)平面的連接關(guān)系是可編程的。 PLA器件既有現(xiàn)場(chǎng)可編程的,也有掩膜可編程的。 在PAL的基礎(chǔ)上,又發(fā)展了一種通用陣列邏輯GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工藝,實(shí)現(xiàn)了電可按除、電可改寫(xiě),其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設(shè)計(jì)具有很強(qiáng)的靈活性,至今仍有許多人使用。 這些早期的PLD器件的一個(gè)共同特點(diǎn)是可以實(shí)現(xiàn)速度特性較好的邏輯功能,但其過(guò)于簡(jiǎn)單的結(jié)構(gòu)也使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為了彌補(bǔ)這一缺陷,20世紀(jì)80年代中期。 Altera和Xilinx分別推出了類(lèi)似于PAL結(jié)構(gòu)的擴(kuò)展型 CPLD(Complex Programmab1e Logic Dvice)和與標(biāo)準(zhǔn)門(mén)陣列類(lèi)似的FPGA(Field Programmable Gate Array),它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點(diǎn)。這兩種器件兼容了PLD和通用門(mén)陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活。與門(mén)陣列等其它ASIC(Application Specific IC)相比,它們又具有設(shè)計(jì)開(kāi)發(fā)周期短、設(shè)計(jì)制造成本低、開(kāi)發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無(wú)需測(cè)試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢驗(yàn)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和小批量產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用門(mén)陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場(chǎng)合均可應(yīng)用FPGA和CPLD器件。 (二)FPGA、CPLD 概述 FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)與 CPLD(復(fù)雜可編程邏輯器件)都是可編程邏輯器件,它們是在PAL,GAL等邏輯器件的基礎(chǔ)之上發(fā)展起來(lái)的。同以往的PAL,GAL等相比較,F(xiàn)PGA/CPLD的規(guī)模比較大,它可以替代幾十甚至幾千塊通用IC芯片。這樣的FPGA/CPLD實(shí)際上就是一個(gè)子系統(tǒng)部件。這種芯片受到世界范圍內(nèi)電子工程設(shè)計(jì)人員的廣泛關(guān)注和普遍歡迎。經(jīng)過(guò)了十幾年的發(fā)展,許多公司都開(kāi)發(fā)出了多種可編程邏輯器件。比較典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,它們開(kāi)發(fā)較早,占用了較大的PLD市場(chǎng)。通常來(lái)說(shuō),在歐洲用Xilinx的人多,在日本和亞太地區(qū)用ALTERA的人多,在美國(guó)則是平分秋色。全球PLD/FPGA產(chǎn)品60%以上是由Altera和Xilinx提供的??梢灾vAltera和Xilinx共同決定了PLD技術(shù)的發(fā)展方向。當(dāng)然還有許多其它類(lèi)型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。 (99年Lattice收購(gòu)了Vantis,成為第三大PLD供應(yīng)商。 本文引用地址:http://www.eepw.com.cn/article/201706/349482.htm 表1.2.1 1998年世界十大PLD公司

盡管FPGA,CPLD和其它類(lèi)型PLD的結(jié)構(gòu)各有其特點(diǎn)和長(zhǎng)處,但概括起來(lái),它們是由三大部分組成的:(1)一個(gè)二維的邏輯塊陣列,構(gòu)成了PLD器件的邏輯組成核心;(2)輸入/輸出塊;(3)連接邏輯塊的互連資源,由各種長(zhǎng)度的連線線段組成,其中也有一些可編程的連接開(kāi)關(guān),它們用于邏輯塊之間、邏輯塊與輸入/輸出塊之間的連接。

對(duì)用戶而言,雖然CPLD與FPGA的內(nèi)部結(jié)構(gòu)稍有不同,但其用法都一樣,所以多數(shù)情況下,不加以區(qū)分。FPGA/CPLD芯片都是特殊的ASIC芯片,它們除了具有ASIC的特點(diǎn)之外,還具有以下幾個(gè)優(yōu)點(diǎn): (1) 隨著VlSI(Very Large Scale IC,超大規(guī)模集成電路)工藝的不斷提高單一芯片內(nèi)部可以容納上百萬(wàn)個(gè)晶體管, FPGA/CPLD芯片的規(guī)模也越來(lái)越大,其單片邏輯門(mén)數(shù)已達(dá)到上百萬(wàn)門(mén),它所能實(shí)現(xiàn)的功能也越來(lái)越強(qiáng),同時(shí)也可以實(shí)現(xiàn)系統(tǒng)集成,即片上系統(tǒng)SOC。 (2) FPGA/CPLD芯片在出廠之前都做過(guò)百分之百的測(cè)試,不需要設(shè)計(jì)人員承擔(dān)投片風(fēng)險(xiǎn)和費(fèi)用,設(shè)計(jì)人員只需在自己的實(shí)驗(yàn)室里就可以通過(guò)相關(guān)的軟硬件環(huán)境來(lái)完成芯片的最終功能設(shè)計(jì)。所以, FPGA/CPLD的資金投入小,節(jié)省了許多潛在的花費(fèi)。 (3) 用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動(dòng)的情況下用不同軟件就可實(shí)現(xiàn)不同的功能。所以,用FPGA/PLD 試制樣片,能以最快的速度占領(lǐng)市場(chǎng)。 FPGA/CPLD軟件包中有各種輸入工具和仿真工具,及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA/CPLD的優(yōu)勢(shì)。電路設(shè)計(jì)人員使用FPGA/CPLD進(jìn)行電路設(shè)計(jì)時(shí),不需要具備專(zhuān)門(mén)的IC(集成電路)深層次的知識(shí), FPGA/CPLD軟件易學(xué)易用,可以使設(shè)計(jì)人員更能集中精力進(jìn)行電路設(shè)計(jì),快速將產(chǎn)品推向市場(chǎng)。 (4) 在線可編程技術(shù)(ISP)使得使用CPLD/FPGA的產(chǎn)品可以做到遠(yuǎn)程升級(jí)。 (以上內(nèi)容參照西電《CPLD技術(shù)及其應(yīng)用》,有改動(dòng)) (三)PLD/FPGA 結(jié)構(gòu)與原理初步 一. 基于乘積項(xiàng)(Product-Term)的PLD結(jié)構(gòu) 采用這種結(jié)構(gòu)的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工藝),Xilinx的XC9500系列(Flash工藝)和Lattice,Cypress的大部分產(chǎn)品(EEPROM工藝)。我們先看一下這種PLD的總體結(jié)構(gòu)(以MAX7000為例,其他型號(hào)的結(jié)構(gòu)與此都非常相似):

這種PLD可分為三塊結(jié)構(gòu):宏單元(Marocell),可編程連線(PIA)和I/O控制塊。 宏單元是PLD的基本結(jié)構(gòu),由它來(lái)實(shí)現(xiàn)基本的邏輯功能。圖1.3.1中陰影部分是多個(gè)宏單元的集合(因?yàn)楹陠卧^多,沒(méi)有一一畫(huà)出)??删幊踢B線負(fù)責(zé)信號(hào)傳遞,連接所有的宏單元。I/O控制塊負(fù)責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定集電極開(kāi)路輸出,擺率控制,三態(tài)輸出等。圖1.3.1 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局時(shí)鐘,清零和輸出使能信號(hào),這幾個(gè)信號(hào)有專(zhuān)用連線與PLD中每個(gè)宏單元相連,信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。宏單元的具體結(jié)構(gòu)見(jiàn)下圖:

左側(cè)是乘積項(xiàng)陣列,實(shí)際就是一個(gè)與或陣列,每一個(gè)交叉點(diǎn)都是一個(gè)可編程熔絲,如果導(dǎo)通就是實(shí)現(xiàn)“與”邏輯。后面的乘積項(xiàng)選擇矩陣是一個(gè)“或”陣列。兩者一起完成組合邏輯。圖右側(cè)是一個(gè)可編程D觸發(fā)器,它的時(shí)鐘,清零輸入都可以編程選擇,可以使用專(zhuān)用的全局清零和全局時(shí)鐘,也可以使用內(nèi)部邏輯(乘積項(xiàng)陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I/O腳。 二. 乘積項(xiàng)結(jié)構(gòu)PLD的邏輯實(shí)現(xiàn)原理下面我們以一個(gè)簡(jiǎn)單的電路為例,具體說(shuō)明PLD是如何利用以上結(jié)構(gòu)實(shí)現(xiàn)邏輯的,電路如下圖:

假設(shè)組合邏輯的輸出(AND3的輸出)為f,則f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( 我們以!D表示D的“非”) PLD將以下面的方式來(lái)實(shí)現(xiàn)組合邏輯f:

A,B,C,D由PLD芯片的管腳輸入后進(jìn)入可編程連線陣列(PIA),在內(nèi)部會(huì)產(chǎn)生A,A反,B,B反,C,C反,D,D反8個(gè)輸出。圖中每一個(gè)叉表示相連(可編程熔絲導(dǎo)通),所以得到:f= f1 + f2 = (A*C*!D) + (B*C*!D) 。這樣組合邏輯就實(shí)現(xiàn)了。 圖3電路中D觸發(fā)器的實(shí)現(xiàn)比較簡(jiǎn)單,直接利用宏單元中的可編程D觸發(fā)器來(lái)實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的全局時(shí)鐘專(zhuān)用通道,直接連接到可編程觸發(fā)器的時(shí)鐘端??删幊逃|發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖1.3.3所示電路的功能。(以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù))。 圖1.3.3的電路是一個(gè)很簡(jiǎn)單的例子,只需要一個(gè)宏單元就可以完成。但對(duì)于一個(gè)復(fù)雜的電路,一個(gè)宏單元是不能實(shí)現(xiàn)的,這時(shí)就需要通過(guò)并聯(lián)擴(kuò)展項(xiàng)和共享擴(kuò)展項(xiàng)將多個(gè)宏單元相連,宏單元的輸出也可以連接到可編程連線陣列,再做為另一個(gè)宏單元的輸入。這樣PLD就可以實(shí)現(xiàn)更復(fù)雜邏輯。 這種基于乘積項(xiàng)的PLD基本都是由EEPROM和Flash工藝制造的,一上電就可以工作,無(wú)需其他芯片配合。 三. 表(Look-Up-Table)的原理與結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片我們也可以稱(chēng)之為FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)簡(jiǎn)稱(chēng)為L(zhǎng)UT,LUT本質(zhì)上就是一個(gè)RAM。 目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。當(dāng)用戶通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路以后,PLD/FPGA開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫(xiě)入RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。 下面是一個(gè)4輸入與門(mén)的例子:

四. 基于查找表(LUT)的FPGA的結(jié)構(gòu) altera的FLEX/ACEX等芯片的結(jié)構(gòu)如下圖:

邏輯單元(LE)內(nèi)部結(jié)構(gòu) FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個(gè)LAB包括8個(gè)邏輯單元(LE),每個(gè)LE包括一個(gè)LUT,一個(gè)觸發(fā)器和相關(guān)的相關(guān)邏輯。LE是FLEX/ACEX芯片實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu)(altera其他系列,如APEX、CYCLONE等的結(jié)構(gòu)與此基本相同,具體請(qǐng)參閱數(shù)據(jù)手冊(cè))。 五.查找表結(jié)構(gòu)的FPGA邏輯實(shí)現(xiàn)原理 我們還是以這個(gè)電路的為例:

A,B,C,D由FPGA芯片的管腳輸入后進(jìn)入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫(xiě)入了所有可能的邏輯結(jié)果,通過(guò)地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實(shí)現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來(lái)實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專(zhuān)用通道,直接連接到觸發(fā)器的時(shí)鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖1.3.3所示電路的功能。(以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù))。 這個(gè)電路是一個(gè)很簡(jiǎn)單的例子,只需要一個(gè)LUT加上一個(gè)觸發(fā)器就可以完成。對(duì)于一個(gè)LUT無(wú)法完成的的電路,就需要通過(guò)進(jìn)位邏輯將多個(gè)單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯。 由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會(huì)丟失,一定需要外加一片專(zhuān)用配置芯片,在上電的時(shí)候,由這個(gè)專(zhuān)用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時(shí)間很短,不會(huì)影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對(duì)這種FPGA,就不需要外加專(zhuān)用的配置芯片。 六.選擇PLD還是FPGA? 根據(jù)上述PLD的結(jié)構(gòu)和原理可以知道,PLD分解組合邏輯的功能很強(qiáng),一個(gè)宏單元就可以分解十幾個(gè)甚至20-30多個(gè)組合邏輯輸入。而FPGA的一個(gè)LUT只能處理4輸入的組合邏輯,因此,PLD適合用于設(shè)計(jì)譯碼等復(fù)雜組合邏輯。但FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬(wàn),PLD一般只能做到512個(gè)邏輯單元,而且如果用芯片價(jià)格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。所以如果設(shè)計(jì)中使用到大量觸發(fā)器,例如設(shè)計(jì)一個(gè)復(fù)雜的時(shí)序邏輯,那么使用FPGA就是一個(gè)很好選擇。

關(guān)鍵詞: SOPC FPGA 快速教程 開(kāi)發(fā)板

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12