第3章vhdl數(shù)據(jù)類型及順序語句_第1頁
第3章vhdl數(shù)據(jù)類型及順序語句_第2頁
第3章vhdl數(shù)據(jù)類型及順序語句_第3頁
第3章vhdl數(shù)據(jù)類型及順序語句_第4頁
第3章vhdl數(shù)據(jù)類型及順序語句_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章VHDL數(shù)據(jù)類型與順序語句(1)數(shù)據(jù)類型規(guī)定數(shù)據(jù)對(duì)象的特征和取值的范圍,VHDL含有很寬范圍的數(shù)據(jù)類型,用它們可建立簡(jiǎn)單的或者復(fù)雜的對(duì)象。(2)一個(gè)新的數(shù)據(jù)類型必須先建立一個(gè)類型說明。類型說明規(guī)定類型名和類型的范圍,在程序包、實(shí)體、結(jié)構(gòu)體、子程序和進(jìn)程的說明部分中都允許有類型說明。(3)VHDL是一種強(qiáng)類型語言,即每一個(gè)對(duì)象具有一種類型且只能具有該類型的值,或者說施加于某對(duì)象上的操作必須與該對(duì)象的類型匹配。(4)信號(hào)、變量、常數(shù)都要指定數(shù)據(jù)類型,而且VHDL的數(shù)據(jù)類型定義相當(dāng)嚴(yán)格,不同類型之間的數(shù)據(jù)不能直接代入,不同位長(zhǎng)之間也不能直接代入。(5)數(shù)據(jù)類型的分類:標(biāo)量類型、復(fù)合類型、尋址類型和文件類型。標(biāo)量類型包括所有簡(jiǎn)單的類型,如象整數(shù)和實(shí)數(shù);復(fù)合類型包括數(shù)組和記錄;尋址類型在一般編輯語言中等價(jià)為指針;最后,文件類型用設(shè)計(jì)者定義的文件類型為設(shè)計(jì)者提供所說明的文件對(duì)象。也可分為預(yù)定義數(shù)據(jù)類型和用戶定義數(shù)據(jù)類型。3.1 VHDL數(shù)據(jù)類型VHDL(一種數(shù)據(jù)類型很強(qiáng)的語言)數(shù)據(jù)類型(數(shù)據(jù)對(duì)象取值的集合或子集)數(shù)據(jù)對(duì)象(傳遞信息的載體)Scalar

types(標(biāo)量數(shù)據(jù)類型)Enumeration(可枚舉數(shù)據(jù)類型)Integer(整數(shù)數(shù)據(jù)類型)Physical(物理數(shù)據(jù)類型)Floating

point(實(shí)數(shù)數(shù)據(jù)類型)Composite(復(fù)合數(shù)據(jù)類型)Array(數(shù)組數(shù)據(jù)類型)Record(記錄數(shù)據(jù)類型)Access(尋址數(shù)據(jù)類型)?File

type(文件類型)Constant(常量)Variable(變量)Signal(信號(hào))File(文件)注:藍(lán)色為不可綜合的數(shù)據(jù)對(duì)象和數(shù)據(jù)類型3.1 VHDL數(shù)據(jù)類型BIT類型和BIT_VECTOR類型BIT類型用來表示數(shù)字系統(tǒng)中的一個(gè)位,位值用‘0’或‘1’表示,位的取值與整數(shù)中的1和0不同,‘1’和‘0’僅表示一個(gè)位的兩種取值,有時(shí)可用顯示說明之,如BIT’(‘1’)位數(shù)據(jù)與布爾數(shù)據(jù)也不同,可以用轉(zhuǎn)換函數(shù)來轉(zhuǎn)換標(biāo)準(zhǔn)程序包STANDARD中定義的源代碼:TYPE

BIT

IS

(‘0’,’1’);3.1 VHDL數(shù)據(jù)類型3.1.1 BIT和BIT_VECTOR類型BIT_VECTOR類型(1)位矢量是用雙引號(hào)括起來的一組位數(shù)據(jù),是基于BIT數(shù)據(jù)類型的數(shù)組。例如:

