《EDA技術(shù)實踐教程》課件3.4VHDL并行語句_第1頁
《EDA技術(shù)實踐教程》課件3.4VHDL并行語句_第2頁
《EDA技術(shù)實踐教程》課件3.4VHDL并行語句_第3頁
《EDA技術(shù)實踐教程》課件3.4VHDL并行語句_第4頁
《EDA技術(shù)實踐教程》課件3.4VHDL并行語句_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.4VHDL并行語句并行語句——出現(xiàn)在結(jié)構(gòu)體中,各語句并行(同步)運行,與書寫的順序無關。一、并行語句的種類ARCHITECTURE生成語句條件信號賦值語句元件例化語句并行信號賦值語句塊語句進程語句并行過程調(diào)用語句信號信號信號信號信號信號ENDARCHITECTURE二、并行語句的使用結(jié)構(gòu)

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

并行語句ENDARCHITECTURE結(jié)構(gòu)體名3.4.1

進程語句進程語句屬于并行語句,它在VHDL中使用最頻繁、最能體現(xiàn)VHDL風格。進程語句格式:[進程標號:]PROCESS[(敏感信號參數(shù)表)][IS] [進程說明部分] BEGIN

順序描述語句

ENDPROCESS[進程標號];例5,同步清除十進制加法計數(shù)器的描述LIBRARYIEEE;USEIEEE.STD

LOGIC

1164.ALLENTITYcnt10ISPORT(clr:INSTD

LOGIC;

clk:INSTD

LOGIC;

cnt:BUFFERINTEGERRANGE9DOWNTO0);ENDcnt10;ARCHITECTUREexample5OFcnt10ISBEGINPROCESS BEGIN WAITUNTILclk‘EVENTANDclk=’1’;

IF(clr=’1’ORcnt=9)THEN cnt<=0;

ELSE Cnt<=cnt+1;

ENDIF;

ENDPROCESS;ENDexample5;3.4.2塊語句

功能:將一個大系統(tǒng)程序分解為若干子系統(tǒng)(塊)編寫,便于程序的編寫、調(diào)試和查錯。格式:塊名:BLOCK [說明部分] BEGIN … --以并行語句構(gòu)成的塊體

ENDBLOCK塊名例如:假設CPU芯片由算術(shù)邏輯運算單元ALU和寄存器組REG8組成,REG8又由8個REG1、REG2、…子塊構(gòu)成,其程序結(jié)構(gòu)為:LIBRARYIEEE;USEIEEE.STD

LOGIC

