VHDL and PLD 第01章 硬件描述語言與可編程邏輯器件簡介(2013年9月)_第1頁
VHDL and PLD 第01章 硬件描述語言與可編程邏輯器件簡介(2013年9月)_第2頁
VHDL and PLD 第01章 硬件描述語言與可編程邏輯器件簡介(2013年9月)_第3頁
VHDL and PLD 第01章 硬件描述語言與可編程邏輯器件簡介(2013年9月)_第4頁
VHDL and PLD 第01章 硬件描述語言與可編程邏輯器件簡介(2013年9月)_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

硬件描述語言與可編程邏輯器件課程說明:該課程主要是以理論和實(shí)踐相結(jié)合的方式。課時(shí)數(shù):24+16考試方式:期末考試+實(shí)驗(yàn)+平時(shí)成績。閉卷60%,實(shí)驗(yàn)30%,平時(shí)成績10%本課教材及參考書教材:李云松等.《XilinxFPGA設(shè)計(jì)基礎(chǔ)(VHDL版)》.西安電子科技大學(xué)出版社.2008.2.參考書:1)王開軍等《面向CPLD/FPGA的VHDL設(shè)計(jì)》.機(jī)械工業(yè)出版社.2006.102)佩德羅尼《VHDL數(shù)字電路設(shè)計(jì)教程》.電子工業(yè)出版社第1版2005.93)李輝.《基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)》西安電子科技大學(xué)出版社2008.114)潘松等《EDA技術(shù)使用教程》(第三版)科學(xué)出版社2006.95)任愛峰等《基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)》西安電子科技大學(xué)出版社2005.2網(wǎng)站資源廠商http:///http:////http://資源http:///http:////index.htmlhttp:///labs/tutorial/index.htmlBBShttp:///http:///bbs/index.php第一章緒論關(guān)于EDA關(guān)于HDL可編程邏輯器件的發(fā)展進(jìn)程可編程邏輯器件的分類可編程邏輯器件的結(jié)構(gòu)第一章緒論

隨著VLSI的發(fā)展電子產(chǎn)品市場運(yùn)作節(jié)奏的進(jìn)一步加快涉及諸多領(lǐng)域(如計(jì)算機(jī)應(yīng)用、通信、智能儀表、醫(yī)用設(shè)備、軍事、民用電器等領(lǐng)域的現(xiàn)代電子設(shè)計(jì)技術(shù)已邁入一個(gè)全新的階段,其特點(diǎn)如下:1.電子器件及其技術(shù)的發(fā)展將更多地趨向于支持EDA(ElectronicDesignAutomation)2.借助于硬件描述語言,硬件設(shè)計(jì)與軟件設(shè)計(jì)技術(shù)得到了有機(jī)的融合。3.電子設(shè)計(jì)的技術(shù)開發(fā)過程和目標(biāo)器件的形式與結(jié)構(gòu)向規(guī)范化、標(biāo)準(zhǔn)化發(fā)展。4.應(yīng)用系統(tǒng)的設(shè)計(jì)已從單純的ASIC(ApplicationSpecificIntegratedCircuit)設(shè)計(jì)走向了系統(tǒng)設(shè)計(jì)和單片系統(tǒng)SOC(SystemOnaChip)設(shè)計(jì)。關(guān)于EDA在電子設(shè)計(jì)技術(shù)領(lǐng)域,可編程邏輯器件的廣泛應(yīng)用,為數(shù)字系統(tǒng)的設(shè)計(jì)帶來極大的靈活性。由于該器件可以通過軟件編程而對(duì)其硬件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷.。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程、乃至設(shè)計(jì)觀念。在傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)中,用戶能夠通過編程方式改變器件邏輯功能只有兩種途徑,即微處理器的軟件編程(如單片機(jī))和特定器件的控制字配置(如8255)。在傳統(tǒng)的設(shè)計(jì)概念中,器件引腳功能的硬件方式的任意確定是不可能的。而對(duì)于系統(tǒng)構(gòu)成的設(shè)計(jì)過程只能對(duì)器件功能和電路板圖分別進(jìn)行設(shè)計(jì)和確定。通過設(shè)計(jì)電路板來規(guī)劃系統(tǒng)功能。在此期間,大量的時(shí)間和精力花在元件選配和系統(tǒng)結(jié)構(gòu)的可行性定位上。但若采用可編程邏輯器件,便可利用計(jì)算機(jī)軟件的方式對(duì)目標(biāo)器件進(jìn)行設(shè)計(jì)而以硬件的形式實(shí)現(xiàn)即定的系統(tǒng)功能。關(guān)于EDA在設(shè)計(jì)過程中,設(shè)計(jì)者可根據(jù)需要,隨時(shí)改變器件的內(nèi)部邏輯功能和管腳的信號(hào)方式。借助于大規(guī)模集成的可編程邏輯器件和高效的設(shè)計(jì)軟件。用戶不僅可通過直接對(duì)芯片結(jié)構(gòu)的設(shè)計(jì)實(shí)現(xiàn)多種數(shù)字邏輯系統(tǒng)功能,而且由于管腳定義的靈活性,大大減輕了電路圖設(shè)計(jì)和電路板設(shè)計(jì)的工作量和難度:同時(shí),這種基于可編程邏輯器件芯片的設(shè)計(jì)大大減少了系統(tǒng)芯片的數(shù)量,縮小了系統(tǒng)的體積,提高了系統(tǒng)的可靠性。關(guān)于EDA隨著可編程邏輯器件自身功能的不斷完善和計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)的提高,在現(xiàn)代電子系統(tǒng)設(shè)計(jì)領(lǐng)域中的EDA便應(yīng)運(yùn)而生了。傳統(tǒng)的數(shù)字電路設(shè)計(jì)模式、卡諾圖的邏輯化簡手段、冗雜難懂的布爾方程表達(dá)方式、小規(guī)模的TTL芯片的堆砌技術(shù)在迅速崛起的EDA面前已成為一道歷史的風(fēng)景。關(guān)于EDAEDA是電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation)的縮寫,是90年代初,從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測(cè)試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來的。EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上對(duì)以硬件描述語言HDL為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件自動(dòng)地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真、直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語言來完成對(duì)系統(tǒng)硬件功能的描述,在EDA工具的幫助下就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過程如同完成軟件設(shè)計(jì)一樣方便和高效。關(guān)于EDAEDA技術(shù)中最為矚目的功能即最具現(xiàn)代電子設(shè)計(jì)技術(shù)特征的功能就是日益強(qiáng)大的邏輯設(shè)計(jì)仿真測(cè)試技術(shù)。現(xiàn)代的EDA工具軟件已突破了早期僅能進(jìn)行PCB版圖設(shè)計(jì),或類似某些僅限于電路功能模擬的、純軟件范圍的局限,以最終實(shí)現(xiàn)可靠的硬件系統(tǒng)為目標(biāo),配備了系統(tǒng)設(shè)計(jì)自動(dòng)化的全部工具。如配置了各種常用的硬件描述語言平臺(tái)VHDL、VerilogHDL、ABEL-HDL等;配置了多種能兼用和混合使用的邏輯描述輸入工具如硬件描述語言文本輸入法(其中包括布爾方程描述方式、原理圖描述方式、狀態(tài)圖描述方式等)以及原理圖輸入法、波形輸入法等。同時(shí)還配置了高性能的邏輯綜合、優(yōu)化和仿真模擬工具。關(guān)于HDL幾種常用的HDL語言:(1)VHDL硬件描述語言。它適用于電路行為級(jí)、RTL級(jí)的描述,功能強(qiáng),規(guī)范性好;(2)VerilogHDL硬件描述語言。它適用于電路RTL級(jí)、門級(jí)的描述,功能強(qiáng)、靈活性高;(3)ABEL硬件描述語言。它也適用于電路RTL級(jí)、門級(jí)的描述,屬于較低級(jí)的硬件描述語言;(4)AHDL硬件描述語言。Altera公司開發(fā)的硬件描述語言,語法簡單,但不通用。其中:VHDL和VerilogHDL已成為IEEE標(biāo)準(zhǔn)。IEEE標(biāo)準(zhǔn)硬件描述語言的誕生與發(fā)展1.硬件描述語言的起源:人們?yōu)榱税褟?fù)雜的電子電路用文字文件方式描述并保存下來,方便他人了解電路內(nèi)容,就誕生了最初的硬件描述語言。經(jīng)過多種硬件描述語言誕生與淘汰的演變,當(dāng)前國內(nèi)外普遍使用的主流硬件描述語言只有兩種:VHDL和VerilogHDL。還有ABEL和AHDL等。硬件描述語言的誕生與發(fā)展2.VHDL:

