北郵數字電路與邏輯設計實驗報告_第1頁
北郵數字電路與邏輯設計實驗報告_第2頁
北郵數字電路與邏輯設計實驗報告_第3頁
北郵數字電路與邏輯設計實驗報告_第4頁
北郵數字電路與邏輯設計實驗報告_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上北京郵電大學數字電路與邏輯設計實驗報告學院: 班級: 姓名: 學號: 實驗一 Quartus II原理圖輸入法設計與實現一、實驗目的:(1) 熟悉Quartus II原理圖輸入法進行電路設計和仿真;(2) 掌握Quartus II 圖形模塊單元的生成與調用;(3) 熟悉實驗板的使用;二、實驗所用器材:(1) 計算機;(2) 直流穩壓電源;(3) 數字系統與邏輯設計實驗開發板。三、實驗任務要求 (1) 用邏輯門設計實現一個半加器,仿真驗證其功能,并生成新的半加器圖形模塊單元。(2) 用(1)中生成的半加器模塊和邏輯門設計實現一個全加器,仿真驗證其功能,并下載到實驗板測試

2、,要求用撥碼開關設定輸入信號,發光二極管顯示輸出信號。(3) 用3線-8線譯碼器(74LS138)和邏輯門設計實現函數 ,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關設定輸入信號,發光二極管顯示輸出信號。 四、 實驗原理圖及仿真波形圖(1) 半加器 半加器原理圖仿真波形仿真波形圖分析:根據仿真波形對比半加器真值表,可以確定電路實現了半加器的功能。但我們也可以發現輸出SO出現了靜態功能冒險,要消除該冒險可以加入相應的選通脈沖。 (2)全加器全加器原理圖 仿真波形仿真波形圖分析 :根據仿真波形對比半加器真值表,可以確定電路實現了全加器的功能(2) 74138 3線-8線譯碼器 原理圖 仿真波

3、形圖 仿真波形圖分析 ;當且僅當ABC輸入為000、010、100、111時,F=1,可知電路實現了函數。 實驗二 用VHDL設計與實現組合邏輯電路1、 實驗目的:(1)熟悉用VHDL語言設計時序邏輯電路的方法;(2)熟悉用Quartus II文本輸入法進行電路設計;(3)熟悉不同的編碼及其之間的轉換。二、實驗所用器材:(1)計算機;(2)直流穩壓電源;(3)數字系統與邏輯設計實驗開發板。三、實驗任務要求 (1)用 VHDL語言設計實現一個共陰極7段數碼管譯碼器;(2)用VHDL語言設計一個8421碼轉余三碼的代碼轉換器;(3)用VHDL語言設計設計一個四位2進制奇校驗器。四、 實驗代碼及仿真

4、波形圖數碼管譯碼器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY shumaguanyimaqi IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END shumaguanyimaqi; ARCHITECTURE encoder_arch OF shumaguanyimaqi IS BEGIN PR

5、OCESS(A) BEGIN C<="" CASE A IS WHEN"0000"=> B<=""-0 WHEN"0001"=> B<=""-1 WHEN"0010"=> B<=""-2 WHEN"0011"=> B<=""-3 WHEN"0100"=> B<=""-4 WHEN"0101"=

6、> B<=""-5 WHEN"0110"=> B<=""-6 WHEN"0111"=> B<=""-7 WHEN"1000"=> B<=""-8 WHEN"1001"=> B<=""-9 WHEN OTHERS=> B<="ZZZZZZZ" END CASE; END PROCESS; END encoder_arch;仿真波

7、形圖仿真波形分析:A是輸入,A0-A3是由低位到高位變化,B是數碼管的各個部分,隨著A輸入的變化,B數碼管對應譯碼出相應的數字顯示出來。8421碼轉余三碼LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jxhyusanma IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END jxhyusanma; ARCHITECTURE trans_ex3 OF jxhyusanm

8、a IS BEGIN PROCESS(A) BEGIN CASE A IS WHEN"0000"=> B<="0011" WHEN"0001"=> B<="0100" WHEN"0010"=> B<="0101" WHEN"0011"=> B<="0110" WHEN"0100"=> B<="0111" WHEN"0101&qu

9、ot;=> B<="1000" WHEN"0110"=> B<="1001" WHEN"0111"=> B<="1010" WHEN"1000"=> B<="1011" WHEN"1001"=> B<="1100" WHEN OTHERS=> B<="ZZZZ" END CASE; END PROCESS; END trans

