fpgacpld講義及試驗(yàn)指導(dǎo)(清華大學(xué)電子系)_第1頁(yè)
fpgacpld講義及試驗(yàn)指導(dǎo)(清華大學(xué)電子系)_第2頁(yè)
fpgacpld講義及試驗(yàn)指導(dǎo)(清華大學(xué)電子系)_第3頁(yè)
fpgacpld講義及試驗(yàn)指導(dǎo)(清華大學(xué)電子系)_第4頁(yè)
fpgacpld講義及試驗(yàn)指導(dǎo)(清華大學(xué)電子系)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、可編程邏輯器件與應(yīng)用專題講義附實(shí)驗(yàn)指導(dǎo)書清華大學(xué)電子工程系第一章 緒論§1.1 可編程ASIC綜述為特定的產(chǎn)品或應(yīng)用而設(shè)計(jì)的芯片被稱為專用集成電路ASIC(Application Specific Integrated Circuits),除了全定制的專用集成電路外,目前有五種半定制的元件,可實(shí)現(xiàn)ASIC的要求,它們是:*可編程邏輯器件(PLD)*復(fù)雜可編程邏輯器件(CPLD)*現(xiàn)場(chǎng)可編程門陣列(FPGA)*門陣列(Gate Array)*標(biāo)準(zhǔn)單元(Standard Cell)在這些器件中,尤其是前三種器件的出現(xiàn),使得電子系統(tǒng)的設(shè)計(jì)工程師利用相應(yīng)的EDA軟件,在辦公室或?qū)嶒?yàn)室里就可以

2、設(shè)計(jì)自己的ASIC器件,其中近幾年發(fā)展起來(lái)的CPLD和FPGA格外引人注目。這三種器件都具有用戶可編程性,能實(shí)現(xiàn)用戶需要的各種專門用途,因此被稱作可編程專用集成電路。半導(dǎo)體制造廠家可按照通用器件的規(guī)格大批量生產(chǎn)這種集成電路,作為一種通用集成電路,用戶可以從市場(chǎng)上選購(gòu),再通過(guò)設(shè)計(jì)軟件編程實(shí)現(xiàn)ASIC的要求。由于這種方式對(duì)廠家和用戶都帶來(lái)了好處而受到歡迎,因此發(fā)展特別迅速,已經(jīng)成為實(shí)現(xiàn)ASIC的一種重要手段。隨著半導(dǎo)體技術(shù)的迅速發(fā)展,從八十年代開始,構(gòu)造許多電子系統(tǒng)僅僅需要三種標(biāo)準(zhǔn)電路:微處理器,存儲(chǔ)器和可編程ASIC。電子系統(tǒng)設(shè)計(jì)的這場(chǎng)革命是從70年代開始的,當(dāng)時(shí)存儲(chǔ)器已經(jīng)作為標(biāo)準(zhǔn)產(chǎn)品進(jìn)入市場(chǎng),

3、而80年代的微處理器也成為一種標(biāo)準(zhǔn)產(chǎn)品。值得注意的是,微處理器和存儲(chǔ)器作為電子系統(tǒng)的兩個(gè)主要模塊,一直都是可編程的。但是組成電子系統(tǒng)的各種控制邏輯仍然需要大量的中小規(guī)模通用器件。直到近十年來(lái),隨著可編程邏輯器件的出現(xiàn),才給電子系統(tǒng)的控制邏輯提供了可編程的靈活性。而可編程門陣列作為一種高密度,通用的可編程邏輯器件與它的開發(fā)系統(tǒng)一起為更多的電子系統(tǒng)邏輯設(shè)計(jì)確定了一種新的工業(yè)標(biāo)準(zhǔn)。越來(lái)越多的電子系統(tǒng)設(shè)計(jì)工程師用CPLD或FPGA作為電子系統(tǒng)設(shè)計(jì)的第三個(gè)模塊來(lái)實(shí)現(xiàn)一個(gè)電子系統(tǒng)。CMOS半導(dǎo)體技術(shù)的不斷發(fā)展推動(dòng)了電子系統(tǒng)邏輯設(shè)計(jì)的這一變革。人們歷來(lái)認(rèn)為CMOS速度太慢,不能滿足高性能系統(tǒng)設(shè)計(jì)的需要,很多

4、設(shè)計(jì)只能用一次可編程(OTP)的雙極型可編程邏輯器件(PLD)來(lái)完成。而現(xiàn)在許多CMOS的可編程邏輯器件實(shí)際上已達(dá)到或超過(guò)雙極型的性能,同時(shí)還具有低功耗、可編程和高集成度等吸引人的優(yōu)點(diǎn)。目前可編程ASIC正朝著為設(shè)計(jì)者提供系統(tǒng)內(nèi)可再編程(或可再配置)的能力方向發(fā)展,即可編程ASIC器件不僅要具有可編程和可再編程能力,而且只要把器件插在系統(tǒng)內(nèi)或電路板上,就能對(duì)其進(jìn)行編程或再編程,這就為設(shè)計(jì)者進(jìn)行電子系統(tǒng)的設(shè)計(jì)和開發(fā)提供了最新的實(shí)現(xiàn)手段,而在以前這是不可想象的。采用系統(tǒng)內(nèi)可再編程(ISP)技術(shù),使得系統(tǒng)內(nèi)硬件的功能可以像軟件一樣被編程來(lái)配置,從而可以實(shí)時(shí)地進(jìn)行靈活和方便的更改和開發(fā)。這種稱為“軟”

5、硬件的全新設(shè)計(jì)概念,使得新一代電子系統(tǒng)只有極強(qiáng)的靈活性和適應(yīng)性,它不僅使電子系統(tǒng)的設(shè)計(jì)和產(chǎn)品性能的改進(jìn)、擴(kuò)充變得十分簡(jiǎn)易和方便,而且使電子系統(tǒng)只有多功能性的適應(yīng)能力,從而可以為許多復(fù)雜的信號(hào)處理技術(shù)提供新的思路和方法。隨著可編程器件規(guī)模的增加,使器件變得越來(lái)越復(fù)雜,對(duì)器件作全面徹底測(cè)試的要求也就越來(lái)越高,而且越來(lái)越重要。表面安裝的封裝和電路板制造技術(shù)的進(jìn)步,使得電路板變小變密,這樣一來(lái),傳統(tǒng)的測(cè)試方法,例如外探針測(cè)試法和“釘床”測(cè)試夾具法都難于實(shí)現(xiàn)。結(jié)果由于電路板簡(jiǎn)化所節(jié)約的成本,很可能被傳統(tǒng)測(cè)試方法代價(jià)的提高而抵消掉。20世紀(jì)80年代聯(lián)合測(cè)試行動(dòng)組JTAG(Joint Test Action

6、 Group)開發(fā)了IEEE1149.1-1990邊界掃描測(cè)試技術(shù)規(guī)范。這個(gè)邊界掃描測(cè)試(BST)結(jié)構(gòu)提供了有效地測(cè)試引線間隔致密的電路板上零部件的能力。你可以使用BST結(jié)構(gòu)測(cè)試引腳連接而不必使用物理測(cè)試探針,而且可以在器件正常工作時(shí)捕獲功能數(shù)據(jù)。器件的邊界掃描單元能夠迫使邏輯追蹤引腳信號(hào),或是從引腳或器件核心邏輯信號(hào)中捕獲數(shù)據(jù)。強(qiáng)行加入的測(cè)試數(shù)據(jù)串行移入邊界掃描單元,捕獲的數(shù)據(jù)串行移出并在器件外部同預(yù)期的結(jié)果進(jìn)行比較。JTAG標(biāo)準(zhǔn)提供了板級(jí)和芯片級(jí)的測(cè)試。通過(guò)定義輸入輸出引腳、邏輯控制函數(shù)和指令,所有JTAG的測(cè)試功能部?jī)H需一個(gè)四線或五線的接口及相應(yīng)的軟件即能完成。圖1-1舉例說(shuō)明了邊界掃描

