第四章VHDL設(shè)計(jì)初步_第1頁(yè)
第四章VHDL設(shè)計(jì)初步_第2頁(yè)
第四章VHDL設(shè)計(jì)初步_第3頁(yè)
第四章VHDL設(shè)計(jì)初步_第4頁(yè)
第四章VHDL設(shè)計(jì)初步_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章VHDL設(shè)計(jì)初步第一頁(yè),共46頁(yè)。VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage),意為超高速集成電路硬件描述語(yǔ)言。由美國(guó)國(guó)防部70~80年代組織研制開(kāi)發(fā),1985年完成第一版,1987年成為IEEEStd1076-1987。美國(guó)國(guó)防部規(guī)定所有官方的ASIC設(shè)計(jì)都必須用VHDL為設(shè)計(jì)描述語(yǔ)言,此后漸漸成為工業(yè)標(biāo)準(zhǔn)為大家接受。1993年修改成IEEEStd1164-1993。1995年,中國(guó)國(guó)家技術(shù)監(jiān)督局組織編撰并出版《CAD通用技術(shù)規(guī)范》,推薦VHDL語(yǔ)言作為我國(guó)電子設(shè)計(jì)自動(dòng)化硬件描述語(yǔ)言的國(guó)家標(biāo)準(zhǔn)。VHDL的由來(lái)4.1概述第二頁(yè),共46頁(yè)。一些語(yǔ)法約定[]可選內(nèi)容大小寫(xiě)不敏感--后面為注釋層次縮進(jìn)源文件名必須與實(shí)體名一致第三頁(yè),共46頁(yè)。4.2VHDL語(yǔ)言的基本單元及其構(gòu)成4.2.12選1多路選擇器的VHDL描述第四頁(yè),共46頁(yè)。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21IS PORT(a,b,s:INBIT; q:OUTBIT);ENDmux21;ARCHITECTUREconnectOFmux21ISBEGIN q<=aWHENs='0'ELSEb;ENDconnect;設(shè)計(jì)一個(gè)2選1多路通道程序包實(shí)體結(jié)構(gòu)體信號(hào)傳輸符號(hào)第五頁(yè),共46頁(yè)。第六頁(yè),共46頁(yè)。4.2.2VHDL程序的基本結(jié)構(gòu)第七頁(yè),共46頁(yè)。1、ENTITY(實(shí)體)是VHDL設(shè)計(jì)中最基本的組成部分之一,它類(lèi)似于原理圖中的一個(gè)部件符號(hào),它并不描述設(shè)計(jì)的具體功能,只定義了該設(shè)計(jì)所需的全部輸入/輸出信號(hào)。實(shí)體的格式如下:ENTITY實(shí)體名IS[GENERIC(常數(shù)名:數(shù)據(jù)類(lèi)型[:=設(shè)定值]);

PORT(列出設(shè)計(jì)的所有輸入/輸出信號(hào));END實(shí)體名;VHDL結(jié)構(gòu)要點(diǎn)實(shí)際上是器件名,最好用相應(yīng)功能來(lái)確定,如counter4b,adder8b。注意不能用prim等庫(kù)的元件的名字。規(guī)定實(shí)體的內(nèi)部特性參數(shù),如端口大小,子元件數(shù)目,定時(shí)特性等。第八頁(yè),共46頁(yè)。端口說(shuō)明格式為:

PORT(端口名:端口模式數(shù)據(jù)類(lèi)型…);VHDL結(jié)構(gòu)要點(diǎn)

INOUTINOUT

BUFFER端口模式:用來(lái)說(shuō)明數(shù)據(jù)、信號(hào)通過(guò)該端口的方向。(1)IN信號(hào)進(jìn)入實(shí)體;(2)OUT信號(hào)離開(kāi)實(shí)體,不能在內(nèi)部反饋使用;(3)INOUT信號(hào)是雙向的,既可進(jìn)入也可離開(kāi)實(shí)體;(4)BUFFER

信號(hào)輸出到實(shí)體外部,但同時(shí)也可在實(shí)體內(nèi)部反饋,允許內(nèi)部引用該端口的信號(hào)。第九頁(yè),共46頁(yè)。注意簡(jiǎn)單地說(shuō)<=或:=In端口

out端口<=或:=

buffer端口<=或:=buffer端口VHDL結(jié)構(gòu)要點(diǎn)In信號(hào)只能被引用,不能被賦值out信號(hào)只能被賦值,不能被引用buffer信號(hào)可以被引用,也可以被賦值第十頁(yè),共46頁(yè)。2、Arcthitecture(結(jié)構(gòu)體)格式:

Arcthitecture結(jié)構(gòu)體名of實(shí)體名is[說(shuō)明語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類(lèi)型、函數(shù)等的定義

begin[功能描述語(yǔ)句]end結(jié)構(gòu)體名;

VHDL結(jié)構(gòu)要點(diǎn)并行語(yǔ)句或順序語(yǔ)句或它們的混合。描述器件內(nèi)部邏輯功能或電路結(jié)構(gòu)。第十一頁(yè),共46頁(yè)。VHDL結(jié)構(gòu)要點(diǎn)說(shuō)明語(yǔ)句 說(shuō)明功能描述中用到的信號(hào)(SIGNAL)數(shù)據(jù)類(lèi)型(TYPE)常數(shù)(CONSTANT)元件(COMPONENT)函數(shù)(FUNCTION)過(guò)程(PROCEDURE)第十二頁(yè),共46頁(yè)。VHDL結(jié)構(gòu)要點(diǎn)功能描述:塊語(yǔ)句、進(jìn)程語(yǔ)句、信號(hào)賦值語(yǔ)句、子程序調(diào)用語(yǔ)句、元件例化語(yǔ)句多個(gè)語(yǔ)句可以是并行執(zhí)行的,也可順序執(zhí)行,取決于所使用的語(yǔ)句類(lèi)型:塊語(yǔ)句:多個(gè)并行語(yǔ)句構(gòu)成的模塊進(jìn)程語(yǔ)句:順序語(yǔ)句模塊信號(hào)賦值語(yǔ)句:向信號(hào)或端口賦值子程序調(diào)用語(yǔ)句:調(diào)用一個(gè)已設(shè)計(jì)好子程序。元件例化語(yǔ)句:調(diào)用元件,并將元件拼接為電路模塊第十三頁(yè),共46頁(yè)。VHDL結(jié)構(gòu)要點(diǎn)ENTITYmux21a IS PORT (a,b: IN BIT; s: IN BIT; q: OUT BIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aIS BEGIN q<=aWHEN

s='0'

ELSEb;ENDARCHITECTUREone;WHEN_ELSE并行賦值語(yǔ)句賦值語(yǔ)句條件判斷表達(dá)式第十四頁(yè),共46頁(yè)。ARCHITECTUREoneOFmux21aIS SIGNALd,e:BIT;

BEGIN d<=aAND(NOTs); e<=bANDs; q<=dORe;ENDARCHITECTUREone;邏輯操作符:BIT,BOOLEAN,STD_LOGIC第十五頁(yè),共46頁(yè)。ARCHITECTUREoneOFmux21aIS BEGIN q<=(aAND(NOTs))OR(bANDs);ENDARCHITECTUREone;第十六頁(yè),共46頁(yè)。ARCHITECTUREoneOFmux21aIS BEGIN

PROCESS(a,b,s) BEGIN

IFs='0'THEN q<=a;

ELSE q<=b; ENDIF; ENDPROCESS;ENDARCHITECTUREone;PROCESS引導(dǎo)的語(yǔ)句為進(jìn)程語(yǔ)句,所有順序語(yǔ)句都必須放在進(jìn)程語(yǔ)句中PROCESS語(yǔ)句的敏感信號(hào)表IF_THEN_ELSE順序語(yǔ)句第十七頁(yè),共46頁(yè)。4.3VHDL文本輸入設(shè)計(jì)方法初步File->New…File->Save…VHDL文件.vhdAHDL文件.tdfVerilog文件.v技巧:從保存路徑直接新建一個(gè)文件夾第十八頁(yè),共46頁(yè)。將當(dāng)前設(shè)計(jì)指定為工程然后選擇器件、分配引腳File->Project->SetProjecttoCurrentFile第十九頁(yè),共46頁(yè)。排錯(cuò)有兩種定位錯(cuò)誤的方法第1步、單擊Error行,使之反色顯示第2步、單擊Locate按鈕直接雙擊Error行第二十頁(yè),共46頁(yè)。常見(jiàn)錯(cuò)誤標(biāo)點(diǎn)錯(cuò)誤將設(shè)計(jì)文件放于根目錄下,沒(méi)有放在工作庫(kù)下文件后綴.vhd設(shè)成.tdf設(shè)計(jì)文件名和實(shí)體名不一致底層設(shè)計(jì)沒(méi)有運(yùn)行createdefaultincludefile命令…第二十一頁(yè),共46頁(yè)。仿真下載時(shí)序仿真和功能仿真的意義時(shí)序仿真就是接近真實(shí)器件運(yùn)行特性的時(shí)序仿真,仿文件中已包含了器件硬件特性參數(shù),因而仿真精度高。但時(shí)序仿真的仿真文件必須來(lái)自針對(duì)具體器件的綜合器與適配器。功能仿真是直接對(duì)VHDL、原理圖描述或其它描述形式的邏輯功能進(jìn)行測(cè)試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)要求的過(guò)程。仿真過(guò)程不涉及任何具體器件的硬件特性。仿照第三章的內(nèi)容進(jìn)行仿真和下載第二十二頁(yè),共46頁(yè)。第二十三頁(yè),共46頁(yè)。LIBRARY

IEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITY

DFF1

IS

PORT

(clk:IN

STD_LOGIC;

d:INSTD_LOGIC;

q:OUT

STD_LOGIC);

ENDDFF1;ddf1打開(kāi)IEEE庫(kù)STD_LOGIC:標(biāo)準(zhǔn)邏輯位在綜合器中,STD_LOGIC被看作有9種值,如’-’、’X’、’0’、’1’和’Z’等而B(niǎo)IT只能取’0’和’1’程序包4.4VHDL程序設(shè)計(jì)舉例例4-1D觸發(fā)器第二十四頁(yè),共46頁(yè)。ARCHITECTUREbhvOFDFF1ISSIGNALq1:STD_LOGIC;BEGIN

PROCESS(clk)

BEGIN

IFclk'EVENTANDCLK='1'THEN q1<=D;

END

IF; q<=q1;

END

PROCESS;ENDbhv;引進(jìn)內(nèi)部節(jié)點(diǎn)信號(hào)進(jìn)程語(yǔ)句及敏感信號(hào)檢測(cè)clk上升沿將數(shù)據(jù)輸出端口不完整條件語(yǔ)句順序語(yǔ)句第二十五頁(yè),共46頁(yè)。邊沿型觸發(fā)器的時(shí)序波形第二十六頁(yè),共46頁(yè)。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;ENTITYtest1ISport(clk,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDtest1;ARCHITECTUREtest1_bodyOFtest1ISBEGINPROCESS(clk)BEGIN

IFrising_edge(clk)THENq<=d;

END

IF;END

PROCESS;ENDtest1_body;測(cè)定上升沿的函數(shù),clk必須是STD_LOGIC第二十七頁(yè),共46頁(yè)。

例4-1基本語(yǔ)法小結(jié)

定義信號(hào)SIGNAL:SIGNALA1:STD_LOGIC;信號(hào)屬性函數(shù)EVENTPROCESS語(yǔ)句結(jié)構(gòu):順序語(yǔ)句,行為描述語(yǔ)句敏感信號(hào)表,PROCESS語(yǔ)句特點(diǎn)

時(shí)序電路:不完整條件語(yǔ)句產(chǎn)生時(shí)序電路時(shí)鐘上升沿測(cè)試語(yǔ)句結(jié)構(gòu):

CLK’EVENTANDCLK=‘1‘,RISING_EDGE()第二十八頁(yè),共46頁(yè)。例4-2一位全加器第二十九頁(yè),共46頁(yè)。半加器真值表ABSCo0000101001101101第三十頁(yè),共46頁(yè)。方法一:根據(jù)電路原理圖LIBRARYIEEE;USE

IEEE.STD_LOGIC_1164.ALL;ENTITY

h_adder1

IS

PORT

(a,b:IN

STD_LOGIC;

co,so:OUT

STD_LOGIC);END

h_adder1;ARCHITECTURE

fh1

OF

h_adder1

ISBEGIN

so<=NOT(a

XOR

(NOTb));

co<=a

AND

b;END

fh1;并行賦值語(yǔ)句第三十一頁(yè),共46頁(yè)。第三十二頁(yè),共46頁(yè)。方法二:根據(jù)真值表…ARCHITECTURE

fh2

OF

h_adder2

ISSIGNAL

sel:STD_LOGIC_VECTOR(1

DOWNTO

0);

BEGIN

sel<=a&b;

PROCESS(sel)

BEGIN

CASE

sel

IS

WHEN

"00"=>so<='0';co<='0';

WHEN

"01"=>so<='1';co<='0';

WHEN

"10"=>so<='1';co<='0';

WHEN

"11"=>so<='1';co<='1';

WHEN

OTHERS=>NULL;

END

CASE;

END

PROCESS;ENDfh2;并置操作符完整條件語(yǔ)句第三十三頁(yè),共46頁(yè)。第三十四頁(yè),共46頁(yè)。全加器或門(mén)描述LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;ENTITY

or2aIS

PORT

(a,b:IN

STD_LOGIC;

c:OUT

STD_LOGIC);END

or2a;ARCHITECTURE

one

OF

or2a

ISBEGIN

c<=a

OR

b;END

one;第三十五頁(yè),共46頁(yè)。全加器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderIS

PORT(ain,bin,cin:INSTD_LOGIC; cout,sum:OUTSTD_LOGIC);

ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderIS

COMPONENTh_adder1

PORT(a,b:INSTD_LOGIC; co,so:OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTor2a PORT(a,b:INSTD_LOGIC; c:OUTSTD_LOGIC);

END

COMPONENT;

第三十六頁(yè),共46頁(yè)。SIGNAL

d,e,f:STD_LOGIC;BEGINu1:h_adder1PORT

MAP(ain,bin,d,e);u2:h_adder1PORT

MAP(e,cin,f,sum);u3:or2aPORT

MAP(d,f,cout);ENDfd1;def第三十七頁(yè),共46頁(yè)。

例4-2基本語(yǔ)法小結(jié)

CASE語(yǔ)句:表達(dá)真值表CASE<表達(dá)式>ISWHEN<選擇值或標(biāo)識(shí)符>=<順序語(yǔ)句>;……

ENDCASE;第三十八頁(yè),共46頁(yè)。標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類(lèi)型:STD_LOGIC_VECTORB:OUTSTD_LOGIC_VECTOR(7DOWNTO0);SIGNALA:STD_LOGIC_VECTOR(1TO4);B<=“01100010”;--B(6)=?B(4DOWNTO1)<=“1101”;--B(3)=?A(1TO4)<=“1101”;--A(3)=?B(7DOWNTO4)<=A;--B(6)=A(?)第三十九頁(yè),共46頁(yè)。元件例化語(yǔ)句

COMPONENT元件名 PORT(端口名表); ENDCOMPONENT;例化名:元件名PORTMAP([端口名=>]連接端口名,);

第四十頁(yè),共46頁(yè)。并置操作符:“&”a<='1''0'b(1)e(2)IFad="10100011”THEN第四十一頁(yè),共46頁(yè)。LIBRARYIEEE;USEIEEE.std_logic_1164.all;ENTITYcnt4_1IS

PORT(

溫馨提示

  • 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ù)網(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)論