2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  電子信息學(xué)院</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課 程 名 稱: 《數(shù)字系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)》 </p><p>  題 目: 多功能數(shù)字鐘設(shè)計(jì) </p><p>  年級(jí)/專業(yè)/班:

2、 2011級(jí)電科X班 </p><p>  學(xué) 生 姓名1: xxx </p><p>  學(xué)   號(hào): </p><p>  學(xué) 生 姓名2: xxx </p><

3、p>  學(xué)   號(hào): </p><p>  2014 年 7 月 1 日</p><p><b>  目 錄</b></p><p>  1課程設(shè)計(jì)目標(biāo)和流程分析3</p><p>  1.1課程設(shè)計(jì)目標(biāo)3</p><

4、p>  1.2開發(fā)環(huán)境說明3</p><p>  1.3設(shè)計(jì)流程說明3</p><p><b>  2系統(tǒng)設(shè)計(jì)3</b></p><p>  2.1系統(tǒng)架構(gòu)設(shè)計(jì)3</p><p>  2.2子模塊分析3</p><p>  2.3調(diào)試結(jié)果3</p>&l

5、t;p><b>  3小結(jié)3</b></p><p><b>  附錄:主要代碼3</b></p><p>  課程設(shè)計(jì)目標(biāo)和流程分析</p><p><b>  課程設(shè)計(jì)目標(biāo)</b></p><p>  基于Verilog語言描述系統(tǒng)的功能;在quartusII環(huán)

6、境中編譯通過;仿真通過并得到正確的波形;掌握數(shù)字系統(tǒng)的分析和設(shè)計(jì)方法。能夠熟練的、合理的選用集成電路器件。掌握數(shù)字鐘得設(shè)計(jì)制作方法。</p><p>  用Verilog硬件描述語言設(shè)計(jì)數(shù)字鐘,實(shí)現(xiàn)的目標(biāo)如下:</p><p>  1)具有時(shí)、分、秒計(jì)數(shù)顯示功能,以二十四小時(shí)循環(huán)計(jì)時(shí)。</p><p>  2)具有調(diào)節(jié)小時(shí),分鐘的功能,可以通過按鍵選擇時(shí)和分。<

7、;/p><p>  3)具有整點(diǎn)報(bào)時(shí)及鬧鈴時(shí)間可調(diào)的功能。</p><p>  4)數(shù)字鐘具有四種模式:正常顯示、時(shí)間調(diào)整、鬧鈴時(shí)間調(diào)整、秒表。</p><p><b>  開發(fā)環(huán)境說明</b></p><p>  硬件:采用基于EP1C12Q240C8芯片的FPGA開發(fā)平臺(tái)</p><p>  FP

8、GA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Bl

9、ock)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能

10、的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)</p><p>  硬件:采用quartusII</p><p>  Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Lang

11、uage)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。</p><p>  語言:Verilog HDL硬件描述語言簡介</p><p>  Verilog HDL就是在用途最廣泛的C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年

12、末首創(chuàng)的,最初只設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorby推出它的第三個(gè)商用仿真器Verilog-XL,獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣應(yīng)用。1989年CADENCE公司收購了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開發(fā)表了Verilog HDL,并成立LVI組織以促進(jìn)Verilog HDL成為IEEE標(biāo)準(zhǔn),

13、即IEEE Standard 1364-1995. 模塊是Verilog 的基本描述單位,用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)及其與其他模塊通信的外部端口。一個(gè)設(shè)計(jì)的結(jié)構(gòu)可使用開關(guān)級(jí)原語、門級(jí)原語和用戶定義的原語方式描述; 設(shè)計(jì)的數(shù)據(jù)流行為使用連續(xù)賦值語句進(jìn)行描述; 時(shí)序行為使用過程結(jié)構(gòu)描述。一個(gè)模塊可以在另一個(gè)模塊中使用。 說明部分用于定義不同的項(xiàng),例如模塊描述中使用的寄存</p><p><b>  設(shè)

14、計(jì)流程說明</b></p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p>  系統(tǒng)架構(gòu)設(shè)計(jì) clk</p><p><b>  關(guān)鍵模塊代碼分析</b></p><p><b>  2.2.1分頻模塊</b></p><p>