以ADA語言為基礎(chǔ),由美國國防高級(jí)研究計(jì)劃局(DARPA)開發(fā)。1985年完成第一版,1987年成為IEEE標(biāo)準(zhǔn)(IEEE1076),1993年增修為IEEE1164標(biāo)準(zhǔn)并使用至今。1996年又加入電路合成標(biāo)準(zhǔn)程序和規(guī)格,成為IEEE1076.3標(biāo)準(zhǔn)。美國國防部規(guī)定其為官方ASIC設(shè)計(jì)語言。

1995年,中國國家技術(shù)監(jiān)督局出版的《CAD通用技術(shù)規(guī)范》中,推薦VHDL為我國硬件描述語言的國家標(biāo)準(zhǔn)。硬件描述語言的誕生與發(fā)展3.VerilogHDL:

以C語言為基礎(chǔ),由GDA(GatewayDesignAutomation)公司的PhilMoorby創(chuàng)建于1983年。1989年CADENCE公司收購了GDA公司,擁有了VerilogHDL的獨(dú)家專利。于1990年正式發(fā)表了VerilogHDL,并成立OVI(Open

VerilogInternational)組織推進(jìn)其發(fā)展。1995年CADENCE公司放棄了VerilogHDL專利,使之成為IEEE標(biāo)準(zhǔn)(IEEE1364)。硬件描述語言的誕生與發(fā)展4.關(guān)于VHDL與VerilogHDL的比較:不存在優(yōu)劣之分。相同電路用這兩種硬件描述語言分別編碼,長度也大體相同?,F(xiàn)在常用的各種仿真/綜合工具均為二者通用。在日本,VHDL用戶略多于VerilogHDL,例如:NEC,日立,福田電子,丸文等公司通常習(xí)慣使用VHDL;而松下,CASIO等公司習(xí)慣使用VerilogHDL。和習(xí)慣有關(guān),一個(gè)公司通常習(xí)慣于使用其中一種。VHDL與其他HDL比較VHDL—

“tellmehowyourcircuitshouldbehave andIwillgiveyouhardwarethatdoesthejob”

—“告訴我你想要電路做什么,我給你提供能實(shí)現(xiàn)這個(gè)功能的硬件電路”VerilogHDL

—和VHDL類似ABEL、AHDL

“tellmewhathardwareyouwantandI willgiveittoyou”—“告訴我你想要什么樣的電路,我給你提供這樣的電路”硬件描述語言的近期發(fā)展目前及今后若干年內(nèi),VHDL和VerilogHDL仍將是硬件描述語言主角。因?yàn)樗鼈円呀?jīng)經(jīng)過無數(shù)應(yīng)用實(shí)例的驗(yàn)證,能夠滿足各類復(fù)雜的邏輯功能要求,各種配套工具軟件也非常成熟完善。至于SpecC,SystemC等新型硬件描述語言,將來成為主流還是被淘汰出局,則與語言本身以及各種配套工具軟件是否功能更加強(qiáng)大,使用更加簡便,更易于學(xué)習(xí)掌握,以及與人們已經(jīng)習(xí)慣的語言及工具是否有相似性和延續(xù)性等因素有關(guān)。硬件描述語言(VHDL)的突出優(yōu)點(diǎn)1.覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言。2.VHDL有良好的可讀性,它可以被計(jì)算機(jī)接受,也容易被讀者理解。3.VHDL本身的生命期長,因?yàn)閂HDL的硬件描述與工藝技術(shù)無關(guān),不會(huì)因工藝變化而使描述過時(shí)。4.支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用,一個(gè)大規(guī)模設(shè)計(jì)不可能一個(gè)人獨(dú)立完成,它將由多人、多項(xiàng)目組來共同完成。VHDL為設(shè)計(jì)的分解和再利用提供了有力的支持。5.VHDL已成為IEEE承認(rèn)的一個(gè)工業(yè)標(biāo)準(zhǔn),事實(shí)上已成為通用硬件描述語言。應(yīng)用VHDL的EDA過程

