




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 數(shù)字電路與邏輯設(shè)計 實驗報告 學院:電子工程學院 2013211207 班級: 2013210999 學號: 姓名: 一 實驗名稱和實驗任務(wù)要求 實驗1 (1)實驗名稱:半加器 任務(wù)要求:用邏輯門設(shè)計實現(xiàn)一個半加器,仿真驗證其功能, 并生成新的半加器圖形模塊單元。 (2)實驗名稱:全加器 任務(wù)要求:用實驗(1)生成的半加器模塊和邏輯門設(shè)計實現(xiàn)一 個全加器,仿真驗證其功能。 (3)實驗名稱:3線-8線譯碼器 任務(wù)要求:用3線-8線譯碼器(74LS138)和邏輯門設(shè)計實現(xiàn)函數(shù)F=CBA+ CBA+ CBA+ CBA,仿真驗證其功能。 實驗2 (1)實驗名稱:數(shù)碼管譯碼器 任務(wù)要求:用VHDL語言
2、設(shè)計實現(xiàn)一個共陰極7段數(shù)碼管譯碼器,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。 (2)實驗名稱:8421碼轉(zhuǎn)化成余3碼 任務(wù)要求:用VHDL語言設(shè)計實現(xiàn)一個8421碼轉(zhuǎn)換為余3碼的代碼轉(zhuǎn)換器,仿真驗證其功能,下載到實驗板測試。要求用按鍵設(shè)定輸入信號,7段數(shù)碼管顯示輸出信號。 (3)實驗名稱:奇校驗器 任務(wù)要求:用VHDL語言設(shè)計實現(xiàn)一個4位二進制奇校驗器,輸入奇數(shù)個1時,輸出為1,否則輸出為0,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信 號。實驗3 (1)實驗名稱:8421十進制計數(shù)器 任務(wù)要求:用VHDL
3、語言設(shè)計實現(xiàn)一個帶異步復(fù)位的8421碼十進制計數(shù)器,仿真驗證其功能。并下載到實驗板測試。要求用按鍵設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。 (2) 實驗名稱:分頻器 任務(wù)要求:用VHDL語言設(shè)計實現(xiàn)一個分頻系數(shù)為12,分頻輸出信號占空比為50%的分頻器,要求在Quartus 平臺上設(shè)計程序并仿真驗證設(shè)計。 (3) 實驗名稱:組合數(shù)碼管譯碼器 任務(wù)要求:將(1)、(2)和數(shù)碼管譯碼器3個電路進行鏈接,并下載到實驗板來顯示計數(shù)結(jié)果。 實驗4 實驗名稱:數(shù)碼管動態(tài)掃描控制器 任務(wù)要求:(1)用VHDL語言設(shè)計并實現(xiàn)六個數(shù)碼管串行掃描電路,要求同時顯示0、1、2、3、4、5這6個不同的數(shù)字圖形到6個數(shù)碼
4、管上,仿真驗證其功能,并下載到實驗板測試。 (2)用VHDL語言設(shè)計實現(xiàn)六個數(shù)碼管滾動顯示電路。 循環(huán)左滾動,始終點亮六個數(shù)碼管,左進右出。狀態(tài)為:012345123450234501345012450123501234012345。 向左滾動,用全滅的數(shù)碼管填充右邊,直至全部變滅,然后再依次從右邊一個一個地點亮,狀態(tài)為:01234512345X2345XX345XXX45XXXX5XXXXXXXXXXXXXXXX0XXXX01XXX012XX0123X01234012345,其中X表示數(shù)碼管不顯示。 二 實驗三(3)和實驗四模塊端口及連接圖 1. 實驗三(3)模塊端口及連接圖 端口列表 6c
5、為控制為時鐘輸入端,其中,clear為復(fù)位清零端(低電平有效),clk 個管腳亮滅信號B為控制數(shù)碼管7個數(shù)碼管亮滅信號(低電平有效), 連接圖 2. 實驗四模塊端口及連接圖 端口列表 6c為控制clk其中,clear為復(fù)位清零端(低電平有效),為時鐘輸入端, 7個數(shù)碼管亮滅信號(低電平有效),d為控制數(shù)碼管個管腳亮滅信號 連接圖 三實驗一(1),實驗三(3)和實驗四的原理圖或VHDL代碼 1. 實驗一(1)全加器的的原理圖 組合數(shù)碼管譯碼器 代碼的VHDL實驗三(2. 3)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC
6、_UNSIGNED.ALL; ENTITY lj IS PORT( clk,clk1: IN STD_LOGIC; clear2,clear1: IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); b:OUT STD_LOGIC_VECTOR(6 downto 0); END lj; ARCHITECTURE a OF lj IS SIGNAL tmp: INTEGER RANGE 0 TO 5; SIGNAL clktmp:STD_LOGIC; BEGIN PROCESS(clear1,clk) BEGIN IF clear1=0THEN tm
7、p=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; SIGNAL Q_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0); PROCESS(CLKtmp) BEGIN IF CLEAR2=0 THEN Q_TEMP=ELSIF(CLKtmpEVENT AND CLKtmp=1)THEN IF Q_TEMP=1 THEN Q_TEMP= ELSE Q_TEMP=Q_TEMP+1; END IF;
8、 END IF; END PROCESS; Q b b b b b b b bb= END CASE; END PROCESS; END a; 3.實驗四VHDL代碼 (1)數(shù)碼管串行掃描電路的VHDL代碼 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cxsmdl IS PORT(clk,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); countout:OUT STD_LOGIC_VECTOR(5 DOWNTO
9、 0); END cxsmdl; ARCHITECTURE behave OF cxsmdl IS SIGNAL q_temp:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL cnt:INTEGER RANGE 0 TO 5; BEGIN p1: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; p2:PROCES
10、S(cnt) BEGIN IF(clear=0)THEN countcount=A111;q_tempcount=H111;q_tempcount=I011;q_tempcount=I101;q_tempcount=I110;q_tempcount=111;q_temp=I1110; END CASE; END IF; END PROCESS; countout=count; q=q_temp; END behave; (2)數(shù)碼管滾動顯示電路VHDL代碼(全亮): library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_un
11、signed.all; entity gd is port( clk,clear: in std_logic; b:out std_logic_vector(6 downto 0); c:out std_logic_vector(5 downto 0); end gd; architecture a of gd is signal q_temp: std_logic_vector(2 downto 0) ; signal p_temp: std_logic_vector(2 downto 0) ; signal tmp: integer range 0 to 24999; signal tmt
12、: integer range 0 to 24999999; signal clktmp: std_logic;signal clktmt: std_logic; begin process(clktmt) begin if clear =1 then p_temp=elsif(clktmtevent AND clktmt=1) then if p_temp=A then p_temp=else p_temp=p_temp+1; end if; end if; end process; process(clktmp) begin if clear =1 then q_temp= elsif(c
13、lktmpevent AND clktmp=1) then if q_temp=A then q_temp=else q_temp=q_temp+1; end if; end if; end process; process(clear,clk) begin if clear=1 then tmt=0; elsif clkevent and clk=1 then if tmt = 24999999 then tmt= 0;clktmt=not clktmt; else tmt=tmt+1; end if; end if; end process; process(clear,clk) begi
14、n if clear=1 then tmp=0; elsif clkevent and clk=1 then if tmp = 24999 then tmp= 0;clktmp=not clktmp; else tmpb=0000;cb=H1101;cb=I1001;cb=0011;cb=A1011;cb case q_temp is when when =b=H1101;cb=I1001;cb=0011;cb=A1011;cb=I1110;cb case q_temp is when when =b=I1001;cb=0011;cb=A1011;cb=I1110;cb=0000;cb cas
15、e q_temp is when when =b=0011;cb=A1011;cb=I1110;cb=0000;cb=H1101;cb case q_temp is when when =b=A1011;cb=I1110;cb=0000;cb=H1101;cb=I1001;cb case q_temp is when when =b=I1110;cb=0000;cb=H1101;cb=I1001;cb=0011;cbb=end case; end process; end a; (3)數(shù)碼管滾動電路VHDL代碼(非全亮) library ieee; use ieee.std_logic_116
16、4.all; use ieee.std_logic_unsigned.all; entity gd is port( clk,clear: in std_logic; b:out std_logic_vector(6 downto 0); c:out std_logic_vector(5 downto 0) ); end gd; architecture a of gd is signal q_temp: std_logic_vector(2 downto 0) ; signal p_temp: std_logic_vector(3 downto 0) ; signal tmp: intege
17、r range 0 to 24999; signal tmt: integer range 0 to 24999999; signal clktmp: std_logic;signal clktmt: std_logic; begin process(clktmt) begin if clear =1 then p_temp=elsif(clktmtevent AND clktmt=1) then if p_temp=A1 then p_temp=else p_temp=p_temp+1; end if; end if; end process; process(clktmp) begin i
18、f clear =1 then q_temp=elsif(clktmpevent AND clktmp=1) then if q_temp=A then q_temp=else q_temp=q_temp+1; end if; end if; end process; process(clear,clk) begin if clear=1 then tmt=0; elsif clkevent and clk=1 then if tmt = 24999999 then tmt= 0;clktmt=not clktmt; else tmt=tmt+1; end if; end if; end pr
19、ocess; process(clear,clk) begin if clear=1 then tmp=0; elsif clkevent and clk=1 then if tmp = 24999 then tmp= 0;clktmp=not clktmp; else tmpb=0000;cb=H1101;cb=I1001;cb=0011;cb=A1011;cbb=H1101;cb=I1001;cb=0011;cb=A1011;cb=I1110;cb case q_temp is when when =b=I1001;cb=0011;cb=A1011;cb=I1110;cb=0000;cb
20、case q_temp is when when =b=0011;cb=A1011;cb=I1110;cb=0000;cb=H1101;cb case q_temp is when when =b=A1011;cb=I1110;cb=0000;cb=H1101;cb=I1001;cb case q_temp is when when =b=I1110;cb=0000;cb=H1101;cb=I1001;cb=0011;cbc case q_temp is when when =b=H1101;cb=I1001;cb=0011;cb=A1011;cb=I1110;cb case q_temp i
21、s when when =b=I1001;cb=0011;cb=A1011;cb=I1110;cb=0000;cb case q_temp is when when =b=0011;cb=A1011;cb=I1110;cb=0000;cb=H1101;cb case q_temp is when when =b=A1011;cb=I1110;cb=0000;cb=H1101;cb=I1001;cb case q_temp is when when =b=I1110;cb=0000;cb=H1101;cb=I1001;cb=0011;cbb=end case; end process; end
22、a; 四 實驗一(2),實驗三(3)和實驗四仿真波形圖及分析 1. 實驗一(2)全加器仿真波形圖及分析 波形分析:,ci-1,加數(shù)b和上個全加器給的進位(1)端口:全加器的輸入端有被加數(shù)a 。及進位co所以共有八個狀態(tài);輸出端為和s )具體狀態(tài)對應(yīng)輸出:(2 co=0;0時,和s=0,進位,A.當ab,ci全為 ;s=1,進位co=0b,ci有一個為1時,和B.當a co=1;1時,和s=0,進位,當C.a,bci有兩個為 。s=1時,和,進位co=11cibaD.當,全為)冒險:圖中產(chǎn)生的冒險是功能冒險,當變量變化超過或等于兩個時,滿(3 足一定條件時產(chǎn)生。 2. 實驗三(3)組合數(shù)碼管譯碼
23、器的仿真波形及分析 波形分析:,六個數(shù)碼管的亮滅控制端CLKclear,時鐘端端口:輸入端口有清零端A. (低電平有效);輸出端口為每個數(shù)碼管的七個管腳端。C呈熄滅狀態(tài),只有數(shù)5到C5均為高電平,數(shù)碼管2到B. 顯示狀態(tài):由C1 9到循環(huán)。1碼管亮,數(shù)字從0 實驗四仿真波形及分析3. 1()數(shù)碼管串行掃描電路波形圖及分析: 波形分析:A端口:數(shù)碼管串行掃描電路的輸入端口只有異步置0端和clk端,輸出有七個數(shù)碼管的端口,和控制數(shù)碼管顯示器亮滅的六個端口(低電平有效)。 B顯示狀態(tài):在每個掃描周期依次讓六個數(shù)碼管顯示器點亮并顯示相應(yīng)數(shù)字,當切換速度足夠快,利用人眼的視覺暫留現(xiàn)象,我們將觀察到數(shù)碼管
24、在同時顯示。 (2)數(shù)碼管滾動顯示電路波形圖及分析(實驗4.2和4.3) 2) ( 3 () 波形分析:A 端口:一個數(shù)碼管滾動電路的輸入端口只有異步置0端和clk端,輸出有每個數(shù)碼管的七個端口,和控制數(shù)碼管顯示器亮的六個端口(低電平有效)。 B 狀態(tài)顯示:在每個掃描周期讓每個數(shù)碼管顯示器分別亮一次并顯示相應(yīng)數(shù)字,還要一個計數(shù)器和分頻器讓數(shù)碼管顯示器每秒跳一個不同的狀態(tài),完成實驗的要求。實驗四(2)于實驗四(3)的區(qū)別在于實驗四(2)數(shù)碼管的七個端口輸出不同,四(2)的七個端口不會全滅,四(3)有的時候七個端口輸出均為無效電平,六個數(shù)碼管實現(xiàn)非全亮滾動的功能。 五 故障及問題分析 1. 第一次
25、做實驗時,由于不是很熟悉VHDL和Quartus2的命名規(guī)則,命名時vhdl文件名與實體名不一致,導致無法運行。解決方法為quartus2生成文件名應(yīng)均與實體名一致。 2. Vhdl代碼無錯,進行波形仿真時,輸出出錯。原因為輸入信的周期太短,經(jīng)過電路的延時后,輸出波形與預(yù)計波形不同。改正方法為將輸入信號周期取大些,最小的周期可以去1us。 3. Vhdl代碼運行沒錯,仿真沒錯,接好管腳后,卻無法把程序下載到板子上。原因是當接好管腳后,應(yīng)先運行一次程序,然后才可下載。 4. 將程序下載到板子后,結(jié)果在數(shù)碼管顯示時,有輸出,但輸出的不是數(shù)字,而是九個別的符號。原因為,連接管腳時將數(shù)碼管a到g管腳順序?qū)ΨQ接反了。 六總結(jié)和結(jié)論 不知不覺中數(shù)字電路的實驗課程已經(jīng)接近尾聲,一個月的實驗也即將結(jié)束。經(jīng)過了一個多月的實驗,我學到了很多東西,收獲非常大。 我們這個學期主要做過的實驗有十個,分別為(1)半加器;(2)全加器
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力資源管理顧問合同范本
- 度宣傳冊設(shè)計與加工合同
- 共有產(chǎn)權(quán)住房合同
- 房屋買賣合同范本:個人住宅版
- 農(nóng)村近郊租賃合同模板大全
- 10清新空氣是個寶 是什么污染了空氣(教學設(shè)計)-2023-2024學年道德與法治二年級下冊統(tǒng)編版
- 采購供應(yīng)鏈管理合同
- 設(shè)備租賃合同示范合同范文
- Module 4 Unit 10 Wind (教學設(shè)計)-2024-2025學年滬教牛津版(深圳用) 英語五年級上冊
- 軟件開發(fā)合作合同(二)
- 工程變更洽商記錄-表-C2-4
- 航天器用j30jh系列微型矩形電連接器
- 英文版成人機票
- 高原冬季施工保證措施
- 平面簡諧波的波函數(shù)教程課件
- 曼昆《經(jīng)濟學原理》(微觀經(jīng)濟學分冊)第8版 全部答案
- 2022《文創(chuàng)產(chǎn)品的設(shè)計》PPT演示文稿
- 鐵皮板房拆除施工協(xié)議書
- 鐵路工程施工組織設(shè)計.ppt
- 工程造價專業(yè)畢業(yè)實習報告
- 《病理學》教案
評論
0/150
提交評論