數(shù)字電路與邏輯設計實驗_第1頁
數(shù)字電路與邏輯設計實驗_第2頁
數(shù)字電路與邏輯設計實驗_第3頁
數(shù)字電路與邏輯設計實驗_第4頁
數(shù)字電路與邏輯設計實驗_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 數(shù)字電路與邏輯設計實驗報告 學 院: 班 級: 姓 名: 學 號: 日 期: 一 實驗名稱:實驗一:QuartusII 原理圖輸入法設計與實現(xiàn)實驗二:用 VHDL 設計與實現(xiàn)組合邏輯電路實驗三:用 VHDL 設計與實現(xiàn)時序邏輯電路實驗四:用 VHDL 設計與實現(xiàn)數(shù)碼管動態(tài)掃描控制器二 實驗所用器件及儀器:1.計算機2.直流穩(wěn)壓電源3.數(shù)字系統(tǒng)與邏輯設計實驗開發(fā)板三 實驗要求:實驗一:(1) 用邏輯門設計實現(xiàn)一個半加器,仿真驗證其功能,并生成新的半加器圖形模塊單元。(2) 用(1)實現(xiàn)的半加器和邏輯門設計實現(xiàn)一個全加器,仿真并驗證其功能,并下載到實驗板上測試。要求用撥碼開關設定輸入信號,發(fā)光二

2、極管顯示輸出信號。(3) 用38線譯碼器和邏輯門設計實現(xiàn)函數(shù)F=/C/B/A+/CB/A+C/B/A+CBA,仿真驗證其功能并下載到實驗板測試。要求用撥碼開關設定輸入信號,發(fā)光二極管顯示輸出信號。注:實驗時將三個元器件放在一個new block diagram中實現(xiàn)。實驗二:(1) 用VHDL語言設計實現(xiàn)一個共陰極7段數(shù)碼譯碼器,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關設定輸入信號,7段數(shù)碼管顯示輸出信號。(2) 用VHDL語言設計實現(xiàn)一個8421碼轉余三碼的代碼器,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關設定輸入信號,發(fā)光二極管顯示輸出信號。(3) 用VHDL語言設計實現(xiàn)

3、一個4位二進制奇校驗器,輸入奇數(shù)個1時,輸出1,否則出0;仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關設定輸入信號,發(fā)光二極管顯示輸出信號。實驗三:(1) 用VHDL語言設計實現(xiàn)一個帶異步復位的8421 十進制計數(shù)器,仿真驗證其功能,并下載到實驗板測試。要求用按鍵設定輸入信號,發(fā)光二極管顯示輸出信號。(2) 用VHDL語言設計實現(xiàn)一個分頻系數(shù)為12,輸出信號占空比為50%的分頻器,仿真驗證其功能。注:實驗時將(1)、(2)和數(shù)碼管譯碼器 3 個電路進行鏈接,并下載到實驗板顯示計數(shù)結果。實驗四:(1) 用VHDL語言設計實現(xiàn)六個數(shù)碼管串行掃描電路,要求同時顯示0,1,2,3,4,5這幾個不

4、同的數(shù)字圖形到數(shù)碼管上,仿真驗證其功能,并下載到實驗板測試。(2) 用VHDL語言設計實現(xiàn)六個數(shù)碼管滾動顯示電路:A 循環(huán)左循環(huán),左進右出。狀態(tài)為:012345-123450-234501-345012-450123-501234-012345B 向左滾動,狀態(tài)為(X表示數(shù)碼管不顯示):012345-12345X-2345XX-345XXX-45XXXX-5XXXXX-XXXXXX-XXXXX0-XXXX01-XXX012-XX0123-X01234-012345四 實驗原理及設計思路:實驗一:(1) 半加器是考慮兩位二進制數(shù)相加,出來的結果有二者加后的一個低位數(shù),和一個這兩位數(shù)相加所得的進位

5、數(shù)。所以用異或門和與門即可實現(xiàn)雙輸入雙輸出的半加器。(2) 全加器可以以半加器為基礎,在考慮兩位二進制數(shù)相加時也考慮上地位的進位信號,輸出與半加器類似。(3) 譯碼器加邏輯門可以實現(xiàn)相應的邏輯函數(shù),將有相應最小項的輸出項或即可。實驗二:(1) 共陰極7段數(shù)碼譯碼器:撥碼開關的不同狀態(tài)對應輸入信號的0和1,通過改變撥碼開關的狀態(tài)改變輸入值,此時用VHDL語言描述每個輸入值下對應的數(shù)在數(shù)碼管中的顯示。(2) 8421碼轉余三碼的代碼器:將8421BCD碼加上0011即為對應的余三碼,通過通過改變撥碼開關的狀態(tài)改變輸入的84212BCD碼,由四個LED燈的亮與滅(亮表示該值為1,滅表示0),來表示余