7、測(cè)試法的概念。圖1-1 JTAG邊界掃描測(cè)試法可編程邏輯器件規(guī)模的不斷發(fā)展,使其可以實(shí)現(xiàn)電子系統(tǒng)的高度集成,為了快速準(zhǔn)確地設(shè)計(jì)復(fù)雜的電子系統(tǒng),必須采用計(jì)算機(jī)自頂向下的設(shè)計(jì)和綜合工具。綜合工具一般包括從原理圖和高層描述工具、邏輯仿真器,到底層綜合工具的一系列軟件包。底層的綜合工具對(duì)設(shè)計(jì)進(jìn)行邏輯描述,并執(zhí)行邏輯優(yōu)化、器件映射、布局布線的網(wǎng)表優(yōu)化,從而產(chǎn)生最終的設(shè)計(jì)結(jié)果。對(duì)于簡(jiǎn)單的設(shè)計(jì),采用原始圖輸入或布爾方程輸入是比較合適的。但對(duì)于復(fù)雜系統(tǒng)的設(shè)計(jì),這兩種輸入方法變得繁瑣而復(fù)雜并容易產(chǎn)生錯(cuò)誤,而必須考慮高層次的設(shè)計(jì)輸入方法。因此很多綜合工具支持硬件描述語(yǔ)言(HDL),寄存器轉(zhuǎn)換語(yǔ)言(RTL)或有限狀

8、態(tài)機(jī)(FSM)。高層綜合工具可以采用高層的行為描述,如VHDL或編程語(yǔ)言。行為描述語(yǔ)言不需要說(shuō)明一個(gè)設(shè)計(jì)具體采用何種方式實(shí)現(xiàn)。高層綜合包括選擇特定的結(jié)構(gòu)模板,然后執(zhí)行資源分配,寄存器分配和定時(shí)。所以在高層設(shè)計(jì)期間,設(shè)計(jì)者基本是在速度和資源之間所取舍。例如,相同的行為設(shè)計(jì),當(dāng)速度要求不高時(shí),可以采用完全的流水線方式的邏輯設(shè)計(jì)來(lái)實(shí)現(xiàn)。從一個(gè)滿意的行為描述開始的設(shè)計(jì),使設(shè)計(jì)者能夠有更廣泛的選擇余地,來(lái)找出哪一個(gè)最適合特定的實(shí)現(xiàn)環(huán)境。高層設(shè)計(jì)方法的另一個(gè)主要優(yōu)點(diǎn)是更容易理解和維護(hù)。目前,電子設(shè)計(jì)自動(dòng)化軟件不再是簡(jiǎn)單的CAD或CAT,已經(jīng)發(fā)展到“電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EDA)”,軟件平臺(tái)也已從小型機(jī)覆蓋到

9、工作站到高性能微機(jī),一般都包含了符合IEEE-1076標(biāo)準(zhǔn)的VHDL高層綜合工具,這些都為可編程ASIC的設(shè)計(jì)帶來(lái)了極大的方便。特別對(duì)于中小規(guī)模系統(tǒng)的集成,可編程邏輯器件成為首選的方案。這也是可編程邏輯器件得到廣泛應(yīng)用的原因之一。§1.2 可編程邏輯器件的分類可編程邏輯器件包括一個(gè)未配置的邏輯單元陣列,此陣列可以編程實(shí)現(xiàn)所需的邏輯功能,并通過(guò)可編程互連接到所要求的輸入、輸出。這些邏輯單元可以是門、反相器、觸發(fā)器或較大的宏單元,并且有它自身的可編程局部互連系統(tǒng)??删幊袒ミB是由可編程的開關(guān)陣列和連接邏輯單元的固定信號(hào)線組成。可編程邏輯器件有許多不同的分類方法,下面主要介紹四種:1.2.1

10、 從互連特性上分類從互連特性上,可編程邏輯器件結(jié)構(gòu)可以分為確定型和統(tǒng)計(jì)型兩大類。確定型的PLD包括PROM、PLA、PAL、FPLA、GAL、EPLD和EEPLD。它們所提供的互連結(jié)構(gòu)每次都用相同的互連線實(shí)現(xiàn)布線。所以這類可編程邏輯器件的延時(shí)特性常??梢詮臄?shù)據(jù)手冊(cè)上直接查到,而不需通過(guò)設(shè)計(jì)軟件來(lái)確定。統(tǒng)計(jì)型的器件主要是現(xiàn)場(chǎng)可編程門陣列(FPGA)。FPGA的設(shè)計(jì)軟件每次完成相同的功能卻給出不同的布線結(jié)果,所以稱為統(tǒng)計(jì)型的結(jié)構(gòu)。因此在電路設(shè)計(jì)時(shí)必須允許設(shè)計(jì)者限制功能中關(guān)鍵路徑的時(shí)序變化,確保它們不超出系統(tǒng)的技術(shù)要求。1.2.2 從可編程特性上分類:目前為用戶提供的編程手段主要有四種:*一次編程熔

11、絲或逆熔絲;*EPROM結(jié)構(gòu),即紫外線擦除電報(bào)編程存儲(chǔ)單元(UVEPROM)采用紫外線互補(bǔ)金屬氧化半導(dǎo)體(UVCMOS);*電擦除和再編程存儲(chǔ)單元。一類是EEPROM,為電擦除式互補(bǔ)金屬氧化半導(dǎo)體(EECMOS);另一類是結(jié)構(gòu)與UVEPROM類似,但采用電擦除的閃速存儲(chǔ)單元(FLASH MEMORY);*基于靜態(tài)存儲(chǔ)器(SRAM)的編程結(jié)構(gòu)。所以根據(jù)編程能力可以將它們分為兩大類,一類是不可以再編程的,確定型的PAL和統(tǒng)計(jì)型采用逆熔絲的FPGA都是不可再編程的;另一類是可再編程的,確定型的GAL和統(tǒng)計(jì)型的采用SRAM的FPGA 屬于此類。1.2.3 從器件容量上分類由于可編程邏輯器件本身結(jié)構(gòu)上和

