EDA實(shí)驗(yàn)教程1_第1頁
EDA實(shí)驗(yàn)教程1_第2頁
EDA實(shí)驗(yàn)教程1_第3頁
EDA實(shí)驗(yàn)教程1_第4頁
EDA實(shí)驗(yàn)教程1_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、設(shè)計案例1:16位移位寄存器設(shè)計(一)設(shè)計目的 1、學(xué)習(xí)掌握循環(huán)移位寄存器的設(shè)計實(shí)現(xiàn)方法。 2、熟練運(yùn)用Quartus II軟件,熟悉EDA的VHDL程序設(shè)計和實(shí)現(xiàn)方法。 3、掌握應(yīng)用EDA常用工具軟件進(jìn)行時序邏輯電路的設(shè)計、分析、綜合、仿真等的方法與技巧。(二)基礎(chǔ)知識與能力層次要求2、 能力層次要求:電類專業(yè)工程設(shè)計能力(設(shè)計)(第三級):(三)設(shè)計技術(shù)指標(biāo)與要求 設(shè)計一個16位循環(huán)移位寄存器,首先設(shè)定參與循環(huán)移位的16位數(shù)值,而后每來一次脈沖降沿,16位數(shù)值依次右移1位。(四)設(shè)計過程詳解4.1設(shè)計方案(1)移位寄存器基本功能 16位循環(huán)移位寄存器中,Q表示輸入的初始值,DOUT表示當(dāng)前

2、數(shù)值;SET表示預(yù)設(shè)計數(shù)值,SET為“1”,初始計數(shù)值打入器件;LR表示移位方向,LR為“0”,循環(huán)右移位,LR為“1”,循環(huán)左移位;CLK為移位脈沖。16位循環(huán)移位寄存器的功能表如下:表4.1 移位寄存器功能表CPLDLR工作狀態(tài)X1X置數(shù)0>100循環(huán)右移0>101循環(huán)左移 移位開始,循環(huán)左移時,CLK上每來一個脈沖升沿,寄存器從輸出從低位開始依次左移一位,同時最高位給最低位。相反,循環(huán)右移時,從最高位開始依次右移一位,同時最低位給最高位。(2)設(shè)計方案 方案一:可以首先設(shè)計D觸發(fā)器,而后通過D觸發(fā)器的互聯(lián)實(shí)現(xiàn)16位循環(huán)移位寄存器;或者使用多片74151芯片互聯(lián)實(shí)現(xiàn)16位循環(huán)移

3、位寄存器,具體如圖4.1所示。741517415116位并行輸入Q移位數(shù)控制端CLK16位并行輸出的一端DOUT圖4.1 16位循環(huán)移位寄存器原理框圖1 方案二:采用計數(shù)脈沖CLK作為敏感量,CLK的每個上升沿,輸出量DOUT的每一位賦給左邊一位或右邊一位。同時循環(huán)左移時,最高位賦給最低位,循環(huán)右移時,最低位賦給最高位,語句可采用case.when、with.select、if.then以及加減運(yùn)算等多種結(jié)構(gòu)實(shí)現(xiàn)。具體如圖4.2所示。16位循環(huán)左移電路16位循環(huán)右移位電路4位全加器74283移位數(shù)控制端S16位并行輸入Pin根據(jù)移位方式產(chǎn)生所需要的譯碼序列4位全加器74283自定義4-16譯碼

4、電 路移位數(shù)控制端S移位方式控制端A、B、LorR移位方式控制端A、B、LorR16位循環(huán)移位并行輸出16位譯碼序列循環(huán)移位輸出信號處理產(chǎn)生最終的期望輸出信號16位自定義移位并行輸出圖4.2 16位循環(huán)移位寄存器原理框圖24.2設(shè)計過程 運(yùn)用Quartus II軟件的文本文件輸入方法,編寫VHDL程序,實(shí)現(xiàn)16位循環(huán)移位寄存器的設(shè)計。首先給出設(shè)計原理并提出實(shí)現(xiàn)方案論證,通過設(shè)計輸入、編譯綜合、仿真驗(yàn)證等過程完成并驗(yàn)證設(shè)計。(1)建立循環(huán)移位寄存器工程 使用Quartus II軟件建立16位循環(huán)移位寄存器工程:如圖4.3所示.圖4.3 VHDL工程文件建立(2)程序設(shè)計 本例的參考VHDL源程序