6、三碼的碼值。(3) 奇偶校驗電路:同理用撥碼開關設定輸入信號,發(fā)光二極管顯示輸出信號,輸入奇數(shù)個1時,對應的發(fā)光二極管亮,反之則為熄滅狀態(tài)。實驗三:(1) 異步計數(shù)器:由于是異步復位,且yibuclear(清零信號)優(yōu)先級最高,當它有效時使狀態(tài)清零?;蛘弋?shù)竭_第11個狀態(tài)(1010)時復位,使狀態(tài)回歸到初始狀態(tài)(0000)。其余時刻,用cp來計數(shù),每按一次鍵cp=1,狀態(tài)加1。因此設計2個輸入端,一個輸出端數(shù)組即可。(2) 分頻器:是使cp經(jīng)過12個周期,輸出的信號正好完成一次完整的翻轉,因此需要計數(shù),該計數(shù)器模值為12,每六個狀態(tài)時翻轉一次。(3) 可以使用分頻器為異步計數(shù)器提供脈沖信號,異

7、步計數(shù)器的輸出作為數(shù)碼管譯碼管的輸入,由數(shù)碼管譯碼管顯示當前數(shù)據(jù)。實驗四:(1) 六個數(shù)碼管串行掃描電路:由實驗板上18號元件提供時鐘,每過一個周期,亮一個數(shù)碼管,且該數(shù)碼管序號也會改變,因此需要兩個數(shù)組來體現(xiàn)這種改變。設選擇一個管亮的數(shù)組為xuan(5 downto 0),數(shù)碼管上控制輸出數(shù)字形狀的數(shù)組為guan(6 downto 0),通過輸入的時鐘改變狀態(tài)(signal status),由狀態(tài)定xuan,guan。由于要求“同時顯示”,我們知道閃爍發(fā)光的二極管閃爍頻率較高時,我們將觀察到持續(xù)點亮的現(xiàn)象,一個數(shù)碼管要穩(wěn)定,需要顯示頻率大于50HZ,現(xiàn)在需要6個數(shù)碼管同時顯示,因而時鐘的頻率

8、應該大于300HZ。(2) 六個數(shù)碼管滾動掃描電路:大致原理同(1),但是需要注意guan不再只有6個狀態(tài),需要用12個狀態(tài)來配合周期循環(huán)使用。需要每輪的管子狀態(tài)改變一個位移。此時可以把xuan由循環(huán)來賦值,實現(xiàn)控制不同時刻數(shù)碼管的亮與滅。五 實驗模塊端口及連接圖:實驗三(3):分頻器的時鐘信號接外部時鐘,異步清零端接外部信號,異步清零信號有效時可以實現(xiàn)分頻器內(nèi)部計數(shù)清零。當外部時鐘clk=1時,分頻器內(nèi)部計數(shù)器的狀態(tài)加1,每六個狀態(tài)clk_out實現(xiàn)一次翻轉。分頻器的輸出作為異步計數(shù)器的時鐘,異步計數(shù)器的異步復位端接外部輸入,可由實驗板上撥碼開關實現(xiàn)。這樣就將外部時鐘12分頻后輸入給異步計數(shù)

9、器,異步計數(shù)器將計數(shù)輸入數(shù)碼譯碼器,實現(xiàn)控制數(shù)碼管的狀態(tài),使之顯示異步8421十進制計數(shù)器的此刻的數(shù)。實驗四:(1) clk是輸入信號,接外部時鐘信號(location對應實驗板18),要求頻率大于300HZ,clear是異步復位信號。guan為輸出信號,連接到數(shù)碼管上對應的7條線,控制這個數(shù)碼管中每一段線的亮與滅,實現(xiàn)顯示數(shù)字。xuan是控制6個數(shù)碼管此時應該亮哪一個。由signal status根據(jù)輸入信號確定此時對應的狀態(tài)下的xuan和guan。(2) 循環(huán)左滾動:輸入信號為clk,clear。Clear為異步復位信號,Clk接外部時鐘,該時鐘共有4種頻率(可以通過改變粉紅色按鈕上的小撥

10、碼開關調(diào)整),為了使實驗現(xiàn)象符合要求,我們可以選擇最高頻率并對它進行分頻,分出我們所需要的合適的頻率,再由分頻器輸出的信號控制狀態(tài)變化,每來一個時鐘改變一次狀態(tài),xuan和guan為輸出信號,分別控制該時刻應該亮哪個數(shù)碼管和這個數(shù)碼管上每條線的亮與滅狀態(tài)。故clk接實驗板上18,clear可由按鍵實現(xiàn),xuan接實驗板上cat(05)guan接數(shù)碼管上每條線所對應的數(shù)字。小周期計數(shù)器控制每位數(shù)碼的顯示,大周期計數(shù)器控制數(shù)碼的移位。(3) clk為輸入信號,接外部時鐘實驗板上18,通過循環(huán)移位及每來一個cp對xuan進行一次賦值,選擇此時該亮的燈。通過改變輸出guan和xuan,從而得出能熄滅能