12、半導(dǎo)體生產(chǎn)工藝的不斷改進(jìn)和提高,器件的密度不斷增加,性能亦不斷提高,目前可編程邏輯器件的容量已達(dá)到百萬(wàn)門以上。從容量上對(duì)可編程邏輯器件的分類是將復(fù)雜的可編程邏輯器件(CPLD)和現(xiàn)場(chǎng)可編程門陣列(FPGA)統(tǒng)稱為高容量可編程邏輯器件(HCPLD)。1.2.4 從結(jié)構(gòu)的復(fù)雜程度上分類從結(jié)構(gòu)上對(duì)可編程邏輯進(jìn)行分類是最常用的方法,而且各類可編程邏輯器件的開發(fā)系統(tǒng)都是針對(duì)其結(jié)構(gòu)來(lái)設(shè)計(jì)的,了解和掌握可編程邏輯器件的結(jié)構(gòu)對(duì)合理、有效地選用開發(fā)軟件來(lái)設(shè)計(jì)可編程邏輯器件就很重要。從結(jié)構(gòu)上可將可編程邏輯器件分為以下三類:*簡(jiǎn)單可編程邏輯器件(PLD);*復(fù)雜可編程邏輯器件(CPLD);*可編程門陣列(FPGA)

13、。第二章 可編程邏輯器件的結(jié)構(gòu)和特點(diǎn)§2.1 概述可編程邏輯器件(PLD)是一個(gè)邏輯電路,可由用戶編程來(lái)實(shí)現(xiàn)特定的邏輯功能。許多PLD器件的功能已經(jīng)或多或少變成工業(yè)標(biāo)準(zhǔn),即可以像標(biāo)準(zhǔn)74系列中小規(guī)模器件那樣。設(shè)計(jì)人員可以按照產(chǎn)品手冊(cè),根據(jù)速度、功耗、成本進(jìn)行選擇,并能從不同的廠家購(gòu)買到。而且,PLD器件還提供了標(biāo)準(zhǔn)74系列器件無(wú)法提供的可編程功能,用戶可以將一些中小規(guī)模器件的功能集成到一個(gè)或幾個(gè)PLD中,極大的簡(jiǎn)化了印制板的設(shè)計(jì),因此PLD成為最早實(shí)現(xiàn)可編程ASIC的器件。§2.2 PLD的結(jié)構(gòu)PLD的主要部分由兩個(gè)邏輯陣列構(gòu)成,一個(gè)與陣和一個(gè)或陣。輸入到PLD的信號(hào)首先通

14、過(guò)與陣,形成輸入信號(hào)的組合,每組與項(xiàng)稱為布爾代數(shù)的最小項(xiàng)或乘積項(xiàng),這些乘積項(xiàng)在或陣中進(jìn)行邏輯或后由輸出宏單元輸出。輸入信號(hào)的反碼由輸入緩沖器產(chǎn)生,PLD的布線由陣列實(shí)現(xiàn),所以只要邏輯功能能夠放進(jìn)PLD器件,布線就能夠成功。圖2-1是PLA的結(jié)構(gòu)示意圖PLD器件的與或陣列結(jié)構(gòu)可以有效地利用硅片的面積,對(duì)于邏輯設(shè)計(jì)也非常方便。因?yàn)槿魏尾紶柡瘮?shù)都可以表示為最小項(xiàng)的邏輯表達(dá)式,而這正是PLD器件的結(jié)構(gòu)?;谂c或陣的PLD有三種基本類型,由哪個(gè)陣列可編程來(lái)區(qū)分這三種器件:· 可編程只讀存儲(chǔ)器PROM:與陣固定,或陣可編程· 可編程陣列邏輯PAL,GAL:與陣可編程,或陣固定·

15、; 可編程邏輯陣列PLA:與陣、或陣都可編程圖2-1是PLA的結(jié)構(gòu)示意圖,圖中的×表示可編程的熔絲連接。PROM、PAL等的結(jié)構(gòu)和PLA基本相同,只是可編程的陣列不同,不同的具體型號(hào)的輸出結(jié)構(gòu)和輸出電平也略有區(qū)別,有的器件具有三態(tài)輸出、寄存器輸出、反饋輸入特性,進(jìn)一步增強(qiáng)了器件的功能。下表列出了PAL器件的編號(hào)方法,具體特性請(qǐng)參考器件手冊(cè)或相關(guān)資料。表21 常用PAL器件編號(hào)方法結(jié)構(gòu)代碼含義器件編號(hào)HLPRV高電平輸出有效低電平輸出有效輸出電平可編程帶寄存器輸出單元乘積項(xiàng)數(shù)目不同或宏單元輸出PAL10H8PAL16L8PAL16P8PAL16R8PAL20V8例如,編號(hào)PAL16H8

16、的PAL器件表示有最多可以有16個(gè)輸入端,8個(gè)輸出端,輸入輸出端口可組合編程,輸出高電平有效。§2.3 CPLD的結(jié)構(gòu)PLD器件的共同缺點(diǎn)是邏輯陣列規(guī)模小,每個(gè)器件僅相當(dāng)于幾十個(gè)等效門,不適用于較復(fù)雜的邏輯電路的設(shè)計(jì),并且也不能完全杜絕編程數(shù)據(jù)的非法抄襲。隨著集成電路工藝的發(fā)展,PLD的規(guī)模越來(lái)越大,已經(jīng)發(fā)展到百萬(wàn)門級(jí)的復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Device)系列,其中可擦除的CPLD有稱為EPLD(Erasable PLD)。表2-2 ALTERA CPLD主要產(chǎn)品制造技術(shù)EEPROMEEPROMSRAMEEPROMSRAM系

17、列MAX5000MAX7000FLEX8000MAX9000FLEX10K等效門60-375060-5K2.5K-16K6K-12K10K-100K速度(MHz)125MHz178.6MHz125MHz125MHz70MHz最大傳輸延遲tpd(max)10nS5.0nS8nS8nS邏輯單元GLB16-19232-256208-1296320-560576-4992緩存器數(shù)16-19232-256208-1500484-772720-53920引腳數(shù)8416484-208168-216150-406CPLD的發(fā)展十分快速,各半導(dǎo)體廠都有CPLD產(chǎn)品投入研發(fā),如ALTERA、ATMEL、CYPRE