1164.ALLENTITYCPUISPORT(clk,RESET:INSTD

LOGIC;

ADDERS:OUTSTD

LOGIC_VECTOR(31DOWNTO0);

DATA:INOUTSTD

LOGIC

VECTOR(7DOWNTO0);ENDCPU;ARCHITECTURECPU_ALU_REG8OFCPUISSIGANLibus,dbus:STD_LOGIC_VECTOR(31DOWNTO0);--定義全局量BEGIN ALU:BLOCK SIGNALQbus:STD_LOGIC_VECTOR(31DOWNTO0);--定義局域量

BEGIN --ALU塊行為描述語句

ENDALU;REG8BLOCK SIGNALZbus:STD_LOGIC_VECTOR(31DOWNTO0);--定義局域量

BEGIN REG1BLOCK SIGNALZbus1:STD_LOGIC_VECTOR(31DOWNTO0);--定義子局域量

BEGIN --REG1子塊行為描述語句

ENDREG1

… ENDREG8ENDCPU_ALU_REG8說明:在結(jié)構(gòu)體中定義的全局量可以在各塊結(jié)構(gòu)中使用;塊結(jié)構(gòu)中定義局域量只能在本塊及所屬的子塊中使用;子塊中定義子局域量只能在子塊中使用。3.4.1并行信號賦值語句

一、簡單信號賦值語句格式:賦值目標<=表達式;例如:output1<=aANDb;規(guī)則:賦值目標必須是信號,而且出現(xiàn)在結(jié)構(gòu)體或塊語句中二、條件信號賦值語句格式:賦值目標<=表達式WHEN賦值條件ELSE

表達式WHEN賦值條件ELSE …

表達式;例如:對4選1多路選擇器的描述

… z<=aWHENs=”00”ELSE bWHENs=”01”ELSEcWHENs=”10”ELSEd;

…三、選擇信號賦值語句格式:WITH選擇表達式SELECT賦值目標信號<=表達式WHEN選擇值, --以“,”號結(jié)束 表達式WHEN選擇值, …

表達式WHEN選擇值;

--以“;”號結(jié)束例如:WITHselSELECT q<=i0AFTER10nsWHEN0,

i1AFTER10nsWHEN1,

i2AFTER10nsWHEN2,

i3AFTER10nsWHEN3, ‘X’AFTER10nsWHENOTHERS;

四、子程序和并行過程調(diào)用語句VHDL中的子程序(SUBPROGRAM)有兩種類型:過程(PROCEDURE)和函數(shù)(FUNCTION)。1、過程(PROCEDURE)語句格式:PROCEDURE過程名(參數(shù)表);--過程首

PROCEDURE過程名(參數(shù)表)IS--過程體

[說明部分] BEGIN

順序語句;

ENDPROCEDURE過程名;

例如:PROCEDUREadder(SIGANLa,b:INSTD_LOGIC_VECTOR; sum:OUTSTD_LOGIC)PROCEDUREadder(SIGANLa,b:INSTD_LOGIC_VECTOR; sum:OUTSTD_LOGIC)IS BEGIN … ENDadder;

2、過程調(diào)用語句格式:過程名(關聯(lián)參數(shù)表);例如:adder(a1,b1,sum1);規(guī)則:(1)若過程在進程(PROCESS)中調(diào)用,則是順序語句;(2)若過程調(diào)用出現(xiàn)在結(jié)構(gòu)體(ARCHITECTURE)或塊(BLOCK)中,則屬于并行語句,相當一個進程,而且每調(diào)用一次過程,就相當插入一個元件。3、函數(shù)(FUNCTION)語句格式:FUNCTION函數(shù)名(參數(shù)表)

RETURN數(shù)據(jù)類型IS [說明部分] BEGIN [順序處理語句] RETURN[返回變量名];

END[函數(shù)名];說明:函數(shù)程序通常是放在程序包(PACKAGE)中。例如,求最大值的函數(shù):LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEbpacISFUNCTIONmax(a:STD_LOGIC_VECTOR;--函數(shù)首

B:STD_LOGIC_VECTOR)

RETURESTD_LOGIC_VECTORENDbpac;PACKAGEBODYbpacISFUNCTIONmax(a:STD_LOGIC_VECTOR;--函數(shù)體

B:STD_LOGIC_VECTOR)RETURESTD_LOGIC_VECTORISVARIABLEtemp:STD_LOGIC_VECTOR(a‘RANGE);--范圍屬性函數(shù)

BEGIN IF(a>b)THEN Temp:=a;

ELSEtemp:=b;

ENDIF;

RETURNtemp;

ENDmax;

ENDbpac;4、函數(shù)調(diào)用及結(jié)果的返回格式:函數(shù)(關聯(lián)參數(shù)表);規(guī)則:函數(shù)調(diào)用是出現(xiàn)在結(jié)構(gòu)體的語句中。例如,peak<=max(data,peak);五、元件例化(COMPONENT)語句格式:COMPONENT元件名

GENERIC說明;--參數(shù)說明

PORT說明;--端口說明

ENDCOMPONENT;例化名:元件名PORTMAP(信號,…);--元件例化元件定義說明:(1)COMPONENT語句可以在結(jié)構(gòu)體(ARCHITECTURE)、程序包(PACKAGE)和塊(BLOCK)的說明中使用;GENERIC用于該元件的可變參數(shù)的代入和賦值;PORT則說明該元件的輸入輸出端口的信號規(guī)定;(2)COMPONENT語句分為“元件定義”和“元件例化”兩部分;“元件定義”完成元件的“封裝”,“元件例化”完成電路板上的元件“插座”的定義,“例化名”(標號名)相當于“插座名”是不可缺少的;

(3)(信號,…)部分完成“元件”引腳與“插座”引腳的連接——“關聯(lián)”關聯(lián)方法:①位置影射法——上層元件端口說明語句中的信號名與PORTMAP()中的信號名書寫順序和位置一一對應。例如,u1:and1(a1,b1,y1);②名稱映射法——用“=>”號將上層元件端口說明語句中的信號名與PORTMAP()中的信號名關聯(lián)起來。例如,

u1:and1(a=>a1,b=>b1,y=>y1);舉例:首先完成一個2輸入與非門的設計,然后利用元件例化產(chǎn)生下圖電路(P131例6-13)abca1b1c1d1z1u1u2u3XYLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYnd2ISPORT(a,b:INSTD_LOGIC; c:OUTSTD_LOGIC);ENDnd2;

ARCHITECTUREnd2behvOFnd2IS c<=aNANDb;ENDnd2behv;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYord41ISPORT(a1,b1,c1,d1:INSTD_LOGIC; z1:OUTSTD_LOGIC);ENDord41;

ARCHITECTUREord41behvOFord41ISBEGINCOMPNENTnd2PORT(a,b:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALx,y:STD_LOGIC;BEGINu1:nd2PORTMAP(a1,b1,x);--位置關聯(lián)方式u2:nd2PORTMAP(a=>c1,b=>d1,c=>y);--名字關聯(lián)方式u3:nd2PORTMAP(x,y,c=>z1);--混合關聯(lián)方式ENDARCHITECTUREor41behv

溫馨提示

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

最新文檔

評論

0/150

提交評論