應(yīng)用VHDL的EDA過程EDA的工程設(shè)計(jì)流程1.源程序的編輯和編譯利用EDA技術(shù)進(jìn)行一項(xiàng)工程設(shè)計(jì),首先需利用EDA工具的文本編輯器或圖形編輯器將它用文本方式或圖形方式表達(dá)出來,進(jìn)行排錯(cuò)編譯,變成VHDL文件格式,為進(jìn)一步的邏輯綜合作準(zhǔn)備。常用的源程序輸入方式有三種。應(yīng)用VHDL的EDA過程(1)原理圖輸入方式:利用EDA工具提供的圖形編輯器以原理圖的方式進(jìn)行輸入。原理圖輸入方式比較容易掌握,直觀且方便,所畫的電路原理圖(請(qǐng)注意,這種原理圖與利用Protel畫的原理圖有本質(zhì)的區(qū)別)與傳統(tǒng)的器件連接方式完全一樣,很容易被人接受,而且編輯器中有許多現(xiàn)成的單元器件可以利用,自己也可以根據(jù)需要設(shè)計(jì)元件。然而原理圖輸入法的優(yōu)點(diǎn)同時(shí)也是它的缺點(diǎn):①隨著設(shè)計(jì)規(guī)模增大,設(shè)計(jì)的易讀性迅速下降,對(duì)于圖中密密麻麻的電路連線,極難搞清電路的實(shí)際功能;②一旦完成,電路結(jié)構(gòu)的改變將十分困難,因而幾乎沒有可再利用的設(shè)計(jì)模塊;③移植困難、入檔困難、交流困難、設(shè)計(jì)交付困難,因?yàn)椴豢赡艽嬖谝粋€(gè)標(biāo)準(zhǔn)化的原理圖編輯器。應(yīng)用VHDL的EDA過程(2)狀態(tài)圖輸入方式:以圖形的方式表示狀態(tài)圖進(jìn)行輸入。當(dāng)填好時(shí)鐘信號(hào)名、狀態(tài)轉(zhuǎn)換條件、狀態(tài)機(jī)類型等要素后,就可以自動(dòng)生成VHDL程序。這種設(shè)計(jì)方式簡化了狀態(tài)機(jī)的設(shè)計(jì),比較流行。(3)VHDL軟件程序的文本方式:最一般化、最具普遍性的輸入方法,任何支持VHDL的EDA工具都支持文本方式的編輯和編譯。應(yīng)用VHDL的EDA過程2.邏輯綜合和優(yōu)化欲把VHDL的軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,需要利用EDA軟件系統(tǒng)的綜合器進(jìn)行邏輯綜合。綜合器的功能就是將設(shè)計(jì)者在EDA平臺(tái)上完成的針對(duì)某個(gè)系統(tǒng)項(xiàng)目的HDL、原理圖或狀態(tài)圖形的描述,針對(duì)給定硬件結(jié)構(gòu)組件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級(jí)電路甚至更底層的電路描述文件。由此可見,綜合器工作前,必須給定最后實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式聯(lián)系起來。顯然,綜合器是軟件描述與硬件實(shí)現(xiàn)的一座橋梁。綜合過程就是將電路的高級(jí)語言描述轉(zhuǎn)換成低級(jí)的,可與FPGA/CPLD或構(gòu)成ASIC的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件。應(yīng)用VHDL的EDA過程由于VHDL仿真器的行為仿真功能是面向高層次的系統(tǒng)仿真,只能對(duì)VHDL的系統(tǒng)描述作可行性的評(píng)估測(cè)試,不針對(duì)任何硬件系統(tǒng),因此基于這一仿真層次的許多VHDL語句不能被綜合器所接受。這就是說,這類語句的描述無法在硬件系統(tǒng)中實(shí)現(xiàn)(至少是現(xiàn)階段),這時(shí),綜合器不支持的語句在綜合過程中將忽略掉。綜合器對(duì)源VHDL文件的綜合是針對(duì)某一PLD供應(yīng)商的產(chǎn)品系列的,因此,綜合后的結(jié)果是可以為硬件系統(tǒng)所接受,具有硬件可實(shí)現(xiàn)性。應(yīng)用VHDL的EDA過程3.目標(biāo)器件的布線/適配邏輯綜合通過后必須利用適配器將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作,適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時(shí)序仿真。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,產(chǎn)生最終的下載文件,如JEDEC格式的文件。適配所選定的目標(biāo)器件(FPGA/CPLD芯片)必須屬于原綜合器指定的目標(biāo)器件系列。對(duì)于一般的可編程模擬器件所對(duì)應(yīng)的EDA軟件來說,一般僅需包含一個(gè)適配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應(yīng)商自己提供,因?yàn)檫m配器的適配對(duì)象直接與器件結(jié)構(gòu)相對(duì)應(yīng)。應(yīng)用VHDL的EDA過程4.目標(biāo)器件的編程/下載如果編譯、綜合、布線/適配和行為仿真、功能仿真、時(shí)序仿真等過程都沒有發(fā)現(xiàn)問題,即滿足原設(shè)計(jì)的要求,則可以將由FPGA/CPLD布線/適配器產(chǎn)生的配置/下載文件通過編程器或下載電纜載入目標(biāo)芯片F(xiàn)PGA或CPLD中。應(yīng)用VHDL的EDA過程5.設(shè)計(jì)過程中的有關(guān)仿真

在綜合以前可以先對(duì)VHDL所描述的內(nèi)容進(jìn)行行為仿真,即將VHDL設(shè)計(jì)源程序直接送到VHDL仿真器中仿真,這就是所謂的VHDL行為仿真。因?yàn)榇藭r(shí)的仿真只是根據(jù)VHDL的語義進(jìn)行的,與具體電路沒有關(guān)系。在這時(shí)的仿真中,可以充分發(fā)揮VHDL中的適用于仿真控制的語句及有關(guān)的預(yù)定義函數(shù)和庫文件。

應(yīng)用VHDL的EDA過程在綜合之后,VHDL綜合器一般都可以生成一個(gè)VHDL網(wǎng)表文件。網(wǎng)表文件中描述的電路與生成的EDIF/XNF等網(wǎng)表文件一致。VHDL網(wǎng)表文件采用VHDL語法,只是其中的電路描述采用了結(jié)構(gòu)描述方法,即首先描述了最基本的門電路,然后將這些門電路用例化語句連接起來。這樣的VHDL網(wǎng)表文件再送到VHDL仿真器中進(jìn)行所謂功能仿真,仿真結(jié)果與門級(jí)仿真器所做的功能仿真的結(jié)果基本一致。應(yīng)用VHDL的EDA過程

需要注意的是,圖1.1中有兩個(gè)仿真器,一是VHDL仿真器,另一個(gè)是門級(jí)仿真器,它們都能進(jìn)行功能仿真和時(shí)序仿真。所不同的是仿真用的文件格式不同,即網(wǎng)表文件不同。這里所謂的網(wǎng)表(Netlist),是特指電路網(wǎng)絡(luò),網(wǎng)表文件描述了一個(gè)電路網(wǎng)絡(luò)。目前流行多種網(wǎng)表文件格式,其中最通用的是EDIF格式的網(wǎng)表文件,XilinxXNF網(wǎng)表文件格式也很流行,不過一般只在使用Xilinx的FPGA/CPLD時(shí)才會(huì)用到XNF格式。VHDL文件格式也可以用來描述電路網(wǎng)絡(luò),即采用VHDL語法描述各級(jí)電路互連,稱之為VHDL網(wǎng)表。應(yīng)用VHDL的EDA過程

功能仿真是僅對(duì)VHDL描述的邏輯功能進(jìn)行測(cè)試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)的要求,仿真過程不涉及具體器件的硬件特性,如延時(shí)特性。時(shí)序仿真是接近真實(shí)器件運(yùn)行的仿真,仿真過程中已將器件特性考慮進(jìn)去了,因而,仿真精度要高得多。但時(shí)序仿真的仿真文件必須來自針對(duì)具體器件的布線/適配器所產(chǎn)生的仿真文件。綜合后所得的EDIF/XNF門級(jí)網(wǎng)表文件通常作為FPGA布線器或CPLD適配器的輸入文件。通過布線/適配的處理后,布線/適配器將生成一個(gè)VHDL網(wǎng)表文件,這個(gè)網(wǎng)表文件中包含了較為精確的延時(shí)信息,網(wǎng)表文件中描述的電路結(jié)構(gòu)與布線/適配后的結(jié)果是一致的。此時(shí),將這個(gè)VHDL網(wǎng)表文件送到VHDL仿真器中進(jìn)行仿真,就可以得到精確的時(shí)序仿真結(jié)果了。應(yīng)用VHDL的EDA過程6.硬件仿真/硬件測(cè)試這里所謂的硬件仿真是針對(duì)ASIC設(shè)計(jì)而言的。在ASIC設(shè)計(jì)中,比較常用的方法是利用FPGA對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)行功能檢測(cè),通過后再將其VHDL設(shè)計(jì)以ASIC形式實(shí)現(xiàn);而硬件測(cè)試則是針對(duì)FPGA或CPLD直接用于應(yīng)用系統(tǒng)的檢測(cè)而言的。應(yīng)用VHDL的EDA過程硬件仿真和硬件測(cè)試的目的,是為了在更真實(shí)的環(huán)境中檢驗(yàn)VHDL設(shè)計(jì)的運(yùn)行情況,特別是對(duì)于VHDL程序設(shè)計(jì)上不是十分規(guī)范、語義上含有一定歧義的程序。一般的仿真器包括VHDL行為仿真器和VHDL功能仿真器,它們對(duì)于同一VHDL設(shè)計(jì)的“理解”,即仿真模型的產(chǎn)生,與VHDL綜合器的“理解”,即綜合模型的產(chǎn)生,常常是不一致的。此外,由于目標(biāo)器件功能的可行性約束,綜合器對(duì)于設(shè)計(jì)的“理解”常在一有限范圍內(nèi)選擇,而VHDL仿真器的“理解”是純軟件行為,其“理解”的選擇范圍要寬得多,結(jié)果這種“理解”的偏差勢(shì)必導(dǎo)致仿真結(jié)果與綜合后實(shí)現(xiàn)的硬件電路在功能上的不一致。當(dāng)然,還有許多其他的因素也會(huì)產(chǎn)生這種不一致,由此可見,VHDL設(shè)計(jì)的硬件仿真和硬件測(cè)試是十分必要的??删幊踢壿嬈骷陌l(fā)展歷史及前景PLD的發(fā)展進(jìn)程最早的可編程邏輯器件出現(xiàn)在20世紀(jì)70年代初,主要是可編程只讀存儲(chǔ)器(PROM)和可編程邏輯陣列(PLA)。20世紀(jì)70年代末出現(xiàn)了可編程陣列邏輯(PAL—ProgrammableArrayLogic)器件。20世紀(jì)80年代初期,美國Lattice公司推出了一種新型的PLD器件,稱為通用陣列邏輯(GAL-GenericArrayLogic),一般認(rèn)為它是第二代PLD器件。隨著技術(shù)的進(jìn)步,生產(chǎn)工藝的不斷改進(jìn),器件規(guī)模不斷擴(kuò)大,邏輯功能不斷增強(qiáng),各種可編程邏輯器件如雨后春筍般地涌現(xiàn),如PROM、EPROM、E2PROM等??删幊踢壿嬈骷陌l(fā)展歷史及前景在EPROM基礎(chǔ)上出現(xiàn)的高密度可編程邏輯器件稱為EPLD或CPLD?,F(xiàn)在一般把超過某一集成度的PLD器件都稱為CPLD。在20世紀(jì)80年代中期,美國Xilinx公司首先推出了現(xiàn)場可編程門陣列(FPGA)器件。FPGA器件采用邏輯單元陣列結(jié)構(gòu)和靜態(tài)隨機(jī)存取存儲(chǔ)器工藝,設(shè)計(jì)靈活,集成度高,可無限次反復(fù)編程,并可現(xiàn)場模擬調(diào)試驗(yàn)證。在20世紀(jì)90年代初,Lattice公司又推出了在系統(tǒng)可編程大規(guī)模集成電路(ispLSI)。可編程邏輯器件的發(fā)展歷史及前景表2.1Altera系列產(chǎn)品主要性能可編程邏輯器件的發(fā)展歷史及前景