5、如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YWJCQ IS PORT (CLK,SET,LR:IN STD_LOGIC; Q: IN STD_LOGIC_VECTOR(15 DOWNTO 0); D:BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY YWJCQ;ARCHITECTURE ART OF YWJCQ IS BEGIN PROCESS(CLK) VARIABLE TMP: STD_LOGIC; BEGIN IF

6、SET='1' THEN D<=Q; ELSIF CLK'EVENT AND CLK='0' THEN IF LR='1' THEN TMP:=D(15); D(15 DOWNTO 1)<=D(14 DOWNTO 0); D(0)<=TMP; ELSE TMP:=D(0); D(14 DOWNTO 0)<=D(15 DOWNTO 1); D(15)<=TMP; END IF; END IF; END PROCESS;END ARCHITECTURE ART;(3) 編譯源程序用VHDL語言編輯源程序,編譯運(yùn)行

7、,具體如圖4.5所示。 圖4.5 VHDL編譯界面4.3分析與結(jié)論(1)生成器件將設(shè)計程序進(jìn)行打包封裝,所生成的器件如圖4.6所示。 圖4.6 VHDL程序生成器件界面(2)引腳分配由所生成的器件編輯出原理圖,然后進(jìn)行管腳分配,結(jié)果如圖4.7所示。 圖4.7 管腳分配圖(3)仿真波形輸入進(jìn)行初始值設(shè)定,具體如圖4.8所示。 圖4.8 仿真設(shè)置圖進(jìn)行仿真,具體如圖4.9所示。圖4.9 仿真結(jié)果圖(4)仿真結(jié)果分析1)波形分析1:移位開始,當(dāng)SET端置“1”時,不論CLK和LR端口輸入何值,其工作狀態(tài)均顯示為“置數(shù)”的工作狀態(tài)。當(dāng)SET端置“0”,LR端置“0”時,CLK上每來一個脈沖升沿,寄存器

8、輸出從高位開始依次右移一位,同時最低位給最高位,實(shí)現(xiàn)“循環(huán)右移”。具體如圖4.10所示:圖4.10 仿真分析1結(jié)果圖2)波形分析2:移位繼續(xù),當(dāng)SET端置“0”,LR端置“1”時,CLK上每來一個脈沖升沿,寄存器輸出從低位開始依次左移一位,同時最高位給最低位,實(shí)現(xiàn)“循環(huán)左移”。具體如下圖4.11所示:圖4.12 仿真分析2結(jié)果圖設(shè)計案例2:十字路口交通燈設(shè)計(一)設(shè)計目的 1、學(xué)會使用數(shù)字電子技術(shù)以及EDA技術(shù)解決工程實(shí)際問題。 2、鍛煉自主方案設(shè)計能力、軟硬件設(shè)計能力。(二)基礎(chǔ)知識與能力層次要求電類專業(yè)創(chuàng)新設(shè)計能力(創(chuàng)新)(第四級);:(三)設(shè)計技術(shù)指標(biāo)與要求1、設(shè)計要求模擬十字路口交通信

9、號燈的工作過程,利用實(shí)驗(yàn)板上的兩組紅、黃、綠LED作為交通信號燈,設(shè)計一個交通信號燈控制器。要求: (1) 交通燈從綠變紅時,有5秒黃燈亮的間隔時間; (2) 交通燈紅變綠是直接進(jìn)行的,沒有間隔時間; (3)綠燈時間為26秒,紅燈時間為30秒; (4) 在任意時間,顯示每個狀態(tài)到該狀態(tài)結(jié)束所需的時間。 甲道 乙道 圖3.1 路口交通管理示意圖表3.1 交通信號燈的4種狀態(tài)ABCD甲道交通燈紅(30秒)紅綠(26秒)黃(5秒)乙道交通燈綠黃紅紅(四)設(shè)計過程詳解4.1、 設(shè)計原理本實(shí)驗(yàn)中主要應(yīng)用了狀態(tài)機(jī)以及減法器的設(shè)計原理。在狀態(tài)連續(xù)變化的數(shù)字系統(tǒng)設(shè)計中,采用狀態(tài)機(jī)的設(shè)計思想有利于提高設(shè)計效率,