“001100”,x“00BB”這里,位矢量最前面的x表示是十六進(jìn)制(2)標(biāo)準(zhǔn)程序包STANDARD中定義的源代碼:TYPE

BIT_VECTOR IS

ARRAY

(Nature

Range<>)

OF

BIT;使用位矢量必須注明位寬,即數(shù)組元素個(gè)數(shù)和排列順序。例如:SIGNAL

a:BIT_VECTOR(7

DOWNTO

0);其位寬為8,最高位(左位)是a(7),最低位(右位)是a(0)。又例如:SIGNAL

a:BIT_VECTOR(0

TO

7);其位寬為8,最高位(左位)是a(0),最低位(右位)是a(7)。用位矢量表示總線狀態(tài)最形象也最方便3.1 VHDL數(shù)據(jù)類型3.1.2 STD_LOGIC和STD_LOGIC_VECTOR類型IEEE預(yù)定義數(shù)據(jù)類型----標(biāo)準(zhǔn)邏輯位與矢量VHDL的標(biāo)準(zhǔn)數(shù)據(jù)類型“BIT”是一個(gè)邏輯型的數(shù)據(jù)類型,這類數(shù)據(jù)取值只能是“0”或“1”,由于不存在不定狀態(tài)“X”,故不便于仿真,而且它也不存在高阻狀態(tài),因此很難用它來描述雙向數(shù)據(jù)總線,所以IEEE在1993年制訂出了新標(biāo)準(zhǔn)STD_LOGIC_1164

,該程序包中定義的兩個(gè)重要數(shù)據(jù)類型:標(biāo)準(zhǔn)邏輯位“STD_LOGIC”、標(biāo)準(zhǔn)邏輯矢量“STD_LOGIC_VECTOR”,使得“STD_LOGIC”型數(shù)據(jù)可以具有9種不同得值。1、標(biāo)準(zhǔn)邏輯位“STD_LOGIC”STD_LOGIC_1164

程序包中定義的標(biāo)準(zhǔn)邏輯位

“STD_LOGIC”數(shù)據(jù)類型如下:TYPE

STD_LOGIC IS(“U”--------未初始化的“X”--------強(qiáng)不定“0”--------強(qiáng)0“1”--------強(qiáng)1“Z”--------高阻“W”--------弱信號(hào)不定“L”--------弱信號(hào)0“H”--------弱信號(hào)1“-”--------無關(guān)項(xiàng));注:藍(lán)色數(shù)據(jù)能在數(shù)字電路中實(shí)現(xiàn),其余的主要用于仿真。由該定義可知STD_LOGIC”數(shù)據(jù)類型是BIT數(shù)據(jù)類型的擴(kuò)展,前者更常用,、由于STD_LOGIC”數(shù)據(jù)類型為九值邏輯,不在是傳統(tǒng)的二值邏輯,故編程時(shí)在條件句中應(yīng)將所有的情況包括進(jìn)去,以免引入不必要的鎖存器。2、標(biāo)準(zhǔn)邏輯位矢量“STD_LOGIC

_VECTOR”STD_LOGIC_1164程序包中定義的標(biāo)準(zhǔn)邏輯位矢量“STD_LOGIC_LOGIC”數(shù)據(jù)類型如下:TYPE

STD_LOGIC_LOGIC

ISARRAY(NATURAL

RANGE<>)

OF

STD_LOGIC;可見STD_LOGIC_LOGIC是一個(gè)標(biāo)準(zhǔn)的一維數(shù)組,數(shù)組中的每一個(gè)元素的數(shù)據(jù)類型是上面定義的標(biāo)準(zhǔn)邏輯位“STD_LOGIC”數(shù)據(jù)類型;以上兩種數(shù)據(jù)類型在使用前需加入下面的語句:LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;3.1 VHDL數(shù)據(jù)類型3.1.3

整數(shù)類型INTEGER范圍:-(231-1)~

