第10章可編邏輯器件_第1頁
第10章可編邏輯器件_第2頁
第10章可編邏輯器件_第3頁
第10章可編邏輯器件_第4頁
第10章可編邏輯器件_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第10章章 可編程邏輯器件和硬件描述語言可編程邏輯器件和硬件描述語言數(shù)字邏輯器件可分為三類:數(shù)字邏輯器件可分為三類:(1)標(biāo)準(zhǔn)產(chǎn)品:標(biāo)準(zhǔn)產(chǎn)品:器件的邏輯功能是由制造商確定的,如器件的邏輯功能是由制造商確定的,如TTL、CMOS等中小規(guī)模集成器件。常見的標(biāo)準(zhǔn)產(chǎn)品有譯碼器、數(shù)據(jù)選擇器、計(jì)等中小規(guī)模集成器件。常見的標(biāo)準(zhǔn)產(chǎn)品有譯碼器、數(shù)據(jù)選擇器、計(jì)數(shù)器等。用標(biāo)準(zhǔn)產(chǎn)品構(gòu)成數(shù)字系統(tǒng)需要較多的元件、體積大、功耗數(shù)器等。用標(biāo)準(zhǔn)產(chǎn)品構(gòu)成數(shù)字系統(tǒng)需要較多的元件、體積大、功耗大、成本較高。大、成本較高。(2)由軟件組態(tài)的大規(guī)模集成器件:由軟件組態(tài)的大規(guī)模集成器件:如微處理器及其可編程外圍器件。如微處理器及其可編程

2、外圍器件。(3)專用集成電路專用集成電路(ASICApplication Specific Integrated Circuit):專用集成電路的邏輯功能是由用戶定義或者由用戶編程:專用集成電路的邏輯功能是由用戶定義或者由用戶編程確定的,通常是利用電路結(jié)構(gòu)實(shí)現(xiàn)邏輯功能,而不是執(zhí)行軟件。確定的,通常是利用電路結(jié)構(gòu)實(shí)現(xiàn)邏輯功能,而不是執(zhí)行軟件。可可編程邏輯器件編程邏輯器件(PLD-Programmable Logic Device) 是一種專用大是一種專用大規(guī)模集成電路器件。規(guī)模集成電路器件。 按電路結(jié)構(gòu),按電路結(jié)構(gòu),PLD可分為可分為與或陣列型與或陣列型PLD和查找表型和查找表型PLD。back

3、10.1 與或陣列型與或陣列型PLD10.1.1 與或陣列型與或陣列型PLD的原理的原理 緩沖器通常提供輸入變量和反饋?zhàn)兞康脑头?;由與陣列產(chǎn)緩沖器通常提供輸入變量和反饋?zhàn)兞康脑头?;由與陣列產(chǎn)生這些變量的乘積項(xiàng);由或陣列求乘積項(xiàng)的邏輯和生這些變量的乘積項(xiàng);由或陣列求乘積項(xiàng)的邏輯和. .用戶可對兩用戶可對兩個陣列(或其中之一)和輸出電路進(jìn)行編程;個陣列(或其中之一)和輸出電路進(jìn)行編程; 編程元件編程元件通常類是于是第通常類是于是第9章中介紹的可編程只讀存儲器的章中介紹的可編程只讀存儲器的元件,即熔絲元件、疊柵元件,即熔絲元件、疊柵MOS管、隧道管、隧道MOS管和閃存管和閃存MOS管。管。 ba

4、ck與或陣列型與或陣列型PLD有有可編程只讀存儲器可編程只讀存儲器(PROM)、可編邏輯陣可編邏輯陣列列(PLA- Programmable Logic Array)、可編陣列邏輯可編陣列邏輯(PAL-Programmable Array Logic)、通用陣列邏輯通用陣列邏輯(GAL-Generic Array Logic)和和復(fù)雜復(fù)雜PLD(CPLD-Complex PLD) CPLD是多個邏輯功能塊組成的可編程邏輯器件,芯片內(nèi)部集是多個邏輯功能塊組成的可編程邏輯器件,芯片內(nèi)部集成成1000個以上的等效邏輯門,所以稱為個以上的等效邏輯門,所以稱為高密度可編程邏輯器件高密度可編程邏輯器件(H

5、DPLD-High Density Programmable Logic Devices),), back不相連,不相連,固定連接固定連接“ ”( 用戶不可改變),用戶不可改變),可編程連接可編程連接“”(用熔絲或浮柵管等相連)。(用熔絲或浮柵管等相連)?!?”和和“”表示相應(yīng)的輸入項(xiàng)是乘表示相應(yīng)的輸入項(xiàng)是乘積項(xiàng)的因子,不相連的輸入項(xiàng)則不是乘積項(xiàng)的因子。積項(xiàng)的因子,不相連的輸入項(xiàng)則不是乘積項(xiàng)的因子。 圖圖 10.1.2 PLDA B C D P 與:與:P=ABC A B C D Y 或:或:P=B+C+D A B C D P 與:與:P=ABCD 與:與:P=ABCD A B C D P 引

6、腳 A A A A A 1 A 0A 緩沖器 的常用邏輯符號的常用邏輯符號 數(shù)據(jù)選擇器 Y A B Y=A+B 異或:異或: back圖圖10.1.3(a)是一個)是一個33 PROM的結(jié)構(gòu)示意圖;的結(jié)構(gòu)示意圖;(b)是編是編程后實(shí)現(xiàn)一位全加器:程后實(shí)現(xiàn)一位全加器: 11765317421iiiiiiiiiiiCBCABAmmmmCCBAmmmmSback補(bǔ)充題補(bǔ)充題:用:用16 4 位位PROM設(shè)計(jì)一個組合邏輯電路,用來產(chǎn)生設(shè)計(jì)一個組合邏輯電路,用來產(chǎn)生下列一組函數(shù):下列一組函數(shù): DBBDYDCBBDAYDCABDCBABCDADCBAYABCDDCBADCBADCBAY4321畫出存儲矩

7、陣的畫出存儲矩陣的碼點(diǎn)陣圖碼點(diǎn)陣圖。1513108752041075231387221510501mmmmmmmmYmmmmYmmmmYmmmmY解:解:4位位PROM,4個函數(shù),一位實(shí)現(xiàn)一個函數(shù)。個函數(shù),一位實(shí)現(xiàn)一個函數(shù)。1YA2YB3YC4YDABCD01 2 3 4 5 6 7 8 9101112131415全部最小項(xiàng)1513108752041075231387221510501mmmmmmmmYmmmmYmmmmYmmmmY10.1.2 通用陣列邏輯通用陣列邏輯(GAL) 1.基本結(jié)構(gòu)基本結(jié)構(gòu) (1)有)有8個輸入緩沖器(第個輸入緩沖器(第29管腳)和管腳)和8個反饋緩沖器,它個反饋緩