10、_ex3; 仿真波形圖仿真波形分析:8421碼轉換余三碼,由0111轉換成為了1010可以看出功能已經實現,仿真驗證了代碼功能正確。奇校驗LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jxhjijiaoyan IS PORT( A:STD_LOGIC; B:STD_LOGIC; C:STD_LOGIC; D:STD_LOGIC; F:OUT STD_LOGIC); END jxhjijiaoyan; ARCHITECTURE one OF jxhjijiaoyan IS SIGNAL n1,n2 : STD_LOGIC; BEGIN n1&

11、lt;=A XOR B; n2<=n1 XOR C; F<=n2 XOR D; END one; 仿真波形圖仿真波形分析:當ABCD為1111時,輸出F為0,ABCD為1110時,輸出F為1,可見奇校驗功能得以實現。實驗三 用VHDL設計與實現時序邏輯電路一、實驗目的:(1)熟悉用VHDL語言設計時序邏輯電路的方法;(2)熟悉用Quartus II文本輸入法進行電路設計;(3)熟悉不同的編碼及其之間的轉換。二、實驗所用器材:(1)計算機;(2)直流穩壓電源;(3)數字系統與邏輯設計實驗開發板。三、實驗任務要求 (1)用 VHDL語言設計實現一個8421十進制計數器;(2)用VHDL

12、語言設計一個分頻器;(3)將(1)、(2)和數碼管譯碼器3個電路進行連接,并下載到實驗板顯示計數結果。四、 實驗代碼及仿真波形圖8421十進制計數器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhshijinzhijishuqi ISPORT(clk,reset:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END jxhshijinzhijishuqi;ARCHITECTURE a OF jxhshijinzhijishuqi

13、 ISSIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,reset)BEGINIF reset='0' THENq_temp <="0000"ELSIF clk'EVENT AND clk='1' THENIF q_temp="1001" THENq_temp <="0000"ELSE q_temp <=q_temp+1;END IF;END IF;END PROCESS;q<= q_temp;END