231-1,相當(dāng)于32位有符號(hào)的二進(jìn)制數(shù)表示,當(dāng)需要進(jìn)位操作時(shí),可用轉(zhuǎn)換函數(shù)(有些EDA工具能夠自動(dòng)將整數(shù)轉(zhuǎn)換成位矢量),將整數(shù)轉(zhuǎn)換成位矢量,目前,在有的CAD廠家提供的工具中,允許對(duì)有符號(hào)和無符號(hào)的整型數(shù)進(jìn)行算術(shù)邏輯運(yùn)算,其中仿真器中通常作為有符號(hào)數(shù)處理,綜合器中通常作為無符號(hào)數(shù)處理。3.1 VHDL數(shù)據(jù)類型3.1.4

布爾數(shù)據(jù)類型BOOLEAN(1)一個(gè)布爾量只有兩種狀態(tài)----“真”和“假”,綜合器賦予1或0信號(hào)值,對(duì)應(yīng)硬件中的一根連線,但是它和位不同,沒有數(shù)值的含義,也不能進(jìn)行數(shù)值運(yùn)算,它只能進(jìn)行關(guān)系運(yùn)算。例如,它可以在IF語句中被測(cè)試,測(cè)試結(jié)果產(chǎn)生一個(gè)布爾量TRUE或FALSE。(2)標(biāo)準(zhǔn)程序包STANDARD中定義的源代碼:3.1.5 SIGNED和UNSIGNED類型VHDL綜合工具自帶的擴(kuò)展程序包中定義了一些有用的數(shù)據(jù)類型,如

Synopsys公司在IEEE中加入的程序包STD_LOGIC_ARITH中定義有以下的數(shù)據(jù)類型:1、無符號(hào)數(shù)據(jù)類型(UNSIGNED):在綜合器中,這個(gè)數(shù)值被解釋為一個(gè)二進(jìn)制數(shù),該二進(jìn)制數(shù)的最左位為其最高位,例如:UNSIGNED’(“1101”)------代表十進(jìn)制數(shù)的13,其中UNSIGNED’表示指定其后面的字符串為無符號(hào)數(shù)據(jù)類型

VARIABLE

var:UNSIGNED(0

TO

7);--最高位為var(0)

VARIABLE

temp:UNSIGNED(7

DOWNTO

0);--最高位為temp(7)2、有符號(hào)數(shù)據(jù)類型(SIGNED):在綜合器中,這個(gè)數(shù)值被解釋為一個(gè)二進(jìn)制數(shù)的補(bǔ)碼,該二進(jìn)制數(shù)的最左位為其符號(hào)位,例如:SIGNED’(“1101”)------代表十進(jìn)制數(shù)的-3,其中SIGNED’表示指定其后面的字符串為有符號(hào)數(shù)據(jù)類型3、以上兩種數(shù)據(jù)類型在可綜合的數(shù)學(xué)運(yùn)算程序中常用,使用前需加入下面的語句:LIBRARY

IEEE;USE

IEEE.STD_LOGIC_ARITH.ALL;若綜合器中沒有該程序包,則可用NUMERIC_STD,NUMERIC_BIT;這些程序包中也有這兩種數(shù)據(jù)類型3.1 VHDL數(shù)據(jù)類型3.1 VHDL數(shù)據(jù)類型3.1.6

其他預(yù)定義類型1.字符類型(Character)字符也是一種數(shù)據(jù)類型,所定義的字符量常用單引號(hào)括起來,如‘A’、‘a(chǎn)’,由于字符是用ASCII碼來表示的,所以‘A’、‘a(chǎn)’是不同的。標(biāo)準(zhǔn)程序包STANDARD中定義的源代碼:TYPE

CHARACTER

is(所有字符包括不可顯示的字符);當(dāng)要明確指出是字符時(shí)可用:character’(‘1’)2.字符串類型(String)字符串是由雙引號(hào)括起來的一個(gè)字符序列,也稱作字符矢量或字符串?dāng)?shù)組例如,“integer