8、沖器,它們的輸出作為與陣列的輸入們的輸出作為與陣列的輸入(與陣列的(與陣列的32條列線)。條列線)。(2)與陣列有)與陣列有64個乘積項(xiàng)輸出,個乘積項(xiàng)輸出,PT0PT63(標(biāo)有數(shù)字的行(標(biāo)有數(shù)字的行線),線), 64行行32列列2048個個可編程單元構(gòu)成與陣列。可編程單元構(gòu)成與陣列。 (3)有)有8個輸出邏輯宏單元(第個輸出邏輯宏單元(第1219管腳)管腳) (4)1個時鐘輸入端(第個時鐘輸入端(第1腳)腳)和和1個三態(tài)使能輸入端個三態(tài)使能輸入端OE(第(第11腳),它們也可作為數(shù)據(jù)輸腳),它們也可作為數(shù)據(jù)輸入端。入端。 (5)5 V電源端(第電源端(第20腳)和接腳)和接地端(第地端(第10

9、腳),圖中未畫出腳),圖中未畫出 back與陣列可編程,或陣列固定與陣列可編程,或陣列固定2. 結(jié)構(gòu)控制字結(jié)構(gòu)控制字GAL16V8的結(jié)構(gòu)控制字配置其片內(nèi)資源。結(jié)構(gòu)控制字如圖10.1.5所示。8個OLMC有2個公共的結(jié)構(gòu)控制單元AC0和SYN,每個OLMC還各有2個可編程的結(jié)構(gòu)控制單元AC1(n)和XOR(n)n=1219。PT0PT63位分別控制與陣列的64個乘積項(xiàng)是否使用。 back3.輸出邏輯宏單元(輸出邏輯宏單元(OLMC)及其工作模式)及其工作模式 back根據(jù)結(jié)構(gòu)控制字中SYN、AC0、AC1(n)和XOR(n)的數(shù)據(jù),可以將OLMC配置成5種工作模式之一,見表10.1.2。注意:當(dāng)

10、SYN=1時,用于實(shí)現(xiàn)組合邏輯電路,第1和11管腳作為數(shù)據(jù)輸入端;當(dāng)SYN=0時,用于實(shí)現(xiàn)時序邏輯電路,第1管腳作時鐘輸入CK,第11管腳作輸出使能OE。與5種工作模式對應(yīng)的電路見圖10.1.7。 back 圖 10.1.7 OLMC 的 5 種工作模式 XOR (n) Q C1 Q 1D CK OE XOR (n) CK OE XOR (n) XOR (n) VCC I/O(n) I/O(n) I/O(n) I/O(n) I/O(n) I/O(m) OLMC OLMC OLMC OLMC OLMC (a) 專用輸入 (b) 專用組合輸出 (c) 反饋組合輸出 (d) 時序組合輸出 (e) 寄

11、存器輸出 OLMC的的5種工作模式種工作模式 back10.1.3 復(fù)雜可編程邏輯器件(復(fù)雜可編程邏輯器件(CPLD) CPLD器件內(nèi)部集成了多個比GAL功能更完善的通用邏輯塊GLB(Generic Logic Block),可以實(shí)現(xiàn)較復(fù)雜的數(shù)字系統(tǒng)。 CPLD主要包含主要包含32個個I/O單元、單元、16個個GLB(A0A7;B0B7)、互連布線區(qū))、互連布線區(qū)和時鐘分配網(wǎng)絡(luò)。和時鐘分配網(wǎng)絡(luò)。 back1.時鐘分配網(wǎng)絡(luò)時鐘分配網(wǎng)絡(luò) CLK0是由是由引腳引腳Y0輸入輸入的外部時鐘。的外部時鐘。而而CLK1、CLK2、IOCLK0和和IOCLK1可可由由GLB B0產(chǎn)生或者由產(chǎn)生或者由外部輸入外

12、部輸入(Y1、Y2) CLK0、CLK1和CLK2用于GLB中的觸發(fā)器,而IOCLK0和IOCLK1則用于I/O單元中的觸發(fā)器。Y1還可作為全局復(fù)位輸入(Global Reset),其作用由邏輯設(shè)計(jì)開發(fā)軟件確定。 back2.通用邏輯塊通用邏輯塊GLB GLB有有18個輸入,個輸入,產(chǎn)生產(chǎn)生4個個輸出輸出(O0O3);與陣列與陣列的輸入,的輸入,產(chǎn)生產(chǎn)生20個乘積個乘積項(xiàng)項(xiàng)PT0PT19 4個個D觸發(fā)器和異或門(圖中未畫出),可以靈活地配觸發(fā)器和異或門(圖中未畫出),可以靈活地配置成可復(fù)位的置成可復(fù)位的D、JK和和T觸發(fā)器。異或門還可以配置為觸發(fā)器。異或門還可以配置為對乘積項(xiàng)(對乘積項(xiàng)(PT0

13、、PT4、PT8、PT13)或門輸出作異或)或門輸出作異或運(yùn)算。輸出數(shù)據(jù)選擇器運(yùn)算。輸出數(shù)據(jù)選擇器MUX可以選擇可以選擇GLB有無寄存器有無寄存器輸出。輸出。back3.I/O單元和輸出使能數(shù)據(jù)選擇器單元和輸出使能數(shù)據(jù)選擇器OE MUX 圖 10.1.10 ispLSI 1016 的 I/O 單元和 OE MUX 1D Q C1 R R /L MUX MUX MUX MUX MUX MUX OE VCC VH 來自輸出布線區(qū) 來自輸出布線區(qū)的旁路線 去全局布線區(qū) IOCLK0 IOCLK1 全局復(fù)位信號 有源上拉 OE MUX GLB A0 GLB A1 GLB A2 GLB A3 GLB A

14、4 GLB A5 GLB A6 GLB A7 PT19 OE MUX I/O 單元 I/O單元是內(nèi)部邏輯和器件引腳的互連電路,如圖單元是內(nèi)部邏輯和器件引腳的互連電路,如圖10.1.10所示。所示。主要由主要由6個數(shù)據(jù)選擇器個數(shù)據(jù)選擇器MUX、3個緩沖器和個緩沖器和1個觸發(fā)器組成。個觸發(fā)器組成。 當(dāng)當(dāng)R/L=1時,觸發(fā)器配置為邊沿觸發(fā);當(dāng)時,觸發(fā)器配置為邊沿觸發(fā);當(dāng)R/L=0觸發(fā)器配置為觸發(fā)器配置為鎖存器。鎖存器。OE MUX選擇來自選擇來自8個個GLB的乘積項(xiàng)之一,可控制的乘積項(xiàng)之一,可控制I/O單單元的輸出緩沖器。元的輸出緩沖器。 back 為了保證器件使用的靈活性,為了保證器件使用的靈活性

