




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
、
第
?0工
早緒論―/
第
、
?1工計(jì)算機(jī)中的數(shù)制與輸制
早
第
?2工
早邏儼&番,門網(wǎng)絡(luò)、
、
第
?3工
早
第
、
?4工
早
、
?M5工
,早
可編程邏輯器件(PLD)
FJrogrammableogicDevice
復(fù)雜可編程邏輯器件(CPLD):
omplexPLD
現(xiàn)場(chǎng)可編程門陣列(FPGA):
ieldProgrammableateArray
2010-12-263
1,可編程邏輯器件概述(1/3)
可編程邏輯器件實(shí)際上是一種電路的半
成品芯片,這種芯片是按一定排列方式集
成了大量的門和觸發(fā)器等基本邏輯元件,
出廠時(shí)不具有特定的邏輯功能,需要用戶
利用專門的開發(fā)系統(tǒng)對(duì)其進(jìn)行編程,在芯
片內(nèi)部的可編程連接點(diǎn)進(jìn)行電路連接,使
之完成某個(gè)邏輯電路或系統(tǒng)的功能,才能
成為一個(gè)可在實(shí)際電子系統(tǒng)中使用的專用
-4-HL_L
心尸To
2010-12-264
1.可編程邏輯器件概述(2/3)
結(jié)構(gòu)與性能CPLDFPGA
集成規(guī)模?。〝?shù)萬門)大(百萬門以上)
單元粒度大(PAL結(jié)構(gòu))?。≒ROM結(jié)構(gòu))
互連方式縱橫分段總線、長(zhǎng)線、
專用互連
編程工藝E2R0M、FlashSRAM
觸發(fā)器數(shù)少多
單元功能強(qiáng)
速度高低
管腳-管腳延遲確定、口」預(yù)測(cè)不確定、不可預(yù)測(cè)
功耗/每邏輯門高低
-------§1
1.可編程邏輯器件概述(3/3)
公司與產(chǎn)品:
Xilinx公司:XC8000,Spartan,Spartan-II,Spartan-IIE,
Virtex,Virtex-IIPro等FPGA,XC9500,XC9500XL等
Altera公司:Max7000,Max3000,Max9000,FLEX8000系歹U,
FLEX1OK系列,Cyclone系列,Stratix系列等。
Lattice公司:ispLSI3000,ispLSI5000,ispLSI6000,
ispLSI8000等。
Vantis公司,Actel公司,Quicklogic公司,Lucent公司等。
2010-12-266
2.1VHDL的基本結(jié)構(gòu)
VHDL:Veryhighspeedintegrated
ardwareescriptionLanguage
VHDL標(biāo)準(zhǔn):IEEE1164
USEIEEE.STD_LOGIC_1164.ALL
另外一種硬件描述語言VerilogHDL(IEEE
1364標(biāo)準(zhǔn))
2010-12-267
2.1VHDL的基本結(jié)構(gòu)「調(diào)用庫和程序包
\______________________________________________________/
自定義程序包USE定義區(qū)
1定義電路實(shí)體的外
,I/O接口的規(guī)格
PACKAGE定義——___________)
描述電路內(nèi)部功能,,
ENTITY定義區(qū)
說明電路執(zhí)行的動(dòng)作
和功能
Architecturey
定義區(qū)
決定哪個(gè)
Configuration〔Architecture被使用J
定義區(qū)
2010-12-268
2.1VHDL的基本結(jié)構(gòu)
例:2選1多路選擇器的VHDL描述
ENTITYmux21aIS
PORT(dO,d1:INBIT;
sei:INBIT;
q:OUTBIT);
ENDmux21a;
ARCHITECTUREoneofmux21aIS
BEGIN
q<=(dOANDsei)OR(NOTseiANDd1);
ENDone;
2010-12-269
2.1VHDL的基本結(jié)構(gòu)(實(shí)體1/5)
二實(shí)體(ENTIK)說明
實(shí)體說明部分規(guī)定了基本設(shè)計(jì)單元的公共信息
(輸入/輸出端口信號(hào)或管腳),其作用相當(dāng)于邏
輯單元的管腳。
?實(shí)體說明的一般形式:
ENTITY實(shí)體名IS
[類屬參數(shù)說明];
[端口說明];
END實(shí)體名;
2010-12-2610
2.1VHDL的基本結(jié)構(gòu)(實(shí)體2/5)
1)類屬參數(shù)說明(關(guān)鍵字GENERIC)
用于指定參數(shù),必須放在端口說明之前。
一般書寫格式:
GENERIC(常數(shù)名:數(shù)據(jù)類型[:設(shè)定值]);
例:
GENERIC(m:TIME:=1ns);
■■■
Q1:=dOANDseiAFTERm;
2010-12-2611
2.1VHDL的基本結(jié)構(gòu)(實(shí)體3/5)
2)端口說明(關(guān)鍵字PORT)
對(duì)實(shí)體單元與外部接口的描述,規(guī)定了端口的名
稱、數(shù)據(jù)類型和輸入/輸出。
一般書寫格式:
PORT(端口名{,端口名}:模式數(shù)據(jù)類型名;
■■■
端口名{,端口名}:模式數(shù)據(jù)類型名);
2010-12-2612
2.1VHDL的基本結(jié)構(gòu)(實(shí)體4/5)
例:論觸費(fèi)器褊口說明
—{RQ]
——Q~
PORT(set,reset:INBIT
q,qb:BUFFERBIT);
2010-12-2613
2.1VHDL的基本結(jié)構(gòu)(實(shí)體5/5)
每個(gè)端口必須定義:
1)端口信號(hào)名(端口名)。信號(hào)名在實(shí)體中不能夠重
名;
2)端口模式,說明信號(hào)的方向。有以下幾種模式:
IN輸入
OUT輸出
INOUT雙向
BUFFER輸出(結(jié)構(gòu)體內(nèi)部可以再使用)
LINKAGE不指定方向
3)端口數(shù)據(jù)類型。
2010-12-2614
2.1VHDL的基本結(jié)構(gòu)(結(jié)構(gòu)體1/3)
結(jié)構(gòu)體(ARCHITECTURE)說明
結(jié)構(gòu)體定義了設(shè)計(jì)單元的具體功能。一
定要在實(shí)體的后面。
?結(jié)構(gòu)體說明的一般形式:
ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名IS
[定義語句]內(nèi)部信號(hào),常數(shù),數(shù)據(jù)類型等。
BEGIN
[并發(fā)處理語句];
END結(jié)構(gòu)體名;
2010-12-2615
2.1VHDL的基本結(jié)構(gòu)(結(jié)構(gòu)體2/3)
例:
EntitytestlIsEntitytestlIs
Port(a,b:inbit;Port(a,b:inbit;
c,d:outbit);c,d:outbit);
endtestl;endtestl;
architecturetestlbodyoftestlisarchitecturetestlbodyoftestlis
beginbeein
yWv=aandb>、
Ic<=aandb,°八1、d<=aorb;/
'------------7Oz-x
endtestlbody;Qenote^IZbo0t:_
結(jié)構(gòu)體是由一個(gè)或多逸廠
寫順序并不代表吸并行執(zhí)行,與順序無J,
2010-12-26(關(guān)。仿真結(jié)果相同
2.1VHDL的基本結(jié)構(gòu)(結(jié)構(gòu)體3/3)
Name:Value:100.0ns
---------------0------0
0
0
0
0
VHDL語言中,可以并行執(zhí)行的語句稱為并
行語句(ConcurrentStatement)o
2010-12-2617
2.2丫^^1_結(jié)構(gòu)體的子結(jié)構(gòu)(1/16)
?一個(gè)大規(guī)模的電路原理圖通常由多張子電
路原理圖構(gòu)成。一個(gè)結(jié)構(gòu)體也可以由幾個(gè)
子結(jié)構(gòu)組成,有利于編程和糾錯(cuò)。
VHDL可以用以下子結(jié)構(gòu)描述語句:
①BLOCK語句結(jié)構(gòu)
PROCESS語句結(jié)構(gòu)
SUBPROGRAMS語句結(jié)構(gòu)
2010-12-2618
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(2/16)
塊(BLOCK)語句
塊語句將結(jié)構(gòu)體中的并行描述語句進(jìn)行組合,
增加并行描述語句及其結(jié)構(gòu)的可讀性,使結(jié)構(gòu)
體層次清晰。對(duì)技術(shù)交流、程序移植和修改都
非常有利。
塊結(jié)構(gòu)標(biāo)號(hào):BLOCK
BEGIN
v并行語句集〉
ENDBLOCK塊結(jié)構(gòu)標(biāo)號(hào);
2010-12-2619
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(3/16)
ARCHITECTUREoneOFmux21aIS
SIGNALtmp1,tmp2,tmp3:BIT;
例:BifefflBLOCK語句描述二選一電路
EN饞唧酎<IS
B幽RT(dO,d1:INBIT;
tm^l<tNd(PNNDsel;
tm^2:&qT刪l^NOTsei);
ENDmux2晞3<=tmp1ORtmp2;
q<=tmp3;
ENDBLOCKcale;
ENDone;
2010-12-2620
22VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(4/16)
塊(BLOCK)語句
BLOCK語句的并行性:BLOCK語句中
所描述的各個(gè)語句是可以并行執(zhí)行的,與
書寫順序無關(guān)。
2010-12-2621
22VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(5/16)
進(jìn)程(PROCESS)語句
進(jìn)程語句的結(jié)構(gòu):
[進(jìn)程名]:PROCESS(敏感信號(hào)1,敏感信號(hào)2,…)
[變量定義]
BEGIN
[順序執(zhí)行語句]
ENDPROCESS[進(jìn)程名];
2010-12-2622
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(6/16)
敏感信號(hào)。敏感信號(hào)的變化用于啟動(dòng)進(jìn)程
■一個(gè)結(jié)構(gòu)體可有多個(gè)進(jìn)程,進(jìn)程結(jié)構(gòu)間并
行執(zhí)行。
進(jìn)程結(jié)構(gòu)內(nèi)的語句順序執(zhí)行。
見例
2010-12-2623
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(7/16)
EntitytestlisEntity7testlis
Port(elk,dl,d2:inbit;Port(elk,dl,d2:inbit;
ql,q2:outbit);ql,q2:outbit);
endtestl;endtestl;
architecturetestl_bodyofarchitecturetestlbodyof
testlistestlis
begin---------begin____
..........????>?T???????????7..........C?
Processr^clk,dl)/
一
begin????
if(clk^ventandelk=這兩個(gè)進(jìn)程并行執(zhí)行
thenr-,?一....
ql<=dl;
endif;.4::";屋ndprocess;__
................—.............
Ie血pro.隹俎一匕......:■■■■?
/Processf(clk,d2)J
I?、J—一進(jìn)程中的語句順序執(zhí)行
begin
if(clk^ventandclk='I')thenitlieii....................
1
q2<=d2;\ql<=dl;
iendif;;
endif;
”endprocess;.
2010-12-21干'endprocess;24
endtestl_body;endtestlbody;
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(8/16)
Process(elk,dl)Process(elk,d2)
beginbegin
if(clk>ventandelk=40thenif(dkVventandelk=T)then
ql<=dl;q2<=d2;
endif;endif;
endprocess;endprocess;
忖ame:Value:(Ja---------,----------------------
d21
d11
elk0
^2^q20
q1□
2010-12-2625
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(9/16)
執(zhí)行由時(shí)鐘信號(hào)啟動(dòng)的進(jìn)程時(shí)需注意,進(jìn)
程中的信號(hào)值賦值是在該進(jìn)程結(jié)束時(shí)生效。
即在進(jìn)程結(jié)束時(shí),信號(hào)賦值語句中的賦值
符號(hào)右邊的信號(hào)才發(fā)生改變。
見例。
2010-12-2626
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(10/16)
例
LIBRARYIEEE;d
USEIEEE_STD_LOGIC_1164.ALL;
ENTITYbfaISqi
PORT(elk,d:INSTD_LOGIC;
q1,q2:OUTSTD_LOGIC);
ENDbfa;sl
ARCHITECTUREbfa_archOFbfaIS
SIGNALs1:STD_LOGIC;——DQ一
BEGIN
PROCESS(clk)q2
BEGIN
IF(clk'eventANDclk=sr)THEN
q1<=d;-
s1<=d;
q2<=s1;elk
ENDIF;
ENDPROCESS;
ENDbfa_arch;
2010-12-2627
22VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(11/16)
子程序(SUBPROGRAMS)語句
子程序由一系列說明和語句組成。一個(gè)子
程序能夠調(diào)用其他子程序,其本身也可嵌
套子程序。
子程序有兩種類型:過程(PROCEDURE)
和函數(shù)(FUNCTION)。過程調(diào)用是一個(gè)語
句,函數(shù)調(diào)用是一個(gè)表達(dá)式。
2010-12-2628
22VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(12/16)
二過程蠢句輸:
PROCEDURE過程名(參數(shù)1;參數(shù)2;...)IS
[定義語句];
BEGIN
[順序處理語句];
END過程名;
見例
2010-12-2629
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(13/16)
ENTITYprocsampIS
PORT(a:INBIT_VECTOR(0to2);
m:outBIT_VECTOR(0to2));
endprocsamp;
ARCHETECTUREexampofprocsampIS
PROCEDUREsimple(w,x,y:INBIT;z:OUTBIT)IS
BEGIN
z<=(wANDx)ORy;
ENDsimple;
BEGIN
PROCESS(a)
BEGIN
simple(a(0),a(1),a(2),m(0));
simple(a(2),a(1),a(1),m(1));
ENDPROCESS;
ENDexamp;
2010-12-2630
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(14/16)
?函藪落句金
FUNCTION函數(shù)名(參數(shù)1;參數(shù)2;...)
RETURN數(shù)據(jù)類型名IS
[定義語句];
BEGIN
[順序處理語句];
RETURN[返回變量名];
END函數(shù)名;見例
2010-12-2631
22VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(15/16)
ENTITYfuncIS
PORT(a:INBIT_VECTOR(0TO2);
m:OUTBIT_VECTOR(0TO2));
ENDfunc;
ARCHITECTUREexampOFfuncIS
FUNCTIONsimple(w,x,y:BIT)RETURNBITIS
BEGIN
RETURN(wANDy;
END;
BEGIN
PROCESS(a)
、、
BEGIN'所有參數(shù)都是輸入?yún)?shù),因此
m(0)<=simple(a(0)
m(1)<=simple(a(2)指定端口方向的“IN”可以省略
ENDPROCESS;k___________________
ENDexamp;
2010-12-2632
2.2VHDL結(jié)構(gòu)體的子結(jié)構(gòu)(16/16)
庫(LIBRARY)
程序包(PACKAGE)
——USE語句
酉己置(CONFIGURATION)
2010-12-2633
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(1/24)
標(biāo)示符(Identifiers)
由26個(gè)英文字母、數(shù)字或單下劃線
組成。
A第一個(gè)字符必須是字母
不能夠連續(xù)使用“「,標(biāo)示符的最后不能使
用“「符號(hào)
符號(hào)”「為注釋標(biāo)記
2010-12-2634
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)-數(shù)據(jù)對(duì)象(1/8)
數(shù)據(jù)對(duì)象(DataObjects)
常見的數(shù)據(jù)對(duì)象:
常量(Constant)
信號(hào)(Signal)
變量(Variable)
2010-12-2635
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(2/8)
?常量(Constant):對(duì)應(yīng)物理上的恒定電平。
CONSTANT常量名:數(shù)據(jù)類型:=表達(dá)式;
CONSTANTVcc:REAL:=5.0;
CONSTANTDelay:TIME:=100ns;
CONSTANTFBUS:BITVECTORU0101”;
2010-12-2636
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(3/8)
信號(hào)(Signal):對(duì)應(yīng)硬件中的一條連接線和
連線上的電平值。
信號(hào)是一個(gè)全局量,用于進(jìn)程之間的通
信,用于說明電路內(nèi)部的連線信號(hào)。信號(hào)
通常在結(jié)構(gòu)體、程序包和實(shí)體中說明。
SIGNAL信號(hào)名:數(shù)據(jù)類型約束條件:=表達(dá)式
2010-12-2637
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)-數(shù)據(jù)對(duì)象(4/8)
SIGNALground:BIT'O';
SIGNALDBUS;
一□,一初始值只對(duì)模擬有用;對(duì)
?“:二”用于直接賦值,指定于綜合意義不大
?信號(hào)賦值符號(hào)為“<二",格式為
信號(hào)名〈二表達(dá)式[AFTER時(shí)間表達(dá)式];
信號(hào)賦值”v="的時(shí)效。
2010-12-2638
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(5/8)
變量(Variable):在硬件電路里,沒有直接的
對(duì)應(yīng)物,只是蜂方必_______二_____________
要將一個(gè)變量值用于作用范圍
五曰曰人口》口]之外時(shí),需要將該變量值賦給
變重是一個(gè)局部工二個(gè)相族苗的信號(hào),;
數(shù)和過程之內(nèi)使用。力配給變量而彳直,立
即成為當(dāng)前值。
VARIABLE變量名:數(shù)據(jù)類型約束條件:=表達(dá)式
VARIABLEcount:INTEGERRANGE0TO255:=10;
2010-12-2639
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(6/8)
信號(hào)signal變量variable
代表電路中的連接.代表局部的一個(gè)暫存值
全局變量局部變量
賦值符號(hào)~賦值符號(hào)':='
賦值在一個(gè)過程結(jié)束后才賦值沒有延遲,立即變化
會(huì)變化
見例
2010-12-2640
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(7/8)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYxor_sigIS
PORT(A,B,C:INSTD_LOGIC;
X,Y:OUTSTD_LOGIC);
ENDxor_sig;
ARCHITECTURESIG_ARCHOFxor_sigIS
SIGNALD:STD_LOGIC;
BEGIN
PROCESS(A,B,C);
BEGIN
D<=A;
X<=CXORD;
D<=B;
Y<=CXORD;
ENDPROCESS;
ENDSIG_ARCH;
2010-12-2641
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)對(duì)象(8/8)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYxor_varIS
PORT(A,B,C:INSTD_LOGIC;
X.Y:OUTSTD_LOGIC);
ENDxor_var;
ARCHITECTUREVAR_ARCHOFxor_varIS
BEGIN
PROCESS(A,B,C);
VARIABLED:STD_LOGIC;
BEGIN
D<=A;
X<=CXORD;
D<=B;
Y<=CXORD;
ENDPROCESS;
ENDVAR_ARCH;
2010-12-2642
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(10/24)
VHDL是一種強(qiáng)類型語言
■每個(gè)數(shù)據(jù)對(duì)象只能具有一個(gè)數(shù)據(jù)類型,且只
能具有這個(gè)數(shù)據(jù)類型的值;
■對(duì)某數(shù)據(jù)對(duì)象進(jìn)行操作的類型必須與該對(duì)象
的類型想匹配;
■不同類型之間的數(shù)據(jù)不能直接代入;
相同數(shù)據(jù)類型,不同位長(zhǎng)也不能直接代入
2010-12-2643
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)類型(1/8)
1.整數(shù)(INTEGER)類型
SIGNALint_s:1足「"RANGER0TO255:
實(shí)際使用中,重新定義取值范圍,
以提高芯片的利用率
2.實(shí)數(shù)(REAL)類型
取值范圍-1.y^1X)E38
一般VHDL綜合器不支持實(shí)數(shù)類型
2010-12-2644
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)-數(shù)據(jù)類型(2/8)
3.位(BIT)類型
取值'0'或'「,位值在單引號(hào)內(nèi)。
4.位向量(BIT_VECTOR)類型
位向量是用“”括起來的一組位數(shù)據(jù)。一
般用來表示硬件電路的信號(hào)總線。
“001100"
X'OOAA"
2010-12-2645
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)類型(3/8)
a:OUTBIT_VECTOR(3DOWNTO0);
a<=u1011,J;
a(2)<='O';
a(0TO1)<="10";
a(3DOWNTO1)?!?00”;
a(3DOWNTO0)<=X"A";
a<=(OTHERS=>,1,);
2010-12-2646
2.3VHDL語言的數(shù)據(jù)基礎(chǔ).數(shù)據(jù)類型(4/8)
5.布爾(BOOLEAN)類型
■取值TRUE和FALSEo常用于邏輯關(guān)系運(yùn)算中。
■布爾類型沒有數(shù)值含義,不能進(jìn)行算術(shù)運(yùn)算。
6.字符(CHARACTER)類型
不常用。
2010-12-2647
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)-數(shù)據(jù)類型(5/8)
7.物理類型▼時(shí)高類型)?
格式:TYPE數(shù)據(jù)類型名IS范圍:
UNITS基本單位;
單位條目;
ENDUNITS;
A物理類型說明的約束范圍規(guī)定了按基本單
位能表示的物理類型的最大值和最小值。
所有單位標(biāo)識(shí)必須是唯一的。
見例
2010-12-2648
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)類型(6/8)
在VHDL中,唯一預(yù)定義的物理類型是時(shí)間
TYPETIMEIS-2147483647TO2147483647
UNITS
fs;
ps=1000fs;
ns=1000ps;
us=1000ns;
ms=1000us;
sec=1000ms;
min=60sec;
hr=60min;
ENDUNITS;
2010-12-2649
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)類型(7/8)
8.枚舉類型
用文字符號(hào)表示一組實(shí)際的二進(jìn)制數(shù)。
常用于表示有限狀態(tài)機(jī)的狀態(tài)。
格式:TYPE數(shù)據(jù)類型名IS(元素1,元素2,…);
TYPE.?。▁t3,;
在綜合過程中,對(duì)枚舉類型的廣述常是自動(dòng)的,
枚舉類型按二進(jìn)制編碼。依據(jù)殍、義時(shí)各元素
自左向右的出現(xiàn)順序,分配一]stO="OO、tliO1/
st2="10”,st3="n”
2010-12-2650
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)■數(shù)據(jù)類型(8/8)
9.數(shù)組類型。數(shù)組類型是相同類型數(shù)據(jù)集合
在一起形成的一個(gè)新的數(shù)據(jù)類型。數(shù)組可
以是一維數(shù)組或多維數(shù)組。
格式:
TYPE數(shù)據(jù)類型名ISARRAY范圍OF原數(shù)據(jù)名;
TYPEWORDISARRAY(15DOWNTO0)OFBIT;
10.記錄(RECORD)類型。
2010-12-2651
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(19/24)
屬性(attribute)。屬性是項(xiàng)目的特征,表示了預(yù)定
義項(xiàng)目的有關(guān)值、功能、類型和范圍。
可以具有屬性的項(xiàng)目有:
類型(子類型)
過程、函數(shù)
?信號(hào)、變量、常量
?實(shí)體、結(jié)構(gòu)體、配置和程序包
元件
語句標(biāo)號(hào)
一般格式項(xiàng)目名'屬性表示符
clk'EVENTANDclk=<1,;
2010-12-2652
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(20/24)
預(yù)定義的類型(TYPES)的屬性
TLEFTTRIGHT
THIGHPLOW
TPOS(n)
TVAL(n)
TSUCC(n)TPRED(n)
TLEFTOF(n)TRIGHTOF(n)
2010-12-2653
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(21/24)
預(yù)定攵Q數(shù)組(ARRAY)的屬性
A'LEFT(n)A'RIGHT(n)
A,HIGH(n)A,LOW(n)
A5LENGTH(n)
A,RANGE(n)
2010-12-2654
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(22/24)
預(yù)定支的蓿號(hào)^SIGNAL)的屬性
S'DELAYED(t)
S5STABLE(t)
SJQUIET(t)
STRANSACTION
S'EVENT
S'ACTIVE
S'LAST_EVENTS5LAST_VALUE
SJLAST_ACTIVE
2010-12-2655
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(23/24)
?數(shù)搪至型球換
CONV_STD_LOGIC_VECTOR();
CONV_INTEGER();
類型的限定
2010-12-2656
2.3VHDL語言的數(shù)據(jù)基礎(chǔ)(24/24)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYtestIS
PORT(a:INSTD_L0GIC_VECT0R(3DOWNTO0);
b:ININTEGERRANGEOTO15;
c:OUTSTD_L0GIC_VECT0R(3DOWNTO0);
d:OUTINTEGERRANGE0TO15);
ENTtest;
ARCHITECTUREtest_bodyOFtestIS
BEGIN
c<=C0NV_STD_L0GIC_VECT0R(b,4);
d<=CONVJNTEGER(a);
ENDtest_body;
2010-12-2657
2.4VHDL的運(yùn)算操作符
■邏輯運(yùn)算
NOT,AND,OR,NAND,NOR,XOR
?算術(shù)運(yùn)算---------
MOD,REM,ABS,**
?關(guān)系運(yùn)算也------------
=」=,<,<=,>=
?連接運(yùn)算^^--------
&
2010-12-2658
2.5VHDL的順序描述語句(1/11)
順序描述語句出現(xiàn)在進(jìn)程、函數(shù)和過程中
1.信號(hào)賦值語句
信號(hào)名V二信號(hào)變量邛止----------
信號(hào)類型和變量一致時(shí),
一二二允許二者相互賦值
2.變量賦值語句
變量名:二表達(dá)式;
2010-12-2659
2.5VHDL的順序描述語句(2/11)
3.WAIT語句。
進(jìn)程的執(zhí)行過程可以由WAIT語句控制。當(dāng)
進(jìn)程中使用了WAIT語句后,就不能再使用
進(jìn)程的敏感信號(hào)。
?WAIT--無限等待
?WAITON(信號(hào)名表)--敏感信號(hào)
WAITUNTIL(條件表達(dá)式)
WAITFOR(時(shí)間表達(dá)式)
WAITUNTIL(clk'EVENTANDclk='1');
2010-12-2660
2.5VHDL的順序描述語句(3/11)
4.斷言(ASSERT)語句
格式:
ASSERTv條件〉
REPORTv輸出信息〉
SEVERITY〈嚴(yán)重級(jí)別〉
當(dāng)條件為假時(shí),系統(tǒng)的輸出設(shè)備輸出所要
報(bào)告的信息、信息的嚴(yán)重級(jí)別以及斷言語
句所在設(shè)計(jì)單元的名字。
2010-12-2661
2.5VHDL的順序描述語句(4/11)
5.IF語句
格式:IFv條件〉THEN
順序處理語句;
ELSIFv條件〉THEN
順序處理語句;
ELSE
順序處理語句;
ENDIF;
見例
2010-12-2662
2.5VHDL的順序描述語句()
LIBRARYIEEE;ARCHITECTUREoneOFmux4IS
USEIEEE.STD164.ALL;
PROCESS(input,sel)
BEGIN
ENTITYmux4ISIF(sekWJ)THEN
PORT(input:INSTD_嘲矍蟒Q解
DOWNTO0);y<=input(1);
sei:INSTD—LO?^1f移包CT?網(wǎng)HEN
DOWNTO0);£虎叩叫2);
y-OUTSTD_LOG}G^ihput(3);
ENDmux4;ENDIF;
ENDPROCESS;
ENDone;
2010-12-2663
2.5VHDL的順序描述語句(5/11)
6.CASE語句。常用來描述總線或編碼、譯
碼行為。
格式:
CASE表達(dá)式IS
WHEN條件表達(dá)式1=>順序語句;
WHEN條件表達(dá)式2=>順序語句;
WHEN條件表達(dá)式N=>順序語句;
ENDCASE;
2010-12-2664
2.5VHDL的順序描述語句(6/11)
?CASE語句的所有條件都必須列出來
不允許在幾個(gè)WHEN子句中包含相同的選
擇條件
可以使用OTHERS語句,但是OTHERS語
句只能在最后
2010-12-2665
2.5VHDL的順序描述語句(7/11)
7.LOOP語句。
FORLOOP循環(huán)
WHILELOOP循環(huán)
[循環(huán)標(biāo)號(hào)]:FOR循環(huán)變量IN離散范圍LOOP
順序處理語句;
ENDLOOP[循環(huán)標(biāo)號(hào)];
?離散范圍表示循環(huán)變量在循環(huán)過程中依次取值的范圍。
離散范圍值可以是實(shí)數(shù)。見例
2010-12-2666
2.5VHDL的順序描述語句(8/11)
例:用VHDL描述一個(gè)八位的奇偶校驗(yàn)電路。如果輸入為奇
數(shù),輸出‘1';反之輸出‘0'。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYparity_checkIS
PORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);
y:OUTSTD_LOGIC);
ENDparitycheck;
ARCHITECTURERT1OFparity_checkIS
BEGIN
PROCESS(a)
VARIABLEtmp:STD_LOGIC;
BEGIN
tmp:='O';
FORiIN0TO7LOOP
tmp:=tmpXORa(i);
ENDLOOP;
y<=tmp;
ENDPROCESS;
ENDRT1;
2010-12-2667
2.5VHDL的順序描述語句(9/11)
[循環(huán)標(biāo)號(hào)]:WHILE循環(huán)條件LOOP
順序處理語句;
ENDLOOP[循環(huán)標(biāo)號(hào)];
WHILE語句中的循環(huán)條件是布爾類型,其
值為假時(shí)結(jié)束循環(huán);
WHILELOOP語句只有某些高級(jí)綜合工作
可以綜合。
2010-12-2668
2.5VHDL的順序描述語句(10/11)
8.NEXT語句。
格式:NEXT[循環(huán)標(biāo)號(hào)][WHEN〈條件>];
匚用于有條件或無條件結(jié)束當(dāng)前這次循環(huán),
跳轉(zhuǎn)到循環(huán)標(biāo)號(hào)的位置繼續(xù)執(zhí)行循環(huán)。
用在LOOP內(nèi)部。
2010-12-2669
2.5VHDL的順序描述語句(11/11)
9.EXIT語句
格式:EXIT[循環(huán)標(biāo)號(hào)][WHENv條件>];
匚用于有條件或無條件結(jié)束當(dāng)前這次循環(huán),
并終止該循環(huán),執(zhí)行LOOP循環(huán)語句后面的
語句。
用在LOOP語句內(nèi)部。
2010-12-2670
2.6VHDL的并行描述語句(1/9)
1.進(jìn)程語句(PROCESS)
2.并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南衛(wèi)生健康職業(yè)學(xué)院《商務(wù)智能》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧財(cái)貿(mào)學(xué)院《行政案例研討》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年山東省百校大聯(lián)考高三上學(xué)期12月月考?xì)v史試卷
- 吉林工業(yè)職業(yè)技術(shù)學(xué)院《媒介文化》2023-2024學(xué)年第二學(xué)期期末試卷
- 上??萍即髮W(xué)《航海學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 欽州幼兒師范高等??茖W(xué)校《酒店服務(wù)營(yíng)銷》2023-2024學(xué)年第二學(xué)期期末試卷
- 黃淮學(xué)院《地理學(xué)基本問題》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建衛(wèi)生職業(yè)技術(shù)學(xué)院《小學(xué)文學(xué)與媒體教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 集寧師范學(xué)院《跨境電子商務(wù)實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工業(yè)大學(xué)之江學(xué)院《管理心理學(xué)D1》2023-2024學(xué)年第二學(xué)期期末試卷
- 化工原理傳質(zhì)導(dǎo)論
- 環(huán)境與可持續(xù)發(fā)展ppt課件(完整版)
- Linux操作系統(tǒng)課件(完整版)
- 跨境電商亞馬遜運(yùn)營(yíng)實(shí)務(wù)完整版ppt課件-整套課件-最全教學(xué)教程
- 中國(guó)傳媒大學(xué)《當(dāng)代電視播音主持教程》課件
- 浙美版小學(xué)六年級(jí)美術(shù)下冊(cè)全冊(cè)精品必備教學(xué)課件
- DB32∕T 4245-2022 城鎮(zhèn)供水廠生物活性炭失效判別和更換標(biāo)準(zhǔn)
- 建設(shè)工程圍擋標(biāo)準(zhǔn)化管理圖集(2022年版)
- 人教版七年級(jí)上冊(cè)歷史課程綱要
- 濕法冶金簡(jiǎn)介
- 2022新教科版六年級(jí)科學(xué)下冊(cè)全一冊(cè)全部教案(共28節(jié))
評(píng)論
0/150
提交評(píng)論