14、a; 仿真波形圖仿真波形圖分析:8421十進制計數器隨著時鐘的信號進行計數,restart是復位,當復位為零的時候計數器重新計數。根據仿真結果來看,8421十進制計數器功能得以實現。分頻器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhfenpinqi ISPORT(clk:IN STD_LOGIC;clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END jxhfenpinqi;ARCHITECTURE a OF jxhfenpinqi IS

15、SIGNAL temp:INTEGER RANGE 0 TO 11;BEGINp1:PROCESS(clear,clk)BEGINIF clear='0'THENtemp<=0;ELSIF clk'EVENT AND clk='1' THENIF temp=11 THENtemp<=0;ELSE temp<=temp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(temp)BEGINIF temp<6 THENclk_out<='0'ELSE clk_out<=&#

16、39;1'END IF;END PROCESS p2;END a;仿真波形仿真波形分析:分頻器將頻率分開,置零端正常工作,根據仿真波形可以看出來,分頻器的功能得以正常實現。組合電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhfenpinqi ISPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END jxhfenpinqi;ARCHITECTURE behave OF jxhfenpinqi ISSIGNAL temp:IN

17、TEGER RANGE 0 TO ;SIGNAL clktmp:STD_LOGIC;BEGIN PROCESS(clk) BEGIN IF clk'event AND clk='1' THEN IF temp= THEN temp<=0; clktmp<=NOT clktmp; ELSE temp<=temp+1; END IF; END IF; END PROCESS; clk_out<=clktmp; END behave;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_

18、UNSIGNED.ALL;ENTITY jxhshijinzhi IS PORT( CLK,CLEAR:IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END jxhshijinzhi;ARCHITECTURE A OF jxhshijinzhi ISSIGNAL Q_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,clear)BEGIN IF CLEAR='1'THEN Q_TEMP<="0000"elsIF(CLK'EVENT AND

19、 CLK='1')THEN IF Q_TEMP="1001"THEN Q_TEMP<="0000" ELSE Q_TEMP<=Q_TEMP+1; END IF; END IF;END PROCESS;Q<=Q_TEMP;END A; LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhshumaguan ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:OUT STD_L

20、OGIC_VECTOR(7 DOWNTO 0); c:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END jxhshumaguan;ARCHITECTURE seg7_arch OF jxhshumaguan ISBEGINPROCESS(a)BEGINc<=""CASE a ISWHEN"0000"=>b<=""-0WHEN"0001"=>b<=""-1WHEN"0010"=>b<=""-

21、2WHEN"0011"=>b<=""-3WHEN"0100"=>b<=""-4WHEN"0101"=>b<=""-5WHEN"0110"=>b<=""-6WHEN"0111"=>b<=""-7WHEN"1000"=>b<=""-8WHEN"1001"=>b<

22、;=""-9WHEN OTHERS=>b<=""END CASE;END PROCESS;END seg7_arch;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jxhzuhedianlu ISPORT(ain:IN STD_LOGIC;bin:IN STD_LOGIC;cout:OUT STD_LOGIC_VECTOR(7 downto 0);cat:OUT STD_LOGIC_VECTOR(5 downto 0);end jxhzuhedianlu;ARCHITECTURE behave

23、 OF jxhzuhedianlu ISCOMPONENT jxhfenpinqiPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END COMPONENT;COMPONENT jxhshijinzhiPORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 downto 0);END COMPONENT;COMPONENT jxhshumaguanPORT(a:IN STD_LOGIC_VECTOR(3 downto 0);b:OUT STD_LOGIC_VECTOR(7 downto 0);c:OUT

24、 STD_LOGIC_VECTOR(5 downto 0);end COMPONENT;SIGNAL d:STD_LOGIC;SIGNAL f:STD_LOGIC_VECTOR(3 downto 0);BEGINu1:jxhfenpinqi PORT MAP(clk=>ain,clk_out=>d);u2:jxhshijinzhi PORT MAP(clk=>d,clear=>bin,q=>f);u3:jxhshumaguan PORT MAP(a=>f,b=>cout,c=>cat);END behave;端口的綁定:端口分析:Ain是時鐘信號

25、的輸入綁定了18串口,bin是置零信號綁定了20 串口,cat5-0是每個數碼管各自的綁定,根據板子上的串口數字綁定,cout7-0是數碼管的每一個亮的部分,根據板子上的提示串口進行綁定,根據編程可以實現讓數碼管顯示不同的數字。電路圖:代碼中是使用PORT MAP 進行連接的u1:jxhfenpinqi PORT MAP(clk=>ain,clk_out=>d);u2:jxhshijinzhi PORT MAP(clk=>d,clear=>bin,q=>f);u3:jxhshumaguan PORT MAP(a=>f,b=>cout,c=>cat

26、);在此圖中可以看出ain接分頻器的clk,分頻器的clk_out接十進制譯碼器的CLK,bin接十進制譯碼器的CLEAR,十進制譯碼器的Q接數碼管的a,數碼管的b,c分別接count和cat。實驗四 數碼管掃描顯示控制器設計與實現1、 實驗目的:1. 掌握VHDL語言的語法規范,掌握時序電路描述方法。2. 掌握多個數碼管動態掃描現實的原理及設計方法。2、 實驗所用器材:1.計算機:裝有Quartus軟件,為VHDL語言提供操作場所。2.直流穩壓電源:通過USB接口實現,為實驗開發板提供穩定電源。3.數字系統與邏輯設計實驗開發板:使試驗結果下載到開發板上,實現整個實驗的最終結果。三、實驗任務要

27、求 1. 用VHDL語言設計并實現六個數碼管串行掃描電路,要求同時顯示0、1、2、3、4、5這6個不同的數字圖形到6個數碼管上。2. 用VHDL語言設計并實現六個數碼管滾動顯示電路。(1) 循環左滾動,始終點亮6個數碼管,左出右進。狀態為:(2)向左滾動,用全滅的數碼管填充右邊,直至全部變滅,然后再一次從右邊一個一個的點亮。狀態為12345X2345XX345XXX45XXXX5XXXXXXXXXXXXXXXX0XXXX01XXX012XX0123X01234,其中“X”表示數碼管不顯示。4、 實驗原理多個數碼管動態掃描顯示,是將所有數碼管的相同段并聯在一起,通過選通信號分時控制各個數碼管的公

28、共端,循環依次點亮多個數碼管,利用人眼的視覺暫留現象,只要掃描的頻率大于50HZ,將看不到閃爍現象。如下圖10-1,是多個數碼管動態掃描顯示的電路連接圖。當閃爍顯示的發光二極管閃爍頻率較高時我們將觀察到持續點亮的現象。同理,當多個數碼管依次顯示,當切換速度夠快時,我們將觀察到所有數碼管都是同事在顯示。一個數碼管要穩定顯示要求顯示頻率>50hz,那么6個數碼管則需要50*6=300hz以上才能看到持續穩定點亮的現象。cat1cat6是數碼管選通控制信號,分別對應于6個共陰極數碼管的公共端,當catn=0時,其對應的數碼管被點亮。因此,通過控制cat1cat6,就可以控制6個數碼管循環依次點

29、亮。5、 代碼及仿真波形圖1實現六個數碼管串行掃描電路的思路及代碼:串行數碼管library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jxhchuanxing is port( clear,clk_in:in std_logic; num:out std_logic_vector(6 downto 0); cat:out std_logic_vector(5 downto 0) ); end jxhchuanxing; architecture one of jxhchuanxing

30、is signal status:integer range 0 to 6;begin process(clk_in)begin if clear='0' then status<=0; elsif (clk_in'event and clk_in='1') then if status=6 then status<=1; else status<=status+1; end if; end if; end process; process(status) begincase status is when 1 => num<

31、=""cat<="" when 2 => num<=""cat<="" when 3 => num<=""cat<="" when 4 => num<=""cat<="" when 5 => num<=""cat<="" when 6 => num<=""cat<="&qu

32、ot; when others =>num<=""cat<="" ; end case; end process; end one;仿真波形:仿真波形分析:由仿真波形可以看出數碼管的串行顯示得以實現,置零正常。隨著時鐘輸入的變化,數碼管進行串行顯示。電路圖:端口連接:Clk_in接18口,是時鐘輸入,cat5-0是每個數碼管各自的綁定,根據板子上的串口數字綁定,num7-0是數碼管的每一個亮的部分,根據板子上的提示串口進行綁定,根據編程可以實現讓數碼管顯示不同的數字。2六個數碼管滾動電路的思路及代碼:數碼管滾動顯示library IEE

33、E;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jxhgundong isport(clk:in STD_LOGIC;en: out STD_LOGIC_VECTOR(5 downto 0);z: out STD_LOGIC_VECTOR(6 downto 0) );end jxhgundong;architecture quanmiegundong of jxhgundong issignal a:INTEGER RANGE 0 to 6;signal b:INTEGER RANGE 0 to 20;s

34、ignal c:INTEGER RANGE 0 to 3000;signal d:INTEGER RANGE 0 to 3000;begin p1:process(a)begincase a iswhen 0=>en<=""b<=c mod 12 ;when 1=>en<=""b<=(1+c)mod 12 ;when 2=>en<=""b<=(2+c)mod 12 ;when 3=>en<=""b<=(3+c)mod 11 ;when 4=&g

35、t;en<=""b<=(4+c) mod 12 ;when 5=>en<=""b<=(5+c) mod 12;when others=>null;end case;end process p1; p2:process(clk)beginif clk'event and clk='1'thenif a=5 then a<=0;d<=1+d;else a<=a+1;end if ;if d=2999 then d<=0;c<=c+1;end if ;end if ;en

36、d process p2; p3:process(b)begincase b iswhen 0=> z<=""-0when 1=> z<=""-1when 2=> z<=""-2when 3=> z<=""-3when 4=> z<=""-4when 5=> z<=""-5when others=>z<="" end case;end process p3; end;仿真波

37、形:仿真波形分析:有圖可以看出,數碼管滾動顯示功能得以正常實現。隨著時鐘的輸入,數碼管的輸出進行著滾動式變化。電路圖:端口連接圖:Clk接18口,是時鐘輸入,en5-0是每個數碼管各自的綁定,根據板子上的串口數字綁定,z6-0是數碼管的每一個亮的部分,根據板子上的提示串口進行綁定,根據編程可以實現讓數碼管顯示不同的數字。五、故障及問題分析 實驗一在本次實驗中,由于實驗較為簡單,只要認真聽老師講課,細心實驗,基本沒有大的故障出現。出現的問題主要為 當輸入頻率較高時,輸出結果易受器件延遲時間影響。此外,對于多輸入的電路,靜態功能冒險還是會存在的,在某些情況下應該加入選通脈沖來消除靜態功能冒險。實驗

38、二1. 注意VHDL文件名與實體名一致,會導致編譯的錯誤。我在實驗的過程中發生過這種錯誤。2. 在仿真波形的時候,沒有合適的取好輸入信號的周期,導致最終的波形超過了一個半有效周期,經老師指出進行了修改。3. 下載到板子上程序之前需要綁定串口,綁定完串口之后需要二次編譯,否則功能不能實現。實驗三1.每次實驗中都應該注意到VHDL的文件名應與實體名一致,如果不一致編譯會報錯。我在實驗過程中雖然原理圖設計名與工程名相同,但在其后某程序名上犯了錯誤,導致出錯。2.在仿真波形的觀察中,一定要調節好zoom一選項,縮放出便于觀察的波形。3.在命名過程一定要注意規范,不要出現非法字符。4.在做10進制計數器時,由于板的固有頻率為晶振的頻率50兆赫茲,所以當以微秒級的時鐘去自動跳變太快根本

溫馨提示

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

評論

0/150

提交評論