EDA技術(shù)及應(yīng)用全套教學(xué)課件_第1頁
EDA技術(shù)及應(yīng)用全套教學(xué)課件_第2頁
EDA技術(shù)及應(yīng)用全套教學(xué)課件_第3頁
EDA技術(shù)及應(yīng)用全套教學(xué)課件_第4頁
EDA技術(shù)及應(yīng)用全套教學(xué)課件_第5頁
已閱讀5頁,還剩529頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

EDA技術(shù)與應(yīng)用單元一EDA技術(shù)與可編程邏輯器件一、

EDA技術(shù)二、可編程邏輯器件一、EDA技術(shù)

EDA(electronicdesignautomation,電子設(shè)計自動化)技術(shù)是微電子和計算機(jī)技術(shù)飛速發(fā)展的產(chǎn)物,它融多學(xué)科于一體,是一門綜合性的學(xué)科。EDA技術(shù)是以計算機(jī)硬件和系統(tǒng)軟件為基本工作平臺,繼承和借鑒前人在電路和系統(tǒng)、數(shù)據(jù)庫、圖形學(xué)、圖論和拓?fù)溥壿嫛⒂嬎銛?shù)學(xué)、優(yōu)化理論等多學(xué)科的最新科技成果而研制成的商品化通用支撐軟件和應(yīng)用軟件包,其目的在于幫助電子設(shè)計工程師在計算機(jī)上完成電路的功能設(shè)計、邏輯設(shè)計、性能分析、時序測試直至PCB(印制電路板)的自動設(shè)計等。(一)EDA技術(shù)的概念一、EDA技術(shù)

EDA技術(shù)的范疇?wèi)?yīng)包括電子工程師進(jìn)行電子系統(tǒng)設(shè)計的全過程中期望由計算機(jī)完成的各種輔助工作,包括計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CAM)、計算機(jī)輔助測試(CAT)、計算機(jī)輔助工程(CAE)等。因此,利用EDA技術(shù),電子工程師在計算機(jī)上即可完成電子系統(tǒng)設(shè)計的全過程。一、EDA技術(shù)

“自頂向下”的設(shè)計方法首先從系統(tǒng)級設(shè)計入手,在頂層對整機(jī)電路系統(tǒng)進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計;在方框圖一級進(jìn)行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進(jìn)行描述;在功能一級進(jìn)行驗證,然后用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路網(wǎng)表,其對應(yīng)的物理實現(xiàn)級可以是印制電路板或?qū)S眉呻娐?。(二)EDA技術(shù)的基本特征“自頂向下”的設(shè)計方法1.一、EDA技術(shù)用硬件描述語言(hardwaredescriptionlanguage,HDL)進(jìn)行電路系統(tǒng)的設(shè)計是當(dāng)前EDA技術(shù)的一個重要特征。與傳統(tǒng)的原理圖設(shè)計方法相比,硬件描述語言更適合規(guī)模日益增大的電子系統(tǒng),它還是進(jìn)行邏輯綜合優(yōu)化的重要工具。硬件描述語言能使設(shè)計者在比較抽象的層次上描述設(shè)計的結(jié)構(gòu)和內(nèi)部特征。它的突出優(yōu)點是語言的公開性、設(shè)計與工藝的無關(guān)性、寬范圍的描述能力、便于組織大規(guī)模系統(tǒng)的設(shè)計、便于設(shè)計的復(fù)用和繼承等。硬件描述語言2.一、EDA技術(shù)邏輯綜合和優(yōu)化3.邏輯綜合功能能將高層次的系統(tǒng)行為設(shè)計自動翻譯成門級邏輯的電路描述,做到了設(shè)計與工藝的獨(dú)立。優(yōu)化則是根據(jù)布爾方程等效的原則,對上述綜合生成的電路網(wǎng)表進(jìn)行化簡,用更小更快的綜合結(jié)果替代一些復(fù)雜的邏輯電路單元,根據(jù)指定的目標(biāo)庫映射成新的網(wǎng)表。一、EDA技術(shù)開放性和標(biāo)準(zhǔn)化4.一、EDA技術(shù)一、EDA技術(shù)庫的引用5.

EDA工具之所以能夠完成各種自動設(shè)計過程,關(guān)鍵是有各類庫的支持,如邏輯模擬時的模擬庫、邏輯綜合時的綜合庫、版圖綜合時的版圖庫、測試綜合時的測試庫等,這些庫都是EDA設(shè)計公司與半導(dǎo)體生產(chǎn)廠商緊密合作、共同開發(fā)的。一、EDA技術(shù)二、可編程邏輯器件可編程邏輯器件(programmablelogicdevice,PLD)是20世紀(jì)70年代發(fā)展起來的一種新型邏輯器件,最初是用來解決數(shù)字系統(tǒng)的存儲問題,后來轉(zhuǎn)為各種邏輯應(yīng)用,現(xiàn)在已成為實現(xiàn)數(shù)字系統(tǒng)的重要手段。這種器件在出廠時內(nèi)部已集成了各種硬件資源,如邏輯單元、互聯(lián)線等,但其內(nèi)部的連線不一定需要制造廠完成,用戶可以借助強(qiáng)大的EDA軟件與編程器,自己在實驗室等一般場所改變PLD的內(nèi)部連線,以實現(xiàn)自己所期望的數(shù)字系統(tǒng)。二、可編程邏輯器件PLD的出現(xiàn)是現(xiàn)代數(shù)字系統(tǒng)向著超高集成度、超低功耗、超小封裝和專用化方向發(fā)展的重要基礎(chǔ),它的應(yīng)用和發(fā)展不僅簡化了電路的設(shè)計,降低了成本,提高了系統(tǒng)的可靠性和保密性,而且給數(shù)字系統(tǒng)的設(shè)計帶來了革命性的變化。

簡單可編程邏輯器件主要指早期開發(fā)的PLD,它通常由與陣列和或陣列組成,能夠用來實現(xiàn)任何以“積之和”形式表示的各種布爾邏輯函數(shù)。當(dāng)與和或兩個陣列都可編程時,這個器件就稱為PLA,其變形是PROM、PAL和GAL,前者具有固定的與陣列和可編程的或陣列,后兩者具有可編程的與陣列和固定的或陣列。(一)可編程邏輯器件的分類簡單可編程邏輯器件1.二、可編程邏輯器件二、可編程邏輯器件

PAL和GAL是早期得到廣泛應(yīng)用的可編程邏輯器件,通常一片PAL或GAL可用來代替4~10片中、小規(guī)模集成電路。從編程工藝上看,PAL器件一般用熔絲鏈路作為編程開關(guān),是一次性可編程的;GAL器件則可反復(fù)編程,它采用了E2CMOS工藝,實現(xiàn)了電可擦除與電可改寫,為設(shè)計和修改提供了極大的方便。二、可編程邏輯器件復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,CPLD)是20世紀(jì)80年代后期得到迅速發(fā)展的新一代可編程邏輯器件。早期的PLD結(jié)構(gòu)簡單,具有成本低、速度快、設(shè)計簡便等優(yōu)點,但其規(guī)模較小,通常只有幾百個等效邏輯門,難以實現(xiàn)復(fù)雜的邏輯。為了增加PLD的密度,擴(kuò)充其功能,一些廠家對PLD的結(jié)構(gòu)進(jìn)行了改進(jìn)。例如,在兩個邏輯陣列的基礎(chǔ)上大量增加輸出宏單元、提供更大的與陣列及采用分層結(jié)構(gòu)邏輯陣列等,使PLD逐漸向復(fù)雜可編程邏輯器件過渡。復(fù)雜可編程邏輯器件2.二、可編程邏輯器件

進(jìn)入20世紀(jì)90年代后,CPLD已經(jīng)成為可編程邏輯器件的主流產(chǎn)品,在整個PLD市場上占有較大的份額。它們一般都具有可重復(fù)編程的特性,能方便預(yù)測設(shè)計的時序,具有高速性能。CPLD的集成度一般可達(dá)數(shù)千甚至數(shù)萬門,能夠?qū)崿F(xiàn)較大規(guī)模的電路集成。二、可編程邏輯器件復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,CPLD)是20世紀(jì)80年代后期得到迅速發(fā)展的新一代可編程邏輯器件。早期的PLD結(jié)構(gòu)簡單,具有成本低、速度快、設(shè)計簡便等優(yōu)點,但其規(guī)模較小,通常只有幾百個等效邏輯門,難以實現(xiàn)復(fù)雜的邏輯。為了增加PLD的密度,擴(kuò)充其功能,一些廠家對PLD的結(jié)構(gòu)進(jìn)行了改進(jìn)。例如,在兩個邏輯陣列的基礎(chǔ)上大量增加輸出宏單元、提供更大的與陣列及采用分層結(jié)構(gòu)邏輯陣列等,使PLD逐漸向復(fù)雜可編程邏輯器件過渡?,F(xiàn)場可編程門陣列3.二、可編程邏輯器件與傳統(tǒng)的PLD相比,F(xiàn)PGA由于采用了類似門陣列的通用結(jié)構(gòu),規(guī)??梢宰龅幂^大,可實現(xiàn)的功能更強(qiáng),設(shè)計的靈活性也更大。在問世的前10年里,其單片可用門數(shù)以年平均42%的速度增長,目前已突破4000萬門。FPGA中包含豐富的觸發(fā)器資源,有些還具有諸如片上RAM、內(nèi)部總線等許多系統(tǒng)級的功能,因而完全可以實現(xiàn)片上系統(tǒng)的集成。就互聯(lián)結(jié)構(gòu)而言,典型的FPGA通常采用分段互聯(lián)式結(jié)構(gòu),具有走線靈活、便于復(fù)雜功能的多級實現(xiàn)等優(yōu)點,但與此同時也帶來了布線復(fù)雜度增加、輸入至輸出的延時變大及總的性能估計較困難等問題。隨著用戶對FPGA性能要求的多樣化,出現(xiàn)了各種改進(jìn)結(jié)構(gòu)的FPGA。