15、,CPLD的引腳大多數(shù)可的引腳大多數(shù)可設(shè)置為輸入、輸出和雙向單元,如圖設(shè)置為輸入、輸出和雙向單元,如圖10.1.11。back4在系統(tǒng)編程(在系統(tǒng)編程(ISP) 將設(shè)計(jì)數(shù)據(jù)寫入將設(shè)計(jì)數(shù)據(jù)寫入PLD的可編程單元中稱為的可編程單元中稱為PLD的的編程編程。 編程元件(疊柵編程元件(疊柵MOS管、隧道管、隧道MOS管和閃存管和閃存MOS管)的擦除和寫入需要比器件正常工作電壓管)的擦除和寫入需要比器件正常工作電壓高的高的編程電壓編程電壓。 早期的早期的PLD(如(如PAL、GAL等)內(nèi)部沒有編程電等)內(nèi)部沒有編程電壓發(fā)生器,故必須通過專門的編程器對其進(jìn)行編壓發(fā)生器,故必須通過專門的編程器對其進(jìn)行編程。

16、所以,編程時,必須把程。所以,編程時,必須把PLD器件從系統(tǒng)中拔器件從系統(tǒng)中拔出并置于編程器中。出并置于編程器中。 對于對于在系統(tǒng)編程在系統(tǒng)編程(ISP-In System Programmable)器件,其內(nèi)部集成了編程電壓發(fā)生器、編程狀態(tài)器件,其內(nèi)部集成了編程電壓發(fā)生器、編程狀態(tài)機(jī)和接口電路。機(jī)和接口電路。 backispLSI器件的編程接口信號如圖器件的編程接口信號如圖10.1.12所示。當(dāng)所示。當(dāng)ispEN=0時,器時,器件處于編程狀態(tài)件處于編程狀態(tài);ispEN=1時,器件處于正常工作狀態(tài),執(zhí)行用戶設(shè)計(jì)的邏輯功能。時,器件處于正常工作狀態(tài),執(zhí)行用戶設(shè)計(jì)的邏輯功能。 輸入信號輸入信號MO

17、DE、SCLK、SDI和和SDO配合,實(shí)現(xiàn)數(shù)配合,實(shí)現(xiàn)數(shù)據(jù)的串行輸入和串行輸出。據(jù)的串行輸入和串行輸出。SDI和和SDO分別是數(shù)據(jù)串行分別是數(shù)據(jù)串行輸入和輸出端,輸入和輸出端,SCLK是時鐘輸入端,是時鐘輸入端,MODE是模式是入是模式是入端。先輸入數(shù)據(jù),后讀出數(shù)據(jù)。校驗(yàn)正確后,對編程單端。先輸入數(shù)據(jù),后讀出數(shù)據(jù)。校驗(yàn)正確后,對編程單元進(jìn)行改寫。元進(jìn)行改寫。 back10.2 查找表型查找表型PLD10.2.1查找表型查找表型PLD的原理的原理 將邏輯函數(shù)值將邏輯函數(shù)值存儲在存儲單元存儲在存儲單元中,然后用函數(shù)中,然后用函數(shù)變量作數(shù)據(jù)選擇變量作數(shù)據(jù)選擇器的地址變量,器的地址變量,選擇存儲單元的

18、選擇存儲單元的數(shù)據(jù)作輸出,就數(shù)據(jù)作輸出,就可以實(shí)現(xiàn)任意的可以實(shí)現(xiàn)任意的邏輯函數(shù)邏輯函數(shù)F(A0,A1, ,An-1); 改變數(shù)據(jù)表的數(shù)據(jù)則可實(shí)改變數(shù)據(jù)表的數(shù)據(jù)則可實(shí)現(xiàn)不同的邏輯函數(shù)?,F(xiàn)不同的邏輯函數(shù)。back 存儲單元的數(shù)據(jù)表為存儲單元的數(shù)據(jù)表為1、0、0、1,NMOS開關(guān)管和輸入開關(guān)管和輸入緩沖器組成緩沖器組成4 選選1 數(shù)據(jù)選擇數(shù)據(jù)選擇器。器。 當(dāng)當(dāng)A1A0=00時時,T0和和T1同時導(dǎo)通同時導(dǎo)通,而其他支路上的,而其他支路上的NMOS管不能同時導(dǎo)通,管不能同時導(dǎo)通,F(xiàn)=1; 當(dāng)當(dāng)A1A0=01時,時,T2和和T3同時導(dǎo)通同時導(dǎo)通,而其他支路上的,而其他支路上的NMOS管不能同時導(dǎo)通,管不

19、能同時導(dǎo)通,F(xiàn)=0; 當(dāng)當(dāng)A1A0=10時,時,T4和和T5同時導(dǎo)通同時導(dǎo)通,而其他支路上的,而其他支路上的NMOS管不能同時導(dǎo)通,管不能同時導(dǎo)通,F(xiàn)=0; 當(dāng)當(dāng)A1A0=11時,時,T6和和T7同時導(dǎo)通同時導(dǎo)通,而其他支路上的,而其他支路上的NMOS管不能同時導(dǎo)通,管不能同時導(dǎo)通,F(xiàn)=1。A1A0F001010100111所以,所以,F(xiàn)=A1 A0。如果改變數(shù)據(jù)表,則可改變輸出邏輯函數(shù)。如果改變數(shù)據(jù)表,則可改變輸出邏輯函數(shù)。 back 存儲單元通常采用圖存儲單元通常采用圖10.2.3所示的靜態(tài)存儲單元。所示的靜態(tài)存儲單元。2個反相器組成基本個反相器組成基本RS觸發(fā)器保存配置數(shù)據(jù)。觸發(fā)器保存配

20、置數(shù)據(jù)。 以查找表為核心的以查找表為核心的PLD稱為現(xiàn)場可編程門陣列稱為現(xiàn)場可編程門陣列FPGA(Field Programmble Gate Array)。)。 back10.2.2分段互聯(lián)分段互聯(lián)FPGA 由可配置的邏輯塊由可配置的邏輯塊CLB (Configurable Logic Block)、輸入、輸入/輸出塊輸出塊IOB和可編和可編程的互連資源組成;程的互連資源組成; CLB實(shí)現(xiàn)基本邏輯實(shí)現(xiàn)基本邏輯功能,大量功能,大量CLB通通過可編成的互連導(dǎo)過可編成的互連導(dǎo)線互連,實(shí)現(xiàn)復(fù)雜線互連,實(shí)現(xiàn)復(fù)雜的邏輯功能,的邏輯功能,IOB則則是引腳與芯片內(nèi)部是引腳與芯片內(nèi)部邏輯的接口電路。邏輯的接口

