計(jì)算機(jī)結(jié)構(gòu)與邏輯設(shè)計(jì)05_第1頁
計(jì)算機(jī)結(jié)構(gòu)與邏輯設(shè)計(jì)05_第2頁
計(jì)算機(jī)結(jié)構(gòu)與邏輯設(shè)計(jì)05_第3頁
計(jì)算機(jī)結(jié)構(gòu)與邏輯設(shè)計(jì)05_第4頁
計(jì)算機(jī)結(jié)構(gòu)與邏輯設(shè)計(jì)05_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論