相對于用戶而言,PLD可像通用器件一樣按一定的規(guī)格型號在市場上購買,其功能的實現(xiàn)完全獨(dú)立于IC(集成電路)工廠,由用戶在實驗室或辦公室即可完成,因此不必像傳統(tǒng)IC那樣花費(fèi)樣片制作等待時間。由于采用先進(jìn)的EDA技術(shù),PLD的設(shè)計和編程均十分方便與有效,整個設(shè)計通常只需幾天便可完成,縮短了產(chǎn)品研制周期,有利于產(chǎn)品的快速上市。(二)可編程邏輯器件的主要特點縮短研制周期1.二、可編程邏輯器件二、可編程邏輯器件降低設(shè)計成本2.制作傳統(tǒng)IC的前期投資費(fèi)用較高,動輒數(shù)萬元,只有在生產(chǎn)批量很大的情況下才有價值。這種設(shè)計方法還需要承擔(dān)很大的風(fēng)險,因為一旦設(shè)計中存在錯誤或設(shè)計不完善,則全套樣片便不能使用,巨額的設(shè)計費(fèi)用將付之東流。采用PLD為降低投資風(fēng)險提供了合理的選擇途徑,它不需要樣片制作費(fèi)用,在設(shè)計的初期或小批量的試制階段,其平均單片成本很低。如果要轉(zhuǎn)入大批量生產(chǎn),由于已用PLD進(jìn)行了原型驗證,也比直接設(shè)計IC費(fèi)用少、成功率高。二、可編程邏輯器件提高設(shè)計靈活性3.(三)可編程邏輯器件的基本結(jié)構(gòu)PLD的基本結(jié)構(gòu)框圖二、可編程邏輯器件二、可編程邏輯器件電路符號表示1.PLD的輸入緩沖器電路二、可編程邏輯器件PLD中或陣列的簡化圖形PLD中與陣列的簡化圖形二、可編程邏輯器件在陣列中連接關(guān)系的表示十字交叉線表示此二線未連接;交叉線的交點上打黑點,表示固定連接,即在PLD出廠時已連接;交叉線的交點上打叉,表示該點可編程,即在PLD出廠后通過編程可隨時改變其連接。二、可編程邏輯器件二、可編程邏輯器件與-或陣列2.與-或陣列是PLD中最基本的結(jié)構(gòu),通過改變與陣列和或陣列的內(nèi)部連接,就可以實現(xiàn)不同的邏輯功能。PROM的結(jié)構(gòu)示意圖二、可編程邏輯器件PLA的結(jié)構(gòu)示意圖二、可編程邏輯器件二、可編程邏輯器件宏單元3.邏輯宏單元具有以下幾個作用。(1)提供時序電路所需的寄存器和觸發(fā)器。(2)提供多種形式的輸入/輸出方式。(3)提供內(nèi)部信號反饋,控制輸出邏輯極性。(4)分配控制信號,如寄存器的時鐘和復(fù)位信號、三態(tài)門的輸出使能信號等。

1)PLD產(chǎn)品的結(jié)構(gòu)特點Altera產(chǎn)品的基本構(gòu)造塊是邏輯單元。在Classic、MAX3000A、MAX5000、MAX7000、MAX9000系列中,邏輯單元又稱為宏單元,它由可編程的與陣列和固定的或陣列構(gòu)成;在FLEX8000、FLEX6000、FLEX10K、APEX20K、ACEX1K等系列中,邏輯單元采用查找表(lookuptable,LUT)結(jié)構(gòu)構(gòu)成。所謂的查找表結(jié)構(gòu),就是在RAM中預(yù)先存入所要實現(xiàn)函數(shù)的真值表數(shù)值,然后以輸入變量作為地址,從RAM中選擇相應(yīng)的數(shù)值作為邏輯函數(shù)的輸出值,這樣就可以實現(xiàn)輸入變量的所有可能的邏輯函數(shù)。(四)Altera公司的可編程邏輯器件Altera公司的產(chǎn)品簡介1.二、可編程邏輯器件二、可編程邏輯器件不同結(jié)構(gòu)的PLD側(cè)重的應(yīng)用場合不同,如MAX系列的宏單元分解組合邏輯的功能很強(qiáng),一個宏單元可以分解數(shù)十個組合邏輯輸入,因此MAX系列的產(chǎn)品較適合設(shè)計組合邏輯電路;而FLEX系列的制造工藝允許它擁有較多的查找表和觸發(fā)器,從邏輯單元的數(shù)量來看,后者遠(yuǎn)高于前者,因此采用查找表結(jié)構(gòu)的產(chǎn)品更適合用來設(shè)計需要用到大量觸發(fā)器的復(fù)雜時序邏輯電路。二、可編程邏輯器件由于PLD一般具有可重復(fù)編程的特點,所以其內(nèi)部必須采用一定的工藝來實現(xiàn)這種功能。FLEX、APEX、ACEX等系列一般采用SRAM(靜態(tài)隨機(jī)存儲器)工藝;MAX系列則一般采用E2PROM(電可擦除可編程存儲器)工藝;而早期的Classic、MAX5000系列則大多采用EPROM(可擦除可編程存儲器)工藝。二、可編程邏輯器件

QuartusⅡ是一個功能強(qiáng)大、易學(xué)易用的EDA開發(fā)工具,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境。設(shè)計者不需要精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),而只需要用自己熟悉的設(shè)計輸入工具(如原理圖或高級語言)把自己的設(shè)計輸入計算機(jī)中,QuartusⅡ就能夠自動把這些設(shè)計轉(zhuǎn)換成最終所需的數(shù)據(jù)格式,用戶只要把最后的數(shù)據(jù)通過下載電纜下載到芯片中,就能完成所有設(shè)計工作。2)Altera的開發(fā)工具二、可編程邏輯器件CPLD的基本結(jié)構(gòu)2.二、可編程邏輯器件

MAX7000系列產(chǎn)品主要由邏輯陣列塊(LAB)及它們之間的連線構(gòu)成。每個LAB由16個宏單元組成,多個LAB通過可編程連線陣列(PIA)和全局總線連接在一起,全局總線從所有的專用輸入、I/O引腳和宏單元饋入信號。每個LAB的輸入信號包括來自作為通用邏輯輸入的PIA的36個信號、全局控制信號和從I/O引腳到寄存器的直接輸入信號。1)邏輯陣列塊二、可編程邏輯器件2)宏單元宏單元的結(jié)構(gòu)框圖二、可編程邏輯器件3)擴(kuò)展乘積項雖然大多數(shù)邏輯函數(shù)能夠用每個宏單元中的5個乘積項實現(xiàn),但某些邏輯函數(shù)比較復(fù)雜,要實現(xiàn)它們需要附加乘積項。這時,可以利用其他宏單元以提供所需的邏輯資源。對于MAX7000系列產(chǎn)品,還可以利用其結(jié)構(gòu)中具有的共享和并聯(lián)擴(kuò)展乘積項,這兩種擴(kuò)展項作為附加的乘積項直接送到該LAB的任意一個宏單元中。利用擴(kuò)展項可保證在實現(xiàn)邏輯綜合時,用盡可能少的邏輯資源,得到盡可能快的工作速度。二、可編程邏輯器件4)可編程連線陣列可編程連線陣列(PIA)用于將各個LAB相互聯(lián)接,構(gòu)成所需的邏輯布線通道。這個全局總線是一種可編程的通道,可以把器件中任何信號連接到其目的地。所有MAX7000器件的專用輸入、I/O引腳和宏單元輸出都連接到PIA,而PIA可把這些信號送到整個器件內(nèi)的各個地方。二、可編程邏輯器件5)I/O控制塊I/O控制塊的結(jié)構(gòu)圖

I/O控制塊允許每個I/O引腳單獨(dú)地配置為輸入、輸出和雙向三種工作方式。所有I/O引腳都有一個三態(tài)緩沖器,它能由全局輸出使能信號中的一個控制,或者把使能端直接連接到地或電源上。I/O控制塊有兩個全局輸出使能信號,它們由兩個專用的、低電平有效的輸出使能引腳OE1和OE2來驅(qū)動。二、可編程邏輯器件FPGA的基本結(jié)構(gòu)3.二、可編程邏輯器件

EAB是一種輸入端和輸出端帶有寄存器的RAM,它既可以作為存儲器使用,也可以用來實現(xiàn)邏輯功能。當(dāng)作為存儲器使用時,每個EAB可提供2048個比特位,用來構(gòu)成RAM、ROM、FIFORAM或雙口RAM。每個EAB單獨(dú)使用時,可配置成以下幾種尺寸:256×8,512×4,1024×2和2048×1。多個EAB可組合成一個規(guī)模更大的RAM或ROM使用。例如,兩個256×8的RAM可組合成一個256×16的RAM;兩個512×4的RAM可組合成一個512×8的RAM。1)嵌入式陣列二、可編程邏輯器件EAB的另一個應(yīng)用是用來實現(xiàn)復(fù)雜的邏輯功能。每個EAB可相當(dāng)于100~300個等效門,能方便地構(gòu)成乘法器、加法器、糾錯電路等模塊,并由這些模塊進(jìn)一步構(gòu)成諸如數(shù)字濾波器、微控制器等系統(tǒng)。具體實現(xiàn)時,邏輯功能是通過配置時編程EAB為只讀模型,生成一個大的LUT來實現(xiàn)的。在LUT中,邏輯功能是通過查表的方式實現(xiàn)的,因而其速度較用常規(guī)邏輯運(yùn)算實現(xiàn)時更快。加上EAB的大容量,使得設(shè)計者能夠在一個邏輯級上完成復(fù)雜的功能,避免了多個LE連接帶來的連線延時。因此,與用LE實現(xiàn)組合邏輯功能相比,EAB不但大大提高了器件的效率與性能,也極大地減小了器件的占用面積。二、可編程邏輯器件2)邏輯單元