21、電路。 back1.可配置邏輯塊(可配置邏輯塊(CLB) 由由1個個4變量變量LUT、1個可異步復(fù)位和置個可異步復(fù)位和置位的位的D觸發(fā)器、觸發(fā)器、6個個數(shù)據(jù)選擇器組成。數(shù)據(jù)選擇器組成。 LUT可以產(chǎn)生可以產(chǎn)生4變量變量邏輯函數(shù)(邏輯函數(shù)(G、F相相同),也可分裂產(chǎn)同),也可分裂產(chǎn)生生2個個3變量邏輯函變量邏輯函數(shù)(數(shù)(G、F不同)。不同)。 通過數(shù)據(jù)選擇器通過數(shù)據(jù)選擇器(MUX),觸發(fā)器),觸發(fā)器可以由變量置位(可以由變量置位(A)或復(fù)位(或復(fù)位(D),也可),也可以由函數(shù)置位(以由函數(shù)置位(F)和復(fù)位(和復(fù)位(G););觸發(fā)器的時鐘可以是變量觸發(fā)器的時鐘可以是變量C,也可以是時,也可以是時鐘

22、鐘CLK或函數(shù)或函數(shù)G;觸發(fā)器的;觸發(fā)器的Q端可以反饋端可以反饋到到LUT。 最后,最后,CLB的的2個輸出可以是個輸出可以是G或或F或或Q。CLB的輸入信號的輸入信號A、B、C和和D來來自互連導(dǎo)線;自互連導(dǎo)線;CLB的輸出信號送另一些互的輸出信號送另一些互連導(dǎo)線。連導(dǎo)線。 back2.輸入輸入/輸出塊(輸出塊(IOB) 電路如圖10.2.6所示。引腳上的輸入信號通過輸入緩沖器與芯片內(nèi)部邏輯相連,可以通過D觸發(fā)器輸入或直接輸入到適當(dāng)?shù)幕ミB線。全部IOB電路公用相同的時鐘I/O CLK。 back3.分段互連資源分段互連資源 互連資源由開關(guān)矩陣、互連資源由開關(guān)矩陣、開關(guān)管和互連導(dǎo)線組成,開關(guān)管和

23、互連導(dǎo)線組成,可實(shí)現(xiàn)不同距離的可實(shí)現(xiàn)不同距離的CLB、IOB之間的可編程互連。之間的可編程互連。 互連導(dǎo)線分為直接連線、互連導(dǎo)線分為直接連線、通用連線、長線和全局通用連線、長線和全局連線(圖中只畫出了部連線(圖中只畫出了部分連線)。分連線)。 位于位于CLB或或IOB之間的短導(dǎo)線稱為直接連線,直接連接鄰近之間的短導(dǎo)線稱為直接連線,直接連接鄰近的的CLB或或IOB的輸入的輸入/輸出。輸出。 位于開關(guān)矩陣之間的短導(dǎo)線稱為通用導(dǎo)線,通用導(dǎo)線與直接位于開關(guān)矩陣之間的短導(dǎo)線稱為通用導(dǎo)線,通用導(dǎo)線與直接連線的交叉點(diǎn)是可編程的開關(guān)管,實(shí)現(xiàn)連線的交叉點(diǎn)是可編程的開關(guān)管,實(shí)現(xiàn)2者之間的編程連接。者之間的編程連接

24、。 back10.2.3快速互連快速互連FPGA將位置鄰近的將位置鄰近的8個邏輯單元個邏輯單元LE局部互連形成較強(qiáng)功能的邏輯陣列塊局部互連形成較強(qiáng)功能的邏輯陣列塊LAB,然后用,然后用貫穿整個芯片的行、列導(dǎo)線貫穿整個芯片的行、列導(dǎo)線(即快速互連線即快速互連線 )編程連接編程連接LAB和輸入和輸入/輸出單元輸出單元IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE IOE 邏輯單元邏輯單元 LE 邏輯陣列塊邏輯陣列塊 LAB 局部連線局部連線 圖圖 10.2

25、.7 FLEX10K 的結(jié)構(gòu)示意圖的結(jié)構(gòu)示意圖 行快速互連帶行快速互連帶 列列 快快 速速 互互 連連 帶帶 嵌入嵌入 陣列塊陣列塊 EAB 嵌入嵌入 陣列塊陣列塊 EAB Altera公司 back1.邏輯單元邏輯單元LE LE可配置成正常模式、運(yùn)算模式、加減計(jì)數(shù)模式和可清除計(jì)數(shù)模式。 查找查找表表 進(jìn)位鏈進(jìn)位鏈 級連鏈級連鏈 S 1D Q C1 EN R 清除清除 /置置位位邏輯邏輯 表示可編程單元表示可編程單元 進(jìn)位輸入進(jìn)位輸入 級連輸入級連輸入 進(jìn)位輸出進(jìn)位輸出 級連輸出級連輸出 DATA1 DATA2 DATA3 DATA4 時鐘選擇時鐘選擇 LABCTRL 1 LABCTRL2 L

26、ABCTRL3 LABCTRL4 Chip wide Reset 到到快速快速互連線互連線 到局部到局部互連線互連線 圖圖 10.2.8 FLEX 10K 的邏輯單元的邏輯單元LE 1 back2.邏輯陣列塊邏輯陣列塊LAB 8個位置鄰近的邏個位置鄰近的邏輯單元通過局部輯單元通過局部互連線形成較強(qiáng)互連線形成較強(qiáng)功能的邏輯陣列功能的邏輯陣列塊塊LAB,可以實(shí),可以實(shí)現(xiàn)較復(fù)雜的邏輯現(xiàn)較復(fù)雜的邏輯功能,例如,功能,例如,8位位加法器、計(jì)數(shù)器、加法器、計(jì)數(shù)器、比較器等比較器等 24 條條 列列 快快 速速 互互 連連 線線 LE1 LE2 LE3 LE4 LE5 LE6 LE7 LE8 局局部部互互連

27、連線線 8 8 4 4 4 4 4 4 4 4 4 2 2 8 24 16 8 4 144 條行快速互連線條行快速互連線 16 22 進(jìn)位、級連進(jìn)位、級連 輸入輸入 進(jìn)位、級連輸出進(jìn)位、級連輸出 專用輸入和全局信號專用輸入和全局信號 圖圖 10.2.9 FLEX 10K10 的邏輯陣列塊的邏輯陣列塊 LAB 4 back3 3輸入輸入/ /輸出單元輸出單元IOEIOE 包含一個包含一個I/O緩沖器、緩沖器、D觸發(fā)器觸發(fā)器(具有異(具有異步復(fù)位和步復(fù)位和時鐘使能時鐘使能控制)和控制)和8個數(shù)據(jù)個數(shù)據(jù)選擇器等選擇器等 圖圖10.2.10 FLEX 10K 的輸入的輸入/輸出塊輸出塊IOE 1D Q

28、 C1 EN R & & VCC VCC VCC VCC 芯片允許芯片允許 芯片復(fù)位芯片復(fù)位 電壓擺電壓擺 率控制率控制 集電極集電極 開路輸出開路輸出 去行或列快速互連帶去行或列快速互連帶 來來自自行行或或列列快快速速互互連連帶帶 I/O 控制總線控制總線 2 個專用時鐘輸入個專用時鐘輸入 I/O I/O引腳可以配置成直接輸入和寄存器輸入,輸入信號被傳遞到行或列快速互連帶。I/O引腳亦可以配置成直接輸出或寄存器輸出,輸出緩沖器可以配置成集電極開路輸出,還可以調(diào)節(jié)輸出電壓上升率。在內(nèi)部邏輯和I/O控制總線的控制下,可實(shí)現(xiàn)輸入/輸出雙向信號傳遞。 back4嵌入陣列塊嵌入陣列塊EAB 嵌入陣列塊

29、EAB是一個具有2048位、可配置的RAM,其數(shù)據(jù)輸入、數(shù)據(jù)輸出、地址輸入和讀寫控制都配有寄存器。EAB可以實(shí)現(xiàn)FIFO、ROM、RAM和雙口RAM。如果將EAB當(dāng)作2048位的查找表,則可用于實(shí)現(xiàn)較復(fù)雜的邏輯功能,例如,算術(shù)邏輯單元,數(shù)字濾波器、微控制器等。 back10.3 PLD的設(shè)計(jì)流程的設(shè)計(jì)流程 通過開發(fā)軟件在計(jì)算機(jī)通過開發(fā)軟件在計(jì)算機(jī)上進(jìn)行邏輯設(shè)計(jì),生成上進(jìn)行邏輯設(shè)計(jì),生成PLD的編程數(shù)據(jù),然后,的編程數(shù)據(jù),然后,在計(jì)算機(jī)的并口或?qū)iT在計(jì)算機(jī)的并口或?qū)iT的編程器對的編程器對PLD進(jìn)行編進(jìn)行編程。程。 圖圖10.3.1是是Altera公司的公司的開發(fā)軟件開發(fā)軟件MUX+PLUS II

