北郵數(shù)電試驗分析報告-信息_第1頁
北郵數(shù)電試驗分析報告-信息_第2頁
北郵數(shù)電試驗分析報告-信息_第3頁
北郵數(shù)電試驗分析報告-信息_第4頁
北郵數(shù)電試驗分析報告-信息_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、北郵數(shù)電實驗報告-信息作者:日期:r處逮卑危大爭數(shù)字電路與邏輯設(shè)計實驗班內(nèi)序號姓 學(xué) 專 班 學(xué)院信息與通信工程學(xué)院信息工程*實驗一一、實驗名稱和實驗任務(wù)要求1. 實驗內(nèi)容:Quartusll原理圖輸入法設(shè)計與實現(xiàn)。2. 實驗?zāi)康模?1) 熟悉用Quartusll原理圖輸入法進(jìn)行電路設(shè)計和仿真。(2) 掌握Quartusll圖形模塊單元的生成與調(diào)用。(3) 熟悉實驗板的使用。3. 實驗任務(wù)要求:(1) 用邏輯門設(shè)計實現(xiàn)一個半加器,仿真驗證其功能,并生成新的半加 器圖像模塊。(2) 用實驗內(nèi)容1中生成的半加器模塊和邏輯門設(shè)計實現(xiàn)一個全加器, 仿真驗證其功能,并下載到實驗板上測試。要求用撥碼開關(guān)設(shè)

2、定輸入信 號,發(fā)光二極管顯示輸出信號。(3) 用3線一8線譯碼器(74LS138)和邏輯門實現(xiàn)函數(shù)F=(/ )(/ )(/ )+(/ ) (/ )+ (/ )(/ )+,仿真驗證其功能,并下載到實驗板測試。要求用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。、原理圖半加器模塊和邏輯門設(shè)計實現(xiàn)的全加器:三、仿真波形圖及分析相加求得和數(shù)及向高位進(jìn)位的邏輯電路。由其原理可得邏輯表達(dá)式:sum=ain® bin ® cincout = (ain bin) cin + ain*bin。 列出真值表:輸入輸出ainbincincoutsum000000010101P 00 1 :011

3、1010001101101101011111仿真波形對比真值表,可以看出波形圖與理論值完全符合。四、故障及問題分析1、問題:按照邏輯表達(dá)式連接了全加器電路后,仿真波形很亂。解決方法:思考后知道了應(yīng)該把輸入信號依次設(shè)成2的n次方,這樣的仿真波形清楚容易分析。2、 問題:把代碼下載到板子上的過程中,進(jìn)行到37%的時候停了,等了 2分鐘也沒繼續(xù)下載。解決方法:再次重連USB嘗試下載,手緊握著接線口,下載成功了,分析 可能是接線口接觸不好。實驗二、實驗名稱和實驗任務(wù)要求1. 實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)組合邏輯電路。2. 實驗?zāi)康模海?)熟悉用VHDL語言設(shè)計組合邏輯電路的方法。(2)熟悉用Quar

4、tusll文本輸入法進(jìn)行電路設(shè)計。3. 實驗任務(wù)要求:(1)用VHDL語言設(shè)計實現(xiàn)一個4位二進(jìn)制奇校驗器,輸入奇數(shù)個 1' 時,輸出為 1',否則輸出 0',仿真驗證其功能,并下載到實驗板測 試。要求用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。(2) 用VHDL語言設(shè)計實現(xiàn)一個8421碼轉(zhuǎn)換為余3碼的代碼轉(zhuǎn)換器,仿 真驗證其功能,并下載到實驗板測試。要求用撥碼開關(guān)設(shè)定輸入信號, 發(fā)光二極管顯示輸出信號。仿真驗證其7段數(shù)碼(3) 用VHDL.語言設(shè)計實現(xiàn)一個共陰極7段數(shù)碼管譯碼器 功能,并下載到實驗板測試。要求用撥碼開關(guān)設(shè)定輸入信號 管顯示輸出信號。、VHDL代碼1.