LE是FLEX10K結(jié)構(gòu)中的最小單元,它能有效地實現(xiàn)邏輯功能。每個LE包含一個4輸入的LUT、1個帶有同步使能的可編程觸發(fā)器、1個進(jìn)位鏈和1個級聯(lián)鏈。每個LE有兩個輸出分別可以驅(qū)動局部互聯(lián)和快速通道互聯(lián)。二、可編程邏輯器件LE的結(jié)構(gòu)框圖二、可編程邏輯器件

LAB是由一系列相鄰的LE構(gòu)成的。每個LAB包含8個LE、相連的進(jìn)位鏈和級聯(lián)鏈、LAB控制信號和LAB局部互聯(lián)線。LAB構(gòu)成了FLEX10K的主體部分。每個LAB提供4個可供8個LE使用的控制信號,其中2個可用作時鐘,另外2個用作清除/置位邏輯控制。LAB的控制信號可由專用輸入引腳、I/O引腳或借助LAB局部互聯(lián)的任何內(nèi)部信號直接驅(qū)動,專用輸入端一般用作公共的時鐘、清除或置位信號。3)邏輯陣列塊二、可編程邏輯器件FLEX10K的LAB結(jié)構(gòu)框圖二、可編程邏輯器件在FLEX10K中,不同LAB中的LE與器件I/O引腳之間的連接是通過快速通道互聯(lián)實現(xiàn)的??焖偻ǖ朗秦灤┱麄€器件長和寬的一系列水平和垂直的連續(xù)式布線通道,由若干組行連線和列連線組成。每一組行連線視器件大小的不同可以有144根、216根或312根,每一組列連線均為24根。快速通道由行連線帶和列連線帶組成。采用這種布線結(jié)構(gòu),即使對于復(fù)雜的設(shè)計也可預(yù)測其性能。相反,采用其他連線結(jié)構(gòu)(如分段式連線結(jié)構(gòu))會增加邏輯資源之間的延時,從而使性能下降。4)快速通道二、可編程邏輯器件

FLEX10K器件的I/O引腳是由一些I/O單元(IOE)驅(qū)動的。IOE位于快速通道和行與列的末端,包含一個雙向I/O緩沖器和一個寄存器。這個寄存器可以用作需要快速建立時間的外部數(shù)據(jù)的輸入寄存器,也可作為要求快速“時鐘到輸出”性能的輸出寄存器。IOE可以被配置成輸入、輸出或雙向口。5)I/O單元二、可編程邏輯器件

FLEX10K的IOE具有許多有用的特性,如JTAG編程支持、擺率控制、三態(tài)緩沖和漏極開路輸出等。FLEX10K還提供了6個專用輸入引腳,這些引腳用來驅(qū)動IOE存儲器的控制端,使用了專用的布線通道,以便具有比快速通道更短的延時和更小的偏移。專用輸入中的4個輸入引腳可用來驅(qū)動全局信號,內(nèi)部邏輯也可以驅(qū)動這4個全局信號。另外,每個IOE中輸出緩沖器輸出信號的電壓擺率可調(diào),可通過配置達(dá)到低噪聲或高速度的要求。電壓擺率的加快能使速度提高,但這會在器件工作時引入較大的噪聲。二、可編程邏輯器件FPGA的數(shù)據(jù)配置4.

Altera提供了專門的配置器件來存儲基于SRAM工藝的FPGA器件的配置數(shù)據(jù),提供的配置器件支持ISP和多重端口電壓標(biāo)準(zhǔn)。例如,EPC1441和EPC1是專門供FLEX10K器件配置用的E2PROM,它們借助串行數(shù)據(jù)流配置FLEX10K。配置完成后,還可以通過復(fù)位進(jìn)行在線重配置,裝入新數(shù)據(jù),實現(xiàn)新功能。由于重新配置所需的時間少于100ms,所以在系統(tǒng)工作過程中可以實時地改變配置。二、可編程邏輯器件在數(shù)字系統(tǒng)的調(diào)試階段,為了避免多次對配置器件的擦寫而引起器件的損壞,也可以通過Altera的BitBlaster串行下載電纜直接將配置數(shù)據(jù)下載到FPGA中的SRAM。待系統(tǒng)調(diào)試成功后,再將配置數(shù)據(jù)寫入配置器件中。電子系統(tǒng)的發(fā)展必須以電子器件為基礎(chǔ),但并不與之同步,往往系統(tǒng)的設(shè)計需求更快。因而隨著電子系統(tǒng)復(fù)雜度的提高,PLD的規(guī)模不斷地擴(kuò)大,從最初的幾百門到現(xiàn)在的上百萬門。目前,高密度的PLD產(chǎn)品已經(jīng)成為主流器件,PLD已具備了片上系統(tǒng)(systemonchip,SoC)集成的能力,產(chǎn)品性能發(fā)生了巨大的飛躍,這也促使著工藝的不斷進(jìn)步,而每次工藝的改進(jìn),PLD的規(guī)模都將有很大的擴(kuò)展。由于看好高密度PLD的市場前景,世界各大公司紛紛推出自己功能強(qiáng)大的CPLD和FPGA產(chǎn)品。這些高密度、大容量的PLD的出現(xiàn),給現(xiàn)代電子系統(tǒng)(復(fù)雜系統(tǒng))的設(shè)計與實現(xiàn)帶來了巨大的幫助。(五)可編程邏輯器件的發(fā)展趨勢向高密度、大規(guī)模的方向發(fā)展1.二、可編程邏輯器件二、可編程邏輯器件向系統(tǒng)內(nèi)可重構(gòu)的方向發(fā)展2.系統(tǒng)內(nèi)可重構(gòu)是指PLD在置入用戶系統(tǒng)后仍具有改變其內(nèi)部功能的能力。采用系統(tǒng)內(nèi)可重構(gòu)技術(shù),使得系統(tǒng)內(nèi)硬件的功能可以像軟件那樣通過編程來配置,從而在電子系統(tǒng)中引入“軟硬件”的全新概念。它不僅使電子系統(tǒng)的設(shè)計和產(chǎn)品性能的改進(jìn)與擴(kuò)充變得十分簡便,還使新一代電子系統(tǒng)具有極強(qiáng)的靈活性和適應(yīng)性,為許多復(fù)雜信號的處理和信息加工的實現(xiàn)提供了新的思路與方法。二、可編程邏輯器件靜態(tài)重構(gòu)

