數字電路時鐘設計verilog語言編寫_第1頁
數字電路時鐘設計verilog語言編寫_第2頁
數字電路時鐘設計verilog語言編寫_第3頁
數字電路時鐘設計verilog語言編寫_第4頁
數字電路時鐘設計verilog語言編寫_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、電子線路設計與測試實驗報告一、實驗名稱多功能數字鐘設計二、 實驗目的1.掌握可編程邏輯器件的應用開發(fā)技術設計輸入、編譯、仿真和器件編程;2.熟悉一種EDA軟件使用;3.掌握Verilog設計方法;4.掌握分模塊分層次的設計方法;5.用Verilog完成一個多功能數字鐘設計。三、 設計內容及要求1基本功能Ø 具有“秒”、“分”、“時”計時功能,小時按24小時制計時。Ø 具有校時功能,能對“分”和“小時”進行調整。2.擴展功能Ø 仿廣播電臺正點報時。在59分51秒、53秒、55秒、57秒發(fā)出低音512Hz信號,在59分59秒時發(fā)出一次高音1024Hz信號,音響持續(xù)1秒

2、鐘,在1024Hz音響結束時刻為整點。 Ø 定時控制,其時間為23時58分。3.選做內容Ø 任意時刻鬧鐘(鬧鐘時間可設置)。Ø 自動報整點時數。四系統(tǒng)框圖與說明數字鐘框圖1.數字鐘電路系統(tǒng)由主體電路和擴展電路兩大部分所組成。主體電路主體電路2.秒計數器計滿60后向分計數器進位,分計數器計滿60后向小時計數器進位,小時計數器按照“24進制”規(guī)律計數。3.計數器的輸出經譯碼器送顯示器。五 設計步驟1.列寫多功能數字鐘設計-層次結構圖2.擬定數字鐘的組成框圖,在Max+Plus II軟件中,使用Verilog語言輸入,采用分層次分模塊的方法設計電路;3.設計各單元電路并

3、進行仿真;4.對數字鐘的整體邏輯電路圖,選擇器件,分配引腳,進行邏輯綜合;5.下載到Cyclone II FPGA實驗平臺上,實際測試數字鐘的邏輯功能。六Verilog代碼/24進制時鐘, 具有計時、校時、仿廣播電臺正點報時、固定時刻定時,任意時刻鬧鐘等功能module clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_key,Set_Hour_key,Set_Min_key,Show,Ctrl_Bell);input CP_1KHz;/定義輸入時鐘input Jsh_Min_key,Jsh

4、_Hour_key;/定義校時按鍵input Set_Hour_key,Set_Min_key;/定義鬧鐘定時按鍵input Show; /定義顯示模式按鍵input Ctrl_Bell;/定義鬧鐘鈴聲控制output 7:0LED_Hour,LED_Minute,LED_Second;/定義輸出變量wire 7:0LED_Hour,LED_Minute,LED_Second;/定義輸出變量類型wire 7:0Hour,Minute,Second; wire 7:0Set_Hour_Out,Set_Min_Out;wire Out_1Hz,Out_500Hz;/定義分頻模塊輸出變量類型reg

