一、實(shí)驗(yàn)?zāi)康??????????????????????????????????????????????????????????????????????
1. 熟悉CPLD的開(kāi)發(fā)軟件的基本使用。
2. 掌握CPLD邏輯電路設(shè)計(jì)方法。
3. 會(huì)用邏輯分析儀進(jìn)行數(shù)字電路的測(cè)試分析。
二、實(shí)驗(yàn)任務(wù)和內(nèi)容
1. 在CPLD中設(shè)計(jì)一個(gè)多位計(jì)數(shù)器電路,設(shè)計(jì)要求為:
(1)6位十進(jìn)制加法/減法計(jì)數(shù)器,運(yùn)行過(guò)程中可改變加法或減法;
(2)輸入計(jì)數(shù)信號(hào)頻率最高1MHz,信號(hào)電平為0~5V的脈沖信號(hào)。
(3)6位數(shù)碼管動(dòng)態(tài)掃描顯示,顯示亮度均勻,不閃爍。
(4)有手動(dòng)清零按鍵。
2.對(duì)設(shè)計(jì)的電路進(jìn)行軟件仿真
3.計(jì)數(shù)器電路的CPLD下載、實(shí)驗(yàn)調(diào)試。
4.使用虛擬邏輯分析儀進(jìn)行調(diào)試和測(cè)試
三、實(shí)驗(yàn)器材
1. 1.SJ-8002B電子測(cè)量實(shí)驗(yàn)箱 ????????????????????????? 1臺(tái)
2.計(jì)算機(jī)(具有運(yùn)行windows2000和圖形化控件的能力?????? 1臺(tái)
3.函數(shù)發(fā)生器? ?????????????????????????????????????? 1臺(tái)
4. SJ-7002 CPLD實(shí)驗(yàn)板 ??????????????????????????????? 1塊
5 . 短接線若干
?? 4.1 CPLD介紹
?? 可編程邏輯器(PLD)是70年代發(fā)展起來(lái)的一種劃時(shí)代的新型邏輯器件,一般來(lái)說(shuō),PLD器件是由用戶配置以完成某種邏輯功能的電路。80年代末,美國(guó)ALTERA和XILINX公司采用E2CMOS工藝,分別推出大規(guī)模和超大規(guī)模的復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場(chǎng)可編程邏輯門(mén)陣列器件(FPGA),這種芯片在達(dá)到高度集成度的同時(shí),所具有的應(yīng)用靈活性和多組態(tài)功能是以往的LSI/VLSI電路無(wú)法比擬的。到90年代,CPLD/FPGA發(fā)展更為迅速,不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線編程等高級(jí)特性。另外,外圍I/O模塊擴(kuò)大了在系統(tǒng)中的應(yīng)用范圍和擴(kuò)展性。較常用的有XILIN X公司的EPLD和ALTERA及LATTICE公司的CPLD。
??? CPLD/FPGA的設(shè)計(jì)開(kāi)發(fā)采用功能強(qiáng)大的EDA工具,通過(guò)符合國(guó)際標(biāo)準(zhǔn)的硬件描述語(yǔ)言(如VHDL或VERILOG-HDL)來(lái)進(jìn)行電子系統(tǒng)設(shè)計(jì)和產(chǎn)品開(kāi)發(fā),開(kāi)發(fā)工具的通用性,設(shè)計(jì)語(yǔ)言的標(biāo)準(zhǔn)化以及設(shè)計(jì)過(guò)程幾乎與所用的CPLD/FPGA器件的硬件結(jié)構(gòu)沒(méi)有關(guān)系,所以設(shè)計(jì)成功的邏輯功能軟件有很好的兼容性和可移植性,開(kāi)發(fā)周期短;易學(xué)易用,開(kāi)發(fā)便捷。
??? 盡管CPLD、FPGA以及其它類型的PLD器件的結(jié)構(gòu)各有其特點(diǎn)和長(zhǎng)處,但是概括起來(lái)它們都是由三大部分組成的:(1)一個(gè)二維的邏輯塊陣列,構(gòu)成器件的邏輯組成核心;(2)輸入/輸出塊(3)連接邏輯塊的互聯(lián)資源,連線資源由各種長(zhǎng)度的線段組成,也包括用于連接邏輯塊之間,邏輯塊與輸入輸出部分的可編程連接開(kāi)關(guān)。
??? 本CPLD實(shí)驗(yàn)電路板選用ALTERA公司的EPM7128SLC84器件,EPM7128SLC84的特點(diǎn)為:84引腳Pin,內(nèi)部有128個(gè)宏單元、2500個(gè)等效邏輯門(mén)、15ns的速度、PLCC84封裝形式。除電源引腳、地線引腳、全局控制引腳和JTAG引腳外,共提供了64個(gè)可用I/O腳,這些引腳可以任意配置為輸入、輸出和雙向方式。
? ????????????????????
????????????????????????? 圖1?? CPLD芯片EPM7128SLC84外形圖
?? 4.2 CPLD(FPGA)器件的設(shè)計(jì)和驗(yàn)證步驟
?? 一般可分為設(shè)計(jì)輸入、編譯、功能仿真和時(shí)延仿真、器件下載(編程)、硬件電路三個(gè)設(shè)計(jì)步驟以及相應(yīng)的功能仿真、時(shí)序仿真和器件測(cè)試三個(gè)設(shè)計(jì)驗(yàn)證過(guò)程。
?? (1).設(shè)計(jì)輸入:設(shè)計(jì)輸入有多種方式,目前最常用的有電路圖和硬件描述語(yǔ)言兩種,對(duì)于簡(jiǎn)單的設(shè)計(jì),可采用原理圖的方式設(shè)計(jì),對(duì)于復(fù)雜的設(shè)計(jì)可使用原理圖或硬件描述語(yǔ)言(Verilog、AHDL、VHDL語(yǔ)言),或者兩者混用,采用層次化設(shè)計(jì)方法,分模塊層次地進(jìn)行描述。原理圖設(shè)計(jì)方法主要是按照數(shù)字系統(tǒng)的功能采用具體的邏輯器件組合來(lái)實(shí)現(xiàn)的,把這些由具體器件實(shí)現(xiàn)邏輯功能的電路圖輸入到軟件當(dāng)中。這種設(shè)計(jì)方法比較直觀。硬件描述語(yǔ)言設(shè)計(jì)方法主要把數(shù)字系統(tǒng)的邏輯功能用硬件語(yǔ)言來(lái)描述
? (2)編譯:編譯前先選擇器件的系列、型號(hào),分配輸入/輸出管腳進(jìn)行管腳,然后開(kāi)始編譯編譯是指從設(shè)計(jì)輸入文件到熔絲圖文件(CPLD)或位流文件(FPGA)的編譯過(guò)程。在該過(guò)程中,編譯軟件自動(dòng)地對(duì)設(shè)計(jì)文件進(jìn)行綜合、優(yōu)化,并針對(duì)所選中的器件進(jìn)行映射、布局、布線、產(chǎn)生相應(yīng)的熔絲圖或位流數(shù)據(jù)文件。
? (3)仿真:分為功能仿真(Functional)和時(shí)延(Timing)仿真:編譯成功的設(shè)計(jì)并不一定完全正確,可通過(guò)仿真來(lái)驗(yàn)證電路是否達(dá)到設(shè)計(jì)要求,基本思路是首先用波形編輯器編輯仿真文件,給輸入加載不同的激勵(lì)信號(hào),然后運(yùn)行仿真器,產(chǎn)生對(duì)應(yīng)的輸出,根據(jù)輸入和輸出的關(guān)系,以此判別設(shè)計(jì)的正確性。
? (4)器件編程:器件編程就是將熔絲圖文件或位流數(shù)據(jù)文件下載到相應(yīng)的CPLD或FPGA器件中。
? (5)系統(tǒng)硬件電路測(cè)試
????????????????????????
?????????????????????? ? ?? 圖2??? CPLD設(shè)計(jì)流程
?? 4.3 設(shè)計(jì)軟件的使用
??? 對(duì)CPLD的設(shè)計(jì)可使用ALTERA公司的MAX-PLUSⅡ或Quartus Ⅱ,設(shè)計(jì)的主要步驟為:
? (1)創(chuàng)建或打開(kāi)一個(gè)工程。
? (2)原理圖輸入方式:新建一個(gè)圖形文件,輸入符號(hào)(代表子模塊或元件、輸入輸出引腳),連線,存盤(pán)。如圖4所示為采用兩片74190級(jí)聯(lián)的兩位十進(jìn)制計(jì)數(shù)器電路,文件名為Z74190.gdf。
? (3)文本輸入方式:新建一個(gè)文本文件,輸入HDL語(yǔ)言編寫(xiě)的電路,存盤(pán)。
? (4)選擇芯片為CPLD實(shí)驗(yàn)電路板選用的EPM7128SLC84器件,分配引腳。
? (5)波形仿真,首先新建空白的波形文件,導(dǎo)入本設(shè)計(jì)電路的輸入輸出節(jié)點(diǎn),給輸入節(jié)點(diǎn)按照需要指定時(shí)鐘信號(hào)和高低電平,開(kāi)始仿真,得到結(jié)果,再分析結(jié)果。如圖5為Z74190.gdf的仿真文件波形。
? (6)CPLD程序的下載:我們采用的是并口下載電纜ByteBlaster,它可以對(duì)MAX7000S系列進(jìn)行在線編程。該下載電纜具有以下幾個(gè)部分:與PC機(jī)并行口相連的25針插座頭、與PCB板插座相連的10針插頭。其示意圖如3所示。
???????? ????????
????????????????????????????? 圖 3?? 并行電纜下載示意圖
? 設(shè)計(jì)舉例:圖 4和圖 5分別是用原理圖方式設(shè)計(jì)的2位十進(jìn)制計(jì)數(shù)器的原理圖和軟件仿真波形圖。
?????
???????????????圖4兩位十進(jìn)制計(jì)數(shù)器電路圖??? ???? ??????????????????????????????????????? ??圖11-5 兩位十進(jìn)制計(jì)數(shù)器電路仿真波形圖?????
?? 4.4 CPLD實(shí)驗(yàn)電路板原理和虛擬邏輯分析儀使用?? 實(shí)驗(yàn)電路板的組成和虛擬邏輯分析儀的使用在本實(shí)驗(yàn)指導(dǎo)書(shū)的“實(shí)驗(yàn)四 邏輯分析儀的原理和應(yīng)用”中已作了說(shuō)明,請(qǐng)讀者參考。圖6 為CPLD板的詳細(xì)電路圖。CPLD與62芯插座定義表見(jiàn)表1和CPLD可供用戶自定義的引腳見(jiàn)表2。
- 使用CPLD板的1.000MHz的晶振時(shí)鐘,需放置CPLD板上S1短路塊位置在右面。
引腳名稱 |
CPLD |
62芯插座引腳 |
說(shuō)明 |
引腳名稱 |
CPLD對(duì)應(yīng)腳 |
62芯插座引腳 |
說(shuō)明 | |
DO0 |
P40 |
16 |
連接邏輯分析儀的24個(gè)輸入通道 |
DO24 |
P63 |
28 |
系統(tǒng)保留 | |
DO1 |
P36 |
48 |
DO25 |
P76 |
60 | |||
DO2 |
P41 |
17 |
DO26 |
P64 |
29 | |||
DO3 |
P44 |
49 |
DO27 |
P75 |
61 | |||
DO4 |
P45 |
18 |
DO28 |
P68 |
30 | |||
DO5 |
P46 |
50 |
VCC |
P3,P13, |
31,62 |
+5V電源 | ||
DO6 |
P48 |
19 | ||||||
DO7 |
P49 |
51 | ||||||
DO8 |
P50 |
20 | ||||||
DO9 |
P51 |
52 |
GND |
P1,P7, |
13,44 |
電源地 | ||
DO10 |
P55 |
21 | ||||||
DO11 |
P52 |
53 | ||||||
DO12 |
P54 |
22 | ||||||
DO13 |
P65 |
54 | ||||||
DO14 |
P57 |
23 |
CPLD時(shí)鐘源 |
P83 |
45 |
由S1短路 | ||
DO15 |
P67 |
55 | ||||||
DO16 |
P56 |
24 | ||||||
DO17 |
P69 |
56 | ||||||
DO18 |
P58 |
25 |
outsideclk |
P39 |
15 |
選擇接(P83) | ||
DO19 |
P70 |
57 |
allCLR |
P35 |
47 |
系統(tǒng)總清零 | ||
DO20 |
P61 |
26 |
outside_tri |
P37 |
14 |
外部觸發(fā) | ||
DO21 |
P73 |
58 |
||||||
DO22 |
P60 |
27 |
||||||
DO23 |
P74 |
59 |
表2??? 用戶可用的CPLD自定義I/O引腳
P4 |
P5 |
P6 |
P8 |
P9 |
P10 |
P11 |
P15 |
P16 |
P17 |
P18 |
P20 |
P21 |
P22 |
P24 |
P25 |
P27 |
P28 |
P29 |
P30 |
P31 |
P77 |
P79 |
P80 |
P81 |
?
?????????????????????????????????? 圖6 ? CPLD實(shí)驗(yàn)板電路原理圖
?? 設(shè)計(jì)和調(diào)試的過(guò)程是:①任務(wù)分析,層次分解,得到頂層設(shè)計(jì)框圖,大致確定每個(gè)子??欤ㄗ与娐罚┑墓δ?、輸入和輸出;②子??祀娐吩O(shè)計(jì)和軟件仿真;③完成頂層電路設(shè)計(jì),頂層仿真;④分配引腳,下載,連線和調(diào)試。
?? 軟件仿真注意盡量給定符合實(shí)際電路工作的輸入電平、時(shí)鐘,仿真最小間隔不小于20ns,仿真時(shí)間長(zhǎng)短適中。
?? 5.1 設(shè)計(jì)任務(wù)分析
?? 根據(jù)設(shè)計(jì)任務(wù),可分為兩大部分:多位計(jì)數(shù)器電路和計(jì)數(shù)結(jié)果動(dòng)態(tài)顯示電路。根據(jù)CPLD電路的層次化設(shè)計(jì)功能,設(shè)計(jì)出如圖7所示的頂層設(shè)計(jì)框圖。
?? 6位十進(jìn)制的計(jì)數(shù)器對(duì)輸入的脈沖計(jì)數(shù),有加減計(jì)數(shù)控制和清零計(jì)數(shù)值控制,輸出6位十進(jìn)制計(jì)數(shù)值,每位都用4位BCD碼表示,共有24根線。
?? 根據(jù)動(dòng)態(tài)掃描顯示的需要,必須設(shè)計(jì)一個(gè)6位BCD選1的多路數(shù)據(jù)選擇器,輸出的一位BCD碼(4根線)送給BCD-七段譯碼器譯成段信號(hào),從CPLD輸出給數(shù)碼管的7段。同時(shí)多路數(shù)據(jù)選擇器的控制選通信號(hào)需要3根,必須與6位數(shù)碼管的位選信號(hào)同步。
?? 位選信號(hào)來(lái)自電路板的時(shí)鐘(1MHz)分頻,在用譯碼器譯碼(每次只能選中一個(gè)數(shù)碼管)。要保證多位顯示均勻和不閃爍,請(qǐng)計(jì)算和設(shè)計(jì)分頻的頻率和電路。
? ??????????
??????????????????????????????????? 圖7?? 計(jì)數(shù)器頂層設(shè)計(jì)框圖
?? 5.2 部分電路設(shè)計(jì)和軟件仿真提示
?? 電路的設(shè)計(jì)均有原理圖設(shè)計(jì)和HDL語(yǔ)言文本設(shè)計(jì)兩種方法,根據(jù)電路的特點(diǎn)和各人的情況,自己選用。
?? 對(duì)每個(gè)子??爝M(jìn)行軟件仿真,先創(chuàng)建波形文件,設(shè)定時(shí)間間隔和解釋時(shí)間,編輯輸入波形,運(yùn)行仿真,分析結(jié)果是否正確。若不正確,則修改設(shè)計(jì),重新編譯后,再仿真,直到正確為止。
? (1)6位十進(jìn)制的計(jì)數(shù)器子模塊設(shè)計(jì):
?? 沒(méi)有現(xiàn)成電路可用,所以必須自己設(shè)計(jì)。
?? 為什么不選用二進(jìn)制計(jì)數(shù)器?(從顯示要求、二進(jìn)制轉(zhuǎn)換為BCD電路的難易等考慮)
?? 設(shè)計(jì)方法一:選用6個(gè)1位的可逆帶清零十進(jìn)制計(jì)數(shù)器級(jí)聯(lián)得到。注意進(jìn)位/借位信號(hào)的時(shí)序。
?? 設(shè)計(jì)方法二:使用HDL語(yǔ)言編程,注意同時(shí)滿足十進(jìn)制、加、減的進(jìn)位和借位。
?(2)6位BCD選1的多路數(shù)據(jù)選擇器設(shè)計(jì):
? 沒(méi)有現(xiàn)成電路可用,所以必須自己設(shè)計(jì)。
? 可選用多個(gè)數(shù)據(jù)選擇器來(lái)組合。要求控制選通信號(hào)需要3根,按000-001-010-011-100-101變化,只有6個(gè)狀態(tài)。
?(3)BCD-七段譯碼器設(shè)計(jì):
? 有現(xiàn)成電路選用,注意共陰和共陽(yáng)數(shù)碼管的區(qū)別。
? 位選信號(hào)產(chǎn)生
? ①位選譯碼:每次選中一個(gè),可選用什么譯碼器?注意位選電平是高電平有效還是低電平有效。
? ②位選控制:要求為6個(gè)狀態(tài),設(shè)計(jì)電路可采用狀態(tài)機(jī)的方法,但仔細(xì)分析6個(gè)狀態(tài)之間的關(guān)系后,可得出符合_________的計(jì)數(shù)器。
? 設(shè)計(jì)方法:語(yǔ)言和圖形均可。
?? 分頻電路:位選信號(hào)來(lái)自電路板的時(shí)鐘(1MHz)分頻,要保證多位顯示均勻和不閃爍,先計(jì)算分頻電路要求的輸出頻率,在設(shè)計(jì)分頻電路。可使用計(jì)數(shù)器分頻。
?? 5.3分配引腳和編譯、下載
?? 引腳分配要滿足CPLD電路板上已有的連線情況,把主要的輸入信號(hào)和重要的中間結(jié)果同時(shí)分配給邏輯分析儀的輸入通道A0~A23,可以利用邏輯分析儀進(jìn)行測(cè)試,觀察到電路實(shí)際的內(nèi)部工作時(shí)序。每次分配引腳后,需重新編譯后,再下載。
?? 6.1實(shí)驗(yàn)硬件連接
?? 根據(jù)各人設(shè)計(jì)的計(jì)數(shù)器電路和分配的引腳連線,計(jì)數(shù)器輸入控制信號(hào)連接開(kāi)關(guān)和按鍵,計(jì)數(shù)脈沖信號(hào)連接到函數(shù)發(fā)生器的TTL(CMOS)輸出端。計(jì)數(shù)器的輸出位選分別連接6個(gè)數(shù)碼管的為選端L1~L6注意,左邊的數(shù)碼管為低位,7段信號(hào)分別連接。
?? 6.2調(diào)試和測(cè)試
?? 按照以下順序?qū)τ?jì)數(shù)器電路進(jìn)行測(cè)試,如不正確,請(qǐng)按下面步驟檢查:連線——引腳分配——CPLD電路設(shè)計(jì)。改正錯(cuò)誤,再測(cè)試,若是CPLD電路錯(cuò)誤,需重新編譯和重新下載。
?? ①檢查動(dòng)態(tài)掃描電路
?? 數(shù)碼管7段信號(hào)全部直接接地,位選分別連接CPLD輸出位信號(hào),這時(shí),6個(gè)數(shù)碼管應(yīng)該穩(wěn)定顯示“888888”。
?? ②檢查加法計(jì)數(shù)器是否正確
?? 連接數(shù)碼管7段信號(hào)到CPLD指定輸出引腳,位選分別連接CPLD輸出位信號(hào),選計(jì)數(shù)器輸入連接函數(shù)發(fā)生器的TTL電平信號(hào)輸出端,設(shè)置函數(shù)發(fā)生器為方波,頻率為1~2Hz,加/減控制信號(hào)輸入“加”有效,觀察數(shù)碼管的顯示,應(yīng)是加1計(jì)數(shù),更新頻率即為輸入信號(hào)頻率。提高輸入信號(hào)頻率,使計(jì)數(shù)更新快,檢查計(jì)數(shù)器進(jìn)位和高位計(jì)數(shù)是否正確。
?? ③檢查減法計(jì)數(shù)器是否正確
?? 加/減控制信號(hào)輸入“減”有效,測(cè)試方法同上。
?? ④檢查“清零”控制是否正確。
???????????????????? ?????????? 圖8 實(shí)驗(yàn)硬件組成圖
評(píng)論