10、增加程序的可讀性,減少錯誤的發(fā)生幾率。同時,狀態(tài)機(jī)的設(shè)計方法也是數(shù)字系統(tǒng)中一種最常用的設(shè)計方法。能夠做到甲道、乙道的紅綠燈閃亮的時間相同,在綠燈跳變紅燈的過程中能夠用黃燈進(jìn)行過渡,使得行駛過程中的車輛有足夠的時間停下來。同時在甲道、乙道各設(shè)立一組計時顯示器,能夠顯示相應(yīng)的紅、黃、綠倒計時??梢岳肰HDL語言合理設(shè)計系統(tǒng)功能,使紅黃綠燈的轉(zhuǎn)換有一個準(zhǔn)確的時間間隔和轉(zhuǎn)換順序。4.2、系統(tǒng)方案本設(shè)計可分為分頻、計數(shù)、狀態(tài)控制、顯示分配、譯碼顯示五部分。進(jìn)程將CLK信號分頻后產(chǎn)生1秒信號,然后構(gòu)成兩個十進(jìn)制計數(shù)器,并產(chǎn)生允許十位計數(shù)器計數(shù)的控制信號。狀態(tài)寄存器實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換和產(chǎn)生狀態(tài)轉(zhuǎn)換的控制信號,下

11、個模塊產(chǎn)生次態(tài)信號和信號燈輸出信號,以及每一個狀態(tài)的時間值。經(jīng)過五個模塊的處理,使時間計數(shù)、紅綠燈顯示能夠正常運(yùn)行。原理框圖如圖4.1所示:(頂層原理圖見附錄6)。 圖4.1 交通信號燈控制器程序原理框圖4.3、實(shí)現(xiàn)過程1計數(shù)模塊分頻器實(shí)現(xiàn)的是將高頻時鐘信號轉(zhuǎn)換成低頻的時鐘信號,用于觸發(fā)控制器和計數(shù)器。該分頻器實(shí)現(xiàn)的是10兆赫茲分頻,將10兆赫茲的時鐘信號分頻成一赫茲的時鐘信號。生成的模塊文件如圖4.2所示(VHDL程序見附錄1)。圖4.2 分頻器模塊文件2計數(shù)模塊計數(shù)模塊由30進(jìn)制、26進(jìn)制、5進(jìn)制三個計數(shù)器用來給狀態(tài)機(jī)做狀態(tài)切換觸發(fā)信號,并為顯示模塊提供倒計時時間。使能端控制定時器是否工作

12、,復(fù)位端控制復(fù)位。當(dāng)正常計時開始后,既由最大值開始倒計數(shù),減到1時產(chǎn)生進(jìn)位信號。以30進(jìn)制計數(shù)器為例,程序流程圖如圖4.3所示(VHDL程序見附錄2)。圖4.3 計數(shù)器程序流程圖3狀態(tài)機(jī)模塊控制模塊根據(jù)外部輸入信號和計時模塊產(chǎn)生的輸出信號,產(chǎn)生系統(tǒng)的狀態(tài)機(jī),控制其他部分協(xié)調(diào)工作。計時模塊用來為顯示譯碼模塊提供倒計時時間。本模塊采用狀態(tài)機(jī)進(jìn)行設(shè)計,可以定義出四種狀態(tài),分別為S0:甲道紅燈且沒有車輛行駛,乙道路燈;S1:甲道紅燈,乙道道黃燈;S2:甲道綠燈,乙道紅燈;S3: 甲道黃燈燈,乙道紅燈。利用CASE語句定義狀態(tài)的轉(zhuǎn)換方式及時間的變換方式,達(dá)到甲道、乙道綠燈亮26秒,紅燈亮30秒,黃燈亮5

13、秒的設(shè)計要求。 其程序流程圖如圖4.4所示(VHDL程序見附錄3)。圖4.4狀態(tài)機(jī)模塊序流程圖4顯示分配模塊計數(shù)模塊由三個不同進(jìn)制的計數(shù)器組成,不同狀態(tài)下,需要將不同的計數(shù)器的值賦給兩組不同的數(shù)碼管進(jìn)行顯示,所以需要根據(jù)狀態(tài)機(jī)狀態(tài)信息分配顯示狀態(tài),其程序流程圖如圖4.5所示(VHDL程序見附錄4).圖4.5顯示分配模塊序流程圖5譯碼顯示模塊數(shù)碼管有7段組成,分共陽極和共陰極,本次設(shè)計采用共陽極數(shù)碼管。當(dāng)輸入為低電平時,數(shù)碼管顯示;當(dāng)輸入為高電平時,數(shù)碼管不顯示。用這樣的方法輸入不同的高低信號控制數(shù)碼管的顯示。其程序流程圖如圖4.6所示。圖4.6 譯碼器程序流程圖4.4 調(diào)試及結(jié)果1 分頻模塊仿