30、的設(shè)計(jì)流程。的設(shè)計(jì)流程。 MUX+PLUS II的替代軟的替代軟件:件:QuartusII開始開始 設(shè)計(jì)編譯設(shè)計(jì)編譯 設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 正確?正確? 器件編程器件編程 結(jié)束結(jié)束 設(shè)計(jì)輸入設(shè)計(jì)輸入 YES NO 圖圖 10.3.1 MUX+PLUS II 的設(shè)計(jì)流程的設(shè)計(jì)流程 back1設(shè)計(jì)輸入設(shè)計(jì)輸入 MUX+PLUS II支持支持原理圖輸入、原理圖輸入、硬件描述語言輸入和波形輸入硬件描述語言輸入和波形輸入。 原理圖輸入:用原理圖編輯器輸原理圖輸入:用原理圖編輯器輸入電路原理圖。入電路原理圖。 硬件描述語言輸入:用文本編輯硬件描述語言輸入:用文本編輯器輸入硬件描述語言程序。硬件器輸入硬件描述語

31、言程序。硬件描述語言是指可以描述硬件電路描述語言是指可以描述硬件電路的功能、信號連接關(guān)系及定時關(guān)的功能、信號連接關(guān)系及定時關(guān)系的語言系的語言 波形輸入:用波形編輯器輸入反波形輸入:用波形編輯器輸入反映邏輯電路功能的輸入信號、輸映邏輯電路功能的輸入信號、輸出信號波形圖。設(shè)計(jì)軟件將其自出信號波形圖。設(shè)計(jì)軟件將其自動轉(zhuǎn)換為輸入輸出邏輯關(guān)系。動轉(zhuǎn)換為輸入輸出邏輯關(guān)系。 開始開始 設(shè)計(jì)編譯設(shè)計(jì)編譯 設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 正確?正確? 器件編程器件編程 結(jié)束結(jié)束 設(shè)計(jì)輸入設(shè)計(jì)輸入 YES NO 圖圖 10.3.1 MUX+PLUS II 的設(shè)計(jì)流程的設(shè)計(jì)流程 back2設(shè)計(jì)編譯設(shè)計(jì)編譯 用編譯程序?qū)υO(shè)計(jì)用編譯

32、程序?qū)υO(shè)計(jì)輸入自動進(jìn)行語法輸入自動進(jìn)行語法和設(shè)計(jì)規(guī)則檢查、和設(shè)計(jì)規(guī)則檢查、邏輯優(yōu)化和綜合、邏輯優(yōu)化和綜合、邏輯分割和適配、邏輯分割和適配、生成編成數(shù)據(jù)文件生成編成數(shù)據(jù)文件和仿真網(wǎng)表文件。和仿真網(wǎng)表文件。 開始開始 設(shè)計(jì)編譯設(shè)計(jì)編譯 設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 正確?正確? 器件編程器件編程 結(jié)束結(jié)束 設(shè)計(jì)輸入設(shè)計(jì)輸入 YES NO 圖圖 10.3.1 MUX+PLUS II 的設(shè)計(jì)流程的設(shè)計(jì)流程 back3設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 根據(jù)網(wǎng)表文件和輸入激勵,MUX+PLUS II可以完成功能仿真、時序仿真和時序分析,以校驗(yàn)設(shè)計(jì)的正確性。 開始開始 設(shè)計(jì)編譯設(shè)計(jì)編譯 設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 正確?正確? 器件編程器件編程

33、 結(jié)束結(jié)束 設(shè)計(jì)輸入設(shè)計(jì)輸入 YES NO 圖圖 10.3.1 MUX+PLUS II 的設(shè)計(jì)流程的設(shè)計(jì)流程 back4器件編程器件編程 對于在系統(tǒng)編程器件,用編程電纜連接計(jì)算機(jī)的并口和器件的編程接口。調(diào)用器件編程程序,將編成數(shù)據(jù)文件寫入器件中。開始開始 設(shè)計(jì)編譯設(shè)計(jì)編譯 設(shè)計(jì)校驗(yàn)設(shè)計(jì)校驗(yàn) 正確?正確? 器件編程器件編程 結(jié)束結(jié)束 設(shè)計(jì)輸入設(shè)計(jì)輸入 YES NO 圖圖 10.3.1 MUX+PLUS II 的設(shè)計(jì)流程的設(shè)計(jì)流程 back10.4 硬件描述語言硬件描述語言 Altera、Xilinx、AMD等公司為此推出了非常好的CPLD和FPGA產(chǎn)品,并為這些產(chǎn)品的設(shè)計(jì)配備了相應(yīng)的設(shè)計(jì)和下載軟

34、件。這些軟件除了支持用圖形方式設(shè)計(jì)數(shù)字系統(tǒng)外,還支持用硬件描述語言設(shè)計(jì)數(shù)字系統(tǒng)。 硬件描述語言HDL(Handware Descripition Language)用文本形式描述硬件電路的邏輯功能及連接關(guān)系,它能比電原理圖更有效、更方便和簡潔地表達(dá)硬件電路的特征。 只有VHDL和Verilog HDL被IEEE標(biāo)準(zhǔn)化組織定為標(biāo)準(zhǔn)的HDL back10.4.1 VHDL的基本結(jié)構(gòu)的基本結(jié)構(gòu)實(shí)體實(shí)體 (Entity) 說明說明:實(shí)體說明用于描述所設(shè)計(jì)的實(shí)體的名稱及外部輸入/輸出端口信號。結(jié)構(gòu)體結(jié)構(gòu)體(Architecture):結(jié)構(gòu)體定義一個基本設(shè)計(jì)單元(設(shè)計(jì)實(shí)體)的實(shí)現(xiàn),即定義了設(shè)計(jì)單元的的邏輯

35、結(jié)構(gòu)(即邏輯功能),建立輸入和輸出之間的關(guān)系。結(jié)構(gòu)體結(jié)構(gòu)體等價于電路原理圖等價于電路原理圖(邏輯器件的連接關(guān)系)。配置配置(Configuration):配置語句描述設(shè)計(jì)中不同層次之間的連接關(guān)系以及實(shí)體與結(jié)構(gòu)體之間的連接關(guān)系,利用配置語句可以安裝具體元件到實(shí)體-結(jié)構(gòu)體對,配置可以被看作是設(shè)計(jì)的零件清單;程序包程序包(Package):聲明在各個設(shè)計(jì)模塊或?qū)嶓w中將用到的數(shù)據(jù)類型及常數(shù)、元件和子程序等;庫庫(Library):庫是經(jīng)編譯后的數(shù)據(jù)集合,庫中存放的是各種程序包、實(shí)體定義,結(jié)構(gòu)體定義以及配置說明等,庫可以使設(shè)計(jì)者共享已經(jīng)編譯過的設(shè)計(jì)成果及數(shù)據(jù)。1 . VHDL的基本組成的基本組成back

36、2. VHDL語言程序的基本結(jié)構(gòu)語言程序的基本結(jié)構(gòu) VHDL語言的基本設(shè)計(jì)單元就是一個設(shè)計(jì)實(shí)體(Design Entity),對應(yīng)于一個數(shù)字電路。每一個設(shè)計(jì)實(shí)體都包含實(shí)體說明和結(jié)構(gòu)體兩部分 實(shí)體說明規(guī)定設(shè)計(jì)實(shí)體(數(shù)字電路)的輸入、輸出端口,是設(shè)計(jì)實(shí)體與外界的一個通信界面。 結(jié)構(gòu)體則用于描述設(shè)計(jì)實(shí)體輸入、輸出端口間的邏輯關(guān)系。 設(shè)計(jì)實(shí)體設(shè)計(jì)實(shí)體 實(shí)體實(shí)體 說明說明 結(jié)構(gòu)體結(jié)構(gòu)體 圖圖10.4.1 VHDL 的設(shè)計(jì)實(shí)體的設(shè)計(jì)實(shí)體 數(shù)字?jǐn)?shù)字 電路電路 設(shè)計(jì)實(shí)體對應(yīng)的數(shù)字電路設(shè)計(jì)實(shí)體對應(yīng)的數(shù)字電路可以簡單到器件,如與門、可以簡單到器件,如與門、或門,也可以復(fù)雜至中大或門,也可以復(fù)雜至中大規(guī)模集成電路,