15、  分頻模塊用于為系統(tǒng)的實(shí)現(xiàn)提供穩(wěn)定的工作頻率和計(jì)時(shí)信號(hào)源,要求產(chǎn)生兩路不同頻率的信號(hào),分頻為1HZ頻率的信號(hào)作為計(jì)時(shí)模塊的秒信號(hào)的產(chǎn)生,100HZ的信號(hào)用于秒表計(jì)時(shí)模塊的信號(hào),1000HZ的信號(hào)用于數(shù)碼管動(dòng)態(tài)顯示的掃描頻率。</p><p><b>  分頻模塊的實(shí)現(xiàn):</b></p><p>  -----------------------------產(chǎn)生100

16、HZ的秒表信號(hào)-----------------------</p><p>  always @(posedge clk) //定義clock上升沿觸發(fā)</p><p><b>  begin</b></p><p>  c3= c3 + 1'b1;</p><p>  c1=c1 + 1'

17、;b1;</p><p>  c2=c2 + 1'b1;</p><p>  if(c3 == 25'd480000)//miaobiao</p><p><b>  begin</b></p><p>  c3 = 25'd0;//計(jì)數(shù)器清零</p><p

18、>  sec = ~sec;//置位秒標(biāo)志</p><p><b>  end</b></p><p>  ------------------------------產(chǎn)生1000HZ的秒信號(hào)------------------------</p><p>  if(c1== 25'd24000000)//0

19、.5S到了嗎?</p><p><b>  begin</b></p><p>  c1 = 25'd0;//計(jì)數(shù)器清零</p><p>  clk_1s= ~clk_1s;//置位秒標(biāo)志</p><p><b>  end</b></p><p

20、>  if(c2== 25'd2400000)//tiaoshi?</p><p><b>  begin</b></p><p>  c2 = 25'd0;//計(jì)數(shù)器清零</p><p>  clk_xiaozhun= ~clk_xiaozhun;//置位秒標(biāo)志</p><p

21、><b>  end</b></p><p><b>  end</b></p><p>  ----------------------------產(chǎn)生1000HZ數(shù)碼管動(dòng)態(tài)掃描顯示部分----------------</p><p>  always @(posedge clk) //count[1

22、7:15]大約1ms改變一次</p><p><b>  begin</b></p><p>  if(layer==2'b01)</p><p>  begin dat=hour;end</p><p>  else if(layer==2'b00)</p><p>  begi

23、n dat=hour1;end</p><p>  else if(layer==2'b10)</p><p>  begin dat=hour2;end</p><p><b>  else </b></p><p>  begin dat=hour3;end</p><p>  cas

24、e(c3[17:15])</p><p><b>  ……</b></p><p><b>  2.2.2計(jì)時(shí)模塊</b></p><p>  模塊功能為正常計(jì)時(shí),即每秒鐘讀一次數(shù),秒表加1,秒計(jì)時(shí)滿60進(jìn)1給分計(jì)時(shí),分計(jì)時(shí)滿60進(jìn)1給小時(shí)計(jì)時(shí),小時(shí)計(jì)時(shí)滿24清零。從功能上講分別為模60計(jì)數(shù)器和模24計(jì)數(shù)器。&l

25、t;/p><p>  always @(negedge sec )//miaobiao</p><p><b>  begin</b></p><p>  if(!key_done[1]&&layer==2'b01)//是清零鍵嗎?</p><p><b>  begin<

26、/b></p><p>  hour = 24'h0;//是,則清零</p><p><b>  end</b></p><p>  else if(!keyen)</p><p><b>  begin</b></p><p>  hour[3:0

27、] = hour[3:0] + 1'b1;//秒加1</p><p>  if(hour[3:0] == 4'ha)</p><p><b>  begin</b></p><p>  hour[3:0] = 4'h0;</p><p>  hour[7:4] = hour[7:4] + 1&

28、#39;b1;//秒的十位加一</p><p>  if(hour[7:4] == 4'ha)</p><p><b>  begin</b></p><p>  hour[7:4] = 4'h0;</p><p>  hour[11:8] = hour[11:8] + 1'b1;//分個(gè)位加一