ISP可編程邏輯器件的工作電壓和編程電壓是相同的,編程數(shù)據(jù)可通過一根編程電纜從PC或工作站寫入芯片,設(shè)計者無須把芯片從電路板上取下就能完成芯片功能的重構(gòu),給設(shè)計修改、系統(tǒng)調(diào)試及安裝帶來了極大的方便。二、可編程邏輯器件動態(tài)重構(gòu)是指在系統(tǒng)運(yùn)行期間,根據(jù)需要適時地對芯片重新配置以改變系統(tǒng)的功能,可由基于SRAM技術(shù)的FPGA實現(xiàn)。這類器件可以無限次地被重新編程,利用它可以1s幾次或者1s數(shù)百次地改變器件執(zhí)行的功能,甚至可以只對器件的部分區(qū)域進(jìn)行重構(gòu),此時芯片的其他部分仍可正常工作。二、可編程邏輯器件向低電壓、低功耗的方向發(fā)展3.集成技術(shù)的飛速發(fā)展,工藝水平的不斷提高,節(jié)能潮流在世界的興起,也為半導(dǎo)體工業(yè)提出了降低工作電壓的發(fā)展方向。在全球環(huán)保聲日益強(qiáng)烈和國際環(huán)保標(biāo)準(zhǔn)ISO14000的推動下,半導(dǎo)體制造商紛紛研發(fā)能夠節(jié)能的綠色元件。Philips的XPLA1系列CPLD就是一個代表。該綠色CPLD產(chǎn)品家族由22V10、32MC、64MC和128MC等型號產(chǎn)品組成,是在Philips第二代CPLD基礎(chǔ)上發(fā)展起來的,其功耗是一般CPLD產(chǎn)品的1/1000。二、可編程邏輯器件向高速可預(yù)測延時器件的方向發(fā)展4.當(dāng)前的系統(tǒng)中,由于數(shù)據(jù)處理量的激增,要求數(shù)字系統(tǒng)有大的數(shù)據(jù)吞吐量,加之多媒體技術(shù)的迅速發(fā)展,更多的是圖像的處理,相應(yīng)地要有高速的硬件系統(tǒng),而高速的系統(tǒng)時鐘是必不可少的。PLD若要在高速系統(tǒng)中占有一席之地,也必然向高速發(fā)展。另外,為了保證高速系統(tǒng)的穩(wěn)定性,PLD的延時預(yù)測也是十分重要的。用戶在進(jìn)行系統(tǒng)重構(gòu)時,擔(dān)心的是延時特性是否會因重新布線的改變而改變。延時特性的改變將導(dǎo)致系統(tǒng)重構(gòu)的不穩(wěn)定性,這對龐大而高速的系統(tǒng)而言是不可想象的,其帶來的損失將是巨大的。因此,為了適應(yīng)未來復(fù)雜高速電子系統(tǒng)的要求,PLD的高速可預(yù)測延時也是一個發(fā)展趨勢。二、可編程邏輯器件向混合可編程技術(shù)方向發(fā)展5.可編程模擬器件(programmableanalogdevice,PAD)成為一類新型集成電路。它既屬于模擬集成電路,又同可編程邏輯器件一樣,可由用戶通過現(xiàn)場編程和配置來改變其內(nèi)部連接與元件參數(shù),從而獲得所需要的電路功能。ThankyouEDA技術(shù)與應(yīng)用單元二可編程邏輯器件的設(shè)計與開發(fā)一、可編程邏輯器件的設(shè)計框架二、可編程邏輯器件的開發(fā)環(huán)境三、設(shè)計實例一、可編程邏輯器件的設(shè)計流程可編程邏輯器件的設(shè)計流程設(shè)計輸入設(shè)計實現(xiàn)設(shè)計校驗編程下載系統(tǒng)測試修改實現(xiàn)(一)設(shè)計輸入設(shè)計輸入就是將設(shè)計者所設(shè)計的電路以開發(fā)軟件所要求的某種形式表示出來,并輸入相應(yīng)的軟件中。一、可編程邏輯器件的設(shè)計流程原理圖是圖形化的表達(dá)方式,它利用軟件中所提供的元件符號和連線來描述設(shè)計。其特點是比較直觀,便于進(jìn)行接口設(shè)計和引腳鎖定,容易實現(xiàn)仿真,便于信號的觀察和電路的調(diào)整,系統(tǒng)運(yùn)行速率較高,但當(dāng)描述復(fù)雜電路時則比較煩瑣。為提高這種輸入方式的效率,應(yīng)采用“自頂向下”的邏輯分塊設(shè)計方法。一般而言,若對系統(tǒng)很了解,并且要求系統(tǒng)的工作速率較高,或在大系統(tǒng)中對時間特性要求較高的部分可采用這種輸入方法。原理圖輸入1.一、可編程邏輯器件的設(shè)計流程硬件描述語言輸入采用文本方式進(jìn)行描述設(shè)計,這種方式的描述范圍較寬,從簡單的門電路到復(fù)雜的數(shù)字系統(tǒng)均可描述。特別是在描述復(fù)雜設(shè)計時,非常簡便。但這種描述方式不適合描述接口和連接關(guān)系,并且該輸入方式必須依賴綜合器,只有好的綜合器才能把語言綜合成優(yōu)化的電路。對于大量規(guī)范的、易于語言描述、易于綜合、速率較低的電路,可采用這種輸入方式。常用的硬件描述語言有VerilogHDL、VHDL。硬件描述語言輸入2.一、可編程邏輯器件的設(shè)計流程(二)設(shè)計實現(xiàn)優(yōu)化是指進(jìn)行邏輯化簡,把邏輯描述轉(zhuǎn)變?yōu)樽钸m合在器件中實現(xiàn)的形式;合并是將模塊化設(shè)計產(chǎn)生的多個文件合并成一個網(wǎng)表文件,并使層次設(shè)計平面化。優(yōu)化和合并1.一、可編程邏輯器件的設(shè)計流程映射是根據(jù)所選擇的PLD型號,把設(shè)計分割為多個適合器件內(nèi)部邏輯資源實現(xiàn)的邏輯小塊形式。映射2.一、可編程邏輯器件的設(shè)計流程布局是將已分割的邏輯小塊放到器件內(nèi)部邏輯資源的具體位置,并使它們易于連線,且連線最少;布線是利用器件內(nèi)的布線資源完成各功能塊之間和反饋信號的連接。布局和布線3.一、可編程邏輯器件的設(shè)計流程設(shè)計實現(xiàn)的最后一步是產(chǎn)生可供器件編程使用的數(shù)據(jù)文件。對CPLD而言,產(chǎn)生的是熔絲圖文件(*.JEDEC);對FPGA器件,則產(chǎn)生位數(shù)據(jù)流文件。產(chǎn)生編程文件4.一、可編程邏輯器件的設(shè)計流程設(shè)計校驗就是讓計算機(jī)根據(jù)編譯器所產(chǎn)生的數(shù)據(jù)文件對EDA設(shè)計進(jìn)行模擬,以驗證用戶的設(shè)計是否正確。設(shè)計校驗包括仿真和定時分析兩部分,這兩部分可分別通過仿真器和延時分析器來完成。在仿真文件中加載不同的激勵,可以觀察中間結(jié)果及輸出波形。必要時,可以返回設(shè)計輸入階段,修改設(shè)計輸入,最終達(dá)到設(shè)計要求。(三)設(shè)計校驗一、可編程邏輯器件的設(shè)計流程一、可編程邏輯器件的設(shè)計流程編程下載是將設(shè)計實現(xiàn)階段所產(chǎn)生的熔絲圖文件或位數(shù)據(jù)流文件裝入可編程邏輯器件中,以便硬件調(diào)試和驗證。(四)編程下載一、可編程邏輯器件的設(shè)計流程在編程下載時需注意以下幾方面的問題。(1)對于不能進(jìn)行在系統(tǒng)編程的CPLD和不能再重配置的FPGA器件,需要編程專用設(shè)備(編程器)完成器件編程。(2)對于使用LUT技術(shù)和基于SRAM的FPGA器件,下載的編程數(shù)據(jù)將存入SRAM中,而SRAM掉電后所存的數(shù)據(jù)將丟失,為此須將編程數(shù)據(jù)固化到E2PROM中。器件上電時,由器件本身或微處理器控制E2PROM將數(shù)據(jù)配置到FPGA中。一、可編程邏輯器件的設(shè)計流程(3)對于使用乘積項邏輯、基于E-2PROM或Flash工藝的CPLD進(jìn)行編程下載時,使用器件廠商提供的專用下載電纜,一端與計算機(jī)的并行口相接,另一端接到CPLD所在PCB上的10芯插頭上(PLD只有4個引腳與該插頭相連)。編程數(shù)據(jù)通過該電纜下載到CPLD中,這個過程稱為在系統(tǒng)編程(ISP)。一、可編程邏輯器件的設(shè)計流程(一)常用的EDA工具軟件Synplify1.二、可編程邏輯器件的開發(fā)環(huán)境該軟件是由Synplicity公司專為FPGA和CPLD開發(fā)設(shè)計的邏輯綜合工具。它在綜合優(yōu)化方面的優(yōu)點非常突出,得到了廣大用戶的好評。它支持用Verilog和VHDL硬件描述語言描述的系統(tǒng)級設(shè)計,具有強(qiáng)大的行為及綜合能力。綜合后,能生成Verilog或VHDL網(wǎng)表,以進(jìn)行功能級仿真。

EDA技術(shù)的范疇?wèi)?yīng)包括電子工程師進(jìn)行電子系統(tǒng)設(shè)計的全過程中期望由計算機(jī)完成的各種輔助工作,包括計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CAM)、計算機(jī)輔助測試(CAT)、計算機(jī)輔助工程(CAE)等。因此,利用EDA技術(shù),電子工程師在計算機(jī)上即可完成電子系統(tǒng)設(shè)計的全過程。二、可編程邏輯器件的開發(fā)環(huán)境該軟件是另一種系統(tǒng)綜合軟件,它因綜合功能強(qiáng)大而被廣泛使用。Synopsys綜合器的綜合效果比較理想,系統(tǒng)速度快,消耗資源少。對系統(tǒng)的優(yōu)化過程大致分為兩步:第一步是設(shè)計規(guī)則,提出必須滿足的設(shè)計要求,如最大延時、最大功耗、最大扇出數(shù)目、驅(qū)動強(qiáng)度等;第二步是提出各種設(shè)計約束,一般有反應(yīng)時間約束、芯片面積約束等。綜合器根據(jù)設(shè)計要求,采用相應(yīng)算法,力爭使綜合效果達(dá)到最佳。Synopsys2.二、可編程邏輯器件的開發(fā)環(huán)境該軟件是Lattice公司專為本公司的PLD芯片開發(fā)設(shè)計的軟件,它的前身是該公司的Synario、ispEXPERT。ispDesignEXPERT是完備的EDA軟件,支持系統(tǒng)開發(fā)的全過程,包括設(shè)計輸入、設(shè)計實現(xiàn)、仿真與時序分析、編程下載等。

ispDesignEXPERT包括三個版本,其中Starter版適合初學(xué)者學(xué)習(xí),可以免費(fèi)下載,Base版為試用版,它們的設(shè)計規(guī)模都低于600個宏單元;Advanced版是專業(yè)設(shè)計版,支持該公司的各種系列器件,功能全面。ispDesignEXPERT3.二、可編程邏輯器件的開發(fā)環(huán)境MAX+plusⅡ4.該軟件是Altera公司專為本公司的PLD芯片開發(fā)設(shè)計的軟件。其功能齊全,使用方便,易懂好學(xué),是最廣為接受的EDA工具之一。二、可編程邏輯器件的開發(fā)環(huán)境該軟件也是Altera公司為本公司的PLD芯片開發(fā)設(shè)計的軟件。它比MAX+plusⅡ支持的器件更全面,特別包括Altera公司的超高密度的芯片系列——APEX系列器件。QuartusⅡ可開發(fā)的單器件門數(shù)達(dá)到了260萬門,特別適合高集成的大型系統(tǒng)的開發(fā)設(shè)計。QuartusⅡ5.二、可編程邏輯器件的開發(fā)環(huán)境