美國Xilinx公司在1985年推出了世界上第一塊現(xiàn)場可編程門陣列(FPGA)器件,最初3個(gè)完整的系列產(chǎn)品分別命名為XC2000、XC3000和XC4000,共有19個(gè)品種,后又增加了低電壓(3.3V)的“L”系列、多I/O引腳的“H”系列及更高速的“A”系列,并推出了與XC3000兼容的XC3100/A系列,在XC4000的基礎(chǔ)上又增加了“E”和“EX”系列。在1995年,Xilinx又增加了XC5000、XC6200和XC8100FPGA系列,并取得了突破性進(jìn)展。而后又推出了Spartan和Virture系列。Xilinx還有3個(gè)EPLD系列產(chǎn)品:XC7200、XC7300和XC9500,如表2.2所示??删幊踢壿嬈骷陌l(fā)展歷史及前景表2.2Xilinx系列產(chǎn)品主要性能可編程邏輯器件的發(fā)展歷史及前景Lattice公司成立于1983年,是E2CMOS技術(shù)的開拓者,發(fā)明了GAL器件,是低密度PLD的最大供應(yīng)商。該公司于20世紀(jì)90年代開始進(jìn)入HDPLD領(lǐng)域,并推出了pLSI/ispLSI器件,實(shí)現(xiàn)了在系統(tǒng)可編程技術(shù)(ISP)。ISP使用戶能夠在無須從系統(tǒng)板上拔下芯片或從系統(tǒng)中取出電路板的情況下,改變芯片的邏輯內(nèi)容乃至改變整個(gè)電子系統(tǒng)的功能。這種技術(shù)能大大縮短設(shè)計(jì)周期,簡化生產(chǎn)流程,降低設(shè)計(jì)成本。Lattice公司目前的pLSI/ispLSI器件主要有6個(gè)系列:pLSI/ispLSI1000、2000、3000、5000、6000和8000系列,如表2.3所示??删幊踢壿嬈骷陌l(fā)展歷史及前景表2.3Lattice系列產(chǎn)品主要性能可編程邏輯器件的分類1.按集成密度分類可編程邏輯器件從集成密度上可分為低密度可編程邏輯器件(LDPLD)和高密度可編程邏輯器件(HDPLD)兩類。LDPLD主要指早期發(fā)展起來的PLD,它包括PROM、PLA、PAL和GAL四種,其集成密度一般小于700門/片。這里的門是指PLD等效門??删幊踢壿嬈骷姆诸怘DPLD包括EPLD、CPLD和FPGA三種,其集成密度大于700門/片。隨著集成工藝的發(fā)展,HDPLD的集成密度不斷增加,性能不斷提高。如Altera公司的EPM9560,其密度為12000門/片,Lattice公司的pLSI/ispLSI3320為14000門/片,AMD公司的M5-512為20000門/片,Xilinx公司的XC4020為20000門/片,等等。目前集成度最高的HDPLD可達(dá)25萬門/片??删幊踢壿嬈骷姆诸?.按編程方式分類可編程邏輯器件的編程方式分為兩類:一類是一次性編程(OneTimeProgrammable,簡稱OTP)器件;另一類是可多次編程器件。OTP器件只允許對(duì)器件編程一次,編程后不能修改,其優(yōu)點(diǎn)是集成度高、工作頻率和可靠性高、抗干擾性強(qiáng)??啥啻尉幊唐骷膬?yōu)點(diǎn)是可多次修改設(shè)計(jì),特別適合于系統(tǒng)樣機(jī)的研制??删幊踢壿嬈骷姆诸惪删幊踢壿嬈骷木幊绦畔⒕鎯?chǔ)在可編程元件中。根據(jù)各種可編程元件的結(jié)構(gòu)及編程方式,可編程邏輯器件通常又可以分為四類:①采用一次性編程的熔絲(Fuse)或反熔絲(Antifuse)元件的可編程器件。②采用紫外線擦除、電可編程元件,即采用EPROM、UVCMOS工藝結(jié)構(gòu)的可編程器件。③采用電擦除、電可編程元件。其中一種是E2PROM,即采用E2CMOS工藝結(jié)構(gòu)的可編程器件;另一種是采用快閃存儲(chǔ)單元(FlashMemory)結(jié)構(gòu)的可編程器件。可編程邏輯器件的分類④基于靜態(tài)存儲(chǔ)器SRAM結(jié)構(gòu)的編程器件。以上四類器件中第①類屬于一次性編程器件,第②、③、④類屬于可多次編程器件。基于EPROM、E2PROM和快閃(Flash)存儲(chǔ)器的可編程器件的優(yōu)點(diǎn)是系統(tǒng)斷電后,編程信息不丟失。其中基于E2PROM和快閃存儲(chǔ)器的編程器件可以編程100次以上,因而得到廣泛應(yīng)用。在系統(tǒng)編程(ISP-InSystemProgrammable)器件就是利用E2PROM或快閃存儲(chǔ)器來存儲(chǔ)編程信息的?;谥蛔x存儲(chǔ)器的可編程器件還設(shè)有保密位,可以防止非法復(fù)制??删幊踢壿嬈骷姆诸惢赟RAM的可編程器件的缺點(diǎn)是,編程信息在系統(tǒng)斷電后會(huì)丟失,是易失性器件。多數(shù)FPGA是基于SRAM的可編程器件。它在每次上電工作時(shí),需要從器件外部的EPROM、E2PROM或其它存儲(chǔ)體上將編程信息寫入器件的SRAM中。這類可編程器件的優(yōu)點(diǎn)是可進(jìn)行任意次數(shù)的編程,并在工作中可以快速編程,實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置,因而也稱為在線重配置(InCircuitReconfigruable,簡稱ICR)的可編程邏輯器件或可重配置硬件??删幊踢壿嬈骷慕Y(jié)構(gòu)下面介紹幾種可編程元件的編程原理。1.熔絲和反熔絲元件的編程原理最早的可編程邏輯器件采用熔絲編程方式。熔絲編程元件的原理圖如圖1所示?;谌劢z編程鏈接技術(shù)的器件被稱為一次性可編程器件,即OTP,因?yàn)橐坏┤劢z被熔斷,將不能被代替或恢復(fù)原狀。圖1熔絲元件原理圖可編程邏輯器件的結(jié)構(gòu)