18、SS、LATTICE及XILINX等。表2-1及表2-2列出了ALTERA及ATMEL生產(chǎn)的CPLD主要規(guī)格,若要詳細(xì)了解則可到各家廠商的網(wǎng)站查閱,網(wǎng)址如下:ALTERA:ATMEL:CYPRESS:LATTICE:XILINX:表2-3 ATMEL CPLD主要產(chǎn)品制造技術(shù)FlashFlashSRAMSRAMSRAM產(chǎn)品系列ATF220V10CCAT6010AT6005AT6003AT6002等效門數(shù)10K5K3K2K速度(MHz)250MHz250MHz250MHz250MHz最大傳輸延遲tpd(max)1.2nS1.2nS1.2nS1.2nS邏輯單元GLB1064003136160010

19、24緩存器數(shù)106400313616001024I/O數(shù)2020410812096CPLD不但提高了器件的密度,還改進(jìn)了陣列宏單元的結(jié)構(gòu)及I/O的控制結(jié)構(gòu)。由于CPLD的I/O引腳數(shù)量和D觸發(fā)器數(shù)量大大增加,如果只采用一個(gè)與陣列,那么陣列的規(guī)模會(huì)急劇增大。而實(shí)際的設(shè)計(jì)中每個(gè)與門的輸入端常常不是很多,因此與門的利用率較低。此外,龐大的陣列還會(huì)增加電路的傳輸延遲,降低工作頻率。為克服上述缺點(diǎn),CPLD采用分區(qū)的陣列結(jié)構(gòu),把整個(gè)器件分成若干個(gè)區(qū),每個(gè)區(qū)都包括若干I/O端口,輸入端和較小的與或陣列及宏單元,相當(dāng)于一個(gè)小規(guī)模的PLD;有的區(qū)只完成某些特定的邏輯功能。各區(qū)之間通過(guò)可編程的全局互連總線連接,

20、同一模塊的電路一般安排在同一個(gè)區(qū)內(nèi),因此只有少部分輸入和輸出使用全局互連總線,從而大大降低了邏輯陣列的規(guī)模,減小了電路傳輸延遲時(shí)間。由于工藝和生成廠家的不同,不同的CPLD的分區(qū)結(jié)構(gòu)有較大的差別,這里我們介紹ALTERA公司的靈活邏輯單元陣列結(jié)構(gòu)(FLEX),如圖2-2所示。它主要由嵌入式陣列塊EAB(Embedded Array Block)、邏輯陣列塊LAB(Logic Array Block)、邏輯單元LE(Logic Element)、I/O單元IOC(I/O Element)和快速互連通道構(gòu)成。圖2-2Altera公司FLEX10K系列的FLEX結(jié)構(gòu)圖邏輯單元LE是FLEX結(jié)構(gòu)中最小

21、的邏輯單元,每個(gè)LE含有一個(gè)提供4輸入組合邏輯函數(shù)的查找表(LUTLook Up Table),能夠快速產(chǎn)生4輸入變量的任意邏輯函數(shù)輸出。LE還有一個(gè)帶同步使能的可編程寄存器和一個(gè)進(jìn)位鏈、一個(gè)級(jí)聯(lián)鏈,如圖2-3所示。圖2-3 Altera公司FLEX10K系列CPLD的LE結(jié)構(gòu)圖LE中的可編程寄存器可以設(shè)置成D、T、JK或RS觸發(fā)器,該寄存器的時(shí)鐘、置位和復(fù)位端可由全局復(fù)位、LAB控制信號(hào)LABCTRL14驅(qū)動(dòng)。如果需要LE實(shí)現(xiàn)組合邏輯功能,可以將該寄存器旁路。LE產(chǎn)生兩個(gè)輸出,其中一個(gè)連接到快速互連通道,另一個(gè)連接到LAB的局部互連通道。這兩個(gè)輸出可以獨(dú)立控制。每8個(gè)LE組成一組,構(gòu)成一個(gè)邏

22、輯陣列塊LAB。每個(gè)LAB是獨(dú)立的模塊,LAB中的LE有共同的輸入、互連和控制信號(hào)。同一模塊的邏輯電路一般安排在同一個(gè)LAB內(nèi)。嵌入陣列塊EAB由RAM/ROM和相關(guān)的輸入、輸出寄存器構(gòu)成,它可以實(shí)現(xiàn)大容量的片內(nèi)存儲(chǔ)器,也可以編程作為復(fù)雜邏輯功能查找表,實(shí)現(xiàn)乘法器、微控制器、狀態(tài)機(jī)等復(fù)雜的邏輯功能。在FLEX結(jié)構(gòu)中,LAB、EAB排出行和列,構(gòu)成二維邏輯陣列,內(nèi)部信號(hào)的互連是通過(guò)行、列快速互連通道和LAB、EAB內(nèi)部的局部互連通道實(shí)現(xiàn)的。第三章 CPLD實(shí)驗(yàn)系統(tǒng)§3.1 CPLD實(shí)驗(yàn)系統(tǒng)簡(jiǎn)介本實(shí)驗(yàn)系統(tǒng)由CPLD下載板、I/O實(shí)驗(yàn)板、RS-232接口電路與電源等四部分構(gòu)成,如圖3-1所

23、示。圖3-1 CPLD實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)圖I/O實(shí)驗(yàn)板是供基礎(chǔ)實(shí)驗(yàn)用,板上有簡(jiǎn)單的輸入輸出器件,包括LED、七段顯示器、米字型顯示器、5×7點(diǎn)矩陣顯示器、DIP開關(guān)、按鍵及振蕩器、脈沖信號(hào)等,足以進(jìn)行所有的基礎(chǔ)實(shí)驗(yàn)。 圖3-2 I/O實(shí)驗(yàn)板本課程使用的CPLD下載板主要由一片Altera公司的FLEX10K10、單片機(jī)、RAM、ROM和RS-232接口組成。CPLD下載板通過(guò)3個(gè)40PIN的接插件和I/O板相連。通過(guò)更換不同類型CPLD下載板和I/O實(shí)驗(yàn)板可以滿足各種實(shí)驗(yàn)要求。圖3-2是CPLD下載板的實(shí)物圖。圖3-2 CPLD下載板的實(shí)物圖電路設(shè)計(jì)完成后,由計(jì)算機(jī)通過(guò)RS-232串行口把

24、數(shù)據(jù)傳送到CPLD下載板,再由板上的單片機(jī)把數(shù)據(jù)下載到CPLD內(nèi),完成CPLD的配置工作。I/O實(shí)驗(yàn)板上的輸入輸出器件和CPLD下載板上的CPLD芯片具有一定的連接關(guān)系,可以參考表3-1。I/O實(shí)驗(yàn)板上的輸入輸出器件都有一個(gè)以P開頭的編號(hào),例如第一個(gè)輸入指示LED是P01,從表中可以看出它和CPLD的第3腳相連。表3-1 I/O板和CPLD芯片的連接關(guān)系IO板P01P02P03P04P06P07P08P09CPLD引腳0305060708091011IO板P13P14P15P16P18P19P20P21CPLD引腳1617181921222324IO板P22P23P24P25P27P28P29