5、Alarm_Ring,Alarm_Clock_1KHz;/定義仿廣播電臺報時和固定時刻定時鈴聲output Alarm;/蜂鳴器輸入supply1Vdd;wire Alarm_Clock;/任意時刻鬧鐘鬧鈴wire MinL_EN,MinH_EN,Hour_EN;/定義中間變量類型/分頻fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz);/正常計時counter10 U1(.Q(Second3:0),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz);counter6 U2(.Q(Second7:4),.nCR(Vdd),.EN(Se

6、cond3:0=4'h9),.CP(Out_1Hz);assignMinL_EN=Jsh_Min_key?Vdd:(Second=8'h59);assign MinH_EN=(Jsh_Min_key&&(Minute3:0=4'h9)|(Minute3:0=4'h9)&&(Second=8'h59);counter10 U3(.Q(Minute3:0),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz);counter6 U4(.Q(Minute7:4),.nCR(Vdd),.EN(MinH_EN),.

7、CP(Out_1Hz);assign Hour_EN=Jsh_Hour_key?Vdd:(Minute=8'h59)&&(Second=8'h59);counter24 U5(Hour7:4,Hour3:0,Vdd,Hour_EN,Out_1Hz);/仿廣播電臺正點報時baoshi BS1(Alarm_Ring,Minute,Second,Out_500Hz,CP_1KHz);/在59分51秒、53秒、55秒、57秒發(fā)出低音512Hz信號,在59分59秒時發(fā)出一次高音1024Hz信號,音響持續(xù)1秒鐘,在1024Hz音響結束時刻為整點/固定時刻定時always (

8、Hour or Minute or Second)/所定時刻為23時58分,蜂鳴器發(fā)出低音1KHz信號,持續(xù)5秒鐘if (Hour=8'h23&Minute=8'h58)case (Second)8'h00,8'h01,8'h02,8'h03,8'h04:Alarm_Clock_1KHz=CP_1KHz;default Alarm_Clock_1KHz=1'b0;endcaseelse Alarm_Clock_1KHz=1'b0;/任意時刻鬧鐘setclock SC1(Alarm_Clock,Set_Hour_Ou

9、t,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,Set_Min_key,CP_1KHz,Out_500Hz,Out_1Hz,Ctrl_Bell);/響鈴assign Alarm=Alarm_Ring|Alarm_Clock_1KHz|Alarm_Clock;/數碼管顯示選擇Choice_2to1 CU1(LED_Hour,Show,Set_Hour_Out,Hour);/Show為高電平時,顯示鬧鐘所定時刻;為低電平時,顯示正常計時Choice_2to1 CU2(LED_Minute,Show,Set_Min_Out,Minute);Choice_2

10、to1 CU3(LED_Second,Show,8'h00,Second);Endmodule/*分頻模塊,獲得500Hz低頻1Hz時鐘源*modulefre_divider(Out_1Hz,Out_500Hz,nCR,EN,In_1KHz);input nCR,EN,In_1KHz;output Out_1Hz,Out_500Hz;supply1Vdd;wire Out_1Hz,Out_500Hz; wire 11:0Qn;/定義中間變量類型wire EN1,EN2; counter10 DU1(.Q(Qn3:0),.nCR(nCR),.EN(EN),.CP(In_1KHz); co

11、unter10 DU2(.Q(Qn7:4),.nCR(nCR),.EN(EN1),.CP(In_1KHz); counter10 DU3(.Q(Qn11:8),.nCR(nCR),.EN(EN2),.CP(In_1KHz);assign EN1= (Qn3:0=4'd9);assign EN2= (Qn7:4=4'd9)&(Qn3:0=4'd9);assign Out_500Hz=Qn0; assign Out_1Hz=Qn11;endmodule/*模10計數器*module counter10(Q,nCO,nCR,EN,CP);inputCP,nCR,EN;

12、output3:0Q;outputnCO;reg3:0Q;always(posedge CP or negedgenCR)beginif(nCR)Q<=4'd0;else if(EN) beginif(Q>=4'd9)Q<= 4'd0;else Q<=Q+1'd1;endelse Q<=Q;endassignnCO=(Q3&&Q0);endmodule/*模6計數器*module counter6(Q,nCO,nCR,EN,CP);inputCP,nCR,EN;output3:0Q;outputnCO;reg3:0Q

13、;always(posedge CP or negedgenCR)beginif(nCR)Q<=4'd0;else if(EN) beginif(Q=4'd5)Q<= 4'd0;else Q<=Q+1'd1;endelse Q<=Q;endassignnCO=(Q2&&Q0);endmodule/*模60計數,用來構成分、秒計數*module counter60(Qnt,CO,nCR,EN,CP);inputCP,nCR,EN;output 7:0Qnt;output CO;wire 7:0Qnt;counter10 U0

14、(Qnt3:0,nCO_10,nCR,EN,CP);counter6 U1(Qnt7:4,nCO_6,nCR,Qnt3:0=4'd9,CP);assign CO=(Qnt7:4=4'd5)&&(Qnt3:0=4'd9);endmodule/*模24計數器*module counter24(CntH,CntL,nCR,EN,CP);inputCP,nCR,EN;output3:0CntH,CntL;reg 3:0CntH,CntL;always (posedge CP or negedgenCR)beginif(nCR) CntH,CntL<=8&#

15、39;h00;else if(EN) CntH,CntL<=CntH,CntL;else if(CntH>2)|(CntL>9)|(CntH=2)&&(CntL>=3)CntH,CntL<=8'h00;else if(CntH=2)&&(CntL<3)beginCntH<= CntH;CntL<= CntL+1'b1;endelse if(CntL=9)beginCntH<= CntH+1'b1;CntL <= 4'b0000;endelsebeginCntH<=

16、CntH;CntL<= CntL+1'b1;endendendmodule/*仿廣播電臺正點報時*modulebaoshi(Alarm_Ring,Minute,Second,_500Hz,_1KHz); input 7:0 Minute,Second;/定義輸入變量input _500Hz,_1KHz; output Alarm_Ring;/定義輸出變量regAlarm_Ring;/定義輸出變量類型always(Minute or Second)if(Minute=8'h59)case (Second) 8'h51, 8'h53, 8'h55, 8

17、'h57:Alarm_Ring=_500Hz; /在59分51秒、53秒、55秒、57秒發(fā)出低音512Hz信號 8'h59:Alarm_Ring=_1KHz; /在59分59秒時發(fā)出一次高音1024Hz信號default:Alarm_Ring=1'b0;endcaseelseAlarm_Ring=1'b0;Endmodule/*任意時刻鬧鐘*module setclock(Alarm_Clock,Set_Hour_Out,Set_Min_Out,Hour,Minute,Second,Set_Hour_key,Set_Min_key,_1KHz,_500Hz,_1

18、Hz,Ctrl_Bell);inputSet_Hour_key,Set_Min_key;inputCtrl_Bell;input 7:0Hour,Minute,Second;outputAlarm_Clock;output 7:0Set_Hour_Out,Set_Min_Out;wire 7:0Set_Hour_Out,Set_Min_Out;wireAlarm_Clock;input _1KHz,_500Hz,_1Hz;supply1Vdd;wireHourH_EQU,HourL_EQU,MinH_EQU,MinL_EQU;wireTime_EQU; counter60 SU1(.Qnt(S

19、et_Min_Out),.nCR(Vdd),.EN(Set_Min_key),.CP(_1Hz); /實現鬧鐘分鐘的設定 counter24 SU2(Set_Hour_Out7:4,Set_Hour_Out3:0,Vdd,Set_Hour_key,_1Hz); /實現鬧鐘小時的設定comparator SU4(HourH_EQU,Set_Hour_Out7:4,Hour7:4); comparator SU5(HourL_EQU,Set_Hour_Out3:0,Hour3:0); comparator SU6(MinH_EQU,Set_Min_Out7:4,Minute7:4);compara

20、tor SU7(MinL_EQU,Set_Min_Out3:0,Minute3:0); assignTime_EQU=(HourH_EQU&&HourL_EQU&&MinH_EQU&&MinL_EQU); assign Alarm_Clock=Ctrl_Bell?(Time_EQU&& (Second0=1'b1)&&_500Hz)|(Second0=1'b0)&&_1KHz):1'b0;endmodule/*比較器*module comparator(EQU,A,B); /比較器,如果A和B相等時,則輸出為1i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論