采用熔絲編程工藝的PLD有PROM、PAL、EPLD及FPGA的一部分產(chǎn)品。這種編程方式速度較高,但功耗大。它的主要缺點(diǎn)是熔絲燒斷后不能恢復(fù),因此只能一次性編程,不能重復(fù)編程和修改。一次性編程的PLD不適宜在系統(tǒng)的研制、開發(fā)和實(shí)驗(yàn)階段使用。另外,熔絲元件要留出較大的保護(hù)空間,因此占用芯片的面積也比較大??删幊踢壿嬈骷慕Y(jié)構(gòu)反熔絲元件克服了熔絲元件的缺點(diǎn),它通過擊穿介質(zhì)達(dá)到連通線路的目的。圖1.2為反熔絲元件結(jié)構(gòu)原理圖??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.2反熔絲元件結(jié)構(gòu)原理圖圖1.2.b編程后反熔絲元件原理圖圖1.2a編程前反熔絲元件原理圖可編程邏輯器件的結(jié)構(gòu)圖1.3以晶體管為基礎(chǔ)的掩模編程ROM單元1.掩模編程器件ROM是一種掩模編程器件,因?yàn)樗械臄?shù)據(jù)多固化在它的結(jié)構(gòu)中,這是通過光掩模的方法產(chǎn)生出晶體管和金屬連線??删幊踢壿嬈骷慕Y(jié)構(gòu)2.PROM

這種器件引入了以鎳為基礎(chǔ)的熔絲鏈接技術(shù),它最初用來作為存儲(chǔ)器存放計(jì)算機(jī)程序和常數(shù)值,后來也用來實(shí)現(xiàn)一些簡單的邏輯功能。比如查找表和狀態(tài)機(jī)??删幊踢壿嬈骷慕Y(jié)構(gòu)3.EPROM技術(shù)可擦除可編程只讀存儲(chǔ)器技術(shù),Intel公司1971年首先應(yīng)用這樣的技術(shù)。EPROM晶體管和標(biāo)準(zhǔn)的MOS管的基本結(jié)構(gòu)相同,但是多了由氧化層絕緣的多晶硅浮置柵如下圖所示。可編程邏輯器件的結(jié)構(gòu)當(dāng)它處于未編程狀態(tài)時(shí),浮置柵不帶電,不影響控制柵的一般功能。為了對(duì)晶體管編程,給控制柵和漏極端子之間加大電壓(12V),晶體管在高壓下,高能電子穿越氧化層進(jìn)入浮置柵。當(dāng)編程撤銷后,負(fù)電荷存儲(chǔ)在浮置柵中,浮置柵中的負(fù)電荷阻止了控制柵的正常工作,這樣就使得未編程和編程形成了兩種狀態(tài)。EPROM可以通過將浮置柵放電來擦除,放電可以用紫外線源對(duì)其照射可編程邏輯器件的結(jié)構(gòu)4.EEPROM技術(shù)電可擦除可編程只讀存儲(chǔ)器,一個(gè)EEPROM單元大約等同于EPROM的2.5倍,因?yàn)樗藘蓚€(gè)晶體管和管間距離。EEPROM和EPROM相似,也包含浮置柵,但是圍繞著浮置柵的氧化層非常薄第二個(gè)晶體管可以擦除單元電荷。可編程邏輯器件的結(jié)構(gòu)5.閃存技術(shù)快閃存儲(chǔ)器(FlashMemory)對(duì)E2PROM進(jìn)行了改進(jìn),它可以在ms內(nèi)擦除全部或一段被存儲(chǔ)信息,而不像E2PROM那樣一次擦除一個(gè)字節(jié)??扉W存儲(chǔ)器的單元結(jié)構(gòu)與EPROM中的疊柵注入MOS管相似,由于片內(nèi)所有疊柵MOS管的源極連在一起,所以擦除時(shí)是將全部存儲(chǔ)單元同時(shí)擦除??删幊踢壿嬈骷慕Y(jié)構(gòu)6.SRAM配置存儲(chǔ)器使用靜態(tài)存儲(chǔ)器SRAM存儲(chǔ)邏輯配置數(shù)據(jù),稱配置存儲(chǔ)器。目前Xilinx公司生產(chǎn)的FPGA主要采用這種編程結(jié)構(gòu)。SRAM基本單元如圖1.5所示。它由兩個(gè)CMOS互耦反相器和一個(gè)MOS開關(guān)管V組成??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.5Xilinx公司的SRAM結(jié)構(gòu)配置數(shù)據(jù)寫入時(shí),MOS開關(guān)管導(dǎo)通,寫入配置數(shù)據(jù)(0或1)。在工作狀態(tài)下,MOS開關(guān)管處于截止?fàn)顟B(tài),配置單元的數(shù)據(jù)從反相器的Q端讀出。無論存儲(chǔ)0或1,其輸出端處于低阻狀態(tài),若使?fàn)顟B(tài)發(fā)生翻轉(zhuǎn)需要很大的電流,因此這種SRAM結(jié)構(gòu)具有很強(qiáng)的抗干擾性。這種SRAM結(jié)構(gòu)與其它組成方法相比,具有高密度、高速度和高可靠性,同時(shí)這種存儲(chǔ)單元的特殊設(shè)計(jì),還使它具有很高的穩(wěn)定性,即在最壞的供電條件下,也能正常工作??删幊踢壿嬈骷慕Y(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)3.按結(jié)構(gòu)特點(diǎn)分類目前常用的可編程邏輯器件都是從與或陣列和門陣列發(fā)展起來的,所以可以從結(jié)構(gòu)上將其分為兩大類:①陣列型PLD。②現(xiàn)場可編程門陣列FPGA。陣列型PLD的基本結(jié)構(gòu)由與陣列和或陣列組成。簡單PLD(PROM、PLA、PAL和GAL)、EPLD和CPLD都屬于陣列型PLD??删幊踢壿嬈骷慕Y(jié)構(gòu)FPGA具有門陣列的結(jié)構(gòu)形式,它是由許多可編程邏輯單元(或稱邏輯功能塊)排成陣列組成的,這些邏輯單元的結(jié)構(gòu)和與或陣列的結(jié)構(gòu)不同,所以也將FPGA稱為單元型PLD。除了以上分類法以外,有些地方將可編程邏輯器件分為簡單PLD、復(fù)雜PLD和FPGA三大類,也有人將可編程邏輯器件分為簡單PLD和復(fù)雜PLD(CPLD)兩類,而將FPGA劃入CPLD的范圍之內(nèi)??傊删幊踢壿嬈骷N類繁多,其分類標(biāo)準(zhǔn)不是很嚴(yán)格。但盡管如此,了解和掌握可編程邏輯器件的結(jié)構(gòu)特點(diǎn),對(duì)于可編程邏輯器件的設(shè)計(jì)實(shí)現(xiàn)和開發(fā)應(yīng)用都十分重要,因此下面將簡要介紹陣列型PLD和FPGA的主要特點(diǎn)??删幊踢壿嬈骷慕Y(jié)構(gòu)陣列型可編程邏輯器件陣列型PLD包括PROM、PLA、PAL、GAL、EPLD和CPLD。由于EPLD和CPLD都是在PAL和GAL基礎(chǔ)上發(fā)展起來的,因此下面首先介紹簡單PLD的結(jié)構(gòu)特點(diǎn),然后再介紹EPLD和CPLD的結(jié)構(gòu)特點(diǎn)。可編程邏輯器件的結(jié)構(gòu)簡單PLD的基本結(jié)構(gòu)1.PLD電路的表示方法因?yàn)镻LD內(nèi)部電路的連接規(guī)模很大,用傳統(tǒng)的邏輯電路表示方法很難描述PLD的內(nèi)部結(jié)構(gòu),所以對(duì)PLD進(jìn)行描述時(shí)采用了一種特殊的簡化方法。