5、 奇校驗器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jijiaoyanqi ISPORT( A:STD_LOGIC;B:STD_LOGIC;C:STD_LOGIC;D:STD_LOGIC;F:OUT STD_LOGIC);END jijiaoya nqi;ARCHITECTURE one OF jijiaoya nqi ISSIGNAL n 1, n2 : STD_LOGIC;BEGINn1<=A XOR B;n2<=n1 XOR C;F<=n2 XOR D;-異或,A ® B ® C ® D

6、END one;2. 8421碼轉(zhuǎn)余3碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY basizhua nyu3 ISPORT( A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END basizhua ny u3;ARCHITECTURE zhua nyu3 OF basizhua nyu3 ISBEGINPROCESS(A)BEGINCASE A ISWHEN"0000"

7、;=> B<="0011"WHEN"0001"=> B<="0100"WHEN"0010"=> B<="0101"/WHEN"0011"=> B<="0110"WHEN"0100"=> B<="0111"WHEN"0101"=> B<="1000"WHEN"0110"=> B<

8、;="1001"WHEN"0111"=> B<="1010"WHEN"1000"=> B<="1011"WHEN"1001"=> B<="1100"WHEN OTHERS=> B<="ZZZZ"END CASE;END PROCESS;END zhua nyu3;3. 數(shù)碼管譯碼器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_L

9、OGIC_UNSIGNED.ALL;ENTITY shumagua nyimaqi ISPORT( 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 shumagua nyi maqi;ARCHITECTURE shuma OF shumagua nyimaqi IS BEGINPROCESS(A)BEGINC<="011111"CASE A ISWHEN"0000"=> B&l

10、t;="1111110"-0WHEN"0001"=> B<="0110000"-1WHEN"0010"=> B<="1101101"-2WHEN"0011"=> B<="1111001"-3WHEN"0100"=> B<="0110011"-4WHEN"0101"=> B<="1011011"-5WHEN"0

11、110"=> B<="1011111"-6WHEN"0111"=> B<="1110000"-7WHEN"1000"=> B<="1111111"-8WHEN"1001"=> B<="1111011"-9WHEN OTHERS=> B<="ZZZZZZZ"END CASE;END PROCESS;END shuma;三、故障及問題分析1、問題:代 碼寫好 以后編譯出現(xiàn)

12、 錯誤,Error (10568): VHDL error atjijiaoya nqi.vhd(17): can't write to in terface object "partout" of mode IN, 由于報錯指到了第17行F<=n2 XOR D;導(dǎo)致我開始的時候沒意識 到這是哪里的錯誤。解決方法:在百度查了以后發(fā)現(xiàn)是F:OUT STD_LOGIC);這句我寫成了F:IN STD_LOGIC);以后要注意少犯這些馬虎的錯誤。2、問題:把代碼下載到板子上的過程中,再次出現(xiàn)了第一節(jié)課出現(xiàn)的下載停止的問題,再次嘗試后也沒有下載成功,第三次接線的時候等

13、了好久, Hardware Setup窗 口也沒有顯示有硬件接入。解決方法:換了一臺電腦嘗試然后成功了,我覺得可能是兩個原因,一是 我反復(fù)操作導(dǎo)致軟件反應(yīng)時間長,二是我本來用的電腦接口連 接不好。實驗三一、實驗名稱和實驗任務(wù)要求1. 實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)時序邏輯電路。2. 實驗?zāi)康模海?)熟悉用VHDL語言設(shè)計時序邏輯電路的方法。(2)熟悉用QuartusII文本輸入法進(jìn)行電路設(shè)計。3. 實驗任務(wù)要求:(1)用VHDL語言設(shè)計實現(xiàn)一個分頻系數(shù)為12,分頻輸出信號占空比為 50%的分頻器。要求在QuartusII平臺上設(shè)計程序并仿真驗證設(shè)計。(2) 用VHDL語言設(shè)計實現(xiàn)一個帶異步復(fù)位