37、如加法器、規(guī)模集成電路,如加法器、編碼器、譯碼器、計(jì)數(shù)器、編碼器、譯碼器、計(jì)數(shù)器、寄存器等,甚至于可以是寄存器等,甚至于可以是一個微處理器或一個系統(tǒng)。一個微處理器或一個系統(tǒng)。 back(1)實(shí)體說明語句實(shí)體說明語句 實(shí)體說明語句規(guī)定設(shè)計(jì)實(shí)體說明語句規(guī)定設(shè)計(jì)實(shí)體的名稱和輸入、輸實(shí)體的名稱和輸入、輸出端口。語句結(jié)構(gòu)是:出端口。語句結(jié)構(gòu)是: ENTITY 實(shí)體名實(shí)體名 IS 端口說明端口說明 END 實(shí)體名實(shí)體名; 設(shè)計(jì)實(shí)體設(shè)計(jì)實(shí)體 實(shí)體實(shí)體 說明說明 結(jié)構(gòu)體結(jié)構(gòu)體 圖圖10.4.1 VHDL 的設(shè)計(jì)實(shí)體的設(shè)計(jì)實(shí)體 數(shù)字?jǐn)?shù)字 電路電路 “ENTITY、IS 和和END ”稱為關(guān)鍵字,稱為關(guān)鍵字, V

38、HDL語言中不區(qū)分大小寫,但是習(xí)慣語言中不區(qū)分大小寫,但是習(xí)慣用大寫字母來表示關(guān)鍵字或?qū)S米?,用用大寫字母來表示關(guān)鍵字或?qū)S米?,用小寫字母來表示?biāo)識符。小寫字母來表示標(biāo)識符。 實(shí)體的輸入、輸出端口用實(shí)體的輸入、輸出端口用端口說明語句端口說明語句描述,語句結(jié)構(gòu)是:描述,語句結(jié)構(gòu)是: PORTPORT(端口名(端口名 ,端口名,端口名 :方向:方向 數(shù)據(jù)類型名;數(shù)據(jù)類型名; 端口名端口名 ,端口名,端口名 :方向:方向 數(shù)據(jù)類型名數(shù)據(jù)類型名) );back端口名端口名是賦予每個外部引腳的標(biāo)示符,是賦予每個外部引腳的標(biāo)示符,一般用一個或幾一般用一個或幾個英文字母組成,或者用英文字母加數(shù)字命名個英文字

39、母組成,或者用英文字母加數(shù)字命名,如:,如:add、sel、in、out、d0、d1等。等。端口方向是定義引腳為輸入還是輸出,見表端口方向是定義引腳為輸入還是輸出,見表10.4.1: 常用的端口數(shù)據(jù)類型有兩種:BIT和BIT_VECTOR,當(dāng)端口被說明為BIT時,只能取值“1”或“0”,當(dāng)端口被說明為BIT_VECTOR時,它可能是一組二進(jìn)制數(shù)。即BIT對應(yīng)于一條信號線,BIT_VECTOR對應(yīng)于多條信號線(信號總線)。 表表10.4.1 端口方向說明端口方向說明方向:方向:說明:說明:IN流入到實(shí)體流入到實(shí)體OUT從實(shí)體流出從實(shí)體流出INOUT雙向端口:既可流入,也雙向端口:既可流入,也可流

40、出可流出BUFFER也是雙向端口,但限定該也是雙向端口,但限定該端口只有一個源端口只有一個源LINKAGE不指定方向不指定方向back例例 10.4.110.4.1- example_1example_1 is a four bit equality comparator is a four bit equality comparator LIBRARYLIBRARY IEEE IEEE; -庫;每行結(jié)尾用庫;每行結(jié)尾用“;”,“-”后面為注釋后面為注釋 USEUSE IEEE.STD_LO IEEE.STD_LOGIC_1164.ALLGIC_1164.ALL; -程序包程序包 ENTITY

41、ENTITY example_1 example_1 ISIS -實(shí)體名實(shí)體名 example_1example_1,必須與每一個,必須與每一個設(shè)計(jì)設(shè)計(jì) 實(shí)體所存的文件名實(shí)體所存的文件名一致一致 PORTPORT(a, b:(a, b:inin STD_LOGIC _VECTOR(3 downto 0) STD_LOGIC _VECTOR(3 downto 0); -端口說明端口說明 equal: equal:outout STD_LOGIC) STD_LOGIC); ENDEND example_1 example_1; -關(guān)鍵字關(guān)鍵字 ENDEND 后跟實(shí)體名后跟實(shí)體名 ARCHITECT

42、UREARCHITECTURE dataflow dataflow OFOF eqcomp4 eqcomp4 ISIS -結(jié)構(gòu)體結(jié)構(gòu)體 BEGINBEGIN -關(guān)鍵詞關(guān)鍵詞 BEGINBEGIN equal = equal = 1 1 WHENWHEN a=b a=b ELSEELSE 0 0; -=表示信號賦值表示信號賦值 EndEnd dataflow dataflow; -關(guān)鍵詞關(guān)鍵詞 ENDEND 后跟結(jié)構(gòu)體名后跟結(jié)構(gòu)體名 a3.0b3.0equal圖圖10.4.2STD_LOGIC和STD_LOGIC _VECTOR分別是程序包STD_LOGIC_1164.ALL中定義的BIT和BI

43、T_VECTOR。上述程序?qū)崿F(xiàn)的上述程序?qū)崿F(xiàn)的是是4位相等比較位相等比較,如圖10.4.2所示。back(2) (2) 結(jié)構(gòu)體語句結(jié)構(gòu)體語句 實(shí)體名必須是實(shí)體名必須是所在設(shè)計(jì)實(shí)體所在設(shè)計(jì)實(shí)體的名字的名字,而結(jié),而結(jié)構(gòu)體名可以由構(gòu)體名可以由設(shè)計(jì)者選擇。設(shè)計(jì)者選擇。 一個設(shè)計(jì)實(shí)體一個設(shè)計(jì)實(shí)體可以有多個結(jié)可以有多個結(jié)構(gòu)體。構(gòu)體。當(dāng)一個當(dāng)一個實(shí)體具有多個實(shí)體具有多個結(jié)構(gòu)體時,結(jié)結(jié)構(gòu)體時,結(jié)構(gòu)體的取名不構(gòu)體的取名不能重復(fù)。能重復(fù)。 結(jié)構(gòu)體用于描述設(shè)計(jì)實(shí)體輸入和輸出端口間結(jié)構(gòu)體用于描述設(shè)計(jì)實(shí)體輸入和輸出端口間的邏輯關(guān)系。結(jié)構(gòu)體語句格式如下:的邏輯關(guān)系。結(jié)構(gòu)體語句格式如下:ARCHITECTUREARCHI