PLD的輸入、輸出緩沖器都采用了互補(bǔ)輸出結(jié)構(gòu),其表示法如圖1.6所示??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.6PLD緩沖器表示法可編程邏輯器件的結(jié)構(gòu)PLD的與門表示法如圖1.7(a)所示。圖中與門的輸入線通常畫成行(橫)線,與門的所有變量都稱為輸入項(xiàng),并畫成與行線垂直的列線以表示與門的輸入。列線與行線相交的交叉處若有“·”,表示有一個(gè)耦合元件固定連接;若有“×”,則表示是編程連接;若交叉處無標(biāo)記,則表示不連接(被擦除)。與門的輸出稱為乘積項(xiàng)P,圖1.7(a)中與門輸出P=A·B·D?;蜷T可以用類似的方法表示,也可以用傳統(tǒng)的方法表示,如圖1.7(b)所示。可編程邏輯器件的結(jié)構(gòu)圖1.7PLD的與門表示法和或門表示法可編程邏輯器件的結(jié)構(gòu)

圖1.8PLD與門的簡略表示法可編程邏輯器件的結(jié)構(gòu)圖1.8是PLD中與門的簡略表示法,圖中與門P1的全部輸入項(xiàng)接通,因此這種狀態(tài)稱為與門的缺省(Default)狀態(tài)。為簡便起見,對(duì)于這種全部輸入項(xiàng)都接通的缺省狀態(tài),可以用帶有“×”的與門符號(hào)表示,如圖中的P2=P1=0均表示缺省狀態(tài)。P3中任何輸入項(xiàng)都不接通,即所有輸入都懸空,因此P3=1,也稱為懸浮“1”狀態(tài)??删幊踢壿嬈骷慕Y(jié)構(gòu)2.簡單PLD的基本結(jié)構(gòu)簡單PLD的基本結(jié)構(gòu)框圖如圖1.9所示。圖中,“與陣列”和“或陣列”是電路的主體,主要用來實(shí)現(xiàn)組合邏輯函數(shù)。輸入電路由緩沖器組成,它使輸入信號(hào)具有足夠的驅(qū)動(dòng)能力,并產(chǎn)生互補(bǔ)輸入信號(hào)。輸出電路可以提供不同的輸出方式,如直接輸出(組合方式)或通過寄存器輸出(時(shí)序方式)。此外,輸出端口上往往帶有三態(tài)門,通過三態(tài)門控制數(shù)據(jù)直接輸出或反饋到輸入端。通常,PLD電路中只有部分電路可以編程或組態(tài),PROM、PLA、PAL和GAL四種PLD電路主要是編程情況和輸出結(jié)構(gòu)不同,因而電路結(jié)構(gòu)也不相同,表1.1列出了四種PLD電路的結(jié)構(gòu)特點(diǎn)??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.9簡單PLD的基本結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)圖1.10PROM陣列結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)圖1.11FPLA陣列結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)圖1.12PAL和GAL陣列結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)2.EPLD和CPLD的基本結(jié)構(gòu)

EPLD和CPLD是從PAL、GAL發(fā)展起來的陣列型高密度PLD器件,它們大多采用了CMOSEPROM、E2PROM和快閃存儲(chǔ)器等編程技術(shù),因而具有高密度、高速度和低功耗等特點(diǎn)。目前主要的半導(dǎo)體器件公司,如Xilinx,Altera,Lattice和AMD公司等,在各自生產(chǎn)的高密度PLD產(chǎn)品中,都有自己的特點(diǎn),但總體結(jié)構(gòu)大致是相同的。大多數(shù)EPLD#,CPLD器件中至少包含了三種結(jié)構(gòu):可編程邏輯宏單元;可編程I/O單元;可編程內(nèi)部連線??删幊踢壿嬈骷慕Y(jié)構(gòu)1.可編程邏輯宏單元邏輯宏單元內(nèi)部主要包括與或陣列、可編程觸發(fā)器和多路選擇器等電路,能獨(dú)立地配置為時(shí)序或組合工作方式。EPLD器件與GAL器件相似,其邏輯宏單元同I/O做在一起,稱為輸出邏輯宏單元,但其宏單元及與陣列數(shù)目比GAL大得多。CPLD器件的宏單元在內(nèi)部,稱為內(nèi)部邏輯宏單元。EPLD#,CPLD除了密度高之外,許多優(yōu)點(diǎn)都反映在邏輯宏單元上:可編程邏輯器件的結(jié)構(gòu)①多觸發(fā)器結(jié)構(gòu)和“隱埋”觸發(fā)器結(jié)構(gòu)。

