




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
電子科技大學成都學院實驗報告冊課程名稱:EDA實驗與實踐姓名:學號:院系:微電子技術系專業(yè):電子科學與技術教師:2013年12月10日實驗一:奇數(shù)分頻一、實驗目的:掌握用VerilogHDL語言實現(xiàn)奇數(shù)分頻。二、實驗原理和內容:內容:編寫奇數(shù)分頻模塊,實現(xiàn)對輸入時鐘信號的17分頻,同時占空比為50%的方波信號。原理:采用了兩個計數(shù)器,一個由輸入時鐘上升沿觸發(fā),另一個由輸入時鐘下降沿觸發(fā),兩個分頻器的輸出信號正好有半個時鐘周期的相位差,最后將兩個計數(shù)器的輸出相或,即得占空比為50%的方波信號。三、實驗步驟:1、啟動QuartusII建立一個空白工程,然后命令為couter17.qpf2、新建VerilogHDL源程序文件counter17,v,輸入程序代碼并保存(完整的VerilogHDL程序參考程序清單),然后進行綜合編譯。若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更改錯誤,直至編譯成功為止。3、新建文件對話框VectorWareformfile,單擊ok關閉建立一個空的波形編輯器窗口,并改名為counter17.vwf保存。在所示Name選項卡內雙擊鼠標左鍵,彈出一對話框,選擇NodeFinder按鈕,再次彈出了一對話框,選擇list添加所有引腳,再單擊ok,然后編輯輸入節(jié)點波形,最后再Quartus主界面下選擇Tools--》SimulatorTool命令,彈出一對話窗,第一步:在Simulationinput選擇仿真文件counter17.vwf第二步:在Simulationmode選擇Functional第三步:點擊GenerateFunctionalSimulationNetlist生成仿真網表第四步:點擊左下角的Start開始仿真,結束后再點擊Open打開仿真后的波形文件。4、檢查是否正確,若錯誤,則修改程序,直到達到要求。四、實驗數(shù)據和結果:modulecouter17(clk,clk_out);inputclk;outputclk_out;reg[4:0]m,n;wireclk_out;regclk_out1,clk_out2;assignclk_out=(clk_out1|clk_out2);always@(posedgeclk)beginm<=m+1;if(m==16)m<=0;elseif(m==15)beginclk_out1=~clk_out1;endelseif(m==7)beginclk_out1=~clk_out1;endendalways@(negedgeclk)beginn<=n+1;if(n==16)n<=0;elseif(n==15)beginclk_out2=~clk_out2;endelseif(n==7)beginclk_out2=~clk_out2;endendendmodule仿真波形結果為:五、實驗總結:進過波形仿真的驗證可知,程序實現(xiàn)了對輸入信號的17分頻,且其占空比為50%。該程序只要稍加改動可以實現(xiàn)任意奇數(shù)分頻。實驗二:靜態(tài)數(shù)碼管顯示一、實驗目的:學習7段數(shù)碼管顯示譯碼器的設計,進一步了解、熟悉和掌握FPGA開發(fā)軟件QuartusII的使用方法及VerilogHDL的編程方法,學習LPM兆功能模塊的調用。實驗原理和內容:原理:實驗箱上有8個位碼DIG0~DIG7和8個段碼SEG0~SEG7分別與FPGA相應的引腳相連。只要DIG0~DIG7上一直輸出低電平“0”,則8個數(shù)碼管將顯示相同的數(shù)碼(因為8個LED數(shù)碼管的段碼線分別接到了同一引腳上),這樣8位動態(tài)LED數(shù)碼管就變成了靜態(tài)LED。內容:建立7段譯碼顯示模塊,用于控制LED數(shù)碼管的靜態(tài)顯示。要求在SmartSOPC實驗箱上的數(shù)碼管依次顯示0~9和A~F16個字符。實驗步驟:啟動QuartusII建立一個空白工程,然后命令為sled.qpf新建VerilogHDL源程序文件decl7s.v,輸入程序代碼并保存(完整的VerilogHDL程序參考程序清單3.4),然后進行綜合編譯。若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更改錯誤,直至編譯成功為止。選擇目標器件并對相應的引腳進行鎖定,將未使用的引腳設置為三態(tài)。信號引腳seg[0]169seg[1]170seg[2]167seg[3]168seg[4]165seg[5]166seg[6]163seg[7]164clock284、將sled.bdf設置為頂層實體。對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。5、連接硬件,下載程序。實驗數(shù)據和結果:modulesled(clk,seg,dig);inputclk;output[7:0]seg,dig;reg[7:0]segr;reg[7:0]dig=8'h00;regclk_out;reg[3:0]d;reg[31:0]count;regstate;assignseg=segr;parameters0=1'b0,s1=1'b1;always@(posedgeclk)//1sbegincount<=count+1;if(count==23999999)begincount<=0;clk_out<=~clk_out;endendalways@(posedgeclk_out)begincasex(state) s0:begind<=d+1; if(d==4'hf) begind<=4'he;state<=s1;end end s1:begind<=d-1; if(d==4'h0) begind<=4'h1;state<=s0;end end endcaseendalways@(d)begincase(d)4'd0:segr=8'hc0;//顯示4'd1:segr=8'hf9;//顯示1 4'd2:segr=8'ha4;//顯示2 4'd3:segr=8'hb0;//顯示3 4'd4:segr=8'h99;//顯示4 4'd5:segr=8'h92;//顯示5 4'd6:segr=8'h82;//顯示6 4'd7:segr=8'hf8;//顯示7 4'd8:segr=8'h80;//顯示8 4'd9:segr=8'h90;//顯示9 4'd10:segr=8'h88;//顯示A 4'd11:segr=8'h83;//顯示B 4'd12:segr=8'hc6;//顯示C 4'd13:segr=8'ha1;//顯示D 4'd14:segr=8'h86;//顯示E 4'd15:segr=8'h8e;//顯示F default:segr=8'hxx;endcaseendendmodule顯示:從0~F再到F~0循環(huán)顯示;五、實驗總結:由于LED靜態(tài)顯示需要占用較多的I/O口,且功耗較大,因此在大多數(shù)場合通常不采用靜態(tài)顯示,而采用動態(tài)掃描的方法來控制LED數(shù)碼管的顯示實驗三:顯示學號實驗目的:學習動態(tài)掃描顯示的原理及電路的設計。二、實驗原理和內容:內容:是建立數(shù)碼管動態(tài)掃描顯示模塊,具體的內容:A、在SmartSOPC實驗箱上完成LED數(shù)碼管的動態(tài)顯示“40720323”這八個數(shù)字。B、放慢掃描速度演示動態(tài)顯示的原理過程。原理:在SmartSOPC實驗箱上有八個數(shù)碼管,其中每個數(shù)碼管的8個段:a、b、c、d、e、f、g、h(h是小數(shù)點)都分別連到seg0~seg7,8個數(shù)碼管分別由8個選通信號dig0~dig7來選擇。被選通的數(shù)碼管顯示數(shù)據,其余的關閉。根據這種電路狀態(tài),8個數(shù)碼管全都顯示想要的數(shù)據,就必須使得8個選通信號dig0~dig7分別單獨選通,同時,在段信號輸入口加上希望在該對應數(shù)碼管上顯示的數(shù)據,于是隨著選通信號的掃描就能實現(xiàn)掃描顯示的目的。雖然每次只有一個LED顯示,但是只要掃描顯示速度夠快,由于人的視覺余輝效應,使我們仍會感覺所有的數(shù)碼管都在同時顯示。實驗步驟:1、啟動QuartusII建立一個空白工程,然后命令為snum.qpf2、新建VerilogHDL源程序文件snum.v,輸入程序代碼并保存(完整的VerilogHDL程序參考程序清單),然后進行綜合編譯。若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更改錯誤,直至編譯成功為止。3、新建圖形設計文件名為snum.bdf并保存。4、選擇目標器件并對相應的引腳進行鎖定,將未使用的引腳設置為三態(tài)。信號引腳信號引腳seg[0]169dig[1]159seg[1]170dig[2]162seg[2]167dig[3]161seg[3]168dig[4]215seg[4]165dig[5]216seg[5]166dig[6]213seg[6]163dig[7]214seg[7]164clock28dig[0]1605、對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。5、連接硬件,下載程序。四、實驗數(shù)據和結果:modulenum(clock,seg,dig);inputclock;output[7:0]seg,dig;reg[7:0]seg,dig;reg[32:0]coutsz;//分頻計數(shù)reg[2:0]cout;//數(shù)碼管計數(shù)regclk_out;//分頻后時鐘1msreg[31:0]disp=32'h40720323;reg[31:0]disp_dat;always@(posedgeclock)//1msbegincoutsz<=coutsz+1;if(coutsz==23999) begin clk_out<=~clk_out; coutsz<=0; endendalways@(posedgeclk_out)begin cout<=cout+1'b1;endalways@(posedgeclk_out)begincase(cout)//選擇掃描顯示數(shù)據3'h0:disp_dat=disp[31:28];3'h1:disp_dat=disp[27:24];3'h2:disp_dat=disp[23:20];3'h3:disp_dat=disp[19:16];3'h4:disp_dat=disp[15:12];3'h5:disp_dat=disp[11:8];3'h6:disp_dat=disp[7:4];3'h7:disp_dat=disp[3:0];endcasecase(cout) 3'h0:dig=8'b01111111;//選擇第1個數(shù)碼管 3'h1:dig=8'b10111111;//選擇第2個數(shù)碼管 3'h2:dig=8'b11011111;//選擇第3個數(shù)碼管 3'h3:dig=8'b11101111;//選擇第4個數(shù)碼管 3'h4:dig=8'b11110111;//選擇第5個數(shù)碼管 3'h5:dig=8'b11111011;//選擇第6個數(shù)碼管 3'h6:dig=8'b11111101;//選擇第7個數(shù)碼管 3'h7:dig=8'b11111110;//選擇第8個數(shù)碼管 endcaseendalways@(disp_dat)begincase(disp_dat) 4'd0:seg=8'hc0;//顯示0 4'd1:seg=8'hf9;//顯示1 4'd2:seg=8'ha4;//顯示2 4'd3:seg=8'hb0;//顯示3 4'd4:seg=8'h99;//顯示4 4'd5:seg=8'h92;//顯示5 4'd6:seg=8'h82;//顯示6 4'd7:seg=8'hf8;//顯示7 4'd8:seg=8'h80;//顯示8 4'd9:seg=8'h90;//顯示9 4'd10:seg=8'h88;//顯示A 4'd11:seg=8'h83;//顯示B4'd12:seg=8'hc6;//顯示C 4'd13:seg=8'ha1;//顯示D 4'd14:seg=8'h86;//顯示E 4'd15:seg=8'h8e;//顯示Fendcaseendendmodule顯示:(用肉眼看)同時顯示為:40720323五、實驗總結:動態(tài)掃描顯示時刷新率最好大于50Hz,即每顯示一輪的時間不超過20ms。每個數(shù)碼管顯示的時間不能太長也不能太短,時間太長會影響刷新率,導致總體顯示呈現(xiàn)閃爍的現(xiàn)象;時間太短發(fā)光二極管的電流導通時間也會就短,會影響總體的顯示亮度。一般控制在1ms左右最佳實驗四:按鍵消抖一、實驗目的:學習按鍵去抖動電路的硬件設計。二、實驗原理和內容:內容:通過SmartSOPC實驗箱上的按鍵KEY1(經過消抖)或KEY2(沒有消抖)控制數(shù)碼管顯示數(shù)字。對比有加消抖模塊和沒加消抖模塊電路的區(qū)別。原理:作為機械開關的鍵盤,在按鍵操作時,機械觸點的彈性及電壓突跳等原因,在觸點閉合或開啟的瞬間會出現(xiàn)電壓抖動。按鍵去抖動關鍵在于提取穩(wěn)定的低電平狀態(tài),濾除前沿、后沿抖動毛刺。對于一個按鍵信號,可以用一個脈沖對它經行采樣。如果連續(xù)三次采樣為低電平,可以認為信號已經處于鍵穩(wěn)定狀態(tài),這時輸出一個低電平按鍵信號。繼續(xù)采樣的過程中如果不能滿足連續(xù)三次采樣為低,則認為鍵穩(wěn)定狀態(tài)結束,這時輸出變?yōu)楦唠娖?。三、實驗步驟:1、啟動QuartusII建立一個空白工程,然后命令為key.qpf2、新建VerilogHDL源程序文件key.v,輸入程序代碼并保存(完整的VerilogHDL程序參考程序清單),然后進行綜合編譯。若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更改錯誤,直至編譯成功為止。3、新建圖形設計文件名為key.bdf并保存。4、選擇目標器件并對相應的引腳進行鎖定,將未使用的引腳設置為三態(tài)。信號引腳信號引腳seg[0]169dig[2]162seg[1]170dig[3]161seg[2]167dig[4]215seg[3]168dig[5]216seg[4]165dig[6]213seg[5]166dig[7]214seg[6]163key_in121seg[7]164key2122dig[0]160clock28dig[1]1595、對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。5、連接硬件,下載程序。四、實驗數(shù)據和結果:modulekey(clk,key1,key2,seg,dig);inputclk;inputkey1;inputkey2;output[7:0]seg;output[7:0]dig;reg[7:0]dig;reg[7:0]seg;wireclock;regkey_out;reg[31:0]count;regclk_out;reg[3:0]d;regdout1,dout2,dout3;andm1(clock,key2,key_out);always@(posedgeclk)//1msbegincount<=count+1;if(count==239999)begincount<=0;clk_out<=~clk_out;endendalways@(posedgeclk_out)//bouncebegindout1<=key1;dout2<=dout1;dout3<=dout2;beginkey_out<=(dout1|dout2|dout3);endendalways@(posedgeclock)beginbegind<=0;d<=d+1;dig=8'b01111111;endbegincase(d)4'h0:seg=8'hc0; 4'h1:seg=8'hf9; 4'h2:seg=8'ha4; 4'h3:seg=8'hb0; 4'h4:seg=8'h99; 4'h5:seg=8'h92; 4'h6:seg=8'h82; 4'h7:seg=8'hf8; 4'h8:seg=8'h80; 4'h9:seg=8'h90; 4'ha:seg=8'h88; 4'hb:seg=8'h83; 4'hc:seg=8'hc6; 4'hd:seg=8'ha1; 4'he:seg=8'h86; 4'hf:seg=8'h8e;endcaseendendendmodule顯示:當按下key1后數(shù)碼管顯示數(shù)字自動加1,而當按下key2后數(shù)碼管顯示數(shù)字不是依次加1,而是一個隨機數(shù)。實驗總結:當按下KEY1時,能穩(wěn)定顯示0~F,而按下KEY2時,數(shù)碼管顯示數(shù)字很不穩(wěn)定消抖電路的采樣時鐘要實際應用可以靈活改變,因為按鍵觸發(fā)的時間一般為幾百毫秒,干擾毛刺脈寬一般為幾百毫秒到幾毫秒,所以采樣時鐘的周期一般為幾毫秒實驗五:序列檢測器一、實驗目的:掌握利用有限狀態(tài)機實現(xiàn)一般時序邏輯分析的方法,了解一般狀態(tài)機的設計與應用。二、實驗原理和內容:內容:設計一序列檢測器,進行波形仿真驗證。原理:當序列檢測器連續(xù)收到一組串行二進制碼后,如果這組序列碼與檢測器中預先設置的序列碼相同,則輸出1,否則輸出0.這種檢測的關鍵是必須收到連續(xù)的正確碼,所以要求檢測器必須對前一次接收到的序列碼做記憶分析,直到在連續(xù)檢測中所收到的每一位二進碼都與預置序列碼對應相同。在檢測過程中,只要有一位不相等都在回到初始狀態(tài)重新開始檢測。實驗步驟:1、啟動QuartusII建立一個空白工程,然后命令為schk.qpf2、新建VerilogHDL源程序文件schk,v,輸入程序代碼并保存(完整的VerilogHDL程序參考程序清單),然后進行綜合編譯。若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更改錯誤,直至編譯成功為止。3、新建文件對話框VectorWareformfile,單擊ok關閉建立一個空的波形編輯器窗口,并改名為schk.vwf保存。在所示Name選項卡內雙擊鼠標左鍵,彈出一對話框,選擇NodeFinder按鈕,再次彈出了一對話框,選擇list添加所有引腳,再單擊ok,然后編輯輸入節(jié)點波形,最后再Quartus主界面下選擇Tools--》SimulatorTool命令,彈出一對話窗,第一步:在Simulationinput選擇仿真文件schk.vwf第二步:在Simulationmode選擇Functional第三步:點擊GenerateFunctionalSimulationNetlist生成仿真網表第四步:點擊左下角的Start開始仿真,結束后再點擊Open打開仿真后的波形文件。4、檢查是否正確,若錯誤,則修改程序,直到達到要求。四、實驗數(shù)據和結果:moduleschk(rst,clk,state,In,Out);inputrst,clk,In;outputOut;output[2:0]state;reg[2:0]state;regOut;parameters0=3'd0,s1=3'd1,s2=3'd2,s3=3'd3,s4=3'd4,s5=3'd5;always@(posedgeclk)beginif(!rst)Beginstate<=s0;Out<=0;endelsecasex(state)s0:beginif(In==0)beginstate<=s1;Out<=0;endelsebeginstate<=s0;Out<=0;endends1:beginif(In==0)beginstate<=s0;Out<=0;endelsebeginstate<=s2;Out<=0;endends2:beginif(In==0)beginstate<=s1;Out<=0;endelsebeginstate<=s3;Out<=0;endends3:beginif(In==0)beginstate<=s4;Out<=0;endelsebeginstate<=s0;Out<=0;endends4:beginif(In==0)beginstate<=s1;Out<=0;endelsebeginstate<=s5;Out<=1;endends5:beginif(In==0)beginstate<=s0;Out<=0;endelsebeginstate<=s3;Out<=0;endenddefaultstate<=s0;endcaseendendmodule波形仿真結果為:五、實驗總結:該代碼經過仿真驗證,能夠檢測序列01101。狀態(tài)機是VerilogHDL里重要的思想,應該學會靈活運用。要實現(xiàn)其他序列只需畫其狀態(tài)轉換圖,將狀態(tài)機的部分修改即可。實驗六:花樣流水燈實驗目的:熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法及VerilogHDL的編程方法,學習簡單的時序電路的設計和硬件測試。實驗原理和內容:內容:建立可用于控制LED流水燈的簡單硬件電路,要求在SmartSOPC實驗箱上實驗花樣流水燈。原理:建立分頻模塊和花樣顯示模塊,分頻模塊實現(xiàn)LED燈顯示的頻率,花樣顯示模塊實現(xiàn)LED燈如何顯示。實驗步驟:啟動QuartusII建立一個空白工程,命名為hyledwater.qpf。新建VerilogHDL源程序文件hyledwater.v,輸入程序代碼并保存,然后進行綜合編譯。若在編譯過程中發(fā)生錯誤,則找出并更正,直至編譯成功為止。由hyledwater.v生成名為hyledwater.bsf的模塊符號文件,將光盤中的int_div.bsf和int_div.v拷貝到工程目錄下。新建圖形文件命名為hyledwater.bdf并保存,在空白處雙擊鼠標左鍵后分別將project下的hyledwater和int_div模塊放入圖形文件hyledwater.bdf中,加輸入,輸出引腳并命名。按下圖所示進行連接選擇目標器件并對相應的引腳進行鎖定,在這里所選擇的器件為Altera公司Cyclone系列的EP1C12Q240C8芯片,引腳設置如下表,未使用的引腳設為三態(tài)輸入。信號引腳Led[0]50Led[1]53Led[2]54Led[3]55Led[4]176Led[5]47Led[6]48Led[7]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒吧車輛管理制度規(guī)定
- 酒店崗位身高管理制度
- 公司管理制度百度文
- 物業(yè)公司打魚管理制度
- 路橋公司收入管理制度
- 房東管理日常管理制度
- 規(guī)劃實施閉環(huán)管理制度
- 銷售人員質量管理制度
- 蛋糕車間衛(wèi)生管理制度
- 農村供水項目規(guī)?;l(fā)展可行性分析
- 2023年生態(tài)環(huán)境綜合行政執(zhí)法考試參考題庫(400題)
- 二年級數(shù)學歐利和他的懶弟弟優(yōu)秀課件
- 2023年春江蘇開放大學《江蘇紅色文化》過程性考核作業(yè)一二和綜合大作業(yè)+參考答案
- 材料物理知到章節(jié)答案智慧樹2023年南開大學
- 花城版音樂課時2-第2課 兩首風格不同的臺灣民謠-《放紙鷂》-課件
- 馬原第七章共產主義崇高理想及其最終實現(xiàn)
- 壓電陶瓷完整版課件
- 獲獎QC小組活動-提高苗木栽植成活率
- 青島版科學(2017)六三制六年級下冊14.《有趣的碰碰球》教學課件
- GB/T 36876-2018中小學校普通教室照明設計安裝衛(wèi)生要求
- GB/T 14273-1993旋轉軸唇形密封圈性能試驗方法
評論
0/150
提交評論