




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.5.3VHDL的行為描述并發(fā)(Concurrent)描述語(yǔ)句順序(Sequential)描述語(yǔ)句行為描述語(yǔ)句順序語(yǔ)句:描述邏輯關(guān)系、算法并行語(yǔ)句:硬件并行的特點(diǎn)一、VHDL的并行語(yǔ)句并行行為賦值語(yǔ)句(簡(jiǎn)單、選擇、條件)進(jìn)程語(yǔ)句(process)例化語(yǔ)句(component)描述硬件最基本的本質(zhì)特性--并行行為。進(jìn)程行為之間并行關(guān)系,進(jìn)程內(nèi)部是順序行為。
信號(hào)〈=表達(dá)式;1.賦值語(yǔ)句:語(yǔ)法格式賦值的原則:相同位寬,相同數(shù)據(jù)類型。(1)簡(jiǎn)單并行賦值:特點(diǎn):執(zhí)行與書(shū)寫(xiě)順序無(wú)關(guān)。每一個(gè)賦值相當(dāng)于一個(gè)進(jìn)程。ENTITYexeISport(a,b:INbit;y:OUTbit);ENDexe;
ARCHITECTUREartOFexeIS
SIGNALc:bit;
BEGINy<=c;c<=aandb;
ENDart1;(2)選擇賦值with-select-whenWITH
選擇表達(dá)式SELECT信號(hào)名<=表達(dá)式1WHEN
選擇值1,表達(dá)式2WHEN選擇值2,
...
表達(dá)式nWHENothers
;
不能有重疊的條件分支。最后條件為others。選擇值必須覆蓋所有取值可能。沒(méi)有優(yōu)先級(jí)判斷。語(yǔ)法格式結(jié)束為“,”例:用選擇賦值語(yǔ)句描述四選一電路
LIBRARY
ieee;USEieee.std_logic_1164.all;entitymux4is
port
(d0,d1,d2,d3,a0,a1:in
std_logic;f:outstd_logic);endmux4;architecturertl
ofmux4issignal
sel:std_logic_vector(1downto0);beginsel<=a1&a0;
withselselectf<=d0when“00”,d1when“01”,d2when
“10”,d3when
others;end
rtl;
MUX4(3)條件賦值when-else信號(hào)名<=表達(dá)式1WHEN
條件式1ELSE
表達(dá)式2WHEN
條件式2ELSE
...條件式n-1
ELSE
表達(dá)式n;
注意:最后的Else項(xiàng)是必須的;
有優(yōu)先級(jí)邏輯關(guān)系,先判斷第一條件
類似if(在process中使用)的嵌套語(yǔ)句語(yǔ)法格式libraryieee;
use
ieee.std_logic_1164.all;
entitycoderis
port
(D:instd_logic_vector(7downto0);A:outstd_logic_vector(2downto0));
endcoder;例:8-3優(yōu)先編碼器。architecturertl
ofcoderisbeginA<=“000”whenD(7)=‘0’else“001”whenD(6)=‘0’else“010”whenD(5)=‘0’else“011”whenD(4)=‘0’else“100”whenD(3)=‘0’else“101”whenD(2)=‘0’else“110”whenD(1)=‘0’else“111”;Endtr1
語(yǔ)句With-select-whenWhen-elseIf-elseCase-when選擇條件一個(gè)信號(hào)的不同值,互斥多個(gè)信號(hào)多種組合,不必互斥多個(gè)信號(hào)多種組合,不必互斥一個(gè)信號(hào)的不同值,互斥語(yǔ)句屬性并行并行順序順序用途編碼、譯碼、多路選擇器優(yōu)先編碼器,地址譯碼器優(yōu)先編碼器,地址譯碼器編碼、譯碼、多路選擇器狀態(tài)機(jī)libraryieee;useieee.std_logic_1164.all;entitydec38isport(A:instd_logic_vector(2downto0);Y:outstd_logic_vector(7downto0));enddec38;architecturem1ofdec38isbeginwithAselectY<=“11111110"when"000",“11111101"when"001",“11111011"when"010",“11110111"when"011",“11101111"when"100",“11011111"when"101","10111111"when"110",“01111111"when"111","11111111"whenothers;
endm1;libraryieee;useieee.std_logic_1164.all;entitybcdisport(A:instd_logic_vector(3downto0);Y:outstd_logic_vector(6downto0));endbcd;七段顯示譯碼器A3A2A1A0fgabcde5107七段顯示譯碼器architecturem1ofbcdisBeginy<="1111110"whenA="0000"else
--0"0001100"when
A="0001"else--1"1101101"whenA="0010"else--2"1111001"whenA="0011"else--3"0110011"whenA="0100"else
--4"1011011"whenA="0101"else
--5“0011111"whenA="0110"else
--6"1110000"whenA="0111"else
--7"1111111"whenA="1000"else
--8"1110011"whenA="1001"else--9"0000000";Endm1;3、進(jìn)程語(yǔ)句語(yǔ)法格式[進(jìn)程名:]PROCESS
(敏感信號(hào)表)
[變量說(shuō)明語(yǔ)句];
BEGIN
順序說(shuō)明語(yǔ)句;
ENDPROCESS;提供了一種用算法描述硬件行為的方法。幾個(gè)進(jìn)程語(yǔ)句之間是并行行為。外部并行,內(nèi)部順序。敏感信號(hào)表:進(jìn)程中要讀取的信號(hào)。敏感信號(hào)的變化都將啟動(dòng)進(jìn)程。組合邏輯中,所有輸入都作為敏感信號(hào)。architecturebehavofa_varisbeginoutput<=a(i);endbehav;architecturebehavofa_varisbeginprocess(a,i)beginoutput<=a(i);endprocess;endbehav;一個(gè)簡(jiǎn)單并行信號(hào)賦值語(yǔ)句是一個(gè)進(jìn)程的縮寫(xiě)。進(jìn)程的并發(fā)特點(diǎn):等效:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYex1ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDex1;ARCHITECTURErtlOFex1ISSIGNALc:STD_LOGIC;BEGIN
y<=c;c<=aandb;ENDrtl;LIBRARYieee;USEieee.std_logic_1164.all;ENTITYex2ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDex2;ARCHITECTURErtlOFex2ISSIGNALc:STD_LOGIC;BEGINPROCESS(a,b)BEGINc<=aandb;ENDPROCESS;
PROCESS(c)BEGINy<=c;ENDPROCESS;ENDrtl;不等效:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYex1ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDex1;ARCHITECTURErtlOFex1ISSIGNALc:STD_LOGIC;BEGINc<=aandb;y<=c;ENDrtl;LIBRARYieee;USEieee.std_logic_1164.all;ENTITYex2ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDex2;ARCHITECTURErtlOFex2ISSIGNALc:STD_LOGIC;BEGIN
PROCESS(a,b,c)BEGINc<=aandb;y<=c;ENDPROCESS;ENDrtl;二、VHDL順序語(yǔ)句執(zhí)行順序與書(shū)寫(xiě)順序一致。只能出現(xiàn)在進(jìn)程(process)和子程序中。描述邏輯關(guān)系,具體算法(類似C)。順序行為If-then-elseCase–is-whenFor-loop
賦值語(yǔ)句
信號(hào)〈=表達(dá)式;語(yǔ)法格式賦值的原則:相同位寬,相同數(shù)據(jù)類型。(1)簡(jiǎn)單順序賦值:
變量:=表達(dá)式;賦值對(duì)象可為信號(hào)、變量變量賦值與信號(hào)賦值的差異:硬件實(shí)現(xiàn)的功能不同信號(hào):實(shí)際的硬件連線;變量:電路單元內(nèi)部的操作,代表暫存的臨時(shí)數(shù)據(jù)。
賦值行為的不同信號(hào)賦值:延遲更新數(shù)值;變量賦值:立即更新數(shù)值。
信號(hào)的多次賦值
a.一個(gè)進(jìn)程:最后一次賦值有效
b.多個(gè)進(jìn)程:多源驅(qū)動(dòng)線與、線或、三態(tài)總線
變量賦值:
architecturertlofvarisbegin
process(a,b,c)variabled:std_logic;--定義變量
begind:=a;x<=canddd:=b;y<=canddendprocess;endrtl;
-結(jié)果:x=cay=cb例:信號(hào)賦值與變量賦值的比較
信號(hào)賦值:
architecturertlofsigis
signald:std_logic;begin
process(a,b,c)
begind<=a;x<=candd;d<=b;y<=candd;
endprocess;
endrtl;--定義信號(hào)讀出(process中)更新(endprocess后)-結(jié)果:x=cby=cb不要在一個(gè)process中對(duì)同一信號(hào)多次賦值(2)轉(zhuǎn)向控制語(yǔ)句:主要有:
if
語(yǔ)句、case
語(yǔ)句、loop
語(yǔ)句通過(guò)條件控制決定是否執(zhí)行一條或幾條語(yǔ)句,或重新執(zhí)行一條或幾條語(yǔ)句,仿真時(shí)順序進(jìn)行。if、case、loop語(yǔ)句必需在Process語(yǔ)句中。注意!if語(yǔ)句的門閂控制(不完全if)if
條件式
then
順序處理語(yǔ)句;end
if
;1)if語(yǔ)句對(duì)于不完全的if語(yǔ)句,VHDL綜合器將引進(jìn)一個(gè)時(shí)序元件保持當(dāng)前狀態(tài)值。用于鎖存器或觸發(fā)器。if語(yǔ)句的電平觸發(fā)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;ENTITYlatchIS
port(ena,d:INstd_logic;q:OUTstd_logic);
ENDlatch;
ARCHITECTURErt1OFlatchIS
BEGIN
PROCESS(ena,d)
BEGIN
IF(ena=‘1’)thenq<=d;
ENDIF;
ENDPROCESS;ENDrt1;
綜合后生成鎖存器(latch)敏感信號(hào)表敏感信號(hào)表無(wú)d的波形LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.all;ENTITYfdISport(clk,d:INstd_logic;q:OUTstd_logic);
ENDfd;ARCHITECTURErt1OFfdIS
BEGIN
PROCESS(clk)
BEGIN
IF(clk’eventandclk=‘1’)thenq<=d;
ENDIF;
ENDPROCESS;ENDrt1;if語(yǔ)句的時(shí)鐘沿觸發(fā)敏感信號(hào)表
綜合后生成寄存器(register)時(shí)鐘上升沿觸發(fā)LIBRARY
ieee;USEieee.std_logic_1164.all;ENTITYdffIS
PORT
(d:instd_logic;clk:instd_logic;q:outstd_logic);ENDdff;ARTHITECTUREarc
OFdffIS
BEGIN
PROCESS(clk)
VARIABLEa,b:std_logic;
BEGINIF(clk’eventAND
clk='1')THENa:=d;b:=a;q<=b;
ENDIF;
ENDPROCESS;
ENDarc;LIBRARYieee;USEieee.std_logic_1164.all;ENTITYreg3IS
PORT
(d:instd_logic;clk:instd_logic;q:outstd_logic);ENDreg3;
ARTHITECTUREarc
OFreg3ISSIGNAL
a,b:std_logic;
BEGINPROCESS(clk)
BEGIN
IF
(clk’eventANDclk='1')THENa<=d;b<=a;q<=b;
ENDIF;
ENDPROCESS;
ENDarc;語(yǔ)法格式IF
條件表達(dá)式1
THEN
順序語(yǔ)句11;順序語(yǔ)句12;ELSIF
條件表達(dá)式2
THEN
順序語(yǔ)句21;順序語(yǔ)句22;ELSIF
…
ELSE
順序語(yǔ)句n1;順序語(yǔ)句n2;
ENDIF;
if_then_elsif語(yǔ)句中最先出現(xiàn)的條件優(yōu)先級(jí)最高(自上而下優(yōu)先)??梢杂卸鄠€(gè)elsif,但只能有一個(gè)else(組合邏輯)。if多選擇語(yǔ)句libraryieee;
use
ieee.std_logic_1164.all;
entitycoderis
port
(input:instd_logic_vector(7downto0);output:outstd_logic_vector(2downto0));
endcoder;例:8-3優(yōu)先編碼器。architectureartofcoderisbegin
process(input)begin
ifinput(7)=‘0’thenoutput<=“000”;
elsifinput(6)=‘0’
thenoutput<=“001”;
elsif
input(5)=‘0’thenoutput<=“010”;
elsif
input(4)=‘0’thenoutput<=“011”;
elsif
input(3)=‘0’
thenoutput<=“100”;
elsifinput(2)=‘0’thenoutput<=“101”;
elsif
input(1)=‘0’thenoutput<=“110”’;
elseoutput<=“111”;
endif;
end
process;
endart;組合邏輯一定有else,否則綜合為鎖存器CASE語(yǔ)句根據(jù)某個(gè)表達(dá)式的值來(lái)選擇執(zhí)行體。無(wú)優(yōu)先級(jí)。
(2)CASE語(yǔ)句語(yǔ)法格式CASE
選擇表達(dá)式
IS
WHEN
分支值1=>順序處理語(yǔ)句11;語(yǔ)句12;
WHEN分支值2=>順序處理語(yǔ)句21;語(yǔ)句22;
WHENOTHERS=>順序處理語(yǔ)句32;語(yǔ)句32;
END
CASE;
分支條件須在表達(dá)式范圍內(nèi),且不能重合。執(zhí)行時(shí)必須選中且只能選中一個(gè)分支。所有值必須列舉窮盡,對(duì)sted_logic等必須用others。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYtest_caseISPORT(
s1,s0:IN
STD_LOGIC;
d0,d1,d2,d3:INSTD_LOGIC;
z:OUTSTD_LOGIC
);END
test_case;ARCHITECTUREbehaveOFtest_caseISSIGNAL
s:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
PROCESS(s1,s0,d0,d1,d2,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技手段在提升生態(tài)環(huán)保意識(shí)中的應(yīng)用前景分析
- 生物學(xué)生志愿服務(wù)活動(dòng)計(jì)劃
- 未來(lái)網(wǎng)絡(luò)安全技術(shù)防范與人的雙重保護(hù)
- 電商物流的智能化升級(jí)路徑
- 家具返利合同范本
- 開(kāi)展班級(jí)拓展活動(dòng)的意義計(jì)劃
- 構(gòu)建小學(xué)生的良好品德體系計(jì)劃
- 科技發(fā)展趨勢(shì)下的商業(yè)模式變革與機(jī)遇
- 幼兒園教研學(xué)期工作計(jì)劃的師德修養(yǎng)與職業(yè)精神
- 科技助力下的網(wǎng)絡(luò)文學(xué)創(chuàng)新與突破
- 專題06 現(xiàn)代文閱讀(原卷版)2015-2024單招考試語(yǔ)文(四川真題)
- 校園超市招商政策
- 《數(shù)據(jù)采集技術(shù)》課件-網(wǎng)絡(luò)爬蟲(chóng)
- 網(wǎng)絡(luò)地址轉(zhuǎn)換NAT
- 【MOOC】營(yíng)養(yǎng)學(xué)-武漢大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 工資薪金管理制度模版(3篇)
- 廣東省茂名市高州市五校聯(lián)考2024-2025學(xué)年高一上學(xué)期12月月考化學(xué)試題(含答案)
- 高等數(shù)學(xué)(二)(山東聯(lián)盟)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋青島科技大學(xué)
- 《高級(jí)算法設(shè)計(jì)》課件 第2章 高級(jí)圖算法
- 小兒泌尿系統(tǒng)感染的護(hù)理
- DB14∕T 92-2010 M5、M15車用甲醇汽油
評(píng)論
0/150
提交評(píng)論