25、P30CPLD引腳2527282930353637IO板P34P35P36P37P39P40P41P42CPLD引腳3839474849505152IO板P43P44P45P46P48P49P50P51CPLD引腳2527282930353637IO板P55P56P57P58P60P61P62P63CPLD引腳5354585960616264IO板P64P65P66P67P69P70P71P72CPLD引腳6566676970717273IO板P76P77P78P79P81P82P83P84CPLD引腳78798081448483IO板I12I31I54I73CPLD引腳124342§

26、;3.2 I/O實(shí)驗(yàn)板I/O實(shí)驗(yàn)板包括LED、七段顯示器、米字型顯示器、5×7點(diǎn)矩陣顯示器、DIP開關(guān)、按鍵及振蕩器、脈沖信號(hào)等輸入輸出器件,下面分別介紹。3.2.1 DIP輸入開關(guān)DIP輸入開關(guān)位于實(shí)驗(yàn)板的右下角,共3組24個(gè)輸入開關(guān),它們和CPLD的連接關(guān)系如表3-2所示。DIP開關(guān)向下時(shí)相應(yīng)CPLD引腳接“0”,反之接“1”。和DIP開關(guān)S1、S2并聯(lián)的還有16個(gè)LED(D1D16)可以這些DIP開關(guān)的狀態(tài)。 圖3-3 DIP輸入開關(guān)配置圖表3-2 CPLD引腳與DIP輸入開關(guān)的對(duì)應(yīng)關(guān)系代 號(hào)S1-1S1-2S1-3S1-4S1-5S1-6S1-7S1-8CPLD引腳03050

27、60708091011代 號(hào)S2-1S2-2S2-3S2-4S2-5S2-6S2-7S2-8CPLD引腳3839474849505152代 號(hào)S3-1S3-2S3-3S3-4S3-5S3-6S3-7S3-8CPLD引腳25272829303536373.2.2 輸出指示LED 16個(gè)輸出指示LED位于實(shí)驗(yàn)板的右上角,它們和CPLD的連接關(guān)系如表3-3所示。這些LED完全用來(lái)指示CPLD引腳的輸出電平,并且是通過(guò)CD40106緩沖驅(qū)動(dòng),幾乎不會(huì)有負(fù)載效應(yīng)。表3-3 CPLD引腳與輸出指示LED的對(duì)應(yīng)關(guān)系代 號(hào)P55P56P57P58P60P61P62P63CPLD引腳53545859606162

28、64代 號(hào)P64P65P66P67P69P70P71P72CPLD引腳65666769707172733.2.3 七段LED 顯示器實(shí)驗(yàn)板的左上角是6個(gè)七段LED 顯示器(DP1DP6),可以接成掃描方式或獨(dú)立顯示方式。本實(shí)驗(yàn)僅需要使用最左面的兩個(gè)七段LED 顯示器,并且工作在獨(dú)立顯示方式,它們和CPLD的連接關(guān)系如下表所示。表3-4 CPLD引腳與七段LED 顯示器的對(duì)應(yīng)關(guān)系代 號(hào)DA1DB1DC1DD1DE1DF1DG1DP1名稱DP1 七段顯示器CPLD引腳1617181921222324代 號(hào)DA2DB2DC2DD2DE2DF2DG2DP2名稱DP2 七段顯示器CPLD引腳252728

29、2930353637圖3-4 七段顯示器段位示意圖注:七段顯示器DP2不能和DIP輸入開關(guān)S3同時(shí)使用。3.2.4 脈沖信號(hào)發(fā)生器I/O實(shí)驗(yàn)板的正下方是四個(gè)按鈕式脈沖信號(hào)發(fā)生器(SWP1SWP4),其中SWP4不能用,它們和CPLD的連接關(guān)系如下表所示。SWP14在沒(méi)有按下時(shí)接“0”,按下時(shí)接“1”,四個(gè)按鈕都經(jīng)過(guò)了噪聲消除處理,每按一次產(chǎn)生一個(gè)高電平脈沖,非常適合作為計(jì)數(shù)器、緩沖器等調(diào)試時(shí)的時(shí)鐘輸入使用。表3-5 CPLD引腳與按鈕式脈沖信號(hào)發(fā)生器的對(duì)應(yīng)關(guān)系代 號(hào)SWP1SWP2SWP3SWP4CPLD引腳448483連續(xù)脈沖信號(hào)發(fā)生器由CD40106作RC振蕩器,分兩段產(chǎn)生低頻和高頻時(shí)鐘,

30、由半可調(diào)電位器F1、F2調(diào)整輸出頻率。其中F1的調(diào)整范圍是1KHz到1MHz,F(xiàn)2的調(diào)整范圍是1Hz到1KHz。F1輸出接到CPLD的第2腳,F(xiàn)2輸出接到CPLD的第42腳。3.2.5米字型顯示器、矩陣鍵盤、點(diǎn)陣顯示器本實(shí)驗(yàn)未使用,在此不作介紹。請(qǐng)參考相關(guān)的使用手冊(cè)。 第四章 VHDL簡(jiǎn)介§4.1 VHDL的特點(diǎn)隨著電子設(shè)計(jì)計(jì)術(shù)的高速發(fā)展,電路的復(fù)雜度越來(lái)越高,產(chǎn)品的更新速度越來(lái)越快,原理圖輸入的方法已經(jīng)不能滿足工業(yè)界對(duì)設(shè)計(jì)能力的要求。VHDL(Very High Speed Integrated Circuit Hardware Description Language)是美國(guó)國(guó)防

31、部1983年提出的一種硬件描述語(yǔ)言,它可以描述硬件的結(jié)構(gòu)和行為,通過(guò)采用EDA工具自動(dòng)綜合出電路結(jié)構(gòu),極大地提高了設(shè)計(jì)能力。VHDL設(shè)計(jì)方法有以下幾個(gè)優(yōu)點(diǎn):1 可以直接描述電路的行為,由EDA工具綜合出電路,設(shè)計(jì)速度快。2 工藝無(wú)關(guān)性。設(shè)計(jì)人員不必過(guò)多關(guān)心具體的工藝,由EDA工具自動(dòng)針對(duì)具體的工藝綜合出電路。同時(shí)設(shè)計(jì)具有非常高的可移植性,這是原理圖輸入法不可比擬的。3 設(shè)計(jì)文件可讀性好§4.2 VHDL的設(shè)計(jì)流程和原理圖輸入法不同,CPLD/FPGA的VHDL設(shè)計(jì)流程如下圖所示。圖4-1 CPLD/FPGA設(shè)計(jì)流程設(shè)計(jì)流程主要包括以下幾步:1 寫設(shè)計(jì)文件。按照自頂向下的方法將系統(tǒng)分解

