【正文】
000。 end else if(S0amp。b0000。 end else ML=ML+439。d0。d0)amp。d0。 reg a,d。 end else begin if((439。b0000_0001。b1001) begin year[7:4]=439。 else year[15:12]=year[15:12]+439。 end if(AMamp。b1001。b0001。sel0amp。b00010010) month=839。b0010_0011_0101_1001_0101_1001|d) begin if(((month==839。(day==839。b0000。 end else year[11:8]=year[11:8]+439。 end else if(((month==839。 if(month==839。b0000_0001。b0001。 end else if((day==839。 end else begin if((day==839。b0001。 secclk stp2(CP,lclk,nCR)。b1001) t[7:4]=439。b00000000。b0001。 reg clk_out=139。 end else t=t+139。同時(shí),我們還知道了,不管之前付出了多少,如果后續(xù)工作表明之前的工作存在問題,就要敢于推翻它。另外,我們還了解了團(tuán)隊(duì)合作以及完成大項(xiàng)目時(shí)需要注意的一些事情。 t=139。 reg [24:0]t=2539。b0000。 end end end always (posedge lclk or posedge stop) begin if(stop) t[15:8]=t[15:8]。b0000。b0000_0000_0000_0000。b0001。 end else day[3:0]=day[3:0]+439。 month[3:0]=month[3:0]+439。b0000。b0000_0010) if(a) begin if(day==839。b0011_0000)) begin day=839。 end else month[3:0]=month[3:0]+439。 year[15:12]=year[15:12]+439。 if(year[3:0]==439。b0001_0000)|(month==839。b0001。sel1amp。b0001。b1001。 if(year[7:4]==439。 end else year[3:0]=year[3:0]+439。b1001) year[15:12]=439。b0000。b0000_0001。d10*year[7:4]+year[3:0])%4==0) a=1。 reg[15:0]year。 end else begin led=0。 count=1。 reg led。 ML=439。ML==439。 end else HL=HL+439。b0000。 end else begin if(S1amp。b0000。(!sel1)amp。d9) begin HH=HH+439。d2amp。 MH=439。 reg [3:0]HH,HL,MH,ML。 endendmodule波形圖如下:第一行為整點(diǎn)報(bào)時(shí)信號(hào)led_out,第二行為仿廣播電臺(tái)報(bào)時(shí)spark,第三行為脈沖,第四行為從01:59:56到02:00:02的時(shí)鐘信號(hào)。 else if (int[23:0]==2439。b001000000000000000000000)led_out=439。b0101。 else if (int[23:0]==2439。b000100100000000000000000)led_out=439。b1001。 else if (int[23:0]==2439。b000001000000000000000000)led_out=439。b0001。b0000000000000000)spark=1。b0101100101010110)spark=1。 源代碼如下://報(bào)時(shí)模塊module baoshi(CP,int,led_out,spark )。b0000100。 439。b0100:led=739。b1001111。//num為輸入信號(hào),led為數(shù)碼管的顯示信號(hào) input [3:0]num。b0。b01。 sw[3]=1。 sw[1]=0。b00:begin num=t_now[3:0]。 input [15:0] t_now??梢娫?3:00時(shí)第一行輸出的波形分別是13:00和1:00。b00100010:t_out[23:16]=839。b0000_0111。 839。b00010100:t_out[23:16]=839。 always(*) begin if(!switch) t_out=t。 end endendmodule波形圖t為輸出端,CP為原脈沖信號(hào),S1為手動(dòng)校時(shí),S0為手動(dòng)校分,nCR為清零,AH和AM為自動(dòng)校時(shí)和校分。 always (posedge clk_in or negedge nCR) begin if(~nCR) t=2539。b0001。 end else ML=ML+439。h0。d3) begin HH=439。d5) begin ML=439。d5) begin SL=439。 ML=439。ML==439。 end else HL=HL+439。b0000。 end else begin //手動(dòng)調(diào)時(shí)部分 if(S1amp。(!sel0)amp。d9) begin MH=MH+439。d5amp。 HL=439。HL==439。 SL=439。 HL=439。 input S1,S0,CP,nCR,AH,AM,sel0,sel1,sel2,clear。//1224進(jìn)制轉(zhuǎn)換 clock lclock(CP,t,S1,S0,nCR,AH,AM,sel0,sel1,sel2,clear)。 wire [15:0]t_out,stopsec。 秒表。 小時(shí)計(jì)數(shù)器為同步24進(jìn)制;216。 任意時(shí)刻鬧鐘; 216。 output [6:0]show。 wire [15:0]year。//整點(diǎn)報(bào)時(shí) alarm alarmset(t_alarm,S0,S1,AH,AM,nCR,CP,sel0,sel1,sel2)。 wire clk。b0000。(!sel0)amp。 HL=439。b0001。d9) begin MH=439。b0000。amp。(!sel2)) begin if(HH==439。 end else if(HL==439。(!sel0)amp。 ML=439。b0001。h0。h0。h0。 end else if(ML==439。d9) begin SH=SH+439。 output clk_out。d24999999) begin clk_out=~clk_out。源代碼如下://1224小時(shí)轉(zhuǎn)換電路module TO_12(t,t_out,switch )。b0001_0010。b00010101:t_out[23:16]=839。 839。b0000_1000。b00100011:t_out[23:16]=839。掃描模塊用來(lái)產(chǎn)生1000Hz的信號(hào),相當(dāng)于分頻器。 reg [1:0] Q=239。 sw[2]=1。 end 239。 sw[0]=1。 input clk_in。 t=139。 always (*) case(num) 439。b0010010。b0101:led=739。 439。