vhdl基本語法(簡略共34頁)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、VHDL硬件描述語言硬件描述語言1.1VHDL概述1.1.1VHDL的特點(diǎn)VHDL語言作為一種標(biāo)準(zhǔn)的硬件描述語言,具有結(jié)構(gòu)嚴(yán)謹(jǐn)、描述能力強(qiáng)的特點(diǎn),由于VHDL語言來源于C、Ftran等計(jì)算機(jī)高級語言,在VHDL語言中保留了部分高級語言的原語句,如if語句、子程序和函數(shù)等,便于閱讀和應(yīng)用。具體特點(diǎn)如下:1.支持從系統(tǒng)級到門級電路的描述,既支持自底向上(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)、過程(procure)和函數(shù)(function)等語句,用結(jié)構(gòu)化層次化的描述方法,使復(fù)雜電路的設(shè)計(jì)更加簡便。采用包的概念,便于標(biāo)準(zhǔn)設(shè)計(jì)文檔資料的保存和廣泛使用。3.VHDL語言有常

3、數(shù)、信號和變量三種數(shù)據(jù)對象,每一個(gè)數(shù)據(jù)對象都要指定數(shù)據(jù)類型,VHDL的數(shù)據(jù)類型豐富,有數(shù)值數(shù)據(jù)類型和邏輯數(shù)據(jù)類型,有位型和位向量型。既支持預(yù)定義的數(shù)據(jù)類型,又支持自定義的數(shù)據(jù)類型,其定義的數(shù)據(jù)類型具有明確的物理意義,VHDL是強(qiáng)類型語言。4.數(shù)字系統(tǒng)有組合電路和時(shí)序電路,時(shí)序電路又分為同步和異步,電路的動(dòng)作行為有并行和串行動(dòng)作,VHDL語言常用語句分為并行語句和順序語句,完全能夠描述復(fù)雜的電路結(jié)構(gòu)和行為狀態(tài)。1.1.2VHDL語言的基本

4、結(jié)構(gòu)VHDL語言是數(shù)字電路的硬件描述語言,在語句結(jié)構(gòu)上吸取了Ftran和C等計(jì)算機(jī)高級語言的語句,如IF語句、循環(huán)語句、函數(shù)和子程序等,只要具備高級語言的編程技能和數(shù)字邏輯電路的設(shè)計(jì)基礎(chǔ),就可以在較短的時(shí)間內(nèi)學(xué)會(huì)VHDL語言。但是VHDL畢竟是一種描述數(shù)字電路的工業(yè)標(biāo)準(zhǔn)語言,該種語言的標(biāo)識(shí)符號、數(shù)據(jù)類型、數(shù)據(jù)對象以及描述各種電路的語句形式和程序結(jié)構(gòu)等方面具有特殊的規(guī)定,如果一開始就介紹它的語法規(guī)定,會(huì)使初學(xué)者感到枯燥無味,不得要領(lǐng)。較好

5、的辦法是選取幾個(gè)具有代表性的VHDL程序?qū)嵗?,先介紹整體的程序結(jié)構(gòu),再逐步介紹程序中的語法概念。一個(gè)VHDL語言的設(shè)計(jì)程序描述的是一個(gè)電路單元,這個(gè)電路單元可以是一個(gè)門電路,或者是一個(gè)計(jì)數(shù)器,也可以是一個(gè)CPU。一般情況下,一個(gè)完整的VHDL語言程序至少要包含程序包、實(shí)體和結(jié)構(gòu)體三個(gè)部分。實(shí)體給出電路單元的外部輸入輸出接口信號和引腳信息,結(jié)構(gòu)體給出了電路單元的內(nèi)部結(jié)構(gòu)和信號的行為特點(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)庫USEIEEE.STD_LOGIC_1164.ALLUSEIEEE.STD_LOGIC_ARITH.ALLUSEIEEE.STD_LOGIC_UNSIGNED.ALLENTITYfulladderISfu