29、</p><p>  if(hour[11:8] == 4'ha)</p><p><b>  begin</b></p><p>  hour[11:8] = 4'h0;</p><p>  hour[15:12] = hour[15:12] + 1'b1;//分十位加一</p>

30、<p>  if(hour[15:12] == 4'h6)</p><p><b>  begin</b></p><p>  hour[15:12] = 4'h0;</p><p>  hour[19:16] = hour[19:16] + 1'b1;//時(shí)個(gè)位加一</p><p> 

31、 if(hour[19:16] == 4'ha)</p><p><b>  begin</b></p><p>  hour[19:16] = 4'h0;</p><p>  hour[23:20] = hour[23:20] + 1'b1;//時(shí)十位加一</p><p><b>  

32、end</b></p><p>  if(hour[23:16] == 8'h24)</p><p>  hour[23:16] = 8'h0;</p><p><b>  end</b></p><p><b>  end</b></p><p>

33、;<b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  2.2.3 校準(zhǔn)模塊</p><p>  校準(zhǔn)模塊

34、分為鬧鐘校準(zhǔn)模塊和當(dāng)前時(shí)間校準(zhǔn)模塊,layer為模式,當(dāng)layer==2’b10時(shí),進(jìn)入當(dāng)前時(shí)間校準(zhǔn)模塊,當(dāng)layer==2’b11時(shí),進(jìn)入鬧鐘校準(zhǔn)模塊,當(dāng)pos為1時(shí),對分的個(gè)位或十位進(jìn)行校時(shí),當(dāng)pos為0時(shí),對時(shí)的個(gè)位或十位進(jìn)行校時(shí)。</p><p>  2.2.4 鬧鐘模塊</p><p>  當(dāng)當(dāng)前時(shí)間與設(shè)置的鬧鐘時(shí)間一致時(shí),鬧鐘響起,本設(shè)計(jì)采用的是音樂蜂鳴器,通過寫入樂譜對應(yīng)的頻

35、率可實(shí)現(xiàn)音樂的輸出,歌曲為《世上只有媽媽好》。</p><p>  2.2.5 整點(diǎn)報(bào)時(shí)模塊</p><p>  (hour1[15:12]==0&&hour1[11:8]==0&&hour1[7:4]==0&&hour1[3:0]==0)</p><p>  當(dāng)分秒對應(yīng)00:00時(shí),讓蜂鳴器發(fā)出響聲</p>

36、;<p><b>  調(diào)試結(jié)果</b></p><p>  通過四個(gè)按鍵的控制(S1:秒表啟動(dòng)及暫停、加功能;S2秒表清零、減功能;S3:模式選擇;S4:分和時(shí)的選擇)能在數(shù)碼管上顯示時(shí)間,并能對時(shí)間進(jìn)行調(diào)整,能進(jìn)行秒表計(jì)數(shù)功能,當(dāng)當(dāng)前時(shí)間與設(shè)置鬧鐘時(shí)間一致時(shí)鬧鐘響起,并在整點(diǎn)時(shí)蜂鳴器發(fā)出一聲“嘀”的報(bào)時(shí)聲。</p><p><b>  小結(jié)&

37、lt;/b></p><p>  通過近來對FPGA的學(xué)習(xí),我對ISE軟件總體操作步驟已比較熟悉。接下來的時(shí)間是要提高對FPGA的掌握能力,將FPGA運(yùn)用到數(shù)字信號(hào)處理和通信原理上。 ,另外,對Verilog語言的學(xué)習(xí)不僅是能讀懂別人的程序,更重要的是能寫出條理清晰的程序。通過做多功能數(shù)字鐘,我發(fā)現(xiàn)自己對Verilog語言還不是很熟悉,接下來的時(shí)間要加強(qiáng)語言的學(xué)習(xí),多看一些語言方面的書籍。</p&g

38、t;<p><b>  附錄:主要代碼</b></p><p>  module clockxjx (clk,key,dig,seg,beep);//模塊名clock</p><p>  input clk;//輸入時(shí)鐘</p><p>  input[3:0] key;//輸入按鍵<

39、;/p><p>  output[7:0]dig;//數(shù)碼管選擇輸出引腳</p><p>  output[7:0] seg;//數(shù)碼管段輸出引腳</p><p>  output beep;</p><p>  reg[24:0]c1,c2;</p><p>  reg clk_1s,clk

40、_xiaozhun;</p><p>  reg[24:0] dat;//xianshi register</p><p><b>  //xinyue</b></p><p>  reg beep_r;//寄存器</p><p>  reg[7:0] state;//樂譜狀態(tài)機(jī)</p

41、><p>  reg[15:0]count,count_end;</p><p>  reg[23:0]count1;</p><p>  //end yinyue</p><p><b>  reg pos;</b></p><p>  reg[7:0] seg_r;//定義數(shù)碼管輸

42、出寄存器</p><p>  reg[7:0] dig_r;//定義數(shù)碼管選擇輸出寄存器</p><p>  reg[3:0] disp_dat;//定義顯示數(shù)據(jù)寄存器</p><p>  reg[24:0]c3;//定義計(jì)數(shù)寄存器</p><p>  reg[23:0]hour1,hour2,h

43、our3;//定義現(xiàn)在時(shí)刻寄存器</p><p>  reg[23:0]hour;//miaobiao</p><p>  reg sec,keyen;//定義標(biāo)志位</p><p>  reg[1:0] layer;//定義標(biāo)志位state</p><p>  reg[3:0]dout1,do

44、ut2,dout3;//寄存器</p><p>  wire[3:0]key_done;//按鍵消抖輸出</p><p>  //樂譜參數(shù):D=F/2K (D:參數(shù),F:時(shí)鐘頻率,K:音高頻率)</p><p>  parameter L_5=16'd61224,</p><p>  L_6=16'd

45、54545,</p><p>  M_1=16'd45863,</p><p>  M_2=16'd40865,</p><p>  M_3=16'd36402,</p><p>  M_5=16'd30612,</p><p>  M_6=16'd27273,</p>

46、;<p>  H_1=16'd22956;</p><p>  parameterTIME = 12000000;//控制每一個(gè)音的長短(250ms)</p><p>  assign beep = beep_r;//輸出音樂</p><p>  assign dig = dig_r;//輸出數(shù)碼管選擇<

47、;/p><p>  assign seg = seg_r;//輸出數(shù)碼管譯碼結(jié)果</p><p>  always@(posedge clk)</p><p><b>  begin</b></p><p>  if((hour3[23:8]==hour1[23:8])||(hour1[15:12]==0&a

48、mp;&hour1[11:8]==0&&hour1[7:4]==0&&hour1[3:0]==0))</p><p><b>  begin</b></p><p>  count <= count + 1'b1;//計(jì)數(shù)器加1</p><p>  if(count == count

49、_end)</p><p><b>  begin</b></p><p>  count <= 16'h0;//計(jì)數(shù)器清零</p><p>  beep_r <= !beep_r;//輸出取反</p><p><b>  end</b></p>

50、<p><b>  end</b></p><p>  else beep_r =0;</p><p><b>  end</b></p><p><b>  //秒信號(hào)產(chǎn)生部分</b></p><p>  always @(posedge clk) /

51、/定義clock上升沿觸發(fā)</p><p><b>  begin</b></p><p>  c3= c3 + 1'b1;</p><p>  c1=c1 + 1'b1;</p><p>  c2=c2 + 1'b1;</p><p>  if(c3 == 25'

52、d480000)//miaobiao</p><p><b>  begin</b></p><p>  c3 = 25'd0;//計(jì)數(shù)器清零</p><p>  sec = ~sec;//置位秒標(biāo)志</p><p><b>  end</b></p&

