2023年北郵數(shù)電實驗報告信息_第1頁
2023年北郵數(shù)電實驗報告信息_第2頁
2023年北郵數(shù)電實驗報告信息_第3頁
2023年北郵數(shù)電實驗報告信息_第4頁
2023年北郵數(shù)電實驗報告信息_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字電路與邏輯設(shè)計實驗姓名***學院信息與通信工程學院專業(yè)信息工程班級***學號****班內(nèi)序號***實驗一一、實驗名稱和實驗任務(wù)規(guī)定實驗內(nèi)容:QuartusII原理圖輸入法設(shè)計與實現(xiàn)。實驗目的:熟悉用QuartusII原理圖輸入法進行電路設(shè)計和仿真。掌握QuartusII圖形模塊單元的生成與調(diào)用。熟悉實驗板的使用。實驗任務(wù)規(guī)定:用邏輯門設(shè)計實現(xiàn)一個半加器,仿真驗證其功能,并生成新的半加器圖像模塊。用實驗內(nèi)容1中生成的半加器模塊和邏輯門設(shè)計實現(xiàn)一個全加器,仿真驗證其功能,并下載到實驗板上測試。規(guī)定用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。用3線—8線譯碼器(74LS138)和邏輯門實現(xiàn)函數(shù)F=(/??)(/??)(/??)+(/??)??(/??)+??(/??)(/??)+??????,仿真驗證其功能,并下載到實驗板測試。規(guī)定用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。二、原理圖半加器模塊和邏輯門設(shè)計實現(xiàn)的全加器:三、仿真波形圖及分析電路實現(xiàn)了全加器的功能。全加器是實現(xiàn)兩個1位二進制數(shù)及低位來的進位相加求得和數(shù)及向高位進位的邏輯電路。由其原理可得邏輯表達式:sum=ain⊕bin⊕cincout=(ain⊕bin)cin+ain*bin。列出真值表:輸入輸出ainbincincoutsum0000000101010010111010001101101101011111仿真波形對比真值表,可以看出波形圖與理論值完全符合。四、故障及問題分析1、問題:按照邏輯表達式連接了全加器電路后,仿真波形很亂。解決方法:思考后知道了應(yīng)當把輸入信號依次設(shè)成2的n次方,這樣的仿真波形清楚容易分析。2、問題:把代碼下載到板子上的過程中,進行到37%的時候停了,等了2分鐘也沒繼續(xù)下載。解決方法:再次重連USB嘗試下載,手緊握著接線口,下載成功了,分析也許是接線口接觸不好。實驗二一、實驗名稱和實驗任務(wù)規(guī)定實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)組合邏輯電路。實驗目的:熟悉用VHDL語言設(shè)計組合邏輯電路的方法。熟悉用QuartusII文本輸入法進行電路設(shè)計。實驗任務(wù)規(guī)定:用VHDL語言設(shè)計實現(xiàn)一個4位二進制奇校驗器,輸入奇數(shù)個‘1’時,輸出為‘1’,否則輸出‘0’,仿真驗證其功能,并下載到實驗板測試。規(guī)定用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。用VHDL語言設(shè)計實現(xiàn)一個8421碼轉(zhuǎn)換為余3碼的代碼轉(zhuǎn)換器,仿真驗證其功能,并下載到實驗板測試。規(guī)定用撥碼開關(guān)設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。用VHDL語言設(shè)計實現(xiàn)一個共陰極7段數(shù)碼管譯碼器,仿真驗證其功能,并下載到實驗板測試。規(guī)定用撥碼開關(guān)設(shè)定輸入信號,7段數(shù)碼管顯示輸出信號。二、VHDL代碼奇校驗器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYjijiaoyanqiISPORT(A:STD_LOGIC;B:STD_LOGIC;C:STD_LOGIC;D:STD_LOGIC;F:OUTSTD_LOGIC);ENDjijiaoyanqi;ARCHITECTUREoneOFjijiaoyanqiISSIGNALn1,n2:STD_LOGIC;BEGINn1<=AXORB;n2<=n1XORC;F<=n2XORD;--異或,A⊕B⊕C⊕DENDone;8421碼轉(zhuǎn)余3碼LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYbasizhuanyu3ISPORT(A:INSTD_LOGIC_VECTO(shè)R(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDbasizhuanyu3;ARCHITECTUREzhuanyu3OFbasizhuanyu3ISBEGINPROCESS(A)BEGINCASEAISWHEN"0000"=>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<="1001";WHEN"0111"=>B<="1010";WHEN"1000"=>B<="1011";WHEN"1001"=>B<="1100";WHENOTHERS=>B<="ZZZZ";ENDCASE;ENDPROCESS;ENDzhuanyu3;數(shù)碼管譯碼器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYshumaguanyimaqiISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(6DOWNTO0);C:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDshumaguanyimaqi;ARCHITECTUREshumaOFshumaguanyimaqiISBEGINPROCESS(A)BEGINC<="011111";CASEAISWHEN"0000"=>B<="1111110";--0WHEN"0001"=>B<="0110000";--1WHEN"0010"=>B<="1101101";--2WHEN"0011"=>B<="1111001";--3WHEN"0100"=>B<="0110011";--4WHEN"0101"=>B<="1011011";--5WHEN"0110"=>B<="1011111";--6WHEN"0111"=>B<="1110000";--7WHEN"1000"=>B<="1111111";--8WHEN"1001"=>B<="1111011";--9WHENOTHERS=>B<="ZZZZZZZ";ENDCASE;ENDPROCESS;ENDshuma;三、故障及問題分析1、問題:代碼寫好以后編譯出現(xiàn)錯誤,Error(10568):VHDLerroratjijiaoyanqi.vhd(17):can'twritetointerfaceobject"partout"ofmodeIN,由于報錯指到了第17行F<=n2XORD;導致我開始的時候沒意識到這是哪里的錯誤。解決方法:在百度查了以后發(fā)現(xiàn)是F:OUTSTD_LOGIC);這句我寫成了F:INSTD_LOGIC);以后要注意少犯這些馬虎的錯誤。2、問題:把代碼下載到板子上的過程中,再次出現(xiàn)了第一節(jié)課出現(xiàn)的下載停止的問題,再次嘗試后也沒有下載成功,第三次接線的時候等了好久,HardwareSetup窗口也沒有顯示有硬件接入。解決方法:換了一臺電腦嘗試然后成功了,我覺得也許是兩個因素,一是我反復操作導致軟件反映時間長,二是我本來用的電腦接口連接不好。實驗三一、實驗名稱和實驗任務(wù)規(guī)定實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)時序邏輯電路。實驗目的:熟悉用VHDL語言設(shè)計時序邏輯電路的方法。熟悉用QuartusII文本輸入法進行電路設(shè)計。實驗任務(wù)規(guī)定:用VHDL語言設(shè)計實現(xiàn)一個分頻系數(shù)為12,分頻輸出信號占空比為50%的分頻器。規(guī)定在QuartusII平臺上設(shè)計程序并仿真驗證設(shè)計。用VHDL語言設(shè)計實現(xiàn)一個帶異步復位的8421碼十進制計數(shù)器,仿真驗證其功能,并下載到實驗板測試。規(guī)定用按鍵設(shè)定輸入信號,發(fā)光二極管顯示輸出信號。將(1)、(2)和數(shù)碼管譯碼器3個電路進行連接,并下載到實驗板顯示計數(shù)結(jié)果。二、模塊端口說明及連接圖整個電路輸入端:時鐘信號clk,復位鍵clr。分頻器及計數(shù)器的端口連接:復位鍵clr作為分頻器復位鍵clr1、8421十進制計數(shù)器復位鍵clr2;時鐘信號clk作為分頻器的時鐘信號clk1,分頻器輸出CLK_OUT1作為8421十進制計數(shù)器的時鐘信號clk2;計數(shù)器的輸出Q[0,1,2,3]作為數(shù)碼管譯碼器的輸入a[0,1,2,3]。整個電路輸出端:b[0,1,2,3,4,5,6],分別相應(yīng)7段數(shù)碼管;c[0,1,2,3,4,5],分別相應(yīng)6個數(shù)碼管譯碼器。三、VHDL代碼(1)8421十進制計數(shù)器:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYZY8421shijinzhiIS?PORT(CLK2,CLR2:INSTD_LOGIC; Q:OUTSTD_LOGIC_VECTOR(3DOWNTO(shè)0));ENDZY8421shijinzhi;ARCHITECTUREbehaveOFZY8421shijinzhiIS SIGNALQ_temp:STD_LOGIC_VECTOR(3DOWNTO0);?BEGIN ?PROCESS(CLK2,CLR2)??BEGIN ? IFCLR2='1'THENQ_temp<="0000";???ELSIFCLK2'EVENTANDCLK2='1'THEN??? IFQ_temp="1001"THENQ_temp<="0000"; ?ELSEQ_temp<=Q_temp+1; ENDIF; ?ENDIF; ENDPROCESS;?Q<=Q_temp;ENDbehave;(2)分頻器:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdiv_50MIS PORT(CLK1,CLR1:INSTD_LOGIC; CLK_OUT1:OUTSTD_LOGIC);ENDdiv_50M;ARCHITECTUREbehaveOFdiv_50MIS SIGNALtemp:INTEGERRANGE0TO(shè)24999999; SIGNALclkout:STD_LOGIC;?BEGIN? PROCESS(CLK1,CLR1) ?BEGIN? IFCLR1='1'THENtemp<=0; ?ELSIFCLK1'EVENTANDCLK1='1'THEN????IFtemp=24999999THENtemp<=0;clkout<=NOTclkout;? ? ELSEtemp<=temp+1; ENDIF; ??ENDIF; ENDPROCESS; ?CLK_OUT1<=clkout;ENDbehave;(3)將分頻器、8421十進制計數(shù)器和數(shù)碼管譯碼器3個電路的連接電路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfunction3IS?PORT(CLK,CLR:INSTD_LOGIC;??b:OUTSTD_LOGIC_VECTO(shè)R(6DOWNTO0); ?c:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDfunction3;ARCHITECTUREa1OFfunction3ISCOMPONENTdiv_50M--調(diào)用分頻器和計數(shù)器兩個元件? PORT(CLK1,CLR1:INSTD_LOGIC;?? CLK_OUT1:OUTSTD_LOGIC); ENDCOMPONENT;?COMPONENTZY8421shijinzhi PORT(CLK2,CLR2:INSTD_LOGIC; Q:OUTSTD_LOGIC_VECTOR(3DOWNTO(shè)0)); ENDCOMPONENT;SIGNALa:STD_LOGIC_VECTO(shè)R(3DOWNTO0);SIGNALclkin:STD_LOGIC;BEGIN u1:div_50MPORTMAP(CLK1=>CLK,CLR1=>CLR,CLK_OUT1=>clkin);?u2:ZY8421shijinzhiPORTMAP(CLK2=>clkin,CLR2=>CLR,Q=>a);?PROCESS(a) BEGIN? c<="110111";--左數(shù)第三個數(shù)碼管亮??CASEaIS?? WHEN"0000"=>b<="1111110";--0 WHEN"0001"=>b<="0110000";--1???WHEN"0010"=>b<="1101101";--2 ?WHEN"0011"=>b<="1111001";--3 WHEN"0100"=>b<="0110011";--4 WHEN"0101"=>b<="1011011";--5???WHEN"0110"=>b<="1011111";--6 ? WHEN"0111"=>b<="1110000";--7 ? WHEN"1000"=>b<="1111111";--8 ?WHEN"1001"=>b<="1111011";--9 ? WHENOTHERS=>b<="1111110";--0? ENDCASE;?ENDPROCESS;END;四、仿真波形圖及分析分析仿真波形圖可知,c為110111,左數(shù)第三個數(shù)碼管亮;數(shù)碼管譯碼器循環(huán)顯示0到9這10個數(shù)字;復位信號CLK是高電平有效,從波形中看出CLR=1時輸出b=1111110,數(shù)碼管顯示數(shù)字0。五、故障及問題分析1、問題:分頻器代碼編譯成功后準備下載到板子上,在準備設(shè)立端口時,出現(xiàn)了這個跟之前不同樣界面,沒辦法下載代碼。解決方法:后來發(fā)現(xiàn)是最開始的時候,器件設(shè)立有問題,應(yīng)當按照書上講的在Availabledevices欄選擇EPM11270T144C5這個型號。前兩次實驗都沒有犯這個錯誤,我結(jié)識到我不應(yīng)當忽視前面的必要環(huán)節(jié),某個小細節(jié)的不注意也許會導致重做整個項目。2、問題:把(3)的代碼寫好后編譯出現(xiàn)錯誤,Error(10313):VHDLCaseStatementerroratfunction3.vhd(30):CaseStatementchoicesmustcoverallpossiblevaluesofexpression。解決方法:后來我檢查發(fā)現(xiàn)是窮舉法中的也許情況里忘了寫WHENOTHERS=>b<="0000000";這一行,導致情況涉及不完全而報錯。3、問題:仿真波形中b的顯示類似亂碼,并不是預想的二進制碼。解決方法:老師講解后知道了應(yīng)當在CountValue選項中的Radix欄選擇Binary。實驗四一、實驗名稱和實驗任務(wù)規(guī)定實驗內(nèi)容:用VHDL設(shè)計與實現(xiàn)相關(guān)電路。實驗目的:掌握VHDL語言的語法規(guī)范,掌握時序電路描述方法。掌握多個數(shù)碼管動態(tài)掃描顯示的原理及設(shè)計方法。實驗任務(wù)規(guī)定:用VHDL語言設(shè)計并實現(xiàn)六個數(shù)碼管串行掃描電路,規(guī)定同時顯示“班號—班內(nèi)序號”這6個數(shù)字圖形到6個數(shù)碼管,仿真驗證其功能,并下載到實驗板測試。用VHDL語言設(shè)計并實現(xiàn)六個數(shù)碼管滾動顯示電路。循環(huán)左滾動,始終點亮6個數(shù)碼管,左出右進。狀態(tài)為:124-17,24-171,4-1712,-17124,17124-,7124-1,124-17。模塊端口說明及連接圖輸入端:clk時鐘信號輸出端:partout[0,1,2,3,4,5,6],分別相應(yīng)7段數(shù)碼管;catout[0,1,2,3,4,5]:分別相應(yīng)6個數(shù)碼管譯碼器三、VHDL代碼(1)同時顯示“班號—班內(nèi)序號”這六個數(shù)字圖形到6個數(shù)碼管libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityZY12417isport(clk:instd_logic;partout:outstd_logic_vector(6downto0);cat(yī)out:outstd_logic_vector(5downto0));endZY12417;architectureaofZY12417issignalpart:std_logic_vector(6downto0);signalcat:std_logic_vector(5downto0);signaltempclk:std_logic;signalcount:integerrange0to1999;--為便于仿真,仿真圖相應(yīng)代碼將分頻改成了50constantM:integer:=1999;beginp1:process(clk)begin if(clk'eventandclk='1')then? ifcount=Mthen ? count<=0; ??tempclk<=nottempclk;? else ?count<=count+1; endif; endif;endprocessp1;p2:process(tempclk)begin if(tempclk'eventandtempclk='1')then??casecatis??when"111110"=>cat<="011111";part<="0110000";--1 when"011111"=>cat(yī)<="101111";part<="1101101";--2??when"101111"=>cat<="110111";part<="0110011";--4? when"110111"=>cat<="111011";part<="0000001";---??when"111011"=>cat<="111101";part<="0110000";--1 when"111101"=>cat<="111110";part<="1110000";--7? whenothers=>cat<="011111";part<="0110000";--1 ?endcase;?endif;endprocessp2;cat(yī)out<=cat;partout<=part;enda;(2)滾動顯示電路(選做)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYgundongxianshiISPORT(clk,clear:INSTD_LOGIC;catout:OUTSTD_LOGIC_VECTOR(6DOWNTO(shè)0);partout:OUTSTD_LOGIC_VECTO(shè)R(5DOWNTO0));ENDgundongxianshi;ARCHITECTUREaOFgundongxianshiISSIGNALcat:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALpart:STD_LOGIC_VECTOR(5DOWNTO0);SIGNALcnt,cnt1:INTEGERRANGE0TO11;SIGNALtmp:INTEGERRANGE0TO15999;SIGNALclk1:STD_LOGIC;BEGINp0:PROCESS(clk,clear)BEGINIFclear='0'THENtmp<=0;ELSIFclk'EVENTANDclk='1'THENIFtmp=15999THENtmp<=0;ELSEtmp<=tmp+1;ENDIF;ENDIF;ENDPROCESSp0;p1:PROCESS(tmp)BEGINIFclk'EVENTANDclk='1'THENIFtmp<1000THENclk1<='0';ELSEclk1<='1';ENDIF;ENDIF;ENDPROCESSp1;p2:PROCESS(clk)BEGINIF(clk'EVENTANDclk='1')THENIF(cnt=11)THENcnt<=0;ELSEcnt<=cnt+1;ENDIF;ENDIF;ENDPROCESSp2;p3:PROCESS(clk1)BEGINIF(clk1'EVENTANDclk1='1')THENIF(cnt1=11)THENcnt1<=0;ELSEcnt1<=cnt1+1;ENDIF;ENDIF;ENDPROCESSp3;p4:PROCESS(cnt,cnt1)BEGINIF(clear='0')THENcat<="0000000";ELSECASEcnt+cnt1ISWHEN6=>cat<="0110000";WHEN7=>cat<="1101101";WHEN8=>cat<="0110011";WHEN9=>cat<="0000001";WHEN10=>cat(yī)<="1101101";WHEN11=>cat<="1101101";WHENOTHERS=>cat(yī)<="0000000";ENDCASE;ENDIF;ENDPROCESSp4;catout<=cat;p5:PROCESS(cnt)BEGINIF(clear='0')THENpart<="111111";ELSECASEcntISWHEN0=>part<="011111";WHEN1=>part<="101111";WHEN2=>part<="110111";WHEN3=>part<="111011";WHEN4=>part<="111101";WHEN5=>part<="111110";WHENOTHERS=>part<="111111";ENDCASE;ENDIF;ENDPROCESSp5;partout<=part;ENDa;仿真波形圖及分析同時顯示“班號—班內(nèi)序號”這六個數(shù)字圖形到6個數(shù)碼管分析仿真波形圖可知,數(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=1110000,數(shù)碼管顯示數(shù)字7;當頻率足夠大,掃描速度不久時,人眼將能看到連續(xù)穩(wěn)定的124-17的圖像。在實驗室實際測試時,下載

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論