GAL器件每個(gè)輸出宏單元只有一個(gè)觸發(fā)器,而EPLD和CPLD的宏單元內(nèi)通常含兩個(gè)或兩個(gè)以上的觸發(fā)器,其中只有一個(gè)觸發(fā)器與輸出端相連,其余觸發(fā)器的輸出不與輸出端相連,但可以通過相應(yīng)的緩沖電路反饋到與陣列,從而與其它觸發(fā)器一起構(gòu)成較復(fù)雜的時(shí)序電路。這些不與輸出端相連的觸發(fā)器就稱為“隱埋”觸發(fā)器。這種結(jié)構(gòu)對(duì)于引腳數(shù)有限的EPLD和CPLD器件來說,可以增加觸發(fā)器數(shù)目,即增加其內(nèi)部資源??删幊踢壿嬈骷慕Y(jié)構(gòu)②乘積項(xiàng)共享結(jié)構(gòu)。在PAL和GAL的與或陣列中,每個(gè)或門的輸入乘積項(xiàng)最多為7個(gè)或8個(gè),當(dāng)要實(shí)現(xiàn)多于8個(gè)乘積項(xiàng)的“與—或”邏輯函數(shù)時(shí),必須將“與—或”函數(shù)表達(dá)式進(jìn)行邏輯變換。在EPLD和CPLD的宏單元中,如果輸出表達(dá)式的與項(xiàng)較多,對(duì)應(yīng)的或門輸入端不夠用時(shí),可以借助可編程開關(guān)將同一單元(或其它單元)中的其它或門與之聯(lián)合起來使用,或者在每個(gè)宏單元中提供未使用的乘積項(xiàng)供其它宏單元使用和共享。可編程邏輯器件的結(jié)構(gòu)③異步時(shí)鐘和時(shí)鐘選擇。一般GAL器件只能實(shí)現(xiàn)同步時(shí)序電路,在EPLD和CPLD器件中各觸發(fā)器的時(shí)鐘可以異步工作,有些器件中觸發(fā)器的時(shí)鐘還可以通過數(shù)據(jù)選擇器或時(shí)鐘網(wǎng)絡(luò)進(jìn)行選擇。此外,邏輯宏單元內(nèi)觸發(fā)器的異步清零和異步置位也可以用乘積項(xiàng)進(jìn)行控制,因而使用更加靈活??删幊踢壿嬈骷慕Y(jié)構(gòu)2.可編程I/O單元輸入/輸出單元,簡稱I/O單元(或IOC),它是內(nèi)部信號(hào)到I/O引腳的接口部分。由于陣列型HDPLD通常只有少數(shù)幾個(gè)專用輸入端,大部分端口均為I/O端,而且系統(tǒng)的輸入信號(hào)常常需要鎖存。因此I/O常作為一個(gè)獨(dú)立單元來處理??删幊踢壿嬈骷慕Y(jié)構(gòu)3.可編程連線陣列可編程連線陣列的作用是在各邏輯宏單元之間以及邏輯宏單元和I/O單元之間提供互連網(wǎng)絡(luò)。各邏輯宏單元通過可編程連線陣列接收來自專用輸入或輸入端的信號(hào),并將宏單元的信號(hào)反饋到其需要到達(dá)的目的地。這種互連機(jī)制有很大的靈活性,它允許在不影響引腳分配的情況下改變內(nèi)部的設(shè)計(jì)??删幊踢壿嬈骷慕Y(jié)構(gòu)現(xiàn)場可編程門陣列(FPGA)FPGA是20世紀(jì)80年代中期出現(xiàn)的高密度可編程邏輯器件。與前面所介紹的陣列型可編程邏輯器件不同,F(xiàn)PGA的結(jié)構(gòu)類似于掩膜可編程門陣列(MPGA),它由許多獨(dú)立的可編程邏輯模塊組成,用戶可以通過編程將這些模塊連接起來實(shí)現(xiàn)不同的設(shè)計(jì)。FPGA兼容了MPGA和陣列型PLD兩者的優(yōu)點(diǎn),因而具有更高的集成度、更強(qiáng)的邏輯實(shí)現(xiàn)能力和更好的設(shè)計(jì)靈活性??删幊踢壿嬈骷慕Y(jié)構(gòu)FPGA的分類不同廠家、不同型號(hào)的FPGA其結(jié)構(gòu)有各自的特色,但就其基本結(jié)構(gòu)來分析,大致有以下幾種分類方法:

1.按邏輯功能塊的大小分類可編程邏輯塊是FPGA的基本邏輯構(gòu)造單元。按照邏輯功能塊的大小不同,可將FPGA分為細(xì)粒度結(jié)構(gòu)和粗粒度結(jié)構(gòu)兩類。細(xì)粒度FPGA的邏輯功能塊一般較小,僅由很小的幾個(gè)晶體管組成,非常類似于半定制門陣列的基本單元,其優(yōu)點(diǎn)是功能塊的資源可以被完全利用,缺點(diǎn)是完成復(fù)雜的邏輯功能需要大量的連線和開關(guān),因而速度慢;可編程邏輯器件的結(jié)構(gòu)粗粒度FPGA的邏輯塊規(guī)模大,功能強(qiáng),完成復(fù)雜邏輯只需較少的功能塊和內(nèi)部連線,因而能獲得較好的性能,缺點(diǎn)是功能塊的資源有時(shí)不能充分被利用。近年來隨著工藝的不斷改進(jìn),F(xiàn)PGA的集成度不斷提高,同時(shí)硬件描述語言(HDL)的設(shè)計(jì)方法得到廣泛應(yīng)用,由于大多數(shù)邏輯綜合工具是針對(duì)門陣列的結(jié)構(gòu)開發(fā)的,細(xì)粒度的FPGA較粗粒度的FPGA可以得到更好的邏輯綜合結(jié)果。因此許多廠家開發(fā)出了一些具有更高集成度的細(xì)粒度FPGA,如Xilinx公司采用MicroVia技術(shù)的一次編程反熔絲結(jié)構(gòu)的XC8100系列,GateField公司采用閃速EPROM控制開關(guān)元件的可再編程GF100K系列等,它們的邏輯功能塊規(guī)模相對(duì)都較小??删幊踢壿嬈骷慕Y(jié)構(gòu)2.按互連結(jié)構(gòu)分類根據(jù)FPGA內(nèi)部的連線結(jié)構(gòu)不同,可將其分為分段互連型和連續(xù)互連型兩類。分段互連型FPGA中有不同長度的多種金屬線,各金屬線段之間通過開關(guān)矩陣或反熔絲編程連接。這種連線結(jié)構(gòu)走線靈活,有多種可行方案,但走線延時(shí)與布局布線的具體處理過程有關(guān),在設(shè)計(jì)完成前無法預(yù)測(cè),設(shè)計(jì)修改將引起延時(shí)性能發(fā)生變化。連續(xù)互連型FPGA是利用相同長度的金屬線,通常是貫穿于整個(gè)芯片的長線來實(shí)現(xiàn)邏輯功能塊之間的互連,連接與距離遠(yuǎn)近無關(guān)。在這種連線結(jié)構(gòu)中,不同位置邏輯單元的連接線是確定的,因而布線延時(shí)是固定和可預(yù)測(cè)的。可編程邏輯器件的結(jié)構(gòu)3.按編程特性分類根據(jù)采用的開關(guān)元件的不同,F(xiàn)PGA可分為一次編程型和可重復(fù)編程型兩類。一次編程型FPGA采用反熔絲開關(guān)元件,其工藝技術(shù)決定了這種器件具有體積小、集成度高、互連線特性阻抗低、寄生電容小及可獲得較高的速度等優(yōu)點(diǎn);此外它還有加密位、反拷貝、抗輻射抗干擾、不需外接PROM或EPROM等特點(diǎn)。但它只能一次編程,一旦將設(shè)計(jì)數(shù)據(jù)寫入芯片后,就不能再修改設(shè)計(jì),因此比較適合于定型產(chǎn)品及大批量應(yīng)用??芍貜?fù)編程型FPGA采用SRAM開關(guān)元件或快閃EPROM控制的開關(guān)元件。FPGA芯片中,每個(gè)邏輯塊的功能以及它們之間的互連模式由存儲(chǔ)在芯片中的SRAM或快閃EPROM中的數(shù)據(jù)決定。可編程邏輯器件的結(jié)構(gòu)SRAM型開關(guān)的FPGA是易失性的,每次重新加電,F(xiàn)PGA都要重新裝入配置數(shù)據(jù)。SRAM型FPGA的突出優(yōu)點(diǎn)是可反復(fù)編程,系統(tǒng)上電時(shí),給FPGA加載不同的配置數(shù)據(jù),即可令其完成不同的硬件功能。這種配置的改變甚至可以在系統(tǒng)的運(yùn)行中進(jìn)行,實(shí)現(xiàn)系統(tǒng)功能的動(dòng)態(tài)重構(gòu)。采用快閃EPROM控制開關(guān)的FPGA具有非易失性和可重復(fù)編程的雙重優(yōu)點(diǎn),但在再編程的靈活性上較SRAM型FPGA差一些,不能實(shí)現(xiàn)動(dòng)態(tài)重構(gòu)。此外,其靜態(tài)功耗較反熔絲型及SRAM型的FPGA高??删幊踢壿嬈骷慕Y(jié)構(gòu)FPGA的基本結(jié)構(gòu)