53、gt;<p>  if(c1== 25'd24000000)//0.5S到了嗎?</p><p><b>  begin</b></p><p>  c1 = 25'd0;//計(jì)數(shù)器清零</p><p>  clk_1s= ~clk_1s;//置位秒標(biāo)志</p>&l

54、t;p><b>  end</b></p><p>  if(c2== 25'd2400000)//tiaoshi?</p><p><b>  begin</b></p><p>  c2 = 25'd0;//計(jì)數(shù)器清零</p><p>  clk_xia

55、ozhun= ~clk_xiaozhun;//置位秒標(biāo)志</p><p><b>  end</b></p><p><b>  end</b></p><p>  //按鍵消抖處理部分</p><p>  assign key_done = (dout1 | dout2 | dout3);

56、//按鍵消抖輸出</p><p>  always @(posedge c3[17])</p><p><b>  begin</b></p><p>  dout1 <= key;</p><p>  dout2 <= dout1;</p><p>  dout3 <= dou

57、t2;</p><p><b>  end</b></p><p>  always @(negedge key_done[2])//121</p><p><b>  begin</b></p><p>  layer=layer+1'b1;</p><p>  

58、//if(layer==2'b11)</p><p>  // begin layer=2'b00;end</p><p><b>  end</b></p><p>  always @(negedge key_done[3])//xiao shi shi fen haishi shi seclet</p>&

59、lt;p><b>  begin</b></p><p>  if(layer==2'b10||layer==2'b11)</p><p>  pos=~pos; </p><p><b>  end</b></p><p>  always @(negedge key_d

60、one[0])</p><p><b>  begin</b></p><p>  if(layer==2'b01)</p><p>  begin keyen = ~keyen;end//將琴鍵開關(guān)轉(zhuǎn)換為乒乓開關(guān)</p><p><b>  end</b></p>

61、<p>  //數(shù)碼管動(dòng)態(tài)掃描顯示部分</p><p>  always @(posedge clk) //count[17:15]大約1ms改變一次</p><p><b>  begin</b></p><p>  if(layer==2'b01)</p><p>  begin

62、dat=hour;end</p><p>  else if(layer==2'b00)</p><p>  begin dat=hour1;end</p><p>  else if(layer==2'b10)</p><p>  begin dat=hour2;end</p><p><b&g

63、t;  else </b></p><p>  begin dat=hour3;end</p><p>  case(c3[17:15])//選擇掃描顯示數(shù)據(jù)</p><p>  3'd0:disp_dat = dat[3:0];//秒個(gè)位</p><p>  3'd1:disp_dat = da

64、t[7:4];//秒十位</p><p>  3'd2:disp_dat = 4'ha;//顯示"-"</p><p>  3'd3:disp_dat = dat[11:8];//分個(gè)位</p><p>  3'd4:disp_dat = dat[15:12];//分十位</p>

65、<p>  3'd5:disp_dat = 4'ha;//顯示"-"</p><p>  3'd6:disp_dat = dat[19:16];//時(shí)個(gè)位</p><p>  3'd7:disp_dat = dat[23:20];//時(shí)十位</p><p><b>  end

66、case</b></p><p>  case(c3[17:15])//選擇數(shù)碼管顯示位</p><p>  3'd0:dig_r = 8'b11111110;//選擇第一個(gè)數(shù)碼管顯示</p><p>  3'd1:dig_r = 8'b11111101;//選擇第二個(gè)數(shù)碼管顯示</p>

67、<p>  3'd2:dig_r = 8'b11111011;//選擇第三個(gè)數(shù)碼管顯示</p><p>  3'd3:dig_r = 8'b11110111;//選擇第四個(gè)數(shù)碼管顯示</p><p>  3'd4:dig_r = 8'b11101111;//選擇第五個(gè)數(shù)碼管顯示</p><p

68、>  3'd5:dig_r = 8'b11011111;//選擇第六個(gè)數(shù)碼管顯示</p><p>  3'd6:dig_r = 8'b10111111;//選擇第七個(gè)數(shù)碼管顯示</p><p>  3'd7:dig_r = 8'b01111111;//選擇第八個(gè)數(shù)碼管顯示</p><p><

69、;b>  endcase</b></p><p><b>  end</b></p><p>  always @(posedge clk)</p><p><b>  begin</b></p><p>  case(disp_dat)</p><p>

70、  4'h0:seg_r = 8'hc0;//顯示0</p><p>  4'h1:seg_r = 8'hf9;//顯示1</p><p>  4'h2:seg_r = 8'ha4;//顯示2</p><p>  4'h3:seg_r = 8'hb0;//顯示3&

71、lt;/p><p>  4'h4:seg_r = 8'h99;//顯示4</p><p>  4'h5:seg_r = 8'h92;//顯示5</p><p>  4'h6:seg_r = 8'h82;//顯示6</p><p>  4'h7:seg_r = 8

72、'hf8;//顯示7</p><p>  4'h8:seg_r = 8'h80;//顯示8</p><p>  4'h9:seg_r = 8'h90;//顯示9</p><p>  4'ha:seg_r = 8'hbf;//顯示-</p><p>

73、  default:seg_r = 8'hff;//不顯示</p><p><b>  endcase</b></p><p>  if((c3[17:15]== 3'd2)&sec)</p><p>  seg_r = 8'hff;</p><p><b>  end&

74、lt;/b></p><p><b>  //計(jì)時(shí)處理部分</b></p><p>  always @(negedge sec )//miaobiao</p><p><b>  begin</b></p><p>  if(!key_done[1]&&layer==2

75、9;b01)//是清零鍵嗎?</p><p><b>  begin</b></p><p>  hour = 24'h0;//是,則清零</p><p><b>  end</b></p><p>  else if(!keyen)</p><p

