【正文】
,sel1,sel2。 else led_out=439。b001000100000000000000000)led_out=439。b0111。 else if (int[23:0]==2439。b000101000000000000000000)led_out=439。b1011。 else if (int[23:0]==2439。b000001100000000000000000)led_out=439。b0011。 end //整點報時功能always (posedge CP) begin if (int[23:0]==2439。b0101100101011001)spark=0。reg spark。整點報時的功能是在整點用二進制led顯示當前時刻(如十點則亮1010)。 439。b0110:led=739。b0000110。 439。d1。d0。 sw[3]=0。 sw[1]=1。b01: begin num=t_now[7:4]。 smCP smcp(CP,sm)。源代碼如下://顯示譯碼模塊module show(show,CP ,sw,t_now )。 endcase t_out[15:0]=t[15:0]。b0000_1001。 839。b00010110:t_out[23:16]=839。b0000_0001。 output [23:0]t_out。 end else t=t+139。 reg clk_out=139。b0000。 MH=MH+439。b0001。amp。amp。amp。d9) begin MH=MH+439。d5amp。 HL=439。HL==439。 SL=439。 end //秒清零部分 else if(clearamp。b0000。(!sel1)amp。d9) begin HH=HH+439。d2amp。 SH=439。 always (posedge clk or negedge nCR) begin //自動調時部分 if(!nCR) begin HH=439。//鬧鐘時間對比endmodule頂層模塊圖如下模塊(1)計時與調時電路:計時模塊中包含了計時調時模塊和分頻器模塊,其中分頻器模塊的功能是將50MHz的信號轉化為1Hz的信號,實現(xiàn)秒脈沖功能;計時調時模塊的功能包括將秒脈沖信號通過六進制計數(shù)器和十進制計數(shù)器轉化為24位二進制的時分秒的形式(每四位一個數(shù),一共六個數(shù)),同時通過手動調時和自動調時模塊對信號進行調節(jié)。//秒表 date dt(t,CP,nCR,year,month,day,sel0,sel1,sel2,AM,AH)。 output sp,led。 自動報整點時數(shù);216。 多功能數(shù)字鐘實驗報告目錄多功能數(shù)字鐘實驗報告 1一、 實驗任務及要求 31.基本功能 32.拓展功能 3二、 實驗條件 31.軟件 32.開發(fā)板 3三、 電路的設計過程 31. 工作原理與組成框圖 32. 單元電路設計 3模塊(1)計時與調時電路 3模塊(2)1224小時轉換電路: 3模塊(3)顯示電路: 3模塊(4)報時電路: 3模塊(5)鬧鐘電路: 33. 總體仿真波形 3四、 調試過程 31. 調試步驟 32. 調試中遇到的問題及解決辦法 33. 最后觀察到的實驗結果 3五、 實驗的收獲、體會與改進建議 3一、 實驗任務及要求用FPGA器件和EDA技術實現(xiàn)多功能數(shù)字鐘的設計1.基本功能216。 仿廣播電臺正點報時; 216。 output [3:0]ledout。 second stoop(CP,stopsec,nCR,stop,clear)。//功能選擇 time_alarm alled(t[23:8],t_alarm,led,CP,nCR)。 assign t={HH,HL,MH,ML,SH,SL}。b0000。(!sel2)) begin if(HH==439。 end else if(HL==439。(!sel0)amp。 ML=439。b0001。b0000。amp。b0001。(!sel2)) begin if(MH==439。 end else if(ML==439。d9amp。d9amp。d2amp。d9) begin HH=HH+439。h0。 SL=439。d0。d0。 input switch。b00010011:t_out[23:16]=839。 839。b0000_0110。b00100001:t_out[23:16]=839。 default:t_out[23:16]=t[23:16]。顯示模塊通過不斷的掃描將數(shù)字顯示出來。 reg [3:0] num,sw。 end 239。 sw[0]=1。 sw[2]=1。 reg [24:0]t=2539。 end else t=t+139。b0000001。b0011:led=739。 439。b0000000。仿廣播電臺的報時功能是在56秒亮,57秒熄滅,58秒亮,59秒熄滅,00秒亮三秒。reg [3:0]led_out。else if(int[15:0]==1639。 else spark=0。b000000110000000000000000)led_out=439。 else if (int[23:0]==2439。b1000。b000100010000000000000000)led_out=439。 else if (int[23:0]==2439。b0100。b000110010000000000000000)led_out=439。 else if (int[23:0]==2439。b1100。源代碼如下://鬧鐘設置模塊module alarm(t,S0,S1,AH,AM,nAR,CP,sel0,sel1,sel2 )。b0000。sel0amp。 HL=439。b0001。d9) begin MH=439。b0000。amp。b0001。(!sel2)) begin if(MH==439。 end else if(ML==439。 input [23:0]t0,t1。 count=339。d5)) begin led=1。 input[23:0] clock。amp。 end end always (posedge clk or negedge nCR) begin if(!nCR) begin year=1639。sel1amp。b1001) begin year[11:8]=439。b0001。(!sel2)) begin if(year[3:0]==439。b1001。 end else year[7:4]=year[7:4]439。 else d=0。b00001001) month=839。b0000_0101)|(month==839。 if(month==839。 if(year[11:8]==439。b0001。b0000_1001)|(month==839。 else month[3:0]=month[3:0]+439。 end else if((day==839。 end else begin if(day==839。b0000。b0010_1001)) begin day[3:0]=439。 output[15:0] t。b00000000。b0001。b0000。 end end endendmodule//百分之一秒脈沖module stopwatch(clk_in,clk_out,nCR )。d0。在實驗過程中,有時會碰到一時難以克服的問題,這除了要求我們有分析問題搜集資料的能力外,也是對我們心態(tài)的一種挑戰(zhàn)。 30