14、的8421碼十進(jìn)制計數(shù)器,仿 真驗證其功能,并下載到實驗板測試。要求用按鍵設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。(3) 將(1)、(2)和數(shù)碼管譯碼器3個電路進(jìn)行連接,并下載到實驗板 顯示計數(shù)結(jié)果。二、模塊端口說明及連接圖CLR1、8421 十進(jìn)制計數(shù)器復(fù)位鍵CLR2 ;時鐘信號 CLK作為分頻器的時鐘信號CLK1,分頻器輸出CLK_0UT1作為8421十進(jìn)制計數(shù)器的時鐘信號 CLK2 ;計數(shù)器的輸出Q0,1,2,3作為數(shù)碼管譯碼器的輸入a 0,1,2,3。 整個電路輸出端:b0,1,2,3,4,5,6,分別對應(yīng)7段數(shù)碼管;c0,1,2,3,4,5, 分別對應(yīng)6個數(shù)碼管譯碼器。3.器。三、VH

15、DL代碼(1)8421十進(jìn)制計數(shù)器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ZY8421shiji nzhi ISPORT(CLK2,CLR2:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ZY8421shiji nzhi;ARCHITECTURE behave OF ZY8421shiji nzhi ISSIGNAL Q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(C

16、LK2,CLR2)BEGINIF CLR2 = '1' THEN Q_temp <="0000"ELSIF CLK2'EVENT AND CLK2 = '1' THENIF Q_temp = "1001" THEN Q_temp <="0000"ELSE Q_temp <=Q_temp+1;END IF;END IF;END PROCESS;Q <=Q_temp;END behave;分頻器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL

17、;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY div_50M ISPORT(CLK1,CLR1:IN STD_LOGIC;CLK_OUT1:OUT STD_LOGIC);END div_50M;ARCHITECTURE behave OF div_50M ISSIGNAL temp:INTEGER RANGE 0 TO 24999999;SIGNAL clkout:STD_LOGIC;BEGINPROCESS(CLK1,CLR1)BEGINIF CLR1 = '1' THEN temp <=0;ELSIF CLK1'EVENT A

18、ND CLK1 = '1' THENIF temp = 24999999 THEN temp <=0;clkout <=NOT clkout;ELSE temp <=temp+1;END IF;END IF;END PROCESS ;CLK_OUT1 <=clkout;END behave;(3) 將分頻器、8421十進(jìn)制計數(shù)器和數(shù)碼管譯碼器 3個電路的連接電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fun ctio n3 ISPORT(CLK,CLR:IN STD_LOGIC;b: OUT STD

19、_LOGIC_VECTOR(6 DOWNTO 0);c: OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END fun ctio n3 ;ARCHITECTURE a1 OF fun ctio n3 ISCOMPONENT div_50M-調(diào)用分頻器和計數(shù)器兩個元件PORT(CLK1,CLR1:IN STD_LOGIC;CLK_OUT1:OUT STD_LOGIC);END COMPONENT;COMPONENT ZY8421shiji nzhiPORT(CLK2,CLR2:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);EN

20、D COMPONENT;SIGNAL a : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL clk in : STD_LOGIC;BEGINu1:div_50M PORT MAP (CLK1=>CLK,CLR1=>CLR,CLK_OUT1=>clki n); u2: ZY8421shij in zhi PORT MAP (CLK2=>clk in ,CLR2=>CLR,Q=>a); PROCESS(a)BEGINc<=" 110111"-左數(shù)第三個數(shù)碼管亮CASE a ISWHEN "0000&q

21、uot; => b<="1111110"-0WHEN "0001" => b<="0110000"-1WHEN "0010" => b<="1101101"-2WHEN "0011" => b<="1111001"-3WHEN "0100" => b<="0110011"-4WHEN "0101" => b<="10

22、11011"-5WHEN "0110" => b<="1011111"-6WHEN "0111" => b<="1110000"-7WHEN "1000" => b<="1111111"-8WHEN "1001" => b<="1111011"-9WHEN OTHERS => b<="1111110" -0END CASE;END PROCESS;

23、END;四、仿真波形圖及分析1 ILrn分析仿真波形圖可知,c為110111,左數(shù)第三個數(shù)碼管亮;數(shù)碼管譯碼器循 環(huán)顯示0到9這10個數(shù)字;復(fù)位信號CLK是高電平有效,從波形中看出CLR=1 時輸出b=1111110數(shù)碼管顯示數(shù)字0。五、故障及問題分析1、問題:分頻器代碼編譯成功后準(zhǔn)備下載到板子上,在準(zhǔn)備設(shè)置端口時,出現(xiàn) 了這個跟之前不一樣界面,沒辦法下載代碼。Top 'Ziew Fifi ChuArrm GX-EP1AOX20C'F4MCe解決方法:后來發(fā)現(xiàn)是最開始的時候,器件設(shè)置有問題,應(yīng)該按照書上講的在 Available device s欄選擇 EPM11270T144

24、C5 這個型號。前 兩次實驗都沒有犯這個錯誤,我認(rèn)識到我不應(yīng)該忽視前面的必 要步驟,某個小細(xì)節(jié)的不注意可能會導(dǎo)致重做整個項目。2、問題:把(3)的代碼寫好后編譯出現(xiàn)錯誤,Error (10313): VHDL Case Statement error at function 3.vhd(30): Case Stateme nt choices must cover all possiblevalues of expression解決方法:后來我檢查發(fā)現(xiàn)是窮舉法中的可能情況里忘了寫WHENOTHERS => b<="0000000"這一行,導(dǎo)致情況包括不完全而報

25、錯。3、問題:仿真波形中b的顯示類似亂碼,并不是預(yù)想的二進(jìn)制碼。 解決方法:老師講解后知道了應(yīng)該在Count Value選項中的Radix 欄選擇 Bi nary。、實驗名稱和實驗任務(wù)要求1. 實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)相關(guān)電路。2. 實驗?zāi)康模海?)掌握VHDL語言的語法規(guī)范,掌握時序電路描述方法。(2)掌握多個數(shù)碼管動態(tài)掃描顯示的原理及設(shè)計方法。3. 實驗任務(wù)要求:(1)用VHDL語言設(shè)計并實現(xiàn)六個數(shù)碼管串行掃描電路,要求同時顯示 “班號一班內(nèi)序號”這6個數(shù)字圖形到6個數(shù)碼管,仿真驗證其功能,并下載到實驗板測試。(2)用VHDL語言設(shè)計并實現(xiàn)六個數(shù)碼管滾動顯示電路。循環(huán)左滾動,始終點亮