range”,常用于子程序的提示和說明文字字符串----雙引號(hào)引起來的一串文字,數(shù)位字符串----也稱位矢量,其長(zhǎng)度為對(duì)應(yīng)的二進(jìn)制數(shù)的位數(shù),其表示形式為:基數(shù)“基于基的整數(shù)”。3.實(shí)數(shù)類型(1)也稱為浮點(diǎn)數(shù),取值范圍:-1.0E+38--+1.0E+38書寫時(shí)一定要有小數(shù)點(diǎn)例如:-1.0,+2.5,2.5,-1.0E38綜合器不支持,僅用于仿真。注:‘1’,1,“1”,1.0四者的區(qū)別----分別是字符1,十進(jìn)制整數(shù)1,字符串1,實(shí)數(shù)13.1 VHDL數(shù)據(jù)類型4.時(shí)間類型VHDL中唯一的預(yù)定義物理類型。完整的時(shí)間量數(shù)據(jù)應(yīng)包含整數(shù)和單位兩部分,而且整數(shù)和單位之間至少應(yīng)留一個(gè)空格的位置,例如:55

sec,2

min……,20us,100ns在系統(tǒng)仿真時(shí),時(shí)間數(shù)據(jù)可以表示信號(hào)延時(shí),從而使模型系統(tǒng)能更逼近實(shí)際系統(tǒng)的運(yùn)行環(huán)境,且僅用于仿真。3.1 VHDL數(shù)據(jù)類型5.文件類型3.1 VHDL數(shù)據(jù)類型3.1.7

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)3.1 VHDL數(shù)據(jù)類型3.1.7

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)3.1 VHDL數(shù)據(jù)類型3.1.7

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)3.1 VHDL數(shù)據(jù)類型3.2 VHDL最常用的順序語句1、VHDL對(duì)系統(tǒng)與電路提供的最基本的描述方法結(jié)構(gòu)描述對(duì)與一個(gè)硬件的結(jié)構(gòu)進(jìn)行描述,主要是描述它由哪些子元件組成,以及各個(gè)元件之間的互連關(guān)系,它與系統(tǒng)的原理圖設(shè)計(jì)很類似;行為描述的主要特點(diǎn)在于它能從行為上描述系統(tǒng)和電路,采用的方法主要是通過一系列的順序語句和一系列系列并行語句來進(jìn)行描述,并行語句則用來各摸型算法之間的連接關(guān)系;按語句執(zhí)行順序?qū)ζ溥M(jìn)行分類,可以分為順序(sequential)描述語句和并行(concurrent)描述語句。例如:進(jìn)程語句(process

statement)它是一個(gè)并行語句。在一個(gè)結(jié)構(gòu)體內(nèi)可以有幾個(gè)進(jìn)程語句同時(shí)存在,各進(jìn)程語句是并發(fā)執(zhí)行的。但是,在進(jìn)程內(nèi)部所有語句應(yīng)是順序描述語句,這兩類語句的靈活運(yùn)用就可以正確的描述系統(tǒng)的并發(fā)行為和順序行為。信號(hào)、變量賦值語句;流程控制語句:IF語句,CASE語句,LOOP語句,

NEXT語句,EXIT語句;等待語句:WAIT語句;子程序調(diào)用語句;返回語句:RETURN語句;空操作語句:NULL語句;其它語句:ATTRIBUTE(屬性),TEXTIO(文本文件操作),ASSERT(斷言語句),REPORT(報(bào)告語句),Resolution(決斷函數(shù)),3.2 VHDL最常用的順序語句3.2.1

賦值語句信號(hào)賦值語句變量賦值語句賦值目標(biāo)賦值符號(hào)賦值源注意事項(xiàng):信號(hào)、變量賦值目標(biāo)與賦值源的數(shù)據(jù)類型及位長(zhǎng)度應(yīng)嚴(yán)格一致;在應(yīng)用時(shí)須注意上、下文的含義和說明,因?yàn)榇敕?hào)與關(guān)系操作符的“〈=”(相當(dāng)于執(zhí)行的意思)非常相似的;集合賦值的兩種方式----位置映射和名稱映射;例:SIGNAL

a,b,c,d:STD_LOGIC;SIGNAL S:STD_LOGIC_VECTOR(1TO

4);VARIABLE e,f:

STD_LOGIC;VARIABLE g:

STD_LOGIC

VECTOR(1

TO

2);VARIABLE h:

STD_LOGIC