76、><b>  begin</b></p><p>  hour[3:0] = hour[3:0] + 1'b1;//秒加1</p><p>  if(hour[3:0] == 4'ha)</p><p><b>  begin</b></p><p>  hour[3:0]

77、 = 4'h0;</p><p>  hour[7:4] = hour[7:4] + 1'b1;//秒的十位加一</p><p>  if(hour[7:4] == 4'ha)</p><p><b>  begin</b></p><p>  hour[7:4] = 4'h0;<

78、/p><p>  hour[11:8] = hour[11:8] + 1'b1;//分個(gè)位加一</p><p>  if(hour[11:8] == 4'ha)</p><p><b>  begin</b></p><p>  hour[11:8] = 4'h0;</p><p&

79、gt;  hour[15:12] = hour[15:12] + 1'b1;//分十位加一</p><p>  if(hour[15:12] == 4'h6)</p><p><b>  begin</b></p><p>  hour[15:12] = 4'h0;</p><p>  hour[

80、19:16] = hour[19:16] + 1'b1;//時(shí)個(gè)位加一</p><p>  if(hour[19:16] == 4'ha)</p><p><b>  begin</b></p><p>  hour[19:16] = 4'h0;</p><p>  hour[23:20] = h

81、our[23:20] + 1'b1;//時(shí)十位加一</p><p><b>  end</b></p><p>  if(hour[23:16] == 8'h24)</p><p>  hour[23:16] = 8'h0;</p><p><b>  end</b><