32、為不同的模塊,采用行為描述或結(jié)構(gòu)描述的方法設(shè)計(jì)各個(gè)模塊。2 綜合、布局布線。由EDA工具根據(jù)具體的CPLD工藝,編譯設(shè)計(jì)文件,產(chǎn)生電路結(jié)構(gòu),并完成布局布線,最后產(chǎn)生可下載到CPLD的數(shù)據(jù)文件。3 仿真。在計(jì)算機(jī)上對(duì)EDA工具產(chǎn)生的電路進(jìn)行模擬,驗(yàn)證電路的功能、時(shí)序是否達(dá)到設(shè)計(jì)要求。4 下載到CPLD驗(yàn)證。仿真驗(yàn)證了設(shè)計(jì)的功能正確后,最后下載到CPLD芯片中,配合外圍電路驗(yàn)證整個(gè)系統(tǒng)的功能。§4.3 VHDL的基本語(yǔ)法VHDL語(yǔ)言是一種比較復(fù)雜的語(yǔ)言,它可以在不同的抽象層次描述一個(gè)電路,在這里僅介紹本實(shí)驗(yàn)所需要的最基本的語(yǔ)法。在CPLD設(shè)計(jì)中,RTL級(jí)(寄存器傳輸級(jí))模型是最常用的模型

33、,它描述數(shù)據(jù)在寄存器之間的流動(dòng)方式。4.3.1 VHDL程序的結(jié)構(gòu)LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY counter ISPORT(A,B,CLK: in std_logic;D: out std_logic);END;ARCHITECTURE behav OF counter ISSIGNALE: std_logic;BEGIN-E <= A and B;-PROCESS (CLK)BEGINIF CLKevent and CLK=1 THEN D <= E

34、;END IF;END PROCESS;END;圖4-2 一個(gè)VHDL程序圖4-2是一個(gè)基本的VHDL程序,它包括三個(gè)基本部分:1.庫(kù)定義。庫(kù)類似C語(yǔ)言的頭文件,在庫(kù)里定義了一些常用的數(shù)據(jù)類型、函數(shù)等,本實(shí)驗(yàn)課程使用如下的庫(kù)就足夠了:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;2實(shí)體定義。實(shí)體定義了電路的端口和輸入輸出信號(hào)的名稱、類型、寬度等,語(yǔ)法如下:ENTITY 電路名稱 ISPORT(信號(hào)1,信號(hào)2: in std_logic;信號(hào)3,信號(hào)4: in std_logic_vector(7

35、 downto 0); 信號(hào)5,信號(hào)6:out std_logic );END;其中in或out表示該信號(hào)是輸入還是輸出,本實(shí)驗(yàn)中信號(hào)的類型可以都使用std_logic類型,矢量型信號(hào)必須用(n downto m)的方式,例如上例中信號(hào)3是一個(gè)8位總線。3. 結(jié)構(gòu)體結(jié)構(gòu)體定義了電路的內(nèi)部結(jié)構(gòu),包括電路內(nèi)部的信號(hào),各個(gè)模塊的結(jié)構(gòu)描述和行為描述,語(yǔ)法如下:ARCHITECTURE 結(jié)構(gòu)名 OF 實(shí)體名 ISSIGNAL內(nèi)部信號(hào)1,2,3: std_logic;BEGIN 模塊1 模塊2END;其中結(jié)構(gòu)體名可以隨便起,一般命名為“behav”;內(nèi)部信號(hào)的定義方式和端口的定義方式一樣。圖4-2中有兩個(gè)

36、模塊,一個(gè)是結(jié)構(gòu)描述類型的與門,一個(gè)是行為描述類型的D觸發(fā)器。4.3.2 數(shù)據(jù)類型VHDL支持多種數(shù)據(jù)類型,本實(shí)驗(yàn)用到的常用類型有:19值邏輯std_logic。它把信號(hào)線上的電平描述成“1”,“0”,“X”,“U”,“Z”等,其中“X”,“U”表示不定值,“Z”表示高阻。2矢量類型std_logic_vector該矢量類型也是9值邏輯,使用時(shí)必須指定矢量的寬度,一般從高到低,例如:signal x: std_logic_vector(3 downto 0);表示x是一個(gè)四位總線,由x(3),x(2),x(1),x(0)構(gòu)成。3整型integer整型信號(hào)主要用作狀態(tài)信號(hào)、計(jì)數(shù)信號(hào)或數(shù)組的下標(biāo),

37、使用時(shí)必須指定數(shù)值范圍,例如:signal y: integer range 0 to 15;矢量信號(hào)可以通過(guò)轉(zhuǎn)換函數(shù)CONV_INTEGER轉(zhuǎn)換成整形,例如:y <= CONV_INTEGER(x);4. 自定義類型在使用RAM、ROM或寄存器堆時(shí)需要定義數(shù)組,語(yǔ)法如下:type instr is array (0 to 15)of std_logic_vector(7 downto 0);signal IRAM: instr; 上例首先定義了instr數(shù)據(jù)類型是一個(gè)8位的矢量數(shù)組,數(shù)組容量是16;然后用該數(shù)據(jù)類型定義了信號(hào)IRAM。因此IRAM信號(hào)實(shí)際上是一個(gè)容量為16的8位數(shù)組,可