44、TECTURE 結(jié)構(gòu)體名結(jié)構(gòu)體名 OFOF 實(shí)體名實(shí)體名 ISIS 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義函數(shù)等的定義BEGINBEGIN 并行處理語句并行處理語句 ENDEND 結(jié)構(gòu)體名結(jié)構(gòu)體名;back例10.4.2 用VHDL語言描述圖10.4.3所示的2輸入與非門電路。 a by 圖圖 10.4.3& LIBRARYLIBRARY IEEE IEEE;USE IEEE.std_logic_1164.allUSE IEEE.std_logic_1164.all;ENTITY nand2 IS -ENTITY nand2 IS -實(shí)體名實(shí)體名na

45、nd2,2nand2,2輸入與非門輸入與非門PORT(a,b: in STD_LOGICPORT(a,b: in STD_LOGIC; y: out STD_LOGIC) y: out STD_LOGIC);END nand2END nand2;ARCHITECTUREARCHITECTURE nand2_1 OF nand2 IS nand2_1 OF nand2 IS -結(jié)構(gòu)體名結(jié)構(gòu)體名nand2_1nand2_1BEGIN BEGIN y=a nand b y=a nand b; - nand nand 是是VHDLVHDL的與非運(yùn)算操作的與非運(yùn)算操作符符END nand2_1END n

46、and2_1;back(3) (3) 配置語句配置語句 配置語句描述了層與層之間的連接關(guān)系,以及實(shí)體與結(jié)構(gòu)體之間的連接關(guān)系。 邏輯關(guān)系的實(shí)現(xiàn)可以有多種方式,例如,計(jì)數(shù)器可以用D觸發(fā)器實(shí)現(xiàn),也可以用JK觸發(fā)器實(shí)現(xiàn)。所以,一個實(shí)體可以對應(yīng)于多個結(jié)構(gòu)體,可以放在各自不同的庫中。用配置語句實(shí)體為選擇一個結(jié)構(gòu)體。 配置語句的基本格式如下:配置語句的基本格式如下:CONFIGURATION 配置名配置名 OF 實(shí)體名實(shí)體名 IS說明語句說明語句END配置名;配置名;back例例10.4.310.4.3:寫出用兩種不同的結(jié)構(gòu)實(shí)現(xiàn)的:寫出用兩種不同的結(jié)構(gòu)實(shí)現(xiàn)的RSRS觸發(fā)器的觸發(fā)器的VHDLVHDL語言程序。

47、語言程序。back(4) 程序包和USE語句 程序包(Package)說明用來羅列VHDL中用到的信號定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義。它是一個可編譯的設(shè)計(jì)單元,也是庫結(jié)構(gòu)中的一個層次,使用包時可以用USE語句說明。 例如: USE IEEE.STD_LOGIC_1164.ALL 該語句表示在VHDL程序中要使用名為STD_LOGIC_1164的程序包中的所有定義或說明項(xiàng)。back程序包分為程序包標(biāo)題(包頭)和程序包體(包體),包結(jié)構(gòu)的格程序包分為程序包標(biāo)題(包頭)和程序包體(包體),包結(jié)構(gòu)的格式如下所示:式如下所示:PACKAGE PACKAGE 程序包名程序包名 IS

48、IS 說明語句說明語句 ; 程序包標(biāo)題程序包標(biāo)題END END 程序包名;程序包名;PACKAGE BODYPACKAGE BODY 程序包名程序包名 ISIS 說明語句說明語句 程序包體程序包體ENDEND 程序包名;程序包名;程序包體是可選項(xiàng),也就是說,一個程序包可以只有程序包標(biāo)題。一般程序包標(biāo)題列出所有項(xiàng)的名稱,而程序包體給出各項(xiàng)的細(xì)節(jié)。 backback(5) 庫語句庫語句 1)庫是經(jīng)編譯后的數(shù)據(jù)的集合,它存放包定義、實(shí)體定義、構(gòu)造定義和配置定義。 常用的庫是IEEE庫和STD庫。 2)庫的使用:在使用庫之前,一定要進(jìn)行庫說明和程序包說明,庫和程序包的說明總是放在設(shè)計(jì)單元的前面: 例如

49、:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL該例說明要使用IEEE庫中的1164包中所有項(xiàng)目。 back10.4.2 VHDL的數(shù)據(jù)對象類型及運(yùn)算操作符的數(shù)據(jù)對象類型及運(yùn)算操作符 數(shù)據(jù)對象是指VHDL語言中可以賦予一個值的對象,也稱為客體(Object)。一個對象只能有一種類型,施加于該對象的操作必須與其類型相匹配。VHDL中四類數(shù)據(jù)對象:CONSTANT(常量)、VARIABLE(變量)、SIGNAL(信號)、和FILE(文件), VHDL可以象其它高級語言一樣定義數(shù)據(jù)類型,還可以由用戶自己定義數(shù)據(jù)類型。 1VHDL中使用的數(shù)據(jù)對象類型中使用的數(shù)據(jù)對象類

50、型back(1) 常數(shù)常數(shù)常數(shù)是一個固定的值,常數(shù)的一般格式如下:常數(shù)是一個固定的值,常數(shù)的一般格式如下:CONSTANT 常數(shù)名:數(shù)據(jù)類型常數(shù)名:數(shù)據(jù)類型:=表達(dá)式表達(dá)式 例如:例如: CONSTANT Vcc: REAL:=5.0; CONSTANT DALY: TIME:=100ns;常數(shù)一旦被賦值就不能再改變。常數(shù)一旦被賦值就不能再改變。 back(2) 變量變量變量只能在進(jìn)程語句、函數(shù)語句和過程語句中使用,一旦賦值立變量只能在進(jìn)程語句、函數(shù)語句和過程語句中使用,一旦賦值立即生效。變量的一般格式如下:即生效。變量的一般格式如下:VARIABLEVARIABLE 變量名:數(shù)據(jù)類型變量名:

51、數(shù)據(jù)類型 約束條件:約束條件:= =表達(dá)式表達(dá)式例如:例如: VARIABLEVARIABLE x, y: INTEGER x, y: INTEGER; VARIABLEVARIABLE count: INTEGER RANGE 0 TO 255:=10 count: INTEGER RANGE 0 TO 255:=10;back(3) 信號信號信號是電子電路內(nèi)部硬件連接的抽象,它除了沒有數(shù)據(jù)流動的方向概念以外,其它性質(zhì)幾乎和端口概念一致。信號的一般格式如下: SIGNALSIGNAL 信號名:數(shù)據(jù)類型信號名:數(shù)據(jù)類型 約束條件:約束條件:= =表達(dá)式表達(dá)式例:例: SIGNAL sys_cl