14、真系統(tǒng)時鐘計時模塊需要1HZ的脈沖。分頻模塊主要為系統(tǒng)提供所需的時鐘計時脈沖。該模塊將10MHZ的脈沖信號進(jìn)行分頻,產(chǎn)生1S的方波,作為系統(tǒng)時鐘計時信號。仿真波形其程序流程圖如圖4.7所示(以九分頻為例)。圖4.7 分頻模塊仿真圖2 計時模塊仿真計數(shù)模塊由30進(jìn)制遞減計數(shù)器、26進(jìn)制遞減計數(shù)器、5進(jìn)制遞減計數(shù)器組成,分頻后得到的1Hz的信號為計數(shù)模塊提供時鐘信號,使能en高電平有效,rst低電平復(fù)位,仿真波形如圖4.8所示。圖4.8.1 30進(jìn)制遞減計數(shù)器模塊仿真圖圖4.8.2 5進(jìn)制遞減計數(shù)器模塊仿真圖圖4.8.3 26進(jìn)制遞減計數(shù)器模塊仿真圖3 狀態(tài)機(jī)模塊仿真控制模塊根據(jù)外部輸入信號和計時

15、模塊產(chǎn)生的輸出信號,產(chǎn)生系統(tǒng)的狀態(tài)機(jī),控制其他部分協(xié)調(diào)工作。計時模塊用來為顯示譯碼模塊提供倒計時時間。同時輸出甲乙道口的紅綠燈控制信號和數(shù)碼管顯示狀態(tài)控制信號。仿真波形如圖4.9所示。圖4.9 26狀態(tài)機(jī)模塊仿真圖4 顯示狀態(tài)分配模塊仿真數(shù)碼管在不同狀態(tài)下,需要將不同的計數(shù)器的值賦給兩組不同的數(shù)碼管進(jìn)行顯示,所以需要根據(jù)狀態(tài)機(jī)狀態(tài)信息分配顯示狀態(tài),仿真波形如圖4.10所示。圖4.10 顯示狀態(tài)分配模塊仿真圖5 頂層文件仿真總電路作為頂層模塊,將分頻模塊、計數(shù)模塊、控制模塊和顯示模塊等連接起來,加入輸入輸出,構(gòu)成頂層文件。仿真波形如圖4.11所示。圖4.11 總體電路仿真圖6 仿真結(jié)果分析通過設(shè)

16、定clk值以及rst初值,就可以得到如上所示的仿真波形圖。由仿真波形圖可以看出波形是由計時進(jìn)位信號觸發(fā)而顯示出各個狀態(tài)的。所有交通燈都變?yōu)榧t燈狀態(tài)(符合任務(wù)書的要求)。7 下載與測試 將程序下載到實(shí)驗(yàn)板后,rst置于高電平后,可以看到LED燈的顯示情況為甲道亮紅燈,乙道亮綠燈,甲道數(shù)碼管顯示30秒,乙道數(shù)碼管顯示26秒。乙道倒計時結(jié)束后再進(jìn)行5秒倒計時,并且交通燈變?yōu)辄S燈;當(dāng)乙道倒計時結(jié)束后,甲道數(shù)碼管顯示26,乙道數(shù)碼管顯示30,甲道變?yōu)榫G燈,乙道變?yōu)榧t燈,繼續(xù)進(jìn)行倒計時;甲道倒計時結(jié)束后再經(jīng)行5秒倒計時,交通燈變?yōu)辄S燈;乙道倒計時結(jié)束后再回到初始狀態(tài)。 從實(shí)驗(yàn)板上可以看出硬件測試下的效果達(dá)

17、到了設(shè)計的要求,能夠?qū)崿F(xiàn)交通信號燈控制器的基本功能。附錄.:頂層文件及仿真截圖一、圖形法與VHDL語言的全加器設(shè)計(一)設(shè)計目的1、掌握全加器器的工作原理及設(shè)計方法;2、掌握Quartus II設(shè)計軟件的基本步驟;3、學(xué)會EDA設(shè)計的基本思路及方法。(二)基礎(chǔ)知識與能力層次要求(1)電子電路基礎(chǔ)應(yīng)用能力(基礎(chǔ))(第一級):(三)設(shè)計技術(shù)指標(biāo)與要求1、設(shè)計要求(1) 首先掌握一位全加器原理圖輸入的基本方法、步驟,對其進(jìn)行編譯、測試、仿真;(2) 其次學(xué)會將一位全加器組合為四位全加器,在Quartus II 設(shè)計軟件中進(jìn)行功能仿真測試;(3) 學(xué)會利用硬件設(shè)計語言設(shè)計兩個八段數(shù)碼管和撥碼開關(guān)驅(qū)動程