38、以作為RAM、ROM或寄存器堆。4.3.3 數(shù)據(jù)操作1賦值(<=)相同數(shù)據(jù)類型的信號(hào)可以賦值,結(jié)構(gòu)體內(nèi)的賦值語(yǔ)句相當(dāng)于信號(hào)線的連接。例如:signal x: std_logic_vector(3 downto 0);signal y,z: std_logic;y <= x(3);x(3) <= x(2);y <= z;y <= 1;x <= “0010”;以上三句表示了這些信號(hào)線之間的連接關(guān)系。2邏輯操作(AND、OR、NOT、NAND、NOR、XOR、XNOR)邏輯操作可以描述信號(hào)的邏輯關(guān)系,例如:y <= not (x(1) nand x(2) o

39、r x(3); 3比較操作(、/=、 <、>、<=、>=)比較操作常用于條件賦值語(yǔ)句和條件分支語(yǔ)句,將在以后詳細(xì)介紹。其中/=表示“不等于”。4. 拼接操作(&)拼接操作可以把兩個(gè)信號(hào)拼接成一個(gè)新的矢量信號(hào),例如:x(3 downto 2) <= x(1) & x(0);4.3.4 并行賦值語(yǔ)句當(dāng)賦值語(yǔ)句直接出現(xiàn)在結(jié)構(gòu)體中時(shí)表示并行賦值語(yǔ)句,它直接表示了信號(hào)的連接關(guān)系或描述了一個(gè)電路模塊(組合邏輯電路)。所有的語(yǔ)句在仿真時(shí)都是并行執(zhí)行的。4.3.5 進(jìn)程語(yǔ)句進(jìn)程語(yǔ)句定義了一個(gè)電路模塊,進(jìn)程內(nèi)部是模塊的行為描述。語(yǔ)法如下:PROCESS (信號(hào)1,信

40、號(hào)2,)BEGIN行為描述語(yǔ)句;END PROCESS;其中PROCESS語(yǔ)句后的信號(hào)列表指進(jìn)程的敏感表,一般情況下把整個(gè)PROCESS用到的所有輸入信號(hào)都列到敏感表中,除非該進(jìn)程是一個(gè)邊沿觸發(fā)的進(jìn)程。和并行賦值語(yǔ)句不同,在進(jìn)程內(nèi)部的行為描述語(yǔ)句在仿真時(shí)都是順序執(zhí)行的。這里僅介紹賦值語(yǔ)句、條件分支語(yǔ)句、CASE語(yǔ)句,它們的語(yǔ)法如下:條件分支語(yǔ)句語(yǔ)法:If 條件 then語(yǔ)句;else語(yǔ)句;end if; If 條件 then語(yǔ)句;end if; If 條件1 then語(yǔ)句; elsif 條件2 then語(yǔ)句; else語(yǔ)句; end if;條件分支舉例:If LOAD = 0 thenQ &l

41、t;= Q+1;elseQ <= QLOAD; End if;CASE分支語(yǔ)句語(yǔ)法:Case 信號(hào) isWhen 值1 >語(yǔ)句;when 值2 | 值3 | =>語(yǔ)句;when others =>語(yǔ)句; End case;條件分支舉例:case OP iswhen “00” => Q <= Q+1;When “01” | “10” =>-OP為“01”或“10”Q <= QLOAD;When others =>Q <= “0000”; End case;4.3.6 注釋VHDL程序的注釋行以“-”為開始標(biāo)志,可以位于程序的任何位置。&

42、#167;4.4 VHDL的電路設(shè)計(jì)技術(shù)任何一個(gè)電路都可以分解為很多模塊的互連,這些模塊可以用VHDL語(yǔ)言在同一個(gè)結(jié)構(gòu)體中分別用并行賦值語(yǔ)句或進(jìn)程來(lái)描述。下面將分別介紹各種電路單元的VHDL描述。4.4.1 組合邏輯電路簡(jiǎn)單組合邏輯電路既可以并行賦值語(yǔ)句,也可以用進(jìn)程描述。簡(jiǎn)單組合邏輯電路一般可以用一個(gè)布爾方程表示,例如三輸入與門:F=A·B·C并行賦值語(yǔ)句:F <= A and B and C;進(jìn)程:process(A,B,C)begin F <= A and B and C;End process;或:process(A,B,C)begin if A=1 a

43、nd B=1 and C=1 thenF <= 1;ElseF <=0;End if;End process;并行賦值語(yǔ)句適用于可以用簡(jiǎn)潔的布爾方程表示的組合邏輯電路。如果邏輯關(guān)系復(fù)雜,難以用布爾方程表示,則可以用進(jìn)程實(shí)現(xiàn),在進(jìn)程中用條件分支語(yǔ)句和CASE語(yǔ)句直接描述電路的邏輯功能。注意:要實(shí)現(xiàn)組合邏輯電路,所有的條件分支必須寫全。4.4.2 觸發(fā)器(D觸發(fā)器)D觸發(fā)器的功能可以如下描述:1如果有異步復(fù)位(置位)端,當(dāng)復(fù)位信號(hào)有效時(shí),輸出端被復(fù)位或置位。復(fù)位(置位)端的優(yōu)先級(jí)比時(shí)鐘端高。2在時(shí)鐘信號(hào)的上升沿(下降沿)把輸入數(shù)據(jù)打到輸出端。3其它時(shí)候輸出保持不變。D觸發(fā)器只能用進(jìn)程實(shí)

44、現(xiàn),在進(jìn)程的敏感表中只需有異步復(fù)位和時(shí)鐘信號(hào)。下面的例子是一個(gè)典型的D觸發(fā)器,它有兩個(gè)分支分別描述觸發(fā)器的兩個(gè)功能,在其它情況下Q保持不變。process(RST,CLK)begin if RST=1 thenQ <= 0;Elsif CLKevent and CLK=1 then-時(shí)鐘上升沿Q <= D;End if;End process;4.4.3 鎖存器(Latch)鎖存器的功能可以如下描述:1 如果使能端有效時(shí),輸入信號(hào)被輸出到輸出端。2使能端無(wú)效時(shí)輸出保持不變。鎖存器只能用進(jìn)程實(shí)現(xiàn),在進(jìn)程的敏感表中應(yīng)包括所有用到的輸入信號(hào)。下面的例子是一個(gè)典型的鎖存器,它用一個(gè)分支描述

45、鎖存器的鎖存功能,在其它情況下Q保持不變。和D觸發(fā)器的區(qū)別是,鎖存器沒(méi)有邊沿型的分支。process(LE,D)begin if LE=1 then Q <= D;End if;End process;4.4.4 寄存器堆寄存器堆是一組寄存器,由于寄存器堆的速度快,常被CPU用來(lái)作數(shù)據(jù)緩沖。下例中的REG數(shù)組是一個(gè)8位的寄存器堆,其功能可以描述為:在寫信號(hào)WR有效時(shí)把數(shù)據(jù)D寫入到地址為REG_ADDR的寄存器中。signal REG_ADDR: std_logic_vector(1 downto 0);signal D:std_logic_vector(7 downto 0);type

46、com_reg is array(0 to 3) of std_logic_vector(7 downto 0);signal REG: com_reg;process(CLK)begin if CLKevent and CLK=1 then if WR=1 thenREG(CONV_INTEGER(REG_ADDR) <= D;End if;End if;End process;4.4.5 RAMRAM有很多種類,如同步RAM、異步RAM、雙端口RAM、單口RAM等。在CPLD設(shè)計(jì)中最常用的是同步RAM和輸入輸出數(shù)據(jù)總線分離的異步單口RAM。同步RAM可以用寄存器堆實(shí)現(xiàn),異步RAM可以

47、用鎖存器堆實(shí)現(xiàn):process(WR,DIN,DOUT,RAM,RAM_ADDR)begin if WR=1 thenRAM(CONV_INTEGER(RAM_ADDR) <= DIN;End if;DOUT <= RAM(CONV_INTEGER(RAM_ADDR);End process;4.4.6 ROMROM中的內(nèi)容是固定不變的,可以用如下的進(jìn)程實(shí)現(xiàn):process(OE,ADDR)begin if OE = 1 thencase ADDR is when “00” =>DOUT <= “00000000”;when “01” =>DOUT <= “

48、00000001”;when “10” =>DOUT <= “00000010”;when others =>DOUT <= “00000100”;end case; end if;End process;參考資料1. CPLD系統(tǒng)設(shè)計(jì)技術(shù)入門與應(yīng)用,黃正謹(jǐn)?shù)?,電子工業(yè)出版社。2. VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì),侯伯亨等,西安電子科技大學(xué)出版社。3. 可編程ASIC設(shè)計(jì)及應(yīng)用,李廣軍,孟憲元,電子科技大學(xué)出版社。4. 可編程器件應(yīng)用導(dǎo)論,曾繁泰等,清華大學(xué)出版社。5. XILINX數(shù)字系統(tǒng)現(xiàn)場(chǎng)集成技術(shù),樂(lè)明程,東南大學(xué)出版社。6. CPLD技術(shù)及其應(yīng)用,宋萬(wàn)杰

49、等,西安電子科技大學(xué)出版社。實(shí)驗(yàn)一 四位同步二進(jìn)制計(jì)數(shù)器設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康氖煜な褂肕AXPLUS II的圖形輸入工具和VHDL語(yǔ)言設(shè)計(jì)時(shí)序電路的基本操作。二、實(shí)驗(yàn)內(nèi)容1 采用圖形輸入工具設(shè)計(jì)四位同步二進(jìn)制計(jì)數(shù)器。2 繪制激勵(lì)波形3 功能仿真4 采用VHDL語(yǔ)言重新設(shè)計(jì)計(jì)數(shù)器,重復(fù)2、3步驟實(shí)驗(yàn)二 用VHDL語(yǔ)言設(shè)計(jì)七段譯碼器一、實(shí)驗(yàn)?zāi)康氖褂肰HDL語(yǔ)言設(shè)計(jì)七段譯碼器,掌握組合邏輯電路的設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容1設(shè)計(jì)七段譯碼器,輸入為4位BCD碼,輸出7段譯碼器電路的輸入輸出端口如附圖所示。2繪制激勵(lì)波形3功能仿真實(shí)驗(yàn)三 綜合下載實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康氖褂肰HDL語(yǔ)言進(jìn)行較完整的設(shè)計(jì),驗(yàn)證功能后,下載到可

50、編程邏輯實(shí)驗(yàn)板。二、實(shí)驗(yàn)內(nèi)容1 結(jié)合實(shí)驗(yàn)1和實(shí)驗(yàn)2,把4位計(jì)數(shù)器的結(jié)果用七段顯示器顯示。2繪制激勵(lì)波形3功能仿真4下載到CPLD板,用7段LED顯示器顯示計(jì)數(shù)結(jié)果實(shí)驗(yàn)四 秒表設(shè)計(jì)要求:1 設(shè)計(jì)一個(gè)秒表,可以從059計(jì)數(shù)或倒計(jì)數(shù)。2 可以用一個(gè)鍵啟動(dòng)計(jì)數(shù)和暫停計(jì)數(shù);一個(gè)鍵控制加計(jì)數(shù)或減計(jì)數(shù);一個(gè)鍵清零3功能仿真4下載到CPLD板,用兩位7段LED顯示器顯示。實(shí)驗(yàn)五 簡(jiǎn)單微處理器的設(shè)計(jì)與實(shí)現(xiàn)一、設(shè)計(jì)任務(wù)和技術(shù)指標(biāo)運(yùn)用在“數(shù)字電路與邏輯設(shè)計(jì)”課程中學(xué)過(guò)的基本理論知識(shí),設(shè)計(jì)并用可編程邏輯器件實(shí)現(xiàn)一個(gè)簡(jiǎn)單的四位操作數(shù)的微處理器。完成微處理器硬件系統(tǒng)設(shè)計(jì)和指令系統(tǒng)設(shè)計(jì)兩方面的任務(wù),使微處理器能夠?qū)崿F(xiàn)兩個(gè)不

