




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實 驗 報 告課程名稱: EDA技術實用教程 指導老師: 學生姓名: 學 號: 專業班級: 通信工程134班 2015年 12月 7 日目 錄實驗一、全加器設計實驗實驗二、模可變計數器設計實驗實驗三、序列信號發生和檢測器設計實驗實驗四、交通燈控制器設計實驗實驗五、多功能數字鐘設計實驗實驗六、出租車計費器設計實驗本課程總結一、全加器設計實驗(1) 實驗目的1、 熟悉建立文件夾和建立工程的整個過程。2、 學會建立波形文件。3、 學會將文件下載到板子上。(2) 設計要求完成設計、仿真、調試、下載、硬件測試等環節,在EDA實驗裝置上實現模可變計數器功能,具體要求如下:1、利用書上的程序,完成實驗目的,
2、實現兩個一位二進制數的相加,并將進位輸出。(3) 主要儀器設備1、微機1臺2、QuartusII集成開發軟件1套3、EDA實驗裝置 1套(4) 實驗思路由于要用到例化語句,所以需要將文件都放在一個文件夾里然后創建工程。選擇文件夾和名稱。添加文件選擇實驗室用的芯片選擇仿真工具半加器真值表如下ABSOCO0000011010101101其中A和B為輸入信號,SO為和值輸出,CO為進位輸出。程序如下。module banjia(A,B,SO,CO); input A,B; output SO,CO; assign SO=AB; assign CO=A&B;Endmodule由真值表可得輸入信
3、號A和B異或可作為和值輸出,相與可作為進位輸出。全加器真值表如下AinBinCinCoutSum0000001001100011101000101011101011011111ain和bin為輸入信號,cin為進位信號與ain和bin一起相加,cout為進位出書,sum為和值輸出。程序如下。module quanjia(ain,bin,cin,cout,sum); output cout,sum; input ain,bin,cin; wire net1,net2,net3; banjia U1(ain,bin,net1,net2); banjia U2(.A(net1),.SO(sum),.
4、B(cin),.CO(net3); or U3(cout,net2,net3);Endmodule這里用了例化語句調用了一個半加器的模塊讓ain與bin通過半加器的相加之后的和值net1作為一個輸入信號再與進位信號cin相加作為和值sum,ain與bin相加產生的進位信號net2和ain與bin的和值net1與cin相加產生的進位信號net3相或作為整體的進位輸出cout,便可完成真值表的要求。(5) 時序仿真添加文件添加引腳然后對輸入信號進行賦值,賦值為周期性信號。編譯后保存。仿真后效果如下將程序燒入板子如下(6) 實驗總結因為這個是第一次進EDA實驗室,對軟件硬件都不了解。遇到很多的簡單問
5、題,也就是操作上的不熟練。對照書本上的步驟一步一步操作,才能完成。真應該加強動手能力。通過這次實驗理解了全加器的原理和例化語句的使用,初步對EDA實驗產生了興趣。二、模可變計數器設計(一) 實驗目的1、 進一步熟悉實驗裝置和Quartus軟件的使用;2、 進一步熟悉和掌握EDA設計流程;3、 學習簡單組合、時序電路的EDA設計;4、 學習計數器中二進制碼到BCD碼的轉換技巧;5、學習實驗裝置上數碼管的輸出方法。(二) 設計要求完成設計、仿真、調試、下載、硬件測試等環節,在EDA實驗裝置上實現模可變計數器功能,具體要求如下:1、 設置一個按鍵控制改變模值,按鍵按下時模為10-99之間(具體數值自
6、行確定)的數,沒按下時模為100-199之間(具體數值自行確定)的數;2、 計數結果用三位數碼管十進制顯示。(三) 主要儀器設備1、微機1臺2、QuartusII集成開發軟件1套3、EDA實驗裝置 1套(四) 實驗思路總體程序如下module jishuqi (CLK,rst,M,SG,en,q,d);input CLK,rst,en;input M;output SG;reg7:0 cnt;reg clk1;reg7:0 SG;reg sel;output reg11:0 q;reg11:0 model;reg3:0 a;output reg d;wire3:0 gw,sw,bw;assig
7、n gw3:0=q3:0;assign sw3:0=q7:4; assign bw3:0=q11:8;always (M)if (M) model=12'b000000110000;else model=12'b000100000000; always (posedge CLK)begin cnt=cnt+1; if (cnt=200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0; endalways (posedge CLK or negedge
8、 rst)beginif(!rst)q=0;elseif(en) beginif(q<model)begin if (gw=9) begin q=q+7; if (sw=9) q=q+96; end else q=q+1; endelse q=0;end endalways (q)begin if(q<model) d<=0; else d<=1;endalways (sel) begin case (sel) 0: a=bw; 1: a=sw; 2: a=gw; default: a=0; endcase case (a)0:SG<=8'b0011111
9、1; 1:SG<=8'b00000110;2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101;6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; default: SG=8'b11111111; endcase endendmodule分頻模塊分頻模塊由時鐘頻率的分頻
10、作為計數脈沖,每200個系統脈沖有一個技術脈沖,同時可以利用系統脈沖進行循環選擇SEL來進行循環掃碼。程序如下 always (posedge CLK)begin cnt=cnt+1; if (cnt=200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0; 選擇模塊由M選擇,M為1時模是30,M為0時模為100。always (M)if (M) model=12'b000000110000;else model=12'b000100000000;
11、計數模塊計數模塊如下,由于q為16進制數,我們需要的輸出為BCD碼,故進行調整。平常時q來一個脈沖加1,當加到個位為9時,也就是1001,將其加7變為16也就是0,實現了個位由9到0的BCD計數,同時也會向十位進1。當十位和個位同時,為9時,q位加96也就是十位加6,再加上個位向十位進的1就是加7,十位會清零同時個位也會清零,同時向百位進1,實現了正常的十進制BCD碼計數。Rst則為清零信號,en為使能信號。always (posedge CLK or negedge rst)beginif(!rst)q=0;elseif(en) beginif(q<model)begin if (gw
12、=9) begin q=q+7; if (sw=9) q=q+96; end else q=q+1; endelse q=0;end End當計數到頂后有個標志位d標志是否計到頂。always (q)begin if(q<model) d<=0; else d<=1;end循環掃碼模塊如下,由于sel的變化頻率和系統時鐘相同,所以肉眼辨別不出來在跳動,可以通過其分別選擇數碼管并將個位十位百位呈現在數碼管上,同時配有譯碼程序。always (sel) begin case (sel) 0: a=bw; 1: a=sw; 2: a=gw; default: a=0; endcas
13、e case (a)0:SG<=8'b00111111; 1:SG<=8'b00000110;2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101;6:SG<=8'b01111101; 7:SG<=8'b00000111; (五) 實驗截圖仿真時用CLK代替分頻頻率便于觀察.總體圖Rst可以實現計數的清零。當M為1時實現了模30的計數,同時標志位為1當M為0時實現了模100的計數,同時標志
14、位為1使能信號en為0時計數保持不變(六) 實驗總結初步進行了自己設計程序和仿真一系列工作,加深了對設計過程和語句使用的理解。進而對軟硬件的操作使用都有了進一步的熟練,遇到的基礎問題也能想辦法去解決了,不像第一次那樣手足無措了。語法語句也大概有了了解。三、序列信號發生和檢測器設計 (一) 實驗目的1、 進一步熟悉EDA實驗裝置和Quartus軟件的使用方法;2、 學習有限狀態機法進行數字系統設計;3、 學習使用原理圖輸入法進行設計。(二) 設計要求完成設計、仿真、調試、下載、硬件測試等環節,在EDA實驗裝置上實現一個串行序列信號發生器和一個序列信號檢測器的功能,具體要求如下:1、 先用設計01
15、1101101100100100序列信號發生器,其最后6BIT數據用LED顯示出來;2、 再設計一個序列信號檢測器,檢測上述序列信號,若檢測到串行序列“110110”則輸出為“1”,否則輸出為“0”;(三) 主要儀器設備1、微機1臺2、QuartusII集成開發軟件1套3、EDA實驗裝置 1套(四) 實驗思路首先畫出狀態轉移圖總體程序如下module xulieji2(clk,rst,en,date,SOUT);parameter s0=1,s1=2,s2=3,s3=4,s4=5,s5=6,s6=7;input clk,rst,en;output date,SOUT;wire SOUT;reg
16、8:0 cnt;reg6:0 ST,NST;reg5:0 date;reg16:0 sdate;assign SOUT=(NST=s6);always ( posedge clk or negedge rst )beginif(!rst) beginST<=s0;date<=6'b000000;sdate<=17'b011101101100100100;cnt<=16;endelse if(en) begin ST<=NST;date5:1<=date4:0;date0<=sdatecnt;cnt<=cnt-1;endelse c
17、nt<=0;case(ST)s0: begin if(date0=1'b1) NST<=s1;else NST<=s0;ends1: begin if(date0=1'b1) NST<=s2;else NST<=s0;ends2: begin if(date0=1'b0) NST<=s3;else NST<=s2;ends3: begin if(date0=1'b1) NST<=s4;else NST<=s0;ends4: begin if(date0=1'b1) NST<=s5;else NS
18、T<=s0;ends5: begin if(date0=1'b0) NST<=s6;else NST<=s2;ends6: begin if(date0=1'b0) NST<=s0;else NST<=s4;enddefault: NST<=s0;endcase endendmodule這里用到了狀態機技術,狀態機可以方便的設置程序滿足什么條件然后去往什么狀態,利用狀態機可以實現檢測到110110時的狀態,同時可以在不滿足時準確的調往正確的狀態以便于下一步的判斷。狀態機簡寫為FSM(Finite State Machine),主要分為2大類:
19、第一類,若輸出只和狀態有關而與輸入無關,則稱為Moore狀態機;第二類,輸出不僅和狀態有關而且和輸入有關系,則稱為Mealy狀態機。要特別注意的是,因為Mealy狀態機和輸入有關,輸出會受到輸入的干擾,所以可能會產生毛刺(Glitch)現象,使用時應當注意。事實上現在市面上有很多EDA工具可以很方便的將狀態圖的描述轉換成可以綜合的程序代碼。狀態機可歸納為4個要素,即現態、條件、動作、次態。這樣的歸納,主要是出于對狀態機的內在因果關系的考慮。“現態”和“條件”是因,“動作”和“次態”是果。詳解如下:現態:是指當前所處的狀態。條件:又稱為“事件”,當一個條件被滿足,將會觸發一個動作,或者執行一次狀
20、態的遷移。動作:條件滿足后執行的動作。動作執行完畢后,可以遷移到新的狀態,也可以仍舊保持原狀態。動作不是必需的,當條件滿足后,也可以不執行任何動作,直接遷移到新狀態。次態:條件滿足后要遷往的新狀態。“次態”是相對于“現態”而言的,“次態”一旦被激活,就轉變成新的“現態”了。賦值模塊parameter s0=1,s1=2,s2=3,s3=4,s4=5,s5=6,s6=7;input clk,rst,en;output date,SOUT;wire SOUT;reg8:0 cnt;reg6:0 ST,NST;reg5:0 date;reg16:0 sdate;assign SOUT=(NST=s6
21、);s1到s6為狀態機的不同狀態,clk為控制序列輸入的信號,rst為清零信號,en為使能信號,SOUT為檢測到序列110110時的輸出信號1,cnt為控制哪一位數據進行檢測的數,ST和NST為狀態機現在的狀態和下一時刻將要到來的狀態,date為檢測到的6為數據,sdate為輸入序列,當檢測到狀態為s6時,通過assign SOUT=(NST=s6)可以讓SOUT輸出為1.輸入序列模塊always ( posedge clk or negedge rst )beginif(!rst) beginST<=s0;date<=6'b000000;sdate<=17'
22、b011101101100100100;cnt<=16;endelse if(en) begin ST<=NST;date5:1<=date4:0;date0<=sdatecnt;cnt<=cnt-1;endelse cnt<=0;Clk為序列輸入信號,rst為清零信號,rst為低電平時將初始狀態設為s0,初始6位待檢測數據為000000,17位輸入序列為011101101100100100,先從最高位從左往右輸入,所以cnt開始時為16。en為使能信號,當en為1時可以將下一狀態NST賦予現在狀態ST,同時將序列進行移位,待檢測信號進行輸入,同時cnt減1
23、指向下一數據。如果en為0,則保持現在的狀態不進行工作。狀態轉移模塊case(ST)s0: begin if(date0=1'b1) NST<=s1;else NST<=s0;ends1: begin if(date0=1'b1) NST<=s2;else NST<=s0;ends2: begin if(date0=1'b0) NST<=s3;else NST<=s2;ends3: begin if(date0=1'b1) NST<=s4;else NST<=s0;ends4: begin if(date0=1
24、39;b1) NST<=s5;else NST<=s0;ends5: begin if(date0=1'b0) NST<=s6;else NST<=s2;ends6: begin if(date0=1'b0) NST<=s0;else NST<=s4;enddefault: NST<=s0;endcase endEndmodule通過這個狀態轉移語句可以正確的實現檢測到110110便可使狀態到達s6,即便序列為110110110時也是可以的,原理附狀態轉移圖。(五) 時序仿真可以清楚的看出,當檢測到110110序列時sout便為1,即便
25、是連續的110110110也可以檢測出來,證明了這個程序的正確性。(六) 實驗總結要求畫出狀態轉移圖,我把書上的狀態機部分仔細閱讀,參考了書上的程序編寫了這個程序,一開始檢查的時候不符合要求,后來檢查是狀態轉移圖弄錯了,修改之后進行仿真,便得到了正確的結果。狀態機在EDA的程序設計中應用廣泛。經過這次實驗深刻掌握了狀態機技術和狀態轉移圖的畫法,進一步激發了我對eda的興趣。四、 交通燈控制器設計 (一) 實驗目的1、 學習與日常生活相關且較復雜數字系統設計;2、 進一步熟悉EDA實驗裝置和Quartus軟件的使用方法;3、 學習二進制碼到BCD碼的轉換;(二) 設計要求完成設計、仿真、調試、下
26、載、硬件測試等環節,在型EDA實驗裝置上實現一個由一條主干道和一條鄉間公路的匯合點形成的十字交叉路口的交通燈控制器功能,具體要求如下:1、 有MR(主紅)、MY(主黃)、MG(主綠)、CR(鄉紅)、CY(鄉黃)、CG(鄉綠)六盞交通燈需要控制;2、 交通燈由綠轉紅前有4秒亮黃燈的間隔時間,由紅轉綠沒有間隔時間;3、 鄉間公路右側各埋有一個串連傳感器,當有車輛準備通過鄉間公路時,發出請求信號S=1,其余時間S=0;4、 平時系統停留在主干道通行(MGCR)狀態,一旦S信號有效,經主道黃燈4秒(MYCR)狀態后轉入鄉間公路通行(MRCG)狀態,但要保證主干道通行大于一分鐘后才能轉換;5、 一旦S信
27、號消失,系統脫離MRCG狀態,即經鄉道黃燈4秒(MRCY)狀態進入MGCR狀態,即使S信號一直有效,MRCG狀態也不得長于20秒鐘;6、 控制對象除紅綠燈之外,還包括分別在主干道和鄉間公路各有一個兩位十進制倒計時數碼管顯示。(三) 主要儀器設備1、微機1臺2、QuartusII集成開發軟件1套3、EDA實驗裝置 1套(四) 實驗思路總體程序如下程序大體分為S=1與S=0的情況,不同情況對應不同處理方法,每一次COUNTER均為0時根據S的1和0來改變數碼管的計數的燈的情況,具體原理在注釋中有。module jiaotong (S,clk,LED,COUNTER,LED1,sel); input
28、 clk; reg CPB; /時鐘input S; output 2:0 sel;reg 2:0 sel; /指明鄉村路口是否有汽車的通行信號reg 3:0a;output 5:0 LED; /信號燈的顯示output 7:0 LED1; /顯示時間的十位output 8:0 COUNTER; /數碼的顯示reg 5:0 LED;reg 7:0 COUNTER;reg 7:0 LED1;reg 35:0i;reg flag1;reg flag2; reg 7:0 cnt; initialbegin flag2='b0; flag1='b0; COUNTER7:0='D
29、60; LED5:0<=6'b001100; /主干道是綠燈鄉村道是紅燈end always (posedge clk) begin cnt=cnt+1; if (cnt=1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0;endalways (posedge clk) begin if (sel<1) sel=sel+1; else sel=0; end /sel為數碼管選擇always (posedge clk)begin if(COUNTER3:0=4'D0 && COUNTER7:4=
30、4'D0) /在數碼管是60時判斷是否有信號s的出現 begin if(S)/S為1即鄉村想中斷的情況下 begin if(LED5:0=6'b001100) begin LED5:0<=6'b010100; /表示主干道是黃燈而鄉村是紅燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; end else if(LED5:0=6'b010100) /表示4秒鐘過后的鄉村開始通路了 begin LED5:0<=6'b100001; /表示主干道是紅燈而鄉村是綠燈 COUNTE
31、R7:4<=4'D2; /顯示的是20秒鐘 COUNTER3:0<=4'D0; flag1=1'b1; end else if(LED5:0='b100001) /表示20秒過后主干道通行了 begin LED5:0<='b100010; /表示主干道是紅燈而鄉村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag1='b0; end else if(LED5:0='b100010) begin LED5:0<='b00110
32、0; /主干道是綠燈鄉村道是紅燈 COUNTER7:4<=4'D6; /顯示的是60秒鐘 COUNTER3:0<=4'D0; end end else /S為0即鄉村不想中斷的情況下 begin if(LED5:0='b010100) /表示4秒鐘過后的鄉村開始通路了 begin LED5:0<='b100001; /表示主干道是紅燈而鄉村是綠燈 COUNTER7:4<=4'D2; /顯示的是20秒鐘 COUNTER3:0<=4'D0; flag1=1'b1; /表示可以開始進行20秒的檢查是否鄉村 end
33、else if(LED5:0='b100001) /表示20秒過后主干道可以通行了 begin LED5:0<='b100010; /表示主干道是紅燈而鄉村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag1='b0; endelse if(LED5:0='b100010) /表示4秒過后主干道通行了 begin LED5:0<='b001100; /表示主干道是綠燈而鄉村是紅燈 COUNTER7:4<=4'D6; /顯示的是60秒鐘 COUNT
34、ER3:0<=4'D0;end else if(LED5:0='b001100) begin flag2='b1;/60秒過后才可以讓鄉村中斷主干道 LED5:0<='b001100;/主干道是綠燈鄉村道是紅燈 COUNTER7:4<=4'D6; /再次顯示60秒鐘 COUNTER3:0<=4'D0; end end end else begin if(S && (flag2='b1) /表示鄉村道路有信號并且可以讓鄉村道路通行了,鄉村想中斷 begin LED5:0<='b01010
35、0; /表示主干道是黃燈而鄉村是紅燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag2='b0; end else begin if(COUNTER3:0=4'D0) /正常計數 begin COUNTER7:4=COUNTER7:4-4'D1; COUNTER3:0=4'D9; end else COUNTER3:0=COUNTER3:0-4'D1; end end if(flag1='b1) begin/鄉村不想綠燈了,想中斷其20秒的綠燈 if(!S) begi
36、n flag2='b0; flag1='b0; LED5:0<='b100010; /表示主干道是紅燈而鄉村是黃燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; end endend always (sel) begin case (sel) 0: a=COUNTER7:4; /1數碼管為十位 1: a=COUNTER3:0; default: a=0; endcase case (a) 0:LED17:0='b00111111; 1:LED17:0='b00000110; 2
37、:LED17:0='b01011011; 3:LED17:0='b01001111; 4:LED17:0='b01100110; 5:LED17:0='b01101101; 6:LED17:0='b01111101; 7:LED17:0='b00000111; 8:LED17:0='b01111111; 9:LED17:0='b01101111; default: LED17:0=8'b11111111; endcase end endmodule 賦值模塊input clk; reg CPB; /時鐘input S; o
38、utput 2:0 sel;reg 2:0 sel; /指明鄉村路口是否有汽車的通行信號 reg 3:0a;output 5:0 LED; /信號燈的顯示output 7:0 LED1; /顯示時間的十位output 8:0 COUNTER; /數碼的顯示reg 5:0 LED;reg 7:0 COUNTER;reg 7:0 LED1;reg 35:0i;reg flag1;reg flag2; reg 7:0 cnt; initialbegin flag2='b0; flag1='b0; COUNTER7:0='D60; LED5:0<=6'b00110
39、0; Clk為系統時鐘1KHz,可以作為掃描頻率,將其分頻之后的CPB作為秒的計數頻率,S為鄉道是否想中斷主道的信號,sel為循環掃描信號,LED為信號燈的顯示,LED1為顯示時間的十位,COUNTER為時間數碼的顯示。Flag1和flag2的處理方法當flag為1即在鄉道20秒運行的過程中才為1,這時配合語句if(flag1='b1) begin/鄉村不想綠燈了,想中斷其20秒的綠燈 if(!S) begin flag2='b0; flag1='b0; LED5:0<='b100010; /表示主干道是紅燈而鄉村是黃燈 COUNTER7:4<=4&
40、#39;D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4;就是在這時一旦檢測到S為0即鄉道沒車的時候,讓鄉道黃燈轉入主道60秒的計時。當flag2為1即在主道60之后才為1,這時配合語句 if(S && (flag2='b1) /表示鄉村道路有信號并且可以讓鄉村道路通行了,鄉村想中斷 begin LED5:0<='b010100; /表示主干道是黃燈而鄉村是紅燈 COUNTER7:4<=4'D0; /顯示的是4秒鐘 COUNTER3:0<=4'D4; flag2='b0; End即S=1同時fla
41、g2為1時才可轉入鄉道的20秒計時。通過這兩個信號正確地完成需要的功能。分頻模塊輸出CPB為1秒的信號always (posedge clk) begin cnt=cnt+1; if (cnt=1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0;數碼管掃描模塊循環掃碼模塊如下,由于sel的變化頻率和系統時鐘相同,所以肉眼辨別不出來在跳動,可以通過其分別選擇數碼管并將個位十位百位呈現在數碼管上,同時配有譯碼程序。always (sel) begin case (sel) 0: a=COUNTER7:4; /1數碼管為十位 1: a=COU
42、NTER3:0; default: a=0; endcase case (a) 0:LED17:0='b00111111; 1:LED17:0='b00000110; 2:LED17:0='b01011011; 3:LED17:0='b01001111; 4:LED17:0='b01100110; 5:LED17:0='b01101101; 6:LED17:0='b01111101; 7:LED17:0='b00000111; 8:LED17:0='b01111111; 9:LED17:0='b01101111;
43、default: LED17:0=8'b11111111; endcase end endmodule (五) 時序仿真總體圖在主道開始60秒的計數過程中即使S為1也不會轉入鄉道運行在主道60秒計數結束后可以轉入鄉道的20秒,在鄉道的20秒過程中如果S為0則又返回主道計數(六) 實驗總結這次實驗是從EDA實驗以來遇到的最復雜的代碼,其中的if語句眾多,而且嵌套也多,開始的時候摸不到頭腦,編譯的時候在這些語句上也是出錯最多了。還好有一定的代碼基礎,我就在此基礎上進行了一些修改和改進,仿真也非常的成功,去實驗室進行燒程序進板子的時候,也很快。所以,這次實驗的驗收也很快。這也大大的促使我學習
44、的動力,就想在下一次的實驗中,學到更多。五、 多功能數字鐘設計 (一) 實驗目的1、 學習綜合且較復雜數字系統設計; 2、 學習多層次、多模塊數字系統設計;3、 學習數碼管掃描顯示電路設計;(二) 設計要求完成設計、仿真、調試、下載、硬件測試等環節,在型EDA實驗裝置上由簡單到復雜實現多功能數字鐘功能,具體要求如下:1、 數碼管掃描顯示時、分、秒;2、 具有正常計時和調時、調分、調秒等校時功能;3、 經設置應具有整點報時功能;4、 經設置應具有跑表功能;5、 經設置應具有鬧鐘功能;以下部分為擴展要求:6、 音樂鬧鐘功能;7、 液晶顯示:年、月、日、時、分、秒、星期;8、 自動閏年、閏月的萬年歷
45、功能;(三) 主要儀器設備1、微機1臺2、QuartusII集成開發軟件 1套3、EDA實驗裝置 1套(四) 實驗思路整個程序采用模塊化的設計方法。基本計數模塊整個程序采用BCD碼計數,即每一位要顯示的數據都用3位二進制數來表示。根據設計要求,技術模塊應有模60,模24和模100的計數,可以用模10的模6的和模24的三個模塊通過例化元件一步步實現,而且計數模塊應具有計數清零和鎖存的功能。模10通過使能端en完成計數和鎖存ncr清零,cp為計數脈沖,Q為數據輸出。module counter10(Q,nCR,EN,CP); input nCR,EN,CP; output 3:0 Q; reg 3:0 Q;always (posedge CP or negedge nCR) begin if (nCR) Q<=4'b0000; else if (EN) Q<=Q; else if ( Q=4'b1001) Q<=4'b0000; else Q<=Q+1'b1; end endmodule模6原理與模10相同module counter6(Q,nCR,EN,CP); input nCR,EN,CP; output 3:0 Q; reg 3:0 Q;alwa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業戰略管理考試試卷及答案2025年
- 2025年心理治療師考試試題及答案
- 2025年新材料應用與開發職業考核試題及答案
- 2025年圖形設計專業畢業考試試卷及答案
- 2025年全國高考語文模擬卷及答案
- 2025年法治教育與法律意識考試試卷及答案
- 2025年法醫學專業考試試題及答案
- 2025年公共衛生與預防醫學考試題及答案
- 2025年環境倫理學相關知識考試試卷及答案
- 2025年國際法碩士研究生入學考試模擬題及答案
- 指南針私享家版出租價格
- 一年級100以內計算練習題(口算、豎式)-100以內的計算題
- 2023-2024年整形外科學(副高)考試參考題庫(真題考點版)帶答案解析
- 廣東省中山市八年級下學期期末考試語文試題
- 【淺析如何將游戲化課程融入幼兒一日活動之中2600字】
- 雙減背景下高中語文優化作業設計實踐與研究
- 《企業財務現狀的杜邦分析-以大疆科技為例》開題報告(含提綱)2400字
- 道德與法治六年級下冊7《多元文化 多樣魅力》(課件)
- 中醫治療頸椎病課件完整版
- KJ251煤礦人員定位系統-設計方案
- 消防接警調度崗位理論知識考試題庫匯總-上(單選題)
評論
0/150
提交評論