82、/p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b>

83、;</p><p>  //shizhong</p><p>  always @(negedge clk_1s)//clock</p><p><b>  begin</b></p><p>  if(layer!=2'b10)</p><p><b>  begin</

84、b></p><p>  hour1[3:0] = hour1[3:0] + 1'b1;//秒加1</p><p>  if(hour1[3:0] == 4'ha)</p><p><b>  begin</b></p><p>  hour1[3:0] = 4'h0;</p>

85、;<p>  hour1[7:4] = hour1[7:4] + 1'b1;//秒的十位加一</p><p>  if(hour1[7:4] == 4'h6)</p><p><b>  begin</b></p><p>  hour1[7:4] = 4'h0;</p><p>

86、  hour1[11:8] = hour1[11:8] + 1'b1;//分個(gè)位加一</p><p>  if(hour1[11:8] == 4'ha)</p><p><b>  begin</b></p><p>  hour1[11:8] = 4'h0;</p><p>  hour1[15

87、:12] = hour1[15:12] + 1'b1;//分十位加一</p><p>  if(hour1[15:12] == 4'h6)</p><p><b>  begin</b></p><p>  hour1[15:12] = 4'h0;</p><p>  hour1[19:16] =

88、 hour1[19:16] + 1'b1;//時(shí)個(gè)位加一</p><p>  if(hour1[19:16] == 4'ha)</p><p><b>  begin</b></p><p>  hour1[19:16] = 4'h0;</p><p>  hour1[23:20] = hour1

89、[23:20] + 1'b1;//時(shí)十位加一</p><p><b>  end</b></p><p>  if(hour1[23:16] == 8'h24)</p><p>  hour1[23:16] = 8'h0;</p><p><b>  end</b></

90、p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  else </b&g