(1)廣泛的適用范圍。(2)支持Windows、Solaris、HP-UX和Linux等多種操作系統(tǒng)。(3)支持多時鐘定時分析、LogicLock

TM基于塊的設(shè)計、SOPC(單芯片可編程系統(tǒng)),內(nèi)嵌SignalTapⅡ邏輯分析器、功率估計器等高級工具。(4)QuartusⅡ是全集成化的設(shè)計平臺,支持多種輸入方式,具有邏輯綜合、布局布線、模擬、時序分析、器件編程等功能。(5)易學(xué)易用。(二)QuartusⅡ軟件介紹QuartusⅡ軟件的特點1.二、可編程邏輯器件的開發(fā)環(huán)境二、可編程邏輯器件的開發(fā)環(huán)境QuartusⅡ軟件的用戶界面2.三、設(shè)計實例設(shè)計一個1位全加器,按照設(shè)計輸入、編譯、分配I/O引腳、仿真、定時分析和編程下載共6個階段來完成設(shè)計。本設(shè)計是以原理圖的方式進(jìn)行的設(shè)計輸入,目的是讓讀者對設(shè)計過程有一個整體的了解。對于硬件描述語言的設(shè)計輸入,只是設(shè)計輸入方式的不同,其他過程完全相同。

1位全加器可以由2個半加器及1個或門組成。因此,需要首先完成半加器的設(shè)計。以下將給出使用原理圖輸入的方法進(jìn)行底層元件設(shè)計和層次化設(shè)計的完整步驟,其主要流程與數(shù)字系統(tǒng)設(shè)計的一般流程基本一致。三、設(shè)計實例1位全加器三、設(shè)計實例半加器的邏輯圖與符號為本項工程設(shè)計建立文件夾1.

任何一項設(shè)計都是一項工程,都必須首先為此工程建立一個文件夾,以放置與此工程相關(guān)的文件,此文件夾將被EDA軟件默認(rèn)為工作庫(WorkLibrary)。一般不同的設(shè)計項目最好放在相應(yīng)的文件夾中。文件夾的命名不能用中文,且不可帶空格。

假設(shè)本項目設(shè)計的文件夾取名為EDAjc,路徑為E:\EDAjc。三、設(shè)計實例建立工程2.

(1)打開軟件,顯示QuartusⅡ的主界面。三、設(shè)計實例(2)新建工程。執(zhí)行File→NewProjectWizard菜單命令,彈出圖2-6所示的對話框,在“工程路徑”文本框選擇之前為工程建立的目錄E:\EDAjc,在“工程名稱”文本框中輸入所建工程的名稱,在“頂層模塊名”文本框中輸入模塊名,要求模塊名與工程名相同。然后單擊Next按鈕,彈出圖2-7所示的對話框,添加已有文件。三、設(shè)計實例三、設(shè)計實例新建工程三、設(shè)計實例添加已有文件選擇芯片型號

(3)添加已有文件。沒有已有文件的直接跳過,單擊Next按鈕,彈出圖2-8所示的對話框,選擇芯片型號。三、設(shè)計實例選擇綜合、仿真、時序分析工具

(4)選擇芯片型號。在Family下拉列表框中選擇器件系列。首先應(yīng)該選定目標(biāo)器件對應(yīng)的系列名,如EPM7128SLC84-6對應(yīng)的是MAX7000S系列。在Availabledevices列表框中選擇具體的器件型號,如圖2-8所示。完成選擇后,單擊Next按鈕,彈出圖2-9所示對話框。三、設(shè)計實例

(5)選擇綜合、仿真、時序分析工具,如果只利用QuartusⅡ,則在DesignEntry/Synthesis、Simulation和TimingAnalysis三個選項區(qū)的Toolname下拉列表框中都選None,然后單擊Next按鈕,彈出圖2-10所示對話框。

(6)工程建立完成。如圖2-10所示,該對話框顯示所建立工程的所有芯片、其他第三方EDA工具選擇情況及模塊名等信息,單擊Finish按鈕,完成工程的建立。三、設(shè)計實例三、設(shè)計實例工程建立完成添加設(shè)計文件并保存3.(1)執(zhí)行File→New菜單命令,如圖2-11所示,在彈出的New對話框中選擇BlockDiagram/SchematicFile(建立原理圖編輯文件),如果采用VHDL文本輸入形式,則選擇VHDLFile。然后單擊OK按鈕,進(jìn)入原理圖編輯界面。建立新的設(shè)計文件三、設(shè)計實例Symbol對話框

(2)在原理圖編輯界面的任意編輯位置雙擊,彈出Symbol對話框。三、設(shè)計實例

雙擊元件庫Libraries中的c:/altera/91/quartus/libraries/,元件庫目錄下面即顯示幾個庫,常用的基本元件庫為primitives庫,雙擊打開primitives庫,然后雙擊logic打開邏輯庫查找基本邏輯元件,雙擊pin打開引腳庫查找輸入輸出引腳。然后單擊OK按鈕,即可將元件調(diào)入原理圖編輯窗口中。分別調(diào)入and2、not、xnor、input和output,并連好線,如圖2-13所示。然后雙擊input和output上的pin_name,修改引腳名。三、設(shè)計實例三、設(shè)計實例原理圖編輯原理圖文件存盤

(3)執(zhí)行File→SaveAs菜單命令,選擇目錄E:\EDAjc,將已設(shè)計好的原理圖取名為add.bdf(擴(kuò)展名是默認(rèn)的),并存盤在此目錄內(nèi),如圖2-14所示。三、設(shè)計實例檢查設(shè)計4.單擊工具欄中的按鈕進(jìn)行檢查,如果出錯,需要檢查并修改設(shè)計直至成功為止,如圖2-15所示,單擊“確定”按鈕,完成設(shè)計檢查。設(shè)計檢查三、設(shè)計實例鎖定引腳并編譯5.(1)單擊工具欄中的按鈕,彈出圖2-16所示的對話框,進(jìn)行引腳配置。雙擊Location為設(shè)計的輸入輸出配置引腳。配置引腳三、設(shè)計實例整體編譯

(2)建立一個波形文件。執(zhí)行File→New菜單命令,彈出New對話框,選擇VectorWaveformFile,然后單擊OK按鈕,完成波形文件的建立。波形文件作為信號輸出文件主要通過它觀察信號的輸出情況。三、設(shè)計實例功能仿真6.(1)將仿真類型設(shè)置為功能仿真,執(zhí)行Assignments→Settings菜單命令,彈出圖2-18所示對話框。在Simulationmode下拉列表框中選擇Functional。Functional表示功能仿真,即不包括時序信息;Timing表示時序仿真;TimingusingFastTimingModel表示快速時序仿真。然后單擊OK按鈕。三、設(shè)計實例三、設(shè)計實例功能仿真設(shè)定新建波形文件

(2)建立一個波形文件。執(zhí)行File→New菜單命令,彈出New對話框,如圖2-19所示,選擇VectorWaveformFile,然后單擊OK按鈕,完成波形文件的建立。波形文件作為信號輸出文件主要通過它觀察信號的輸出情況。三、設(shè)計實例

(3)導(dǎo)入引腳。雙擊Name下面的空白區(qū)域,彈出InsertNodeorBus對話框。單擊NodeFinder按鈕,彈出NodeFinder對話框,單擊List按鈕顯示引腳信息,單擊按鈕選擇節(jié)點,產(chǎn)生端口列表。設(shè)置完成后單擊OK按鈕。三、設(shè)計實例三、設(shè)計實例

列出并選擇需要觀察的節(jié)點信號

為輸入信號設(shè)定必要的測試電平或數(shù)據(jù)二、可編程邏輯器件

(4)設(shè)置激勵信號。單擊輸入引腳,用鼠標(biāo)拖黑相應(yīng)的段,在左側(cè)選擇賦值信號。

生成網(wǎng)表

(5)保存建立的波形圖文件,文件名和路徑為默認(rèn),執(zhí)行Processing→GenerateFunctionalSimulationNetlist菜單命令,生成仿真需要的網(wǎng)表。三、設(shè)計實例

仿真完成

(6)開始仿真。執(zhí)行Processing→StartSimulation菜單命令,或者單擊工具欄中的按鈕。觀察波形,如果仿真波形符合邏輯,則功能仿真通過,如圖所示。三、設(shè)計實例單擊工具欄中的按鈕,再單擊HardwareSetup按鈕配置下載電纜。單擊彈出對話框中的AddHardware按鈕,在Hardwaretype下拉列表框中選擇ByteBlasterMVorByteBlasterMVⅡ(并口下載),單擊Close按鈕完成設(shè)置。CPLD生成的下載文件的擴(kuò)展名為.pof,在圖2-24中選中下載文件,然后直接單擊Start按鈕開始下載。下載7.三、設(shè)計實例三、設(shè)計實例下載文件頂層文件設(shè)計8.(1)底層元件封裝入庫。打開已設(shè)計好的半加器,執(zhí)行File→Open菜單命令,在彈出的對話框中選擇前面設(shè)計好的半加器設(shè)計文件并打開,如圖2-25所示。選擇并打開文件三、設(shè)計實例然后執(zhí)行File→Creat/Update→CreatSymbolFilesforCurrentFile菜單命令,生成元件封裝,如圖2-26所示。封裝入庫三、設(shè)計實例(2)添加新的設(shè)計文件并保存,在圖2-27所示的元件輸入窗口找到本工程目錄中已封裝好的半加器元件,并將它調(diào)入原理圖編輯窗中。調(diào)用半加器元件三、設(shè)計實例(3)完成全加器原理圖設(shè)計,并以文件名qadd.bdf存在同一目錄下。(4)選擇目標(biāo)器件EPM7128SLC84-6,并編譯。三、設(shè)計實例三、設(shè)計實例全加器原理圖設(shè)計(5)建立波形仿真文件,設(shè)定輸入信號電平,啟動仿真,觀察輸出波形。(6)手動分配I/O引腳,編譯并編程下載,硬件實測此全加器的邏輯功能。全加器仿真波形圖三、設(shè)計實例ThankyouEDA技術(shù)與應(yīng)用單元三硬件描述語言一、硬件描述語言概述二、VHDL的程序結(jié)構(gòu)三、