VECTOR(1

TO

4);------------s<=(‘1’,‘0’,‘1’,‘0’);(a,b,c,d)<=s;h:=(3=>e,4=>f,2=>g(1),1=>g(2));------h(3):=e;h(4):=f;h(2):=g(1);h(1):=g(2);位置映射:注意位置順序;名稱映射:與順序無關(guān);3.2.2 CASE語句CASE語句用來描述總線或編碼、譯碼的行為從許多不同的序列中選擇其中之一執(zhí)行雖然IF語句也有類似的功能,但CASE語句的可讀性要好得多閱讀者很容易找出條件式和動(dòng)作的對(duì)應(yīng)關(guān)系1、CASE的書寫格式如下:CASE

表達(dá)式ISWHEN

條件表達(dá)式=〉順序處理語句

END

CASE;2、CASE語句中的條件表達(dá)式可有如下4種不同的表示形式:?jiǎn)沃担篧HEN

值=〉順序處理語句;并列:WHEN

值|[值]|[值]…[值]=〉順序處理語句;區(qū)間:WHEN

值TO

值=〉順序處理語句;混合:WNEN

OTHERS=〉順序處理語句;當(dāng)CASE

和IF之間的表達(dá)式的取值滿足指定的條件表達(dá)式的值時(shí),程序?qū)?zhí)行后跟的,由符號(hào)=〉所指定的順序處理語句條件表達(dá)式的值可以是一個(gè)值,也可是多個(gè)值的“或”關(guān)系,或者是一個(gè)值的取值范圍,或表示其它所有的缺省值3、CASE的使用說明選擇值應(yīng)在取值范圍內(nèi);除非所有條件句中的選擇值能覆蓋其表達(dá)式的取值,否則“WNENOTHERS=〉順序語句”不可少;條件句中的選擇值只能出現(xiàn)一次,不能重復(fù);至少應(yīng)有一個(gè)條件句;3.2 VHDL最常用的順序語句3.2.2 CASE語句LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;ENTITY

decoder3_8

ISPORT

(a,b,c,G1,G2A,G2B:IN

STD_LOGIC);y:OUT

STD_LOGIC_VECTOR(7

DOWNTO

0));END

decoder3_8;ARCHITECTURE

rtl

OF

decoder3_8

ISSIGNAL

indata:STD_LOGIC_VECTOR(2

DOWNTO

0);BEGINindata

<=

c

&

b

&

a;PROCESS

(indata,G1,G2A,G2B)BEGINIF

(G1

=

’1’

AND

G2A

=

’0’

AND

G2B

=

’0’)

THENCASE

indata

ISWHEN

“000”

=>

y<=

”11111110”;WHEN

“001”

=>

y<=

”11111101”;WHEN

“010”

=>

y<=

”11111011”;WHEN

“011”

=>

y<=

”11110111”;WHEN

“100”

=>

y<=

”11101111”;WHEN

“101”

=>

y<=

”11011111”;WHEN

“110”

=>

y<=

”10111111”;WHEN

“111”=>

y<=”01111111”;WHEN

OTHERS

=>y<=”XXXXXXXX”;END

CASE;ELSEy

<=

”11111111”;END

IF;END

PROCESS;END

rtl;3-8譯碼器在上例中,indata是矢量型數(shù)據(jù),除了取值為”0”和”1”之外,還有可能取值為“x”,“z”和“u”,盡管這些取值在邏輯電路綜合時(shí)沒有用,但是,在CASE卻必須把所有的可能取值都要描述出來故在本例中加一項(xiàng)WHEN

OTHERS,使得它包含了y輸出的所有缺省值當(dāng)WHEN后跟的值不同,但是輸出卻相同時(shí),則可用下面描述:如本例中:WHEN

OTHERS

項(xiàng)也可以寫為:WHEN

“UZX”|“ZXU”|“UUZ”|…|“UUU”=〉y〈=“XXXXXXXX”;4、IF語句與CASE語句的區(qū)別前者有順序,后者沒有順序;前者具有條件相與,后者具有條件相或;前者具有將“-”(忽略)自動(dòng)包含,后者不具有這一性質(zhì)必需加一項(xiàng)WHEN

OTHERS;3.2 VHDL最常用的順序語句3.2.3 PROCESS語句3.2.4