52、k: BIT:=0SIGNAL sys_clk: BIT:=0; SIGNAL ground: BIT:=0SIGNAL ground: BIT:=0;在程序中,信號值代入其它信號時采用代入符”=”,而不是像變量賦值符“:=”,而且信號代入時可以附加延時。例如,如果s1和s2都是信號,且s2的值經(jīng)10ns延時以后才能被代入s1,此時信號傳送語句可寫為: s1=s2 AFTER 10nsback2VHDL中使用的標(biāo)準(zhǔn)數(shù)據(jù)類型中使用的標(biāo)準(zhǔn)數(shù)據(jù)類型 (1) (1) 整數(shù)(整數(shù)(INTEGERINTEGER)范圍:范圍:-2147483547-2147483646-2147483547-2147483

53、646(2) (2) 實(shí)數(shù)(實(shí)數(shù)(REALREAL)范圍:范圍:-1.0E38-1.0E38-1.0E38-1.0E38;書寫時一定要有小數(shù)。;書寫時一定要有小數(shù)。(3) (3) 位(位(BITBIT)在數(shù)字系統(tǒng)中,信號值經(jīng)常用位來表示,位的值用帶單引號的在數(shù)字系統(tǒng)中,信號值經(jīng)常用位來表示,位的值用帶單引號的00或或11來表示,位與整數(shù)中的來表示,位與整數(shù)中的0 0和和1 1不同,不同, 位位00和和11僅僅表示僅僅表示一個位的兩種取值,有時也可以用顯式說明,例如:一個位的兩種取值,有時也可以用顯式說明,例如:BITBIT(11)。)。(4) (4) 位矢量(位矢量(BIT_VECTORBIT

54、_VECTOR) 位矢量是用雙引號括起來的一組位數(shù)據(jù),例如:位矢量是用雙引號括起來的一組位數(shù)據(jù),例如:“010110”010110”。(5) (5) 布爾量(布爾量(BOOLEANBOOLEAN)布爾量只有布爾量只有“真真”和和“假假”兩種狀態(tài),可以進(jìn)行關(guān)系運(yùn)算。它和位不兩種狀態(tài),可以進(jìn)行關(guān)系運(yùn)算。它和位不同,布爾量沒有數(shù)值的含義,不能進(jìn)行算術(shù)運(yùn)算。同,布爾量沒有數(shù)值的含義,不能進(jìn)行算術(shù)運(yùn)算。back(6) (6) 字符(字符(CHARACTERCHARACTER)字符量通常用單引號括起來,一般情況下字符量通常用單引號括起來,一般情況下VHDLVHDL對大小寫敏感,但是對字符量對大小寫敏感,但

55、是對字符量中的大、小寫字符則認(rèn)為是不一樣的,例如中的大、小寫字符則認(rèn)為是不一樣的,例如AA不同于不同于aa。當(dāng)要明確說明當(dāng)要明確說明1 1是字符時,則可寫為:是字符時,則可寫為:CHARACTERCHARACTER(11)(7) (7) 字符串(字符串(STRINGSTRING) 字符串是雙引號括起來的一串字符,也稱為字符矢量或字符串?dāng)?shù)組,例如:字符串是雙引號括起來的一串字符,也稱為字符矢量或字符串?dāng)?shù)組,例如:“Chongqing university”Chongqing university”。(8) (8) 時間(時間(TIMETIME)時間是一個物理量數(shù)據(jù),完整的時間量數(shù)據(jù)應(yīng)當(dāng)包含整數(shù)和

56、單位兩部分,而時間是一個物理量數(shù)據(jù),完整的時間量數(shù)據(jù)應(yīng)當(dāng)包含整數(shù)和單位兩部分,而且整數(shù)數(shù)值和單位之間至少應(yīng)留一個空格的位置。且整數(shù)數(shù)值和單位之間至少應(yīng)留一個空格的位置。時間的單位是時間的單位是 fsfs,psps,nsns,usus,msms,secsec, minmin,hrhr;例如,;例如,10 ns10 ns,2 sec2 sec(9) (9) 錯誤等級(錯誤等級(SEVERITY LEVELSEVERITY LEVEL)用來表示系統(tǒng)的狀態(tài),它共有用來表示系統(tǒng)的狀態(tài),它共有4 4種:種:NOTENOTE(注意),(注意),WARNINGWARNING(警告),(警告),ERRORERR

57、OR(錯誤),(錯誤),F(xiàn)AILUREFAILURE(失?。?。(失敗)。(10) (10) 大于等于零的整數(shù)大于等于零的整數(shù)(NATURAL)(NATURAL)、正整數(shù)(、正整數(shù)(POSITIVEPOSITIVE)在在VHDLVHDL語言中,有上述語言中,有上述1010種標(biāo)準(zhǔn)數(shù)據(jù)類型,但在邏輯電路設(shè)計(jì)中,只用到兩種標(biāo)準(zhǔn)數(shù)據(jù)類型,但在邏輯電路設(shè)計(jì)中,只用到兩種:種:BITBIT和和BIT_VECTORBIT_VECTOR。backVHDLVHDL的數(shù)據(jù)類型除了上述的數(shù)據(jù)類型除了上述1010種標(biāo)準(zhǔn)數(shù)據(jù)類型以外,還可以使種標(biāo)準(zhǔn)數(shù)據(jù)類型以外,還可以使用由用戶自己定義的數(shù)據(jù)類型。用戶定義的數(shù)據(jù)類型的一般

58、用由用戶自己定義的數(shù)據(jù)類型。用戶定義的數(shù)據(jù)類型的一般格式:格式:TYPETYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 ,數(shù)據(jù)類型名,數(shù)據(jù)類型名 數(shù)據(jù)類型定義;數(shù)據(jù)類型定義;不完整的數(shù)據(jù)類型格式:不完整的數(shù)據(jù)類型格式:TYPE TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 ,數(shù)據(jù)類型名,數(shù)據(jù)類型名 ;例如:例如:TYPE week IS(Sun,Mon,Tue,wed,Thu,Fri,Sat)TYPE week IS(Sun,Mon,Tue,wed,Thu,Fri,Sat);TYPE digit IS INTEGER RANGE 0 TO 9TYPE digit IS INTEGER RANGE 0 TO 9;TYPE c

59、urrent IS REAL RANGE -1E4 TO 1E4 TYPE current IS REAL RANGE -1E4 TO 1E4 ;back3 VHDL語言的運(yùn)算操作符語言的運(yùn)算操作符 被操作符操作的對象是操作數(shù),且操作數(shù)的類型應(yīng)該和操作符所要求的類型一致,另外,運(yùn)算操作符是有優(yōu)先級的,例如邏輯運(yùn)算NOT,在所有操作符中其優(yōu)先級是最高的。 在在VHDL語言中一共有語言中一共有4類操作符,可以分別進(jìn)行邏輯運(yùn)算類操作符,可以分別進(jìn)行邏輯運(yùn)算(Logical)、關(guān)系運(yùn)算()、關(guān)系運(yùn)算(Relational)、算術(shù)運(yùn)算)、算術(shù)運(yùn)算(Arithmetic)和并置()和并置(Concaten

60、ation)運(yùn)算。)運(yùn)算。 back表表10.4.2 操作符列表操作符列表類型類型操作符操作符說明說明類型類型操作符操作符說明說明邏輯運(yùn)算符邏輯運(yùn)算符AND與與算術(shù)運(yùn)算符算術(shù)運(yùn)算符+加加OR或或-減減NOT非非*乘乘NAND與非與非/除除NOR或非或非MOD取模取模XOR異或異或REM取余取余關(guān)系運(yùn)算符關(guān)系運(yùn)算符=相等相等*指數(shù)指數(shù)/=不相等不相等ABS取絕對值取絕對值大于大于-負(fù)負(fù)=大于等于大于等于SRLSRL邏輯右移邏輯右移并置運(yùn)算符并置運(yùn)算符&并置并置SLASLA算術(shù)左移算術(shù)左移SRASRA算術(shù)右移算術(shù)右移ROLROL邏輯循環(huán)左移邏輯循環(huán)左移RORROR邏輯循環(huán)右移邏輯循環(huán)右移back最

溫馨提示

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

最新文檔

評論

0/150

提交評論