VHDL的數(shù)據(jù)類型及運(yùn)算操作符四、QuartusII中的VHDL代碼設(shè)計輸入I

硬件描述語言(hardwaredescriptionlanguage,HDL)是EDA工具最常用的一種設(shè)計輸入方式,它可采用語言化的方式來描述電路的行為,為復(fù)雜的電子線路設(shè)計提供了一條捷徑。一、硬件描述語言概述一、硬件描述語言概述

VerilogHDL是專為ASIC(applicationspecificintergratedcircuits,專用集成電路)設(shè)計而開發(fā)的。在亞微米和深亞微米ASIC已成為電子設(shè)計主流的今天,VerilogHDL的發(fā)展前景是非常遠(yuǎn)大的。VerilogHDL較為適合算法級、寄存器傳輸級、邏輯級和門級的設(shè)計,可以很容易地把完成的設(shè)計移植到不同廠家的不同芯片中,并且很容易修改設(shè)計。采用VerilogHDL輸入法的最大優(yōu)點是其與工藝的無關(guān)性,這使得設(shè)計者在功能設(shè)計、邏輯驗證階段可不必過多考慮門級及其工藝實現(xiàn)的具體細(xì)節(jié),只需利用系統(tǒng)設(shè)計時對芯片的要求,施加不同的約束條件,即可設(shè)計出實際電路。(一)(一)VerilogHDL的發(fā)展和功能一、硬件描述語言概述

VHDL(超高速集成電路硬件描述語言)是美國國防部于20世紀(jì)80年代后期出于軍事工業(yè)的需要開發(fā)的。1984年,VHDL被IEEE確定為標(biāo)準(zhǔn)化的硬件描述語言。1994年,IEEE對VHDL進(jìn)行了修訂,增加了部分新的VHDL命令與屬性,增強(qiáng)了系統(tǒng)的描述能力,并公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)版本1046-1994。VHDL已經(jīng)成為系統(tǒng)描述的國際公認(rèn)標(biāo)準(zhǔn),得到眾多EDA公司的支持,越來越多的硬件設(shè)計者使用VHDL描述系統(tǒng)的行為。(二)VHDL的發(fā)展和功能一、硬件描述語言概述

VHDL涵蓋面廣,抽象描述能力強(qiáng),支持硬件的設(shè)計、驗證、綜合與測試。VHDL能在多個級別上對同一邏輯功能進(jìn)行描述,如可以在寄存器級別上對電路的組成結(jié)構(gòu)進(jìn)行描述,也可以在行為描述級別上對電路的功能與性能進(jìn)行描述。無論哪種級別的描述,都有賴于優(yōu)良的綜合器將其轉(zhuǎn)化為具體的硬件結(jié)構(gòu)。一、硬件描述語言概述利用VHDL描述設(shè)計,設(shè)計者可以不懂硬件結(jié)構(gòu),也不必考慮最終實現(xiàn)的目標(biāo)器件是什么,只需用正確的語言描述系統(tǒng)的行為即可。正因為VHDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),使得VHDL設(shè)計程序的硬件實現(xiàn)目標(biāo)器件有廣闊的選擇范圍,其中包括各系列的CPLD、FPGA及各種門陣列器件。在各種硬件描述語言中,VHDL的行為抽象描述能力是最強(qiáng)的,從而決定了它成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。一、硬件描述語言概述一般的硬件描述語言可在三個層次上進(jìn)行電路描述,其層次由高到低依次可分為行為級、RTL級和門電路級。VHDL通常更適合行為級和RTL級的描述;VerilogHDL通常只適合RTL級和門電路級的描述。因此,與VerilogHDL相比,VHDL是一種高級描述語言,適用于電路的高級建模,最適合描述電路的行為,即描述電路的功能,但它幾乎不能直接控制門電路,即控制電路的資源;VerilogHDL則是一種低級的描述語言,最適合于描述門級電路,易于控制電路資源。(三)VerilogHDL與VHDL的比較一、硬件描述語言概述一、硬件描述語言概述任何一種語言源程序,最終都要轉(zhuǎn)換成門電路級才能被布線器或適配器所接收。VHDL的綜合通常要經(jīng)過“行為級—RTL級—門電路級”的轉(zhuǎn)化;而VerilogHDL的綜合過程要簡單些,即經(jīng)過“RTL級—門電路級”的轉(zhuǎn)化。一、硬件描述語言概述由于VHDL和VerilogHDL各有所長,市場占有量也相差不多。VHDL描述語言層次較高,不易控制底層電路,因而對綜合器的綜合性能要求較高。但當(dāng)設(shè)計者積累一定經(jīng)驗后會發(fā)現(xiàn),每種綜合器一般將一定描述風(fēng)格的語言綜合成確定的電路,只要熟悉基本單元電路的描述風(fēng)格,綜合后的電路還是易于控制的。VHDL入門相對稍難,但在熟悉以后,設(shè)計效率明顯高于VerilogHDL,生成的電路性能也與VerilogHDL的不相上下。在VHDL設(shè)計中,綜合器完成的工作量是巨大的,設(shè)計者所做的工作就相對減少了;而在VerilogHDL設(shè)計中,工作量通常比較大,因為設(shè)計者需要搞清楚具體電路結(jié)構(gòu)的細(xì)節(jié)。本書的內(nèi)容以VHDL為主。一、硬件描述語言概述一般的硬件描述語言可在三個層次上進(jìn)行電路描述,其層次由高到低依次可分為行為級、RTL級和門電路級。VHDL通常更適合行為級和RTL級的描述;VerilogHDL通常只適合RTL級和門電路級的描述。因此,與VerilogHDL相比,VHDL是一種高級描述語言,適用于電路的高級建模,最適合描述電路的行為,即描述電路的功能,但它幾乎不能直接控制門電路,即控制電路的資源;VerilogHDL則是一種低級的描述語言,最適合于描述門級電路,易于控制電路資源。(一)一般結(jié)構(gòu)二、VHDL的程序結(jié)構(gòu)一個完整的設(shè)計項目第一部分主要用于描述電路的外部端口,包括器件名稱、端口名稱、數(shù)據(jù)類型等,稱為“實體說明”第二部分主要用于描述電路的內(nèi)部結(jié)構(gòu)、功能及其實現(xiàn)的算法,稱為“結(jié)構(gòu)體”。二、VHDL的程序結(jié)構(gòu)【例3-1】二、VHDL的程序結(jié)構(gòu)(1)實體部分(2)結(jié)構(gòu)體部分給出了器件nand2的外部引腳(PORT),如圖3-1所示。A、B為輸入引腳,Y為輸出引腳,數(shù)據(jù)類型均為BIT。BIT指的是1位二進(jìn)制數(shù),只有兩種邏輯取值,即0和1。給出了nand2的內(nèi)部功能信息。其中,NAND是實現(xiàn)與非運(yùn)算的運(yùn)算符;“<=”是賦值運(yùn)算符,從電路的角度來看就是表示信號的傳輸,即將A和B與非運(yùn)算后的結(jié)果信號傳輸給Y。二、VHDL的程序結(jié)構(gòu)(二)實體二、VHDL的程序結(jié)構(gòu)實體就是設(shè)計對象或設(shè)計項目。實體可代表任何電路,從一個門電路、一個芯片、一塊電路板,到一個復(fù)雜系統(tǒng)都可看成一個實體。如果在設(shè)計時采用的是“自頂向下分層、劃分模塊”的設(shè)計方法,那么各層的設(shè)計模塊都可看成一個實體。頂層的系統(tǒng)模塊稱為頂層實體,底層的設(shè)計模塊稱為底層實體。在用VHDL描述時,頂層的實體可將比它低的底層實體當(dāng)作元件來調(diào)用。至于底層實體的具體結(jié)構(gòu)和功能,在底層實體中描述。(三)實體說明二、VHDL的程序結(jié)構(gòu)實體說明是實體的一個必備組成部分,其功能是對實體與外部電路的接口進(jìn)行描述,是實體的表層設(shè)計單元,它規(guī)定了實體的輸入輸出接口信號,是實體對外的一個通信界面。實體說明常用的語句結(jié)構(gòu)如下。ENTITY實體名IS

[GENERIC(類屬參數(shù)說明語句);]