18、序;最后能將全加器程序和數(shù)碼管程序下載到FPGA芯片中,實(shí)現(xiàn)通過數(shù)碼管顯示撥碼開關(guān)加法操作,撥碼開關(guān)上撥,數(shù)碼管自動顯示加一;(4)撰寫設(shè)計報告。(四)制作提示1、方案提示:(1)選用Alteral公司cyclone II 家族系列芯片,數(shù)碼管、撥碼開關(guān)自購合適型號(2)也可以選用其他方案(自選型號)。(3)參考原理圖(五)設(shè)計報告要求(1200字以上)1、選定設(shè)計方案;2、擬出設(shè)計步驟,畫出設(shè)計電路,分析并計算主要元件參數(shù)值;3、列出測試數(shù)據(jù)表格;4、調(diào)試總結(jié),并寫出設(shè)計報告。三、序列檢測器的設(shè)計(一)設(shè)計目的1、掌握序列檢測器的工作原理;2、學(xué)會用狀態(tài)機(jī)進(jìn)行數(shù)字系統(tǒng)設(shè)計。(二)基礎(chǔ)知識與能

19、力層次要求電類專業(yè)綜合實(shí)踐能力(基礎(chǔ))(第一級):(三)設(shè)計技術(shù)指標(biāo)與要求(1)軟件可實(shí)現(xiàn)紅、綠、黃燈模擬計時,并顯示,要求準(zhǔn)確率>99%;(2)軟件可實(shí)現(xiàn)甲、乙路口的通行、禁止管理,并可以實(shí)時調(diào)整;(3)在面包板上或萬能板或PCB板上安裝電路;(4)撰寫設(shè)計報告。(四)制作提示1、 序列檢測器的基本工作過程序列檢測器用于檢測一組或多組由二進(jìn)制碼組成的脈沖序列信號,在數(shù)字通信中有著廣泛的應(yīng)用。 當(dāng)序列檢測器連續(xù)收到一組串行二進(jìn)制碼后, 如果這組碼與檢測器中預(yù)先設(shè)置的碼相同,則 輸出1, 否則輸出0。 由于這種檢測的關(guān)鍵在于正確碼的收到必須是連續(xù)的, 這就要求檢測器必須記住前一次的正確碼及

20、正確序列, 直到在連 續(xù)的檢測中所收到的每一位碼都與預(yù)置的對應(yīng)碼相同。 在檢測過程中, 任何一位不相等都將回到初始狀態(tài)重新開始檢測。方框圖如下: 本實(shí)驗(yàn)要從一串二進(jìn)制碼中檢測出一個已預(yù)置的8 位二進(jìn)制碼10001110 ,每增加一位二進(jìn)制碼相當(dāng)于增加一個狀態(tài),再加上一個初始態(tài),用9個狀態(tài)可以實(shí)現(xiàn)。其過程如下:(五)設(shè)計報告要求(1200字以上)1、選定設(shè)計方案;2、擬出設(shè)計步驟,畫出設(shè)計電路,分析并計算主要元件參數(shù)值;3、列出測試數(shù)據(jù)表格;4、調(diào)試總結(jié),并寫出設(shè)計報告。 四、數(shù)碼管動態(tài)掃描顯示(一)設(shè)計目的1、掌握數(shù)字鐘的工作原理及設(shè)計方法;2、熟練掌握硬件設(shè)計語言設(shè)計分頻,計數(shù)、串形掃描顯示

21、電路的方法;3、熟悉使用CPLD/FPGA芯片驅(qū)動數(shù)碼管顯示。(二)基礎(chǔ)知識與能力層次要求電子類專業(yè)綜合實(shí)踐能力(綜合)(第二級):(三)設(shè)計技術(shù)指標(biāo)與要求1、設(shè)計要求(1) 首先掌握數(shù)碼管串行掃描工作原理,會利用硬件設(shè)計語言書寫數(shù)碼管串行掃描驅(qū)動程序;(2) 其次掌握分頻器、計數(shù)器工作原理及方法,會用硬件設(shè)計語言在FPGA/CPLD芯片中實(shí)現(xiàn)相應(yīng)電路;(3) 最后能夠?qū)⑸鲜瞿K組合為一個有效系統(tǒng),實(shí)現(xiàn)在數(shù)碼上顯示一個完整的數(shù)字鐘;(4)撰寫設(shè)計報告。2、技術(shù)指標(biāo) 略(四)制作提示 動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)FPGA輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于FPGA對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng)

溫馨提示

  • 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

提交評論