EDA技術(shù)與VerilogHDL實驗報告_第1頁
EDA技術(shù)與VerilogHDL實驗報告_第2頁
EDA技術(shù)與VerilogHDL實驗報告_第3頁
EDA技術(shù)與VerilogHDL實驗報告_第4頁
EDA技術(shù)與VerilogHDL實驗報告_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

EDA技術(shù)與VerilogHDL實驗報告實驗一EDA實驗箱使用一.實驗?zāi)康?.GW48教學(xué)實驗系統(tǒng)原理與使用介紹2.熟悉QuartusII兩種輸入方式下編譯、仿真簡單的組合電路。二.實驗內(nèi)容首先了解GW48系統(tǒng)使用注意事項以及GW48系統(tǒng)主板結(jié)構(gòu)與使用方法,接著對各實驗電路結(jié)構(gòu)圖特點與適用范圍簡述。最后在QuartusII界面下,用文本輸入和圖形輸入分別驗證七選一多路選擇器的功能。三.程序清單文本輸入如下所示:modulemux71(a,b,c,d,e,f,g,s,y);inputa,b,c,d,e,f,g;outputy;input[2:0]s;regy;always@(a,b,c,d,e,f,g,s)case(s)0:y<=a;1:y<=b;2:y<=c;3:y<=d;4:y<=e;5:y<=f;6:y<=g;default:y<=a;endcaseendmodule圖形輸入如下所示:實驗步驟1、新建一個名稱為MUX71a的工程,并在該文件夾中新建一個MUX71a.v的文件。2、編譯代碼,編譯成功后進行第三步,若不成功則查改代碼中的錯誤。3、在工程文件夾中新建一個MUX71a.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。驗證輸出端口波形是否達到七選一多路選擇器的功能。五、實驗數(shù)據(jù)仿真波形如下圖所示。六、實驗小結(jié)通過對EDA實驗箱使用,了解了GW48教學(xué)實驗系統(tǒng)原理與使用介紹;熟悉QuartusII兩種輸入方式下編譯、仿真簡單的組合電路。實驗二用原理圖和VerilogHDL語言設(shè)計一位全加器一.實驗?zāi)康氖煜ぴ赒uartusII下用原理圖和VerilogHDL語言設(shè)計一位全加器。二.實驗內(nèi)容在QuartusII下用原理圖和VerilogHDL語言設(shè)計一位全加器,并編譯、仿真驗證其功能。三.程序清單全加器頂層文件設(shè)計:半加器描述:四.實驗步驟1、新建一個名稱為f_adder的工程,并在該文件夾中新建一個f_adder.bdf的文件。2、新建一個名稱為h_adder.v的文件。3、編譯工程,編譯成功后進行下一步,若不成功則查改錯誤。在工程文件夾中新建一個f_adder.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。驗證輸出端口波形是否實現(xiàn)一位全加器的功能。五、實驗數(shù)據(jù)I、全加器仿真波形如下圖所示:II、半加器仿真波形如下圖所示:六、實驗小結(jié)通過此次實驗熟悉在QuartusII下用原理圖和VerilogHDL語言設(shè)計一位全加器。實驗三含異步清0和同步時鐘使能的4位加法計數(shù)器一.實驗?zāi)康氖煜ぴ赒uartusII下設(shè)計含異步清0和同步時鐘使能的4位加法計數(shù)器。二.實驗內(nèi)容在QuartusII下設(shè)計含異步清0和同步時鐘使能的4位加法計數(shù)器,并編譯、仿真驗證其功能。三.程序清單計數(shù)器頂層文件設(shè)計:10進制計數(shù)器文本輸入:moduleCNT10(clk,rst,en,load,cout,dout,data);inputclk,en,rst,load;input[3:0]data;output[3:0]dout;outputcout;reg[3:0]q1;regcout;assigndout=q1;always@(posedgeclkornegedgerst)beginif(!rst)q1<=0;elseif(en)beginif(!load)q1<=data;elseif(q1<9)q1<=q1+1;elseq1<=4'b0000;endendalways@(q1)if(q1==4'h9)cout=1'b1;elsecout=1'b0;endmodule60位計數(shù)器文本輸入:moduleCNT60(CLK,EN,RST,LOAD,COUT1,COUT2,DOUT1,DOUT2,DATA);inputCLK,EN,RST,LOAD;input[3:0]DATA;output[3:0]DOUT1;output[2:0]DOUT2;outputCOUT1;outputCOUT2;reg[3:0]Q1;reg[2:0]Q2;regCOUT1;regCOUT2;assignDOUT1=Q1;assignDOUT2=Q2;always@(negedgeCLKornegedgeRST)beginif(!RST)Q1<=0;elseif(EN)beginif(!LOAD)Q1<=DATA;elseif(Q1<9)Q1<=Q1+1;elseQ1<=4'b0000;endendalways@(Q1)if(Q1==4'h9)COUT1=1'b1;elseCOUT1=1'b0;always@(negedgeCOUT1ornegedgeRST)beginif(!RST)Q2<=0;elseif(EN)beginif(!LOAD)Q2<=DATA;elseif(Q2<5)Q2<=Q2+1;elseQ2<=4'b0000;endendalways@(Q2)if((Q1==4'h9)&&(Q2==3'h5))COUT2=1'b1;elseCOUT2=1'b0;endmodule60位計數(shù)器圖形輸入:四.實驗步驟1、新建一個名稱為CNT10的工程,并在該文件夾中新建一個CNT10.v的文件。2、編譯工程,編譯成功后進行下一步,若不成功則查改錯誤。3、在工程文件夾中新建一個CNT10.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。4、驗證輸出端口波形是否實現(xiàn)異步清0和同步時鐘使能的4位加法計數(shù)器的功能。五、實驗數(shù)據(jù)10位計數(shù)器文本輸入仿真波形:60位計數(shù)器文本輸入仿真波形:60位計數(shù)器圖形輸入仿真波形:六、實驗小結(jié)通過此次實驗熟悉在QuartusII下設(shè)計含異步清0和同步時鐘使能的4位加法計數(shù)器實驗四8位十進制頻率計設(shè)計一.實驗?zāi)康氖煜ぴ赒uartusII下設(shè)計2位和8位十進制頻率計。二.實驗內(nèi)容在QuartusII下設(shè)計2位和8位十進制頻率計,并編譯、仿真驗證其功能。三.程序清單頻率計頂層文件設(shè)計:(1)2位十進制頻率計Conter8.bdf圖形輸入:tf_ctro.bdf圖形輸入:ft_top.bdf圖形輸入:conter100.v文本輸入:moduleconter100(CLK,CLR,EN,cout,ge,shi);inputCLK,EN,CLR;output[3:0]ge;output[3:0]shi;outputcout;regcout;reg[3:0]ge;reg[3:0]shi;always@(posedgeCLK)if(!CLR)beginge<=0;shi<=0;cout<=0;endelseif((ge==9)&&(shi==9))beginge<=0;shi<=0;cout<=1;endelseif(ge==9)beginge<=0;shi<=shi+1;cout<=0;endelsebeginge<=ge+1;shi<=shi;cout<=0;endendmoduletf_ctro.v文本輸入:moduletf_ctro(clk,en,clr,lock);inputclk;outputen,clr,lock;regen,clr,lock;integerd=0;always@(posedgeclk)begind<=d+1;if(d==1)beginen<=0;lock<=0;clr<=0;endelseif(d==2)beginlock<=1;en<=0;clr<=0;endelseif(d==3)beginlock<=0;clr<=0;en<=0;endelseif(d==6)beginlock<=0;clr<=1;en<=0;endelseif(d==7)beginlock<=0;clr<=0;en<=0;endelseif(d==8)beginlock<=0;clr<=0;en<=1;endelseif(d==16)begind<=0;en<=0;lock<=0;clr<=0;endendendmodule74374鎖存器文本輸入:moduleoctal(clk,en,d_in,q_in);inputclk,en;input[3:0]d_in;output[3:0]q_in;reg[3:0] Q;assignq_in=Q;always@(posedgeclk)if(!en)beginQ<=d_in;endendmodule(2)8位十進制頻率計ft_top.bdf圖形輸入:四.實驗步驟1、新建一個名稱為CTR10的工程,并在該文件夾中新建一個CTR10.bdf的文件,在工程文件夾中新建一個counter8.bdf的文件。2、編譯工程,編譯成功后進行下一步,若不成功則查改錯誤。3、在工程文件夾中新建一個CTR10.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。4、驗證輸出端口波形是否實現(xiàn)8位十進制頻率計的功能。五、實驗數(shù)據(jù)仿真波形如下圖所示:(1)2位十進制頻率計Conter8.bdf圖形輸入仿真波形:Conter100.v文本輸入仿真波形:Tf_ctro.bdf圖形輸入仿真波形輸入:ft_top.bdf圖形輸入仿真波形:(2)8位十進制頻率計ft_top.bdf圖形輸入仿真波形六、實驗小結(jié)通過本次實驗熟悉在QuartusII下設(shè)計2位和8位十進制頻率計,并編譯、仿真驗證其功能。實驗五用狀態(tài)機實現(xiàn)對ADC0809采樣控制一.實驗?zāi)康氖煜ぴ赒uartusII下用狀態(tài)機實現(xiàn)對ADC0809采樣控制。二.實驗內(nèi)容在QuartusII下用狀態(tài)機實現(xiàn)對ADC0809采樣控制,并編譯、仿真驗證其功能。三.實驗原理四、實驗程序清單moduleADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,Q,LOCK_T);input[7:0]D;inputCLK,RST;inputEOC;outputALE;outputSTART,OE;outputADDA,LOCK_T;output[7:0]Q;regALE,START,OE;parameters0=0,s1=1,s2=2,s3=3,s4=4;reg[4:0]cs,next_state;reg[7:0]REGL;regLOCK;always@(csorEOC)begincase(cs)s0:next_state<=s1;s1:next_state<=s2;s2:if(EOC==1'b1)next_state<=s3;elsenext_state<=s2;s3:next_state<=s4;s4:next_state<=s0;default:next_state<=s0;endcaseendalways@(cs)begincase(cs)s0:beginALE=0;START=0;OE=0;LOCK=0;ends1:beginALE=1;START=1;OE=0;LOCK=0;ends2:beginALE=0;START=0;OE=0;LOCK=0;ends3:beginALE=0;START=0;OE=1;LOCK=0;ends4:beginALE=0;START=0;OE=1;LOCK=1;enddefault:beginALE=0;START=0;OE=0;LOCK=0;endendcaseendalways@(posedgeCLKorposedgeRST)beginif(RST)cs<=s0;elsecs<=next_state;endalways@(posedgeLOCK)if(LOCK)REGL<=D;assignADDA=0;assignQ=REGL;assignLOCK_T=LOCK;endmodule五.實驗步驟1.新建一個名稱為ADC0809的工程,并在該文件夾中新建一個ADC0809.v的文件。2.編譯工程,編譯成功后進行下一步,若不成功則查改錯誤。3.在工程文件夾中新建一個ADC0809.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。驗證輸出端口波形是否實現(xiàn)用狀態(tài)機實現(xiàn)對ADC0809采樣控制仿真波形如下圖所示:狀態(tài)轉(zhuǎn)換圖:六、實驗小結(jié)通過此次實驗熟悉在QuartusII下用狀態(tài)機實現(xiàn)對ADC0809采樣控制,并編譯、仿真驗證其功能。實驗六交通燈設(shè)計實驗一.實驗?zāi)康氖煜ぴ赒uartusII下設(shè)計十字路口交通燈控制電路。二.實驗內(nèi)容在QuartusII下設(shè)計十字路口交通燈控制電路,并編譯、仿真驗證其功能。三.實驗原理狀態(tài)表:四、實驗程序清單moduletraffic(clk,enb,accounth,account1,bccounth,bccount1,lampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4);inputclk,enb;output[3:0]accounth,account1,bccounth,bccount1;outputlampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;regtempa,tempb;reg[2:0]counta,countb;reg[7:0]numa,numb;reg[7:0]ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;reglampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;assign{accounth,account1}=numa;assign{bccounth,bccount1}=numb;always@(enb)if(!enb)beginared<=8'b01010101;ayellow<=8'b00000101;agreen<=8'b01000000;aleft<=8'b00010101;bred<=8'b01100101;byellow<=8'b00000101;bleft<=8'b00010101;bgreen<=8'b00110000;endalways@(posedgeclk)beginif(enb)beginif(tempa)beginif(numa>0)if(numa[3:0]==0)beginnuma[3:0]<=9;numa[7:4]<=numa[7:4]-1;endelsenuma[3:0]<=numa[3:0]-1;if(numa==0)tempa<=0;endelsebegintempa<=1;case(counta)0:beginnuma<=agreen;{lampa1,lampa2,lampa3,lampa4}<=2;counta<=1;end1:beginnuma<=ayellow;{lampa1,lampa2,lampa3,lampa4}<=4;counta<=2;end2:beginnuma<=aleft;{lampa1,lampa2,lampa3,lampa4}<=1;counta<=3;end3:beginnuma<=ayellow;{lampa1,lampa2,lampa3,lampa4}<=4;counta<=4;end4:beginnuma<=ared;{lampa1,lampa2,lampa3,lampa4}<=8;counta<=0;enddefault:{lampa1,lampa2,lampa3,lampa4}<=8;endcaseendendelsebegin{lampa1,lampa2,lampa3,lampa4}<=4'b1000;counta<=0;tempa<=0;endendalways@(posedgeclk)beginif(enb)beginif(tempb)beginif(numb>0)if(numb[3:0]==0)beginnumb[3:0]<=9;numb[7:4]<=numb[7:4]-1;endelsenumb[3:0]<=numb[3:0]-1;if(numb==0)tempb<=0;endelsebegintempb<=1;case(countb)0:beginnumb<=bred;{lampb1,lampb2,lampb3,lampb4}<=8;countb<=1;end1:beginnumb<=bgreen;{lampb1,lampb2,lampb3,lampb4}<=2;countb<=2;end2:beginnumb<=byellow;{lampb1,lampb2,lampb3,lampb4}<=4;countb<=3;end3:beginnumb<=bleft;{lampb1,lampb2,lampb3,lampb4}<=1;countb<=4;end4:beginnumb<=byellow;{lampb1,lampb2,lampb3,lampb4}<=4;countb<=0;enddefault:{lampb1,lampb2,lampb3,lampb4}<=8;endcaseendendelsebegin{lampb1,lampb2,lampb3,lampb4}<=4'b1000;countb<=0;tempb<=0;endendendmodule狀態(tài)圖:五、.實驗步驟1.新建一個名稱為traffic的工程,并在該文件夾中新建一個traffic.v的文件。2.編譯工程,編譯成功后進行下一步,若不成功則查改錯誤。3、在工程文件夾中新建一個traffic.vwf的波形文件,導(dǎo)入工程端口,設(shè)置輸入波形,仿真得出輸出端口波形。驗證輸出端口波形是否實現(xiàn)用狀態(tài)機實現(xiàn)對十字路口交通燈控制。仿真波形如下圖所示。引腳分配圖:六、實驗小結(jié)通過此次實驗熟悉在QuartusII下設(shè)計十字路口交通燈控制路,并編譯、仿真驗證其功能。實驗七簡易數(shù)字時鐘系統(tǒng)實驗--------考試實驗一.實驗?zāi)康氖煜ぴ赒uartusII下設(shè)計簡易數(shù)字時鐘系統(tǒng)。二.實驗內(nèi)容在QuartusII下設(shè)計簡易數(shù)字時鐘系統(tǒng),并編譯、仿真驗證其功能。三、實驗要求(1)能正常計時(2)有暫停鍵,清零鍵(3)小時、分鐘、秒鐘可調(diào)(可加減)(4)整點報時四、程序清單moduleshizhong(CLK,CLR,HOUR,MIN,SEC,EN,HOUT,SW,MODE,up);inputCLK,EN,CLR,SW,up;outputHOUT,HOUR,MIN,SEC;output[3:0]MODE;reg[7:0]HOUR,MIN,SEC;regHOUT,CLK1;reg[3:0]MODE;//CLK為時鐘,EN為使能,也就是暫停按鈕,SW為調(diào)整MODE的按鈕//UP為調(diào)整時鐘的加按鈕也是減按鈕,當(dāng)MODE為1到6為加按鈕,當(dāng)MODE為7到12為減按鈕//HOUT為報警器的控制always@(CLKorup)//UP是時分秒加減按鈕,在MODE1到6為加,7到12為減 begin if(MODE==0)CLK1<=CLK;//**MODE0為時鐘自動走,其他MODE為暫停調(diào)整時鐘 elseCLK1<=up; endalways@(posedgeSW) //********調(diào)整模式,范圍為模式1到模式12begin if(SW) begin MODE<=MODE+1; if(MODE>12)MODE<=0; endend //********always@(posedgeCLK1orposedgeCLR) begin if(CLR) //*****清除時間,使其為00:00:00 begin SEC<=0;HOUR<=0;MIN<=0; end //***清除時間,使其為00:00:00 //下面為:時鐘自動運行代碼else begin if(!EN) if(MODE==0) begin if((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)&&(HOUR[3:0]==3))//**當(dāng)分為59,秒為59且時為的個位為3時,將進行下一部判斷 begin if(HOUR[7:4]==2)//**當(dāng)分為59,秒為59且時為23時,下一秒清零,且報警 begin HOUR[7:4]<=0; HOUR[3:0]<=0; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=1; end //**當(dāng)分為59,秒為59且時為23時,下一秒清零,且報警 else //***當(dāng)分為59,秒為59且小時不為23時,小時將加1,且報警 begin HOUR[3:0]<=HOUR[3:0]+1;HOUT<=1; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; end //***當(dāng)分為59,秒為59且小時不為23時,小時將加1,且報警 end elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)&&(HOUR[3:0]==9)) begin //***小時的十位進位是在:小時的個位為9,分鐘為59,秒為59 if(HOUR[7:4]<=1) begin HOUR[7:4]<=HOUR[7:4]+1; HOUR[3:0]<=0; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=0; end //***小時的十位進位是在:小時的個位為9,分鐘為59,秒為59 end elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)) begin //***小時的個位進位是在:分鐘為59,秒為59 HOUR[3:0]<=HOUR[3:0]+1; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=1; end //***小時的個位進位是在:分鐘為59,秒為59 elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)) begin //**分的十位進位是在:分鐘的個位為9,秒為59 MIN[7:4]<=MIN[7:4]+1; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; end //**分的十位進位是在:分鐘的個位為9,秒為59 elseif((SEC[3:0]==9)&&(SEC[7:4]==5)) begin //**分的個位進位是在:秒為59 MIN[3:0]<=MIN[3:0]+1; SEC[3:0]<=0; SEC[7:4]<=0; end //**分的個位進位是在:秒為59 elseif(SEC[3:0]==9) begin //**秒的十位進位是在:秒為59 SEC[7:4]<=SEC[7:4]+1; SEC[3:0]<=0; end //**秒的十位進位是在:秒為59 else begin //**秒的個位自動加1,不報警,報警其他地方已經(jīng)設(shè)置 SEC[3:0]<=SEC[3:0]+1;HOUT<=0; end//**秒的個位自動加1,不報警,報警其他地方已經(jīng)設(shè)置 end //**上面為:時鐘自動運行代碼 elseif(MODE==1)begin //**MODE1到6都是用UP來控制:時,分,秒的加if(SEC[3:0]>=9)//SEC[3:0]<=0;elseSEC[3:0]<=SEC[3:0]+1;endelseif(MODE==2)beginif(SEC[7:4]>=5)SEC[7:4]<=0;elseSEC[7:4]<=SEC[7:4]+1;endelseif(MODE==3)beginif(MIN[3:0]>=9)MIN[3:0]<=0;elseMIN[3:0]<=MIN[3:0]+1;endelseif(MODE==4)beginif(MIN[7:4]>=5)MIN[7:4]<=0;elseMIN[7:4]<=MIN[7:4]+1;endelseif(MODE==5)beginif(HOUR[7:4]==2&&HOUR[3:0]>=3)HOUR[

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論