7、lladder是實(shí)體名稱PT(ABCi:INSTD_LOGIC定義輸入輸出信號CoS:OUTSTD_LOGIC)ENDfulladderARCHITECTUREaddstrOFfulladderISaddstr是結(jié)構(gòu)體名BEGINS=AXBXCiCo=(AB)(ACi)(BCi)ENDaddstr從這個(gè)例子中可以看出,一段完整的VHDL代碼主要由以下幾部分組成:3.端口信號輸入輸出狀態(tài)有以下幾種狀態(tài):IN信號進(jìn)入電路單元。OUT信號從電

8、路單元輸出。INOUT信號是雙向的,既可以進(jìn)入電路單元也可以從電路單元輸出。BUFFER信號從電路單元輸出,同時(shí)在電路單元內(nèi)部可以使用該輸出信號。小提示:OUT與BUFFER信號的區(qū)別就在于信號是否往內(nèi)部有反饋,將輸出端口定義為BUFFER型,可以省去一個(gè)用于中間運(yùn)算的一個(gè)臨時(shí)信號,但是并不推薦這么做。4.端口數(shù)據(jù)類型(TYPE)定義端口信號的數(shù)據(jù)類型,在VHDL中,常用的端口信號數(shù)據(jù)類型如下:(1)位(BIT)型:表示一位信號的值,可

9、以取值‘0’和‘1’,放在單引號里面表示,如X=‘1’,Y=‘0’。(2)位向量(BIT_VECT)型:表示一組位型信號值,在使用時(shí)必須標(biāo)明位向量的寬度(個(gè)數(shù))和位向量的排列順序,例如:Q:OUTBIT_VECT(3downto0),表示Q3,Q2,Q1,Q0四個(gè)位型信號。位向量的信號值放在雙引號里面表示,例如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)邏輯位型信號值。VHDL是與類型高度相關(guān)的語言,不允許將一種數(shù)據(jù)類型的信號賦予另一種數(shù)據(jù)類型的信號。除了上述介紹的數(shù)據(jù)類型外,還有其他多種數(shù)據(jù)類型用于定義內(nèi)部信號和變量,請參見12節(jié)。小提示:相同類型(模型相同,數(shù)據(jù)類型相同)的端口可以寫在同一行,如:ENTITYcntm16ISPT(

11、ENRdCLK:INSTD_LOGICCo:OUTSTD_LOGICQ:BUFFERSTD_LOGIC_VECT(3DOWNTO0))ENDcntm16此外要注意,最后一個(gè)端口結(jié)尾沒有分號!1.1.4VHDL語言的結(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開頭,以END結(jié)尾。結(jié)構(gòu)體可以有三種描述方式,分別是行為(BEAVHER)描述方式、數(shù)據(jù)流(DATAFLOW)描述方式和結(jié)構(gòu)(STRUCTURE)描述方式,其中數(shù)據(jù)流(DATAFLOW)描述方式又稱為寄存器(RTL)描述方式。不同的結(jié)構(gòu)體采用不同的描述語句。結(jié)構(gòu)體的一般格式為:ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名稱IS說明語句BEGIN電路描述語句END結(jié)構(gòu)體名;結(jié)構(gòu)體說明語句是對結(jié)構(gòu)體中用到的數(shù)據(jù)對象的數(shù)據(jù)類型、元件和子

13、程序等加以說明。電路描述語句用并行語句來描述電路的各種功能,這些并行語句包括并行信號賦值語句、條件賦值(WHENELSE)語句、進(jìn)程(PROCESS)語句、元件例化(COMPOMAP)語句和子程序調(diào)用語句等。小提示:結(jié)構(gòu)體中定義的參數(shù)(信號,變量等)名稱不能與其所屬實(shí)體的端口名重名。結(jié)構(gòu)體的結(jié)束語句也可以寫成ENDARCHITECTURE結(jié)構(gòu)體名或者簡寫為END。例112設(shè)計(jì)程序的結(jié)構(gòu)體部分如下:ARCHITECTUREcounstrO

溫馨提示

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

評論

0/150

提交評論