[PORT(端口說明);]END實體名;(1)實體名可由設(shè)計者自己規(guī)定,可采用英文字母A~Z、a~z,阿拉伯?dāng)?shù)字0~9或下劃線符號“_”,但字符數(shù)不能超過32個,不能以數(shù)字或“_”開頭。不能連續(xù)使用下劃線符號(如“__”),也不能以“_”結(jié)束。(2)中間方括號內(nèi)的語句描述并非必需。后續(xù)內(nèi)容規(guī)定相同。(3)對于VHDL的編譯器和綜合器來說,程序字母的大小寫是不加區(qū)分的,但為了便于閱讀和分辨,建議將VHDL的表示符或基本語句的關(guān)鍵詞以大寫方式表示,而由設(shè)計者添加的內(nèi)容以小寫方式來表示。實體說明編寫注意事項二、VHDL的程序結(jié)構(gòu)【例3-2】二、VHDL的程序結(jié)構(gòu)類屬參數(shù)說明語句(GENERIC)必須放在端口說明語句之前,類屬參數(shù)的值可由實體外部提供。它通常用于設(shè)定元件內(nèi)部電路的結(jié)構(gòu)和規(guī)模,設(shè)計者可從外面通過重新設(shè)定類屬參數(shù)的值而改變元件內(nèi)部電路的結(jié)構(gòu)和規(guī)模。類屬參數(shù)說明語句的一般書寫格式如下。GENERIC(常數(shù)名:數(shù)據(jù)類型[:設(shè)定值];

常數(shù)名:數(shù)據(jù)類型[:設(shè)定值]);類屬性參數(shù)說明語句1.二、VHDL的程序結(jié)構(gòu)【例3-3】二、VHDL的程序結(jié)構(gòu)當(dāng)在某個實體內(nèi)大量使用某個參數(shù)時,就可以把該參數(shù)定義成類屬參數(shù)。當(dāng)設(shè)計者需要改變該參數(shù)的值時,只需在類屬參數(shù)語句中改寫一次即可,從而避免改寫多處所帶來的麻煩。對設(shè)計者來說,改變一個類屬參數(shù)的值看似很容易,但從綜合的結(jié)果來看,將大大地影響設(shè)計結(jié)果的硬件規(guī)模,由此可看出應(yīng)用VHDL進(jìn)行EDA設(shè)計的優(yōu)越性。采用類屬參數(shù)語句的優(yōu)點二、VHDL的程序結(jié)構(gòu)復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,CPLD)是20世紀(jì)80年代后期得到迅速發(fā)展的新一代可編程邏輯器件。早期的PLD結(jié)構(gòu)簡單,具有成本低、速度快、設(shè)計簡便等優(yōu)點,但其規(guī)模較小,通常只有幾百個等效邏輯門,難以實現(xiàn)復(fù)雜的邏輯。為了增加PLD的密度,擴(kuò)充其功能,一些廠家對PLD的結(jié)構(gòu)進(jìn)行了改進(jìn)。例如,在兩個邏輯陣列的基礎(chǔ)上大量增加輸出宏單元、提供更大的與陣列及采用分層結(jié)構(gòu)邏輯陣列等,使PLD逐漸向復(fù)雜可編程邏輯器件過渡。端口說明2.二、VHDL的程序結(jié)構(gòu)1)端口信號名二、VHDL的程序結(jié)構(gòu)端口模式說明二、VHDL的程序結(jié)構(gòu)2)端口模式為輸入端口,并規(guī)定為單向只讀模式,可以通過此端口將外部的其他信號讀入設(shè)計實體中。為輸出端口,并規(guī)定為單向輸出模式,通過此端口可將信號從設(shè)計實體輸出到外部。為輸入輸出雙向端口,即實體既可以通過該端口輸入外部信號,又可以通過該端口把實體內(nèi)的信號輸出到外部。為具有數(shù)據(jù)讀入功能的輸出端口。在信號輸出實體的同時,也可以被實體本身讀入。二、VHDL的程序結(jié)構(gòu)3)數(shù)據(jù)類型(1)BIT(2)BIT_VECTOR(3)STD_LOGIC二進(jìn)制位類型,其取值是一個1位的二進(jìn)制數(shù),只能是0或1。位向量數(shù)據(jù)類型,其取值是一組二進(jìn)制數(shù),常用來描述總線等端口。工業(yè)標(biāo)準(zhǔn)邏輯類型,取值有0、1、Z(高阻)、X(未知)等9種,該數(shù)據(jù)類型由IEEE庫中的STD_LOGIC_1164程序包定義。二、VHDL的程序結(jié)構(gòu)(4)STD_LOGIC_VECTOR(5)INTEGER(6)BOOLEAN工業(yè)標(biāo)準(zhǔn)邏輯向量類型,是多位STD_LOGIC數(shù)據(jù)類型的組合,也常用來描述總線等端口。整數(shù)類型,可用作循環(huán)的指針或常數(shù),通常不用作I/O信號。布爾類型,取值有FALSE(假)、TRUE(真)兩種。二、VHDL的程序結(jié)構(gòu)(四)結(jié)構(gòu)體結(jié)構(gòu)體是實體的一個重要組成部分,主要用來描述實體內(nèi)的硬件結(jié)構(gòu)、元件之間的連接、實體所完成的邏輯功能以及數(shù)據(jù)的傳輸和變換等方面的內(nèi)容。一個實體可以有一個或多個結(jié)構(gòu)體,每個結(jié)構(gòu)體可分別描述該實體功能的不同實現(xiàn)方案。二、VHDL的程序結(jié)構(gòu)結(jié)構(gòu)體的一般書寫格式1.

ARCHITECTURE結(jié)構(gòu)體名OF實體名IS[說明語句]BEGIN

[功能描述語句]END結(jié)構(gòu)體名;二、VHDL的程序結(jié)構(gòu)注意二、VHDL的程序結(jié)構(gòu)結(jié)構(gòu)體說明語句2.結(jié)構(gòu)體中的說明語句是對結(jié)構(gòu)體的功能描述語句中要用到的信號(SIGNAL)、數(shù)據(jù)類型(TYPE)、常數(shù)(CONSTANT)、元件(COMPONENT)、函數(shù)(FUNCTION)和過程(PROCEDURE)等加以說明。需要注意的是,在一個結(jié)構(gòu)體中說明和定義的數(shù)據(jù)類型、常數(shù)、元件、函數(shù)和過程只能用于該結(jié)構(gòu)體中。如果希望這些定義也能用于其他實體或結(jié)構(gòu)體中,需要將其作為程序包來處理。二、VHDL的程序結(jié)構(gòu)功能描述語句3.功能描述語句含有5種不同類型且以并行方式工作的語句結(jié)構(gòu),這可以看成是結(jié)構(gòu)體的5個子結(jié)構(gòu),而在每一子結(jié)構(gòu)的內(nèi)部也可能含有順序運(yùn)行的邏輯描述語句。這就是說,雖然5個子結(jié)構(gòu)本身是并行語句,但每個子結(jié)構(gòu)內(nèi)所包含的語句并不一定是并行語句。二、VHDL的程序結(jié)構(gòu)【例3-4】二、VHDL的程序結(jié)構(gòu)結(jié)構(gòu)體的一般構(gòu)造圖二、VHDL的程序結(jié)構(gòu)【例3-4】二、VHDL的程序結(jié)構(gòu)【例3-4】二、VHDL的程序結(jié)構(gòu)在利用VHDL進(jìn)行工程設(shè)計時,為了提高設(shè)計效率以及使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,有必要將一些有用的信息匯集在一個或幾個庫(LIBRARY)中,以供VHDL調(diào)用。這些信息可以是預(yù)先定義好的數(shù)據(jù)類型,也可以是已編譯過的設(shè)計單元(包括實體說明、結(jié)構(gòu)體、程序包等)。因此,可以把庫看成是用于存放預(yù)先完成的數(shù)據(jù)類型和源設(shè)計單元的倉庫。如果在一項VHDL設(shè)計中要用到庫中的信息,就必須在這項設(shè)計中預(yù)先打開這個庫。在綜合過程中,每當(dāng)綜合器遇到庫語言,就可以將庫指定的源文件讀入,并參與綜合。(五)庫和程序包庫1.二、VHDL的程序結(jié)構(gòu)庫的語句書寫格式如下。LIBRARY庫名;二、VHDL的程序結(jié)構(gòu)

IEEE庫是VHDL設(shè)計中最常用的庫,它包含了IEEE標(biāo)準(zhǔn)的程序包和其他一些支持工業(yè)標(biāo)準(zhǔn)的程序包。IEEE庫中主要包括STD_LOGIC_1164、STD_LOGIC_UNSIGNED、STD_LOGIC_SIGNED等標(biāo)準(zhǔn)程序包,其中的STD_LOGIC_1164是最重要和最常用的程序包。使用IEEE庫時必須先用語句“LIBRARYIEEE;”聲明。1)IEEE庫二、VHDL的程序結(jié)構(gòu)2)STD庫