并置操作符&3.2.5 IF語句IF語句是根據(jù)所指定的條件來確定執(zhí)行那些語句其書寫格式通??煞譃橐韵聨追N:1、IF語句的門閂控制書寫格式:IF

條件THEN順序處理語句END

IF當(dāng)程序執(zhí)行到該IF語句時(shí),就要判斷此IF語句所指定的條件是否成立,如果成立,自執(zhí)行IF語句所包括的順序處理語句;如果條件不成立,程序?qū)⑻^IF語句所包含的順序處理語句,而向下執(zhí)行IF語句后繼的語句這里的條件起門閂作用。例如:IF

(a=‘1’)

THENc〈=not

b;END

IF;當(dāng)a=‘1’時(shí),c〈=not

b;否則將不執(zhí)行c〈=not

b而執(zhí)行下面的語句。2、IF語句的二選擇控制IF

條件THEN順序處理語句;ELSE順序處理語句;END

IF

;該語句的功能是:當(dāng)條件滿足時(shí),執(zhí)行THEN與ELSE之間的順序處理語句,否則執(zhí)行ELSE和IF之間的順序處理語句。這種描述的典型邏輯電路實(shí)例是二選一電路。例如:ARCHITECTURE

rtl

OF

mux2

ISBEGINPROCESS(a,b,sel)IF

(sel

=‘1’)THENy〈=a;ELSEy〈=b;END

IF;END

PROCESS;END

rtl;3、IF語句的多選擇控制IF語句的多選擇控制又稱IF語句的嵌套,其書寫格式為:

IF

條件THEN順序處理語句;ELSIF

條件THEN順序處理語句;…ELSIF

條件THEN順序處理語句;ELSE順序處理語句;END

IF;在這種多選擇控制的IF語句中,設(shè)置了多個(gè)條件,當(dāng)滿足所設(shè)置的多個(gè)條件之一時(shí),就執(zhí)行該條件后跟的順序處理語句,如果所有設(shè)置的條件都不滿足,則執(zhí)行最后一個(gè)ELSE

和END

IF之間的順序處理語句,順序處理語句的執(zhí)行條件具有向上相與的功能。其典型的描述是多選一電路例:四選一電路LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;ENTITYmux4

ISPORT

(input:IN STD_LOGIC_VECTOR(3

DOWNTO

0);sel:IN STD_LOGIC_VECTOR(1

DOWNTO

0);y:OUT

STD_LOGIC);END

mux4;ARCHITECTURE

rtl

OF

mux4

ISBEGINPROCESS(input,sel)BEGINIF

(sel

=

“00”)

THENy

<=

input(0);ELSIF

(sel=“01”)THENy

<=

input(1);ELSIF

(sel=

“10”)THENy

<=

input(2);ELSEy

<=

input(3);END

IF;END

PROCESS;END

rtl;IF語句不僅可用于選擇器設(shè)計(jì),還可用于比較器、譯碼器、編碼器等進(jìn)行條件控制的邏輯電路設(shè)計(jì),注意:(1)IF語句的條件判斷輸出是布爾量(TRUEOR

FALSE)。(2)故在IF語句中的IF條件表達(dá)式中,只能使用關(guān)系運(yùn)算操作(=、/=、〈、〉、〈=、=〉)及其組合表達(dá)式。例:編碼器library

ieee;use

ieee.std_logic_1164.all;entity

encoder8_3

isport

(

a,

b,

c,

d,

e,

f,

g,

h

:

in

std_logic;out2,

out1,

out0

:

out

std_logic);end

encoder8_3;architecture

behave

of

encoder8_3

issignal

k:std_logic_vector(2

downto

0);beginprocess

(a,

b,

c,

d,

e,

f,

g,

h)beginif

(

a='0')

thenk<=

"000";elsif(

b='0')

thenk<=

"001";elsif(

c='0')

thenk<=

"010";elsif(

d='0')

thenk<=

"011";elsif(

e='0')

thenk<=

"100";elsif(

f='0')

thenk<=

"101";elsif(

g='0')

thenk<=

"110";elsek<=

"111";end