51、帶符號(hào)位的四位二進(jìn)制數(shù)原碼相乘等功能。二、簡(jiǎn)單微處理器介紹1微處理器硬件系統(tǒng)及原理微處理器硬件系統(tǒng)包括運(yùn)算器、控制器、存儲(chǔ)器以及其它必要的邏輯部件。圖4-1為微處理器的原理框圖,說(shuō)明如下:(1) 程序計(jì)數(shù)器PC:存放將要執(zhí)行指令的地址。(2) 指令存儲(chǔ)器IRAM,存放用戶指令,容量為16×8的RAM(或寄存器堆)。開關(guān)S的狀態(tài)用于控制指令的寫入或讀出操作。(3) 指令寄存器IR:存放被執(zhí)行指令的操作碼,直接供運(yùn)算控制器。(4) 控制器CON:產(chǎn)生一系列時(shí)序邏輯信號(hào),控制微處理器各個(gè)部件協(xié)調(diào)一致地完成每條指令相應(yīng)的操作,實(shí)現(xiàn)兩個(gè)四位操作數(shù)的運(yùn)算。(5) 通用寄存器堆RAM:它由四個(gè)四位

52、的通用寄存器R0、R1、R2、R3組成,用來(lái)存放運(yùn)算過(guò)程中讀出和寫入的數(shù)據(jù)。(6) 緩沖寄存器RS和RD:用于存放處理器的兩個(gè)操作數(shù)(S)和(D)。(7) 運(yùn)算器ALU和進(jìn)位寄存器C:運(yùn)算器是四位算術(shù)邏輯運(yùn)算單元,它對(duì)兩個(gè)四位二進(jìn)制數(shù)(S)和(D)進(jìn)行處理,進(jìn)位輸入端所加的是控制器送來(lái)的CI信號(hào),運(yùn)算結(jié)果的低四位直接輸出,而運(yùn)算結(jié)果的進(jìn)位輸出到進(jìn)位寄存器中。(8) 運(yùn)算結(jié)果顯示送七段數(shù)碼管顯示,用十六進(jìn)制顯示。圖4-1 簡(jiǎn)單微處理器框圖2處理器指令系統(tǒng)及功能處理器規(guī)定基本指令字長(zhǎng)為8位,指令的每一位從高到低用D7、D6、D5、D4、D3、D2、D1、D0表示,指令系統(tǒng)共包括三類指令:寄存器指令、轉(zhuǎn)移指令和停機(jī)指令,指令的編碼方式如下圖。表4-1 指令格式指令位76543210寄存器指令OPCCSD轉(zhuǎn)移指令11CCADDR停機(jī)指令1100LHD21寄存器指令這類指令能夠執(zhí)行兩個(gè)寄存器之間的運(yùn)算操作,包含OP、CC、S和D四個(gè)字段。其中S和D字段指定了兩個(gè)寄存器。記號(hào)(S)表示由S字段所指定的寄存器的內(nèi)容;記號(hào)(D)表示由D字段所指定的D寄存器的內(nèi)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論