26、6個數(shù)碼管,左出右進(jìn)。狀態(tài)為:124-17,24-171,4-1712,-17124, 17124-,7124-1,124-17。二、模塊端口說明及連接圖1. 輸入端:elk時鐘信號2. 輸出端:partout0,1,2,3,4,5,6,分別對應(yīng) 7 段數(shù)碼管;catout0,1,2,3,4,5: 分別對應(yīng)6個數(shù)碼管譯碼器三、VHDL代碼(1)同時顯示“班號一班內(nèi)序號”這六個數(shù)字圖形到6個數(shù)碼管LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ZY12417 ISPORT ( elk

27、: IN STD_LOGIC;partout : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); eatout : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END ZY12417;ARCHITECTURE A OF ZY12417 ISSIGNAL part:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL eat:STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL tempelk: STD_LOGIC;SIGNAL eou nt:INTEGER RANGE 0 TO 1999;-為便于仿真,仿真圖對應(yīng)代碼

28、將分頻改成了50CONSTANT M: INTEGER :=1999;BEGINP1:PROCESS(clk)BEGINIF(elk'EVENT AND elk='1')THENIF eou nt=M THENcoun t<=0;tempelk<= NOT tempelk;ELSEcoun t<=eo un t+1;END IF;END IF;END PROCESS P1;P2:PROCESS(tempclk)BEGINIF(tempelk'EVENT AND tempelk='1')THENCASE eat ISWHEN&qu

29、ot;111110"=> eat<="011111"part<="0110000" -1WHEN"011111"=> eat<="101111"part<="1101101" -2WHEN"101111"=> eat<="110111"part<="0110011" -4WHEN"110111"=> eat<="111011&quo