if;out2<=k(2);out1<=k(1);out0<=k(0);end

process;end

behave;3.2 VHDL最常用的順序語句3.2.5 IF語句3.3 IF語句使用示例3.3.1 D觸發(fā)器的VHDL描述3.3 IF語句使用示例上升沿檢測(cè)表達(dá)式和信號(hào)屬性函數(shù)EVENT不完整條件語句與時(shí)序電路3.3 IF語句使用示例上升沿檢測(cè)表達(dá)式和信號(hào)屬性函數(shù)EVENT不完整條件語句與時(shí)序電路3.3 IF語句使用示例3.3 IF語句使用示例3.3.2

含異步復(fù)位和時(shí)鐘使能的D觸發(fā)器的VHDL描述3.3 IF語句使用示例3.3.2

含異步復(fù)位和時(shí)鐘使能的D觸發(fā)器的VHDL描述3.3 IF語句使用示例3.3.3

基本鎖存器的VHDL描述3.3 IF語句使用示例3.3.3

基本鎖存器的VHDL描述3.3 IF語句使用示例3.3.4

含清0控制的鎖存器的VHDL描述3.3 IF語句使用示例3.3.5 VHDL實(shí)現(xiàn)時(shí)序電路的不同表述方式3.3 IF語句使用示例3.3.5 VHDL實(shí)現(xiàn)時(shí)序電路的不同表述方式3.3 IF語句使用示例3.3.6 4位二進(jìn)制加法計(jì)數(shù)器設(shè)計(jì)3.3 IF語句使用示例3.3.7

計(jì)數(shù)器更常用的VHDL表達(dá)方式3.3 IF語句使用示例3.3.7

計(jì)數(shù)器更常用的VHDL表達(dá)方式3.3 IF語句使用示例3.3.8

實(shí)用計(jì)數(shù)器的VHDL設(shè)計(jì)3.3 IF語句使用示例3.3.8

實(shí)用計(jì)數(shù)器的VHDL設(shè)計(jì)3.3 IF語句使用示例3.3.8

實(shí)用計(jì)數(shù)器的VHDL設(shè)計(jì)3.3 IF語句使用示例3.3.9

含同步并行預(yù)置功能的8位移位寄存器設(shè)計(jì)3.3 IF語句使用示例3.3.9

含同步并行預(yù)置功能的8位移位寄存器設(shè)計(jì)3.3 IF語句使用示例3.3.10

優(yōu)先編碼器設(shè)計(jì)3.3 IF語句使用示例3.3.10

優(yōu)先編碼器設(shè)計(jì)3.4 VHDL其它順序語句3.4.1 LOOP循環(huán)語句(1)單個(gè)LOOP語句該語句常要和EXIT配合使用3.4 VHDL其它順序語句3.4.1 LOOP循環(huán)語句(2)FOR_LOOP語句LOOP語句中的循環(huán)變量的值在每次循環(huán)中都將發(fā)生變化,而IN后跟的離散范圍表示循環(huán)變量在循環(huán)過程中依次取值的范圍LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALLENTITY

parity_check

ISPORT

(a:IN

STD_LOGIC_VECTOR

(7

DOWNTO

0);yeven

,

yodd

:OUT

STD_LOGIC);END

parity_check

;ARCHITECTURE

rtl

OF

parity_check

ISBEGINPROCESS(a)VARIABLE

tmp:STD_LOGIC;BEGINtmp

:=

’0’;FOR

I

IN

0

TO

7

LOOPtmp

:=

tmp

XOR

a(I);END

LOOP;yeven

<=

tmp;yodd <=

not

tmp;END

PROCESS;END

rtl;例如:8位的奇偶產(chǎn)生/校驗(yàn)電路在該LOOP語句中,如果條件為“真”,則進(jìn)行循環(huán);如果條件為“假”,則結(jié)束循環(huán)。例如:sum

:=

0sbcd:WHILE

﹙i<10﹚

LOOPsum

:=

I

+

sum;i:=

i

+

1;

END

LOOP

sbcd;3、WHILE_LOOP

條件循環(huán)語句3.4.2 NEXT

溫馨提示

  • 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)論