11、亮的現(xiàn)象。guan接數(shù)碼管上的每條線所對應位置,xuan接六個數(shù)碼管的cat端 六 實驗原理圖或者VHDL代碼:(1) 實驗一(2):其中半加器ba的原理圖如下所示:(2) 實驗三(3)VHDL代碼如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sange IS PORT( clk:IN STD_LOGIC; clear,clearyibu:IN STD_LOGIC; b:OUT STD_LOGIC_VECTOR(6 downto 0); y2,y3,y4,y5,y6,y

12、7:OUT STD_LOGIC);end sange;ARCHITECTURE a OF sange IS component fenpin PORT( clk:IN STD_LOGIC; clear:IN STD_LOGIC; clk_out:OUT STD_LOGIC ); END component; component yibu PORT( cp,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END component; component seg7_1 PORT(a:IN STD_LOGIC_VECTOR (3 d

13、ownto 0);b:OUT STD_LOGIC_VECTOR(6 downto 0);c,d,e,f,g,h:OUT STD_LOGIC); END component;SIGNAL na:STD_LOGIC; SIGNAL nb:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN u1:fenpin PORT MAP(clk=clk,clear=clear,clk_out=na); u2:yibu PORT MAP(cp=na,clear=clearyibu,q=nb); u3:seg7_1 PORT MAP(a=nb,b=b,c=y2,d=y3,e=y4,f=y5,g=

14、y6,h=y7); END a;其中fenpin,yibu,seg7_1的VHDL代碼如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT( clk:IN STD_LOGIC; clear:IN STD_LOGIC; clk_out:OUT STD_LOGIC ); END fenpin; ARCHITECTURE a OF fenpin IS SIGNAL tmp:INTEGER RANGE 0 TO 5; SIGNAL clktmp: STD_

15、LOGIC; BEGIN PROCESS(clear,clk) BEGIN IF clear=0 THEN tmp=0; ELSIF (clkevent and clk=1) THEN IF tmp=5 THEN tmp=0; clktmp=NOT clktmp; ELSE tmp=tmp+1; END IF; END IF; END PROCESS; clk_out=clktmp; END a;yibu:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY yibu IS PORT

16、( cp,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END yibu; ARCHITECTURE a OF yibu IS SIGNAL temp:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(cp) BEGIN IF clear=1 THEN temp=0000; elsIF temp=1010THEN temp=0000; else IF (cpevent and cp=1) THEN temp=temp+1; END IF; end if; END PROCESS; q=t

17、emp; END a;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY seg7_1 ISPORT(a:IN STD_LOGIC_VECTOR (3 downto 0);b:OUT STD_LOGIC_VECTOR(6 downto 0);c,d,e,f,g,h:OUT STD_LOGIC);數(shù)碼管譯碼器VHDL代碼:end seg7_1;ARCHITECTURE seg7_1_arch OF seg7_1 ISBEGINc=0;d=1;e=1;f=1;g=1;hBBBBBBBBBBB=0000000; END CASE;END PROCESS;E

18、ND;(3) 實驗四(1) 數(shù)據(jù)管串行掃描電路:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY chuanxing ISPORT(clk,clear:IN STD_LOGIC;guan:out STD_LOGIC_VECTOR (6 downto 0);xuan:OUT STD_LOGIC_VECTOR(5 downto 0);end chuanxing;ARCHITECTURE yu OF chuanxing ISsignal status:integer range 0 to 6

19、;BEGINprocess(clk)beginif clear=0 then status=0;elsif (clkevent and clk=1)thenif status=6 then status=1;elsestatusguan=1111110;xuanguan=0110000;xuanguan=1101101;xuanguan=1111001;xuanguan=0110011;xuanguan=1011011;xuanguan=0000000;xuan=111111; END CASE;END PROCESS;END;(2) 循環(huán)左滾動:LIBRARY IEEE;USE IEEE.S

20、TD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY move IS PORT( clk,clear:IN STD_LOGIC; guan:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); xuan:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END move;ARCHITECTURE zuo OF move is SIGNAL l:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL c:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL cnt,cn

21、t1:INTEGER RANGE 0 TO 5; SIGNAL tmp:INTEGER RANGE 0 TO 1999; signal clk1:STD_LOGIC;BEGIN Fenpin1:PROCESS(clk,clear) BEGIN IF clear=0 THEN tmp=0; ELSIF clkEVENT AND clk=1 THEN IF tmp=1999 THEN tmp=0; ELSE tmp=tmp+1; END IF; END IF; END PROCESS fenpin1; fenpin2:PROCESS(tmp) BEGIN IF clkEVENT AND clk=1

22、 THEN IF tmp1000 THEN clk1=0; ELSE clk1=1; END IF; END IF; END PROCESS fenpin2; change:PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF(cnt=5)THEN cnt=0; ELSE cnt=cnt+1; END IF; END IF; END PROCESS change; P0:PROCESS(clk1) BEGIN IF(clk1EVENT AND clk1=1)THEN IF(cnt1=5)THEN cnt1=0; ELSE cnt1=cnt1+1; E

23、ND IF; END IF; END PROCESS p0; P1:PROCESS(cnt,cnt1) BEGIN IF(clear=0)THEN llllllllllllll=0000000; END CASE; END IF; END PROCESS p1; guan=q_temp; p2:PROCESS(cnt) BEGIN IF(clear=0)THEN cccccccc=111111; END CASE; END IF; END PROCESS p2; xuan=count;END zuo; (3) 亮了又熄滅:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

24、.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bianhua ISPORT(clk,clear:IN STD_LOGIC;guan:out STD_LOGIC_VECTOR (6 downto 0);xuan:OUT STD_LOGIC_VECTOR(5 downto 0);end bianhua;ARCHITECTURE wei OF bianhua ISsignal tmp:integer range 0 to 5;signal w:integer range 0 to 5;signal s:integer range 0 to 10;signal

25、 k:integer range 0 to 1;signal o:integer range 0 to 6;signal p:integer range -1 to 1;signal clko:std_logic_vector(0 to 5);BEGIN process(clear,clk)beginif clear=0 then tmp=0; w=0; s=0; k=0; o=6; p=-1;elsif (clkevent and clk=1)thenif tmp=5 then tmp=0;w=w+1;elsetmp=tmp+1;end if;if w=6 thenw=o thenclko(

26、i)=1;elsif tmpi thenclko(i)=1;elsif tmpi+1 thenclko(i)=0;elseclko(i)=o thenclko(i)=1;elsif tmpi thenclko(i)=1;elsif tmpi+1 thenclko(i)=0;elseclko(i)=1;end if;end if;end loop;if tmp=5 then o=o+p; end if; if o=0 then k=1; p=1;elsif o=6 then p=-1; k=0; end if;for i in 0 to 5 loopxuan(i)=clko(i);end loo

27、p;sguanguanguanguanguanguanguanguanguanguanguan=1011011; END CASE; end if;END PROCESS;END;七 實驗的仿真波形圖及分析:(1) 實驗一(2)A,B 為進行加運算的二進制數(shù),CI為前一位數(shù)的進位,CO是A,B相加的進位,A,B都為1時CO=1,其余時候為零。S是A,B加后的最低位,A,B,CI異或而得。實驗一(3)A,B,C為地址端,當輸入的最小項在F的表達式中時,F(xiàn)=1,其余F=0。(2) 實驗二8421BCD碼轉為余三碼,從0000至1001,余三碼等于8421bcd碼加0011,其余情況,輸出0000;

28、當輸入的四位二進制數(shù)有奇數(shù)個1時出1,其余出0;輸入0000至1001時,輸出數(shù)碼管上其相應的表現(xiàn)形式,否則數(shù)碼管沒有一根線亮。(3)實驗三外部時鐘每過6個周期,分頻器輸出翻轉一次,數(shù)碼管從顯示0開始,直到9的對應輸入的數(shù)據(jù)。y數(shù)組表示數(shù)碼管的選通與否,clear,yibuclear為分別為分頻器和計數(shù)器的異步復位信號,當clear=0時,回到初始狀態(tài)。(分頻器計數(shù)從0開始,計數(shù)器被置零)。clear作用如下:(4)實驗四:數(shù)碼掃描控制器:clear異步清零,使得狀態(tài)立即變?yōu)?,全部數(shù)碼管都不亮,當clear不起作用時,每次xuan只有一個有效,即每次輪流只亮一個數(shù)碼管。且guan為相應時刻輸出的數(shù)。循環(huán)左滾動: 上面的數(shù)組是xuan,控制數(shù)碼管的亮與滅,每次最多只有一個有效,當clear=0時,數(shù)碼管一個都不亮。當clear=1時,clk正常讀入,狀態(tài)發(fā)生相應改變,guan被賦予新值,數(shù)碼管顯示所需要顯示的數(shù)據(jù)。一個完整循環(huán)周期的波形如下:又滾動又熄滅又點亮:上面的數(shù)組依舊是xuan,每個時刻只有一個有效信號

溫馨提示

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

評論

0/150

提交評論