FPGA具有掩??删幊涕T陣列的通用結(jié)構(gòu),它由邏輯功能塊排成陣列組成,并由可編程的互連資源連接這些邏輯功能塊來實(shí)現(xiàn)不同的設(shè)計(jì)。下面以Xilinx的FPGA為例,分析其結(jié)構(gòu)特點(diǎn)。

FPGA芯片主要由6部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.19FPGA的內(nèi)部基本結(jié)構(gòu)

可編程邏輯器件的結(jié)構(gòu)每個(gè)模塊的功能如下:1.可編程輸入輸出單元(IOB)可編程輸入/輸出單元簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求,其示意結(jié)構(gòu)如圖1.20所示。FPGA內(nèi)的I/O按組分類,每組都能夠獨(dú)立地支持不同的I/O標(biāo)準(zhǔn)。通過軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與I/O物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小,可以改變上、下拉電阻。目前,I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術(shù)可以支持高達(dá)2Gbps的數(shù)據(jù)速率??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.20IOB內(nèi)部結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)外部輸入信號(hào)可以通過IOB模塊的存儲(chǔ)單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA內(nèi)部。當(dāng)外部輸入信號(hào)經(jīng)過IOB模塊的存儲(chǔ)單元輸入到FPGA內(nèi)部時(shí),其保持時(shí)間(HoldTime)的要求可以降低,通常默認(rèn)為0。為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個(gè)組(bank),每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個(gè)bank只能有一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件??删幊踢壿嬈骷慕Y(jié)構(gòu)2.可配置邏輯塊(CLB)

CLB是FPGA內(nèi)的基本邏輯單元。CLB的實(shí)際數(shù)量和特性會(huì)依器件的不同而不同,但是每個(gè)CLB都包含一個(gè)可配置開關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。開關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或RAM。在賽靈思公司公司的FPGA器件中,CLB由多個(gè)(一般為4個(gè)或2個(gè))相同的Slice和附加邏輯構(gòu)成,如圖1.21所示。每個(gè)CLB模塊不僅可以用于實(shí)現(xiàn)組合邏輯、時(shí)序邏輯,還可以配置為分布式RAM和分布式ROM。可編程邏輯器件的結(jié)構(gòu)Slice是賽靈思公司公司定義的基本邏輯單位,其內(nèi)部結(jié)構(gòu)如圖1.22所示,一個(gè)Slice由兩個(gè)4輸入的函數(shù)、進(jìn)位邏輯、算術(shù)邏輯、存儲(chǔ)邏輯和函數(shù)復(fù)用器組成。圖1.21CLB結(jié)構(gòu)示意圖圖1.224輸入slice結(jié)構(gòu)示意圖可編程邏輯器件的結(jié)構(gòu)算術(shù)邏輯包括一個(gè)異或門(XORG)和一個(gè)專用與門(MULTAND),一個(gè)異或門可以使一個(gè)Slice實(shí)現(xiàn)2bit全加操作,專用與門用于提高乘法器的效率;進(jìn)位邏輯由專用進(jìn)位信號(hào)和函數(shù)復(fù)用器(MUXC)組成,用于實(shí)現(xiàn)快速的算術(shù)加減法操作;4輸入函數(shù)發(fā)生器用于實(shí)現(xiàn)4輸入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的兩個(gè)輸入函數(shù)為6輸入,可以實(shí)現(xiàn)6輸入LUT或64比特移位寄存器);進(jìn)位邏輯包括兩條快速進(jìn)位鏈,用于提高CLB模塊的處理速度??删幊踢壿嬈骷慕Y(jié)構(gòu)3.?dāng)?shù)字時(shí)鐘管理模塊(DCM)

大多數(shù)FPGA均提供數(shù)字時(shí)鐘管理(賽靈思公司的全部FPGA均具有這種特性)。賽靈思公司推出最先進(jìn)的FPGA提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過濾功能。可編程邏輯器件的結(jié)構(gòu)4.嵌入式塊RAM(BRAM)

大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器(CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。CAM存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有一個(gè)比較邏輯,寫入CAM中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM,還可以將FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個(gè)重要因素。圖1.23內(nèi)嵌的塊RAM可編程邏輯器件的結(jié)構(gòu)可編程邏輯器件的結(jié)構(gòu)單塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據(jù)需要改變其位寬和深度,但要滿足兩個(gè)原則:首先,修改后的容量(位寬深度)不能大于18k比特;其次,位寬最大不能超過36比特。當(dāng)然,可以將多片塊RAM級(jí)聯(lián)起來形成更大的RAM,此時(shí)只受限于芯片內(nèi)塊RAM的數(shù)量,而不再受上面兩條原則約束。可編程邏輯器件的結(jié)構(gòu)5.豐富的布線資源

布線資源連通FPGA內(nèi)部的所有單元,而連線的長度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。FPGA芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線;第二類是長線資源,用以完成芯片Bank間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時(shí)鐘、復(fù)位等控制信號(hào)線??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.24FPGA內(nèi)部互連布線在實(shí)際中設(shè)計(jì)者不需要直接選擇布線資源,布局布線器可自動(dòng)地根據(jù)輸入邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇布線資源來連通各個(gè)模塊單元。從本質(zhì)上講,布線資源的使用方法和設(shè)計(jì)的結(jié)果有密切、直接的關(guān)系??删幊踢壿嬈骷慕Y(jié)構(gòu)6.底層內(nèi)嵌功能單元

內(nèi)嵌功能模塊主要指DLL(DelayLockedLoop)、PLL(PhaseLockedLoop)、DSP等軟處理核(SoftCore)?,F(xiàn)在越來越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向SOC平臺(tái)過渡。DLL和PLL具有類似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。賽靈思公司生產(chǎn)的芯片上集成了DCM和DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時(shí)集成了PLL和DLL。PLL和DLL可以通過IP核生成的工具方便地進(jìn)行管理和配置。DLL的結(jié)構(gòu)如圖1.25所示??删幊踢壿嬈骷慕Y(jié)構(gòu)圖1.25典型的DLL模塊示意圖可編程邏輯器件的結(jié)構(gòu)7.內(nèi)嵌專用硬核

內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指FPGA處理能力強(qiáng)大的硬核(HardCore),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十Gbps的收發(fā)速度??删幊踢壿嬈骷慕Y(jié)構(gòu)賽靈思公司的高端產(chǎn)品不僅集成了PowerPC系列CPU,還內(nèi)嵌了DSPCore模塊,其相應(yīng)的系統(tǒng)級(jí)設(shè)計(jì)工具是EDK和PlatformStudio,并依此提出了片上系統(tǒng)(SystemonChip)的概念。通過PowerPC?、Miroblaze、Picoblaze等平臺(tái),能夠開發(fā)標(biāo)準(zhǔn)的DSP處理器及其相關(guān)應(yīng)用,達(dá)到SOC的開發(fā)目的。此外,新推出賽靈思的FPGA系列如Virtex-5LXT還內(nèi)建了PCIExpress和三態(tài)以太網(wǎng)MAC硬核(TEMAC),與軟核實(shí)現(xiàn)方式相比,硬核可以把功耗降低5~10倍,節(jié)約將近90%的邏輯資源??删幊踢壿嬈?/p>

溫馨提示

  • 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)論