STD庫是VHDL的標(biāo)準(zhǔn)庫。在利用VHDL進(jìn)行設(shè)計時,可以自動使用這個庫,而不必像IEEE庫那樣須首先聲明。因此,類似“LIBRARYSTD;”的語句是不必要的。二、VHDL的程序結(jié)構(gòu)3)WORK庫WORK庫是VHDL設(shè)計的現(xiàn)行工作庫,用于存放用戶設(shè)計和定義的一些設(shè)計單元與程序包。因此,它自動滿足VHDL標(biāo)準(zhǔn),在實際調(diào)用時不必預(yù)先聲明,所以像“LIBRARYWORK;”的語句也是不必要的。二、VHDL的程序結(jié)構(gòu)在一個庫中往往有很多可使用的資源,這些資源通常存放在不同的程序包中。因此,在使用這些資源時,除了聲明所在的庫外,還要說明使用的是該庫中的哪個程序包。說明書寫格式如下。LIBRARY庫名;USE庫名.程序包名.使用的范圍;二、VHDL的程序結(jié)構(gòu)程序包2.在實體中定義的各種數(shù)據(jù)類型、數(shù)據(jù)對象等信息只能局限在該實體內(nèi)調(diào)用,其他實體是不可用的。為了使這些信息能夠被其他設(shè)計實體所使用,VHDL提供了程序包機(jī)制。只要把這些信息收集在一個VHDL程序包中并入庫,這些信息就成為公共信息,其他設(shè)計實體就可以使用這些公共信息。二、VHDL的程序結(jié)構(gòu)程序包一般由程序包首和程序包體兩部分組成,其語句書寫格式如下。--程序包首PACKAGE程序包名IS[說明語句]END程序包名;--程序包體PACKAGEBODY程序包名IS[程序包體說明語句]END程序包名;二、VHDL的程序結(jié)構(gòu)二、VHDL的程序結(jié)構(gòu)各種并行語句在結(jié)構(gòu)體中的執(zhí)行都是同步進(jìn)行的,或者說是并行運(yùn)行的,其執(zhí)行的方式與書寫的順序無關(guān)。這種并行性是由硬件本身的并行性決定的,即一旦電路接通電源,它的各部分就會按照事先設(shè)計好的方案同時工作。并行語句在執(zhí)行時,各并行語句之間可以有信息來往,也可以互為獨(dú)立、互不相關(guān)。另外,每一并行語句內(nèi)部的語句可以有兩種不同的運(yùn)行方式,即并行執(zhí)行方式(如塊語句)和順序執(zhí)行方式(如進(jìn)程語句)。并行語句1.二、VHDL的程序結(jié)構(gòu)結(jié)構(gòu)體中的并行語句模塊二、VHDL的程序結(jié)構(gòu)1)進(jìn)程語句進(jìn)程語句(PROCESS)是VHDL程序中使用最頻繁和最能體現(xiàn)VHDL特點的一種語句,其原因是它的并行和順序行為的雙重性,以及其行為描述風(fēng)格的特殊性。一個結(jié)構(gòu)體中可以包括多條進(jìn)程語句,各進(jìn)程語句之間或各進(jìn)程語句與其他并行語句之間的通信是依靠信號(SIGNAL)來傳遞的。二、VHDL的程序結(jié)構(gòu)進(jìn)程語句的書寫格式如下。[標(biāo)號:]PROCESS(信號1,信號2,…)

[進(jìn)程說明語句]

BEGIN

[順序語句]

ENDPROCESS[標(biāo)號];二、VHDL的程序結(jié)構(gòu)【例3-5】二、VHDL的程序結(jié)構(gòu)2)語句塊塊語句的應(yīng)用只是一種將結(jié)構(gòu)體中的并行描述語句進(jìn)行組合的方法,其目的是改善并行語句的可讀性,一般應(yīng)用于較復(fù)雜的VHDL程序中。塊語句對復(fù)雜并行結(jié)構(gòu)的劃分僅限于形式上的,從綜合的角度來看,它不會改變電路的結(jié)構(gòu)和邏輯功能。二、VHDL的程序結(jié)構(gòu)【例3-7】二、VHDL的程序結(jié)構(gòu)【例3-7】二、VHDL的程序結(jié)構(gòu)

(1)簡單信號賦值語句。簡單信號賦值語句是并行語句結(jié)構(gòu)的最基本單元,它的語句書寫格式如下。賦值目標(biāo)<=表達(dá)式;應(yīng)用該類賦值語句時一定要注意,賦值目標(biāo)的數(shù)據(jù)對象必須是信號,賦值運(yùn)算符“<=”兩邊的數(shù)據(jù)類型必須一致。3)并行信號賦值語句二、VHDL的程序結(jié)構(gòu)書寫格式說明如下。①每當(dāng)“選擇表達(dá)式”的值發(fā)生變化時,將啟動此語句對各子句的“選擇值”進(jìn)行測試對比。當(dāng)發(fā)現(xiàn)有滿足條件的子句時,就將此子句中的“表達(dá)式”值賦給“賦值目標(biāo)信號”。②每條子句應(yīng)以“,”結(jié)束,最后一條子句以“;”結(jié)束。③“選擇值”不能有重復(fù),且“選擇值”應(yīng)包含“選擇表達(dá)式”的所有取值,不允許存在選擇值涵蓋不全的情況。二、VHDL的程序結(jié)構(gòu)(2)選擇信號賦值語句

WITH選擇表達(dá)式SELECT

賦值目標(biāo)信號<=表達(dá)式WHEN選擇值,表達(dá)式WHEN選擇值,

表達(dá)式WHEN選擇值;二、VHDL的程序結(jié)構(gòu)書寫格式說明如下。①條件信號賦值語句與選擇信號賦值語句的最大區(qū)別在于后者的各個“選擇值”之間處于同一優(yōu)先級,而前者的各個“賦值條件”具有優(yōu)先順序,優(yōu)先級由高到低的順序與語句書寫順序一致。②當(dāng)某個“賦值條件”得到滿足(其值為“真”)時,立即將該條件WHEN前的“表達(dá)式”值賦給“賦值目標(biāo)信號”;當(dāng)幾個“賦值條件”都得到滿足時,將優(yōu)先級高的那個條件WHEN前的“表達(dá)式”值賦給“賦值目標(biāo)信號”;當(dāng)所有的“賦值條件”都得不到滿足時,將最后一個ELSE關(guān)鍵詞后的“表達(dá)式”值賦給“賦值目標(biāo)信號”。③每行語句后面沒有標(biāo)點符號,最后一行“表達(dá)式”用“;”結(jié)束。二、VHDL的程序結(jié)構(gòu)(3)條件信號賦值語句賦值目標(biāo)信號<=表達(dá)式WHEN賦值條件ELSE

表達(dá)式WHEN賦值條件ELSE

表達(dá)式;二、VHDL的程序結(jié)構(gòu)4)元件實例化語句元件例化語句引入的是一種連接關(guān)系,即將預(yù)先設(shè)計好的設(shè)計實體定義成一個元件,然后利用例化語句將此元件與當(dāng)前的設(shè)計實體中的指定端口相連接,從而為當(dāng)前設(shè)計實體引入了一個低一級的設(shè)計層次。也可以這樣來理解例化語句,當(dāng)前設(shè)計實體相當(dāng)于一個較大的電路系統(tǒng),預(yù)先設(shè)計好的設(shè)計實體相當(dāng)于一個要插在這個電路系統(tǒng)板上的芯片,而當(dāng)前設(shè)計實體中的例化語句則相當(dāng)于這塊電路板上準(zhǔn)備接收此芯片的一個插座。二、VHDL的程序結(jié)構(gòu)元件例化語句通常由元件聲明和元件例化兩部分組成,語句的書寫格式如下。元件聲明部分COMPONENT元件名

GENERIC(參數(shù)表);PORT(端口信息);ENDCOMPONENT;元件例化部分例化名:元件名PORTMAP(端口名=>連接端口名,…);二、VHDL的程序結(jié)構(gòu)【例3-12】二、VHDL的程序結(jié)構(gòu)【例3-12】二、VHDL的程序結(jié)構(gòu)【例3-12】二、VHDL的程序結(jié)構(gòu)5)生成語句生成語句(GENERATE)具有復(fù)制作用,它可以生成與已有的某個元件或設(shè)計單元電路完全相同的一組并行元件或設(shè)計單元電路結(jié)構(gòu)。二、VHDL的程序結(jié)構(gòu)生成語句的書寫格式形式一:[標(biāo)號:]FOR循環(huán)變量IN取值范圍GENERATE

[說明語句;]并行語句;

ENDGENERATE[標(biāo)號];形式二:

[標(biāo)號:]IF條件GENERATE

[說明語句;]并行語句;

ENDGENERATE[標(biāo)號];二、VHDL的程序結(jié)構(gòu)【例3-13】二、VHDL的程序結(jié)構(gòu)【例3-13】二、VHDL的程序結(jié)構(gòu)【例3-13】二、VHDL的程序結(jié)構(gòu)順序語句2.順序語句與傳統(tǒng)軟件編程語言中的語句執(zhí)行方式十分相似。所謂的順序,主要指的是語句的執(zhí)行(指仿真執(zhí)行)順序與其書寫順序基本一致。但應(yīng)注意的是,這里的順序是對仿真軟件的運(yùn)行或順應(yīng)VHDL語法的編程思路而言的,其相應(yīng)的硬件邏輯工作方式未必如此。順序語句只能出現(xiàn)在進(jìn)程(PROCESS)中,而進(jìn)程本身屬于并行語句,這就是說在同一設(shè)計實體中,所有的進(jìn)程都是并行執(zhí)行的,而每一個進(jìn)程內(nèi)部的語句是順序執(zhí)行的。二、VHDL的程序結(jié)構(gòu)1)賦值語句順序語句中的賦值語句與并行語句中的賦值語句功能相似,它們都可用來對某一賦值目標(biāo)進(jìn)行賦值,但二者是有區(qū)別的。并行賦值語句的賦值目標(biāo)只能是信號(SIGNAL),而順序賦值語句不但可對信號賦值,也可以對變量(VARIABLE)進(jìn)行賦值。因此,順序賦值語句的書寫格式有如下兩種。二、VHDL的程序結(jié)構(gòu)變量賦值目標(biāo):=賦值源;信號賦值目標(biāo)<=賦值源;。對變量賦值時,語句格式為對信號賦值時,語句格式為二、VHD

溫馨提示

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

最新文檔

評論

0/150

提交評論