30、t;part<="0000001"-WHEN"111011"=> eat<="111101"part<="0110000" -1WHEN"111101"=> eat<="111110"part<="1110000" -7WHEN OTHERS => cat<="O11111"part<="O11OOOO" -1END CASE;END IF;END PROC

31、ESS P2;catout<=cat;partout<=part;END A;(2)滾動顯示電路(選做)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY gun do ngxia nshi ISPORT( clk,clear:IN STD_LOGIC;catout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); partout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END gundon gxia nshi;ARCHITECT

32、URE a OF gun do ngxia nshi ISSIGNALcat :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL part :STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNALcn t,cnt1 :INTEGER RANGE 0 TO 11;SIGNAL tmp:INTEGER RANGE 0 TO 15999;SIGNAL clk1:STD_LOGIC;BEGINpO:PROCESS(clk,clear)BEGINIF clear='O' THEN tmp<=0;ELSIF clk'EVENT AND c

33、lk='1' THENIF tmp=15999 THENtmp<=0;ELSE tmpv=tmp+1;END IF;END IF;END PROCESS pO;p1:PROCESS(tmp)BEGINIF clk'EVENT AND clk='1' THENIF tmp<1000 THENclk1<='0'ELSE clk1<='1'END IF;END IF;END PROCESS p1;p2:PROCESS(clk)BEGINIF(clk'EVENT AND clk='1'

34、;) THENIF(cnt=11) THEN cn t<=0;ELSE cn t<=cnt+1;END IF;END IF;END PROCESS p2;p3:PROCESS(clk1)BEGINIF(clk1'EVENT AND clk1='1') THENIF(cnt1=11) THEN cn t1<=0;ELSEcnt1<=c nt1+1;END IF;END IF;END PROCESS p3;p4:PROCESS(cnt,cnt1)BEGINIF(clear='0')THEN cat<="0000000&

35、quot;ELSECASE cn t+c nt1 ISWHEN 6=>cat<="0110000"WHEN 7=>cat<="1101101"WHEN 8=>cat<="0110011"WHEN 9=>cat<="0000001"WHEN 10=>cat<="1101101"WHEN 11=>cat<="1101101"WHEN OTHERS =>cat<="0000000"

36、; END CASE;END IF;END PROCESS p4; catout<=cat; p5:PROCESS(cnt)BEGINIF(clear='0') THEN part<="111111"ELSECASE ent ISWHEN 0=>part<="011111"WHEN 1=>part<="101111"WHEN 2=>part<="110111"WHEN 3=>part<="111011"WHEN 4=&g

37、t;part<="111101"WHEN 5=>part<="111110"WHEN OTHERS =>part<="111111"END CASE;END IF;END PROCESS p5;partout<=part;END a;四、仿真波形圖及分析同時顯示“班號一班內(nèi)序號”這六個數(shù)字圖形到6個數(shù)碼管vL匸帥吾證吐申-y * I-J ul3 2 TJ TJ ,TJ TJ 1J 冷 w r>E.丄 D11斗5OS2<!* TJ TJ SJ -TJ < Y TT3E.-分析仿真波形

38、圖可知,數(shù)碼管譯碼器從左到右依次顯示124-17:從左邊數(shù),第一個數(shù)字catout=011111對應(yīng)partout=0110000,數(shù)碼管顯示數(shù) 字1 ;第二個數(shù)字catout=101111對應(yīng)partout=1101101,數(shù)碼管顯示數(shù)字2;第三個數(shù)字catout=110111對應(yīng)partout=0110011,數(shù)碼管顯示數(shù)字4; 第四個數(shù)字catout=111011對應(yīng)partout=0000001,數(shù)碼管顯示符號 “一” 第五個數(shù)字catout=111101對應(yīng)partout=0110000,數(shù)碼管顯示數(shù)字1;第六個數(shù)字catout=111110對應(yīng)partout=111000Q數(shù)碼管顯示數(shù)字7

溫馨提示

  • 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

提交評論