版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VHDL硬件描述語(yǔ)言硬件描述語(yǔ)言1.1VHDL概述1.1.1VHDL的特點(diǎn)VHDL語(yǔ)言作為一種標(biāo)準(zhǔn)的硬件描述語(yǔ)言,具有結(jié)構(gòu)嚴(yán)謹(jǐn)、描述能力強(qiáng)的特點(diǎn),由于VHDL語(yǔ)言來(lái)源于C、Ftran等計(jì)算機(jī)高級(jí)語(yǔ)言,在VHDL語(yǔ)言中保留了部分高級(jí)語(yǔ)言的原語(yǔ)句,如if語(yǔ)句、子程序和函數(shù)等,便于閱讀和應(yīng)用。具體特點(diǎn)如下:1.支持從系統(tǒng)級(jí)到門級(jí)電路的描述,既支持自底向上(bottomup)的設(shè)計(jì)也支持從頂向下(topdown)的設(shè)計(jì),同時(shí)也支持結(jié)構(gòu)、行為和數(shù)
2、據(jù)流三種形式的混合描述。2.VHDL的設(shè)計(jì)單元的基本組成部分是實(shí)體(entity)和結(jié)構(gòu)體(architecture),實(shí)體包含設(shè)計(jì)系統(tǒng)單元的輸入和輸出端口信息,結(jié)構(gòu)體描述設(shè)計(jì)單元的組成和行為,便于各模塊之間數(shù)據(jù)傳送。利用單元(compo)、塊(block)、過(guò)程(procure)和函數(shù)(function)等語(yǔ)句,用結(jié)構(gòu)化層次化的描述方法,使復(fù)雜電路的設(shè)計(jì)更加簡(jiǎn)便。采用包的概念,便于標(biāo)準(zhǔn)設(shè)計(jì)文檔資料的保存和廣泛使用。3.VHDL語(yǔ)言有常
3、數(shù)、信號(hào)和變量三種數(shù)據(jù)對(duì)象,每一個(gè)數(shù)據(jù)對(duì)象都要指定數(shù)據(jù)類型,VHDL的數(shù)據(jù)類型豐富,有數(shù)值數(shù)據(jù)類型和邏輯數(shù)據(jù)類型,有位型和位向量型。既支持預(yù)定義的數(shù)據(jù)類型,又支持自定義的數(shù)據(jù)類型,其定義的數(shù)據(jù)類型具有明確的物理意義,VHDL是強(qiáng)類型語(yǔ)言。4.數(shù)字系統(tǒng)有組合電路和時(shí)序電路,時(shí)序電路又分為同步和異步,電路的動(dòng)作行為有并行和串行動(dòng)作,VHDL語(yǔ)言常用語(yǔ)句分為并行語(yǔ)句和順序語(yǔ)句,完全能夠描述復(fù)雜的電路結(jié)構(gòu)和行為狀態(tài)。1.1.2VHDL語(yǔ)言的基本
4、結(jié)構(gòu)VHDL語(yǔ)言是數(shù)字電路的硬件描述語(yǔ)言,在語(yǔ)句結(jié)構(gòu)上吸取了Ftran和C等計(jì)算機(jī)高級(jí)語(yǔ)言的語(yǔ)句,如IF語(yǔ)句、循環(huán)語(yǔ)句、函數(shù)和子程序等,只要具備高級(jí)語(yǔ)言的編程技能和數(shù)字邏輯電路的設(shè)計(jì)基礎(chǔ),就可以在較短的時(shí)間內(nèi)學(xué)會(huì)VHDL語(yǔ)言。但是VHDL畢竟是一種描述數(shù)字電路的工業(yè)標(biāo)準(zhǔn)語(yǔ)言,該種語(yǔ)言的標(biāo)識(shí)符號(hào)、數(shù)據(jù)類型、數(shù)據(jù)對(duì)象以及描述各種電路的語(yǔ)句形式和程序結(jié)構(gòu)等方面具有特殊的規(guī)定,如果一開(kāi)始就介紹它的語(yǔ)法規(guī)定,會(huì)使初學(xué)者感到枯燥無(wú)味,不得要領(lǐng)。較好
5、的辦法是選取幾個(gè)具有代表性的VHDL程序?qū)嵗?,先介紹整體的程序結(jié)構(gòu),再逐步介紹程序中的語(yǔ)法概念。一個(gè)VHDL語(yǔ)言的設(shè)計(jì)程序描述的是一個(gè)電路單元,這個(gè)電路單元可以是一個(gè)門電路,或者是一個(gè)計(jì)數(shù)器,也可以是一個(gè)CPU。一般情況下,一個(gè)完整的VHDL語(yǔ)言程序至少要包含程序包、實(shí)體和結(jié)構(gòu)體三個(gè)部分。實(shí)體給出電路單元的外部輸入輸出接口信號(hào)和引腳信息,結(jié)構(gòu)體給出了電路單元的內(nèi)部結(jié)構(gòu)和信號(hào)的行為特點(diǎn)程序包定義在設(shè)計(jì)結(jié)構(gòu)體和實(shí)體中將用到的常數(shù)、數(shù)據(jù)類型、
6、子程序和設(shè)計(jì)好的電路單元等。一位全加器的邏輯表達(dá)式是:S=A⊕B⊕CiCo=ABACiBCi全加器的VHDL程序的文件名稱是fulladder.VHD,其中VHD是VHDL程序的文件擴(kuò)展名,程序如下:LIBRARYIEEEIEEE標(biāo)準(zhǔn)庫(kù)USEIEEE.STD_LOGIC_1164.ALLUSEIEEE.STD_LOGIC_ARITH.ALLUSEIEEE.STD_LOGIC_UNSIGNED.ALLENTITYfulladderISfu
7、lladder是實(shí)體名稱PT(ABCi:INSTD_LOGIC定義輸入輸出信號(hào)CoS:OUTSTD_LOGIC)ENDfulladderARCHITECTUREaddstrOFfulladderISaddstr是結(jié)構(gòu)體名BEGINS=AXBXCiCo=(AB)(ACi)(BCi)ENDaddstr從這個(gè)例子中可以看出,一段完整的VHDL代碼主要由以下幾部分組成:3.端口信號(hào)輸入輸出狀態(tài)有以下幾種狀態(tài):IN信號(hào)進(jìn)入電路單元。OUT信號(hào)從電
8、路單元輸出。INOUT信號(hào)是雙向的,既可以進(jìn)入電路單元也可以從電路單元輸出。BUFFER信號(hào)從電路單元輸出,同時(shí)在電路單元內(nèi)部可以使用該輸出信號(hào)。小提示:OUT與BUFFER信號(hào)的區(qū)別就在于信號(hào)是否往內(nèi)部有反饋,將輸出端口定義為BUFFER型,可以省去一個(gè)用于中間運(yùn)算的一個(gè)臨時(shí)信號(hào),但是并不推薦這么做。4.端口數(shù)據(jù)類型(TYPE)定義端口信號(hào)的數(shù)據(jù)類型,在VHDL中,常用的端口信號(hào)數(shù)據(jù)類型如下:(1)位(BIT)型:表示一位信號(hào)的值,可
9、以取值‘0’和‘1’,放在單引號(hào)里面表示,如X=‘1’,Y=‘0’。(2)位向量(BIT_VECT)型:表示一組位型信號(hào)值,在使用時(shí)必須標(biāo)明位向量的寬度(個(gè)數(shù))和位向量的排列順序,例如:Q:OUTBIT_VECT(3downto0),表示Q3,Q2,Q1,Q0四個(gè)位型信號(hào)。位向量的信號(hào)值放在雙引號(hào)里面表示,例如Q=“0000”(3)標(biāo)準(zhǔn)邏輯位(STD_LOGIC)型:IEEE標(biāo)準(zhǔn)的邏輯類型,它是BIT型數(shù)據(jù)類型的擴(kuò)展,可以取值‘U’,‘
10、X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’,‘’等。(4)標(biāo)準(zhǔn)邏輯位向量(STD_LOGIC_VECT)型:IEEE標(biāo)準(zhǔn)的邏輯向量,表示一組標(biāo)準(zhǔn)邏輯位型信號(hào)值。VHDL是與類型高度相關(guān)的語(yǔ)言,不允許將一種數(shù)據(jù)類型的信號(hào)賦予另一種數(shù)據(jù)類型的信號(hào)。除了上述介紹的數(shù)據(jù)類型外,還有其他多種數(shù)據(jù)類型用于定義內(nèi)部信號(hào)和變量,請(qǐng)參見(jiàn)12節(jié)。小提示:相同類型(模型相同,數(shù)據(jù)類型相同)的端口可以寫在同一行,如:ENTITYcntm16ISPT(
11、ENRdCLK:INSTD_LOGICCo:OUTSTD_LOGICQ:BUFFERSTD_LOGIC_VECT(3DOWNTO0))ENDcntm16此外要注意,最后一個(gè)端口結(jié)尾沒(méi)有分號(hào)!1.1.4VHDL語(yǔ)言的結(jié)構(gòu)體(ARCHITECTURE)結(jié)構(gòu)體是VHDL程序設(shè)計(jì)中的最主要組成部分,是描述設(shè)計(jì)單元的具體結(jié)構(gòu)和功能,在程序中,結(jié)構(gòu)體放在實(shí)體的后面。每一個(gè)結(jié)構(gòu)體都有名稱,結(jié)構(gòu)體的名稱是由設(shè)計(jì)者任取的,結(jié)構(gòu)體是以標(biāo)識(shí)符ARCHITEC
12、TURE開(kāi)頭,以END結(jié)尾。結(jié)構(gòu)體可以有三種描述方式,分別是行為(BEAVHER)描述方式、數(shù)據(jù)流(DATAFLOW)描述方式和結(jié)構(gòu)(STRUCTURE)描述方式,其中數(shù)據(jù)流(DATAFLOW)描述方式又稱為寄存器(RTL)描述方式。不同的結(jié)構(gòu)體采用不同的描述語(yǔ)句。結(jié)構(gòu)體的一般格式為:ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名稱IS說(shuō)明語(yǔ)句BEGIN電路描述語(yǔ)句END結(jié)構(gòu)體名;結(jié)構(gòu)體說(shuō)明語(yǔ)句是對(duì)結(jié)構(gòu)體中用到的數(shù)據(jù)對(duì)象的數(shù)據(jù)類型、元件和子
13、程序等加以說(shuō)明。電路描述語(yǔ)句用并行語(yǔ)句來(lái)描述電路的各種功能,這些并行語(yǔ)句包括并行信號(hào)賦值語(yǔ)句、條件賦值(WHENELSE)語(yǔ)句、進(jìn)程(PROCESS)語(yǔ)句、元件例化(COMPOMAP)語(yǔ)句和子程序調(diào)用語(yǔ)句等。小提示:結(jié)構(gòu)體中定義的參數(shù)(信號(hào),變量等)名稱不能與其所屬實(shí)體的端口名重名。結(jié)構(gòu)體的結(jié)束語(yǔ)句也可以寫成ENDARCHITECTURE結(jié)構(gòu)體名或者簡(jiǎn)寫為END。例112設(shè)計(jì)程序的結(jié)構(gòu)體部分如下:ARCHITECTUREcounstrO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vhdl語(yǔ)法格式
- perl的基本語(yǔ)法perl的基本語(yǔ)法
- 大學(xué)生實(shí)習(xí)報(bào)告模板7篇_1共34頁(yè)
- 大學(xué)生實(shí)習(xí)報(bào)告模板7篇_1共34頁(yè)
- 管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告共34頁(yè)
- 管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告共34頁(yè)
- 紫微斗數(shù)基本教程共67頁(yè)
- 大學(xué)英語(yǔ)語(yǔ)法課堂翻轉(zhuǎn)教學(xué)模式論文共5頁(yè)
- 農(nóng)業(yè)統(tǒng)計(jì)方法-34頁(yè)
- 安徽小吃簡(jiǎn)略
- 第頁(yè)(共頁(yè))
- 基本語(yǔ)法of的用法
- 法語(yǔ)最全基本語(yǔ)法
- 說(shuō)明書(34頁(yè)).doc
- 說(shuō)明書(34頁(yè)).doc
- 專題及翻譯(34頁(yè)).doc
- 說(shuō)明書(34頁(yè)).doc
- 說(shuō)明書(34頁(yè)).doc
- 專題及翻譯(34頁(yè)).doc
- 萬(wàn)科品牌之路(34)頁(yè)
評(píng)論
0/150
提交評(píng)論