91、t;</p><p><b>  begin </b></p><p>  if(layer==2'b10)</p><p>  hour1=hour2;</p><p><b>  end</b></p><p><b>  end</b>&l

92、t;/p><p>  always @(posedge clk_xiaozhun)</p><p><b>  begin</b></p><p>  if(layer==2'b10)//jiaoshi</p><p><b>  begin</b></p><p>  

93、if(pos==1'b1)</p><p><b>  begin </b></p><p>  if(!key_done[0])</p><p><b>  begin </b></p><p>  if(hour2[11:8]==4'h9&&hour2[15:12

94、]==4'h5)</p><p><b>  begin </b></p><p>  hour2[11:8]=4'h0;</p><p>  hour2[15:12]=4'h0;</p><p><b>  end</b></p><p><

95、;b>  else </b></p><p>  begin if(hour2[11:8]==4'h9)</p><p><b>  begin</b></p><p>  hour2[11:8]=4'h0;</p><p>  hour2[15:12]=hour2[15:12] + 1

96、'b1;//分十位加1</p><p><b>  end</b></p><p><b>  else</b></p><p>  hour2[11:8]=hour2[11:8] + 1'b1;</p><p><b>  end</b></p>

97、<p><b>  end</b></p><p>  if(!key_done[1])</p><p><b>  begin</b></p><p>  if(hour2[11:8]!=4'h0)</p><p><b>  begin </b><

98、/p><p>  hour2[11:8] = hour2[11:8]-1'b1;//分個(gè)位jian1 </p><p><b>  end </b></p><p><b>  else</b></p><p><b>  begin </b></p>

99、<p>  if(hour2[15:12] > 4'h0)</p><p><b>  begin</b></p><p>  hour2[15:12]<= hour2[15:12]-1'b1;//分十位jian一</p><p>  hour2[11:8] <= 4'h9; </p

100、><p><b>  end</b></p><p>  else if(hour2[15:12]==4'h0)</p><p><b>  begin </b></p><p>  hour2[15:12] <= 4'h5;</p><p>  hour

101、2[11:8] <= 4'h9;</p><p><b>  end</b></p><p>  end </p><p><b>  end</b></p><p><b>  end</b></p>

102、<p>  else//tiaoshi</p><p><b>  begin </b></p><p>  if(!key_done[0])</p><p><b>  begin </b></p><p>  if(hour2[19:16]==4'h3&&hou

103、r2[23:20]==4'h2)</p><p><b>  begin </b></p><p>  hour2[19:16]=4'h0;</p><p>  hour2[23:20]=4'h0;</p><p><b>  end</b></p><

104、;p><b>  else </b></p><p>  begin if(hour2[19:16]==4'h9)</p><p><b>  begin</b></p><p>  hour2[19:16]=4'h0;</p><p>  hour2[23:20]=hour2

105、[23:20] + 1'b1;//分十位加1</p><p><b>  end</b></p><p><b>  else</b></p><p>  hour2[19:16]=hour2[19:16] + 1'b1;</p><p><b>  end</b&g

106、t;</p><p><b>  end</b></p><p>  if(!key_done[1])</p><p><b>  begin</b></p><p>  if(hour2[23:16]==8'h00)</p><p><b>  begin

107、 </b></p><p>  hour2[23:20] <= 4'h2;</p><p>  hour2[19:16] <= 4'h3;</p><p><b>  end</b></p><p>  else if(hour2[23:16]==8'h10)</p

108、><p><b>  begin </b></p><p>  hour2[23:20] <= 4'h0;</p><p>  hour2[19:16] <= 4'h9;</p><p><b>  end</b></p><p>  else if

109、(hour2[23:16]==8'h20)</p><p><b>  begin </b></p><p>  hour2[23:20] <= 4'h1;</p><p>  hour2[19:16] <= 4'h9;</p><p><b>  end</b>

110、</p><p>  else begin hour2[19:16] = hour2[19:16]-1'b1;end//分個(gè)位jian1 </p><p><b>  end</b></p><p><b>  end</b></p><p>&

111、lt;b>  end</b></p><p><b>  else </b></p><p>  hour2=hour1;</p><p><b>  end</b></p><p>  always @(posedge clk_xiaozhun)</p><

112、;p><b>  begin</b></p><p>  if(layer==2'b11)//jiaoshi</p><p><b>  begin</b></p><p>  //hour[7:0]=8'd00;</p><p>  if(pos==1'b1)<

113、;/p><p><b>  begin </b></p><p>  if(!key_done[0])</p><p><b>  begin </b></p><p>  if(hour3[11:8]==4'h9&&hour3[15:12]==4'h5)</p&g

114、t;<p><b>  begin </b></p><p>  hour3[11:8]=4'h0;</p><p>  hour3[15:12]=4'h0;</p><p><b>  end</b></p><p><b>  else </b&

115、gt;</p><p>  begin if(hour3[11:8]==4'h9)</p><p><b>  begin</b></p><p>  hour3[11:8]=4'h0;</p><p>  hour3[15:12]=hour3[15:12] + 1'b1;//分十位加1</

116、p><p><b>  end</b></p><p><b>  else</b></p><p>  hour3[11:8]=hour3[11:8] + 1'b1;</p><p><b>  end</b></p><p><b> 

117、 end</b></p><p>  if(!key_done[1])</p><p><b>  begin</b></p><p>  if(hour3[11:8]!=4'h0)</p><p><b>  begin </b></p><p>  h

118、our3[11:8] = hour3[11:8]-1'b1;//分個(gè)位jian1 </p><p><b>  end </b></p><p><b>  else</b></p><p><b>  begin </b></p><p>  if(hour

119、3[15:12] > 4'h0)</p><p><b>  begin</b></p><p>  hour3[15:12]<= hour3[15:12]-1'b1;//分十位jian一</p><p>  hour3[11:8] <= 4'h9; </p><p><b

120、>  end</b></p><p>  else if(hour3[15:12]==4'h0)</p><p><b>  begin </b></p><p>  hour3[15:12] <= 4'h5;</p><p>  hour3[11:8] <= 4'

121、;h9;</p><p><b>  end</b></p><p>  end </p><p><b>  end</b></p><p><b>  end</b></p><p>  else//tia

122、oshi</p><p><b>  begin </b></p><p>  if(!key_done[0])</p><p><b>  begin </b></p><p>  if(hour3[19:16]==4'h3&&hour3[23:20]==4'h2)

123、</p><p><b>  begin </b></p><p>  hour3[19:16]=4'h0;</p><p>  hour3[23:20]=4'h0;</p><p><b>  end</b></p><p><b>  els

124、e </b></p><p>  begin if(hour3[19:16]==4'h9)</p><p><b>  begin</b></p><p>  hour3[19:16]=4'h0;</p><p>  hour3[23:20]=hour3[23:20] + 1'b1;/

125、/分十位加1</p><p><b>  end</b></p><p><b>  else</b></p><p>  hour3[19:16]=hour3[19:16] + 1'b1;</p><p><b>  end</b></p><p&

126、gt;<b>  end</b></p><p>  if(!key_done[1])</p><p><b>  begin</b></p><p>  if(hour3[23:16]==8'h00)</p><p><b>  begin </b></p>

127、;<p>  hour3[23:20] <= 4'h2;</p><p>  hour3[19:16] <= 4'h3;</p><p><b>  end</b></p><p>  else if(hour3[23:16]==8'h10)</p><p><b

128、>  begin </b></p><p>  hour3[23:20] <= 4'h0;</p><p>  hour3[19:16] <= 4'h9;</p><p><b>  end</b></p><p>  else if(hour3[23:16]==8'

129、;h20)</p><p><b>  begin </b></p><p>  hour3[23:20] <= 4'h1;</p><p>  hour3[19:16] <= 4'h9;</p><p><b>  end</b></p><p>

130、;  else begin hour3[19:16] = hour3[19:16]-1'b1;end//分個(gè)位jian1 </p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b&

131、gt;</p><p><b>  end</b></p><p>  always @(posedge clk)</p><p><b>  begin</b></p><p>  if(count1 < TIME)//一個(gè)節(jié)拍250mS</p><p> 

132、 count1 = count1 + 1'b1;</p><p><b>  else</b></p><p><b>  begin</b></p><p>  count1 = 24'd0;</p><p>  if(state == 8'd147)</p>

133、<p>  state = 8'd0;</p><p><b>  else</b></p><p>  state = state + 1'b1;</p><p>  case(state)</p><p>  8'd0,8'd1,8'd2,8'd3,8

134、9;d4,8'd5: count_end=M_6;</p><p>  8'd6,8'd7: count_end=M_5;</p><p>  8'd8,8'd9,8'd10,8'd11: count_end=M_3;</p><p>  8'd1

135、2,8'd13,8'd14,8'd15: count_end=M_5;</p><p>  8'd16,8'd17,8'd18,8'd19: count_end=H_1;</p><p>  8'd20,8'd21: count_end=M_6;</p&

136、gt;<p>  8'd22,8'd23: count_end=M_5;</p><p>  8'd24,8'd25,8'd26,8'd27,8'd28,8'd29,8'd30,8'd31: count_end=M_6;</p><p>  8'd32,

137、8'd33,8'd34,8'd35: count_end=M_3;</p><p>  8'd36,8'd37: count_end=M_5;</p><p>  8'd38,8'd39: count_end=M_6;</p><p

138、>  8'd40,8'd41,8'd42,8'd43: count_end=M_5;</p><p>  8'd44,8'd45,8'd46,8'd47: count_end=M_3;</p><p>  8'd48,8'd49: count_e

139、nd=M_1;</p><p>  8'd50,8'd51: count_end=M_6;</p><p>  8'd52,8'd53: count_end=M_5;</p><p>  8'd54,8'd55:

140、 count_end=M_3;</p><p>  8'd56,8'd57,8'd58,8'd59,8'd60,8'd61,8'd62,8'd63: count_end=M_2;</p><p>  8'd64,8'd65,8'd66,8'd67,8'd68,8'

141、d69: count_end=M_2;</p><p>  8'd70,8'd71: count_end=M_3;</p><p>  8'd72,8'd73,8'd74,8'd75: count_end=M_5;</p><p>  8'd76,8&

溫馨提示

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

評(píng)論

0/150

提交評(píng)論