找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 19172|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn),含源碼,原理圖與WORD格式論文

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是我用Altera公司下集成軟件Quartus II硬件開(kāi)發(fā)板來(lái)實(shí)現(xiàn)的,通過(guò)Verilog HDL硬件描述性語(yǔ)言建模來(lái)分層次分模塊設(shè)計(jì)一個(gè)具有時(shí)分秒的電子鐘并能設(shè)置任意時(shí)刻鬧鐘,在ModelSim上仿真測(cè)試,最后在Cyclone IV E的FPGA實(shí)驗(yàn)平臺(tái)上實(shí)際測(cè)試驗(yàn)證。
本科畢業(yè)論文(設(shè)計(jì))
題目基于FPGA的24小時(shí)數(shù)字鐘的設(shè)計(jì)
姓名
專(zhuān)業(yè)
學(xué)院
學(xué)號(hào)
導(dǎo)師:
職稱(chēng)


基于FPGA的24小時(shí)數(shù)字鐘設(shè)計(jì)


摘要】介紹利用verilogHDL硬件描述語(yǔ)言結(jié)合FPGA(Field Programmable Gate Array)編程器件進(jìn)行數(shù)字鐘的設(shè)計(jì),并通過(guò)數(shù)碼管動(dòng)態(tài)掃描顯示計(jì)時(shí)結(jié)果。本文采用分層次分模塊的方法,用verilog語(yǔ)言進(jìn)行設(shè)計(jì)。在Quartus II 11.0開(kāi)發(fā)平臺(tái)上完成設(shè)計(jì),編譯,管腳分配,在ModelSim上仿真驗(yàn)證,并在FPGA硬件上進(jìn)行測(cè)試。該測(cè)試結(jié)果表明該設(shè)計(jì)方案切實(shí)可行。
關(guān)鍵詞】FPGA;verilog;Quartus II 11.0;ModelSim;數(shù)字鐘

Design of digital clock 24 hours based on FPGA

Medical imaging college of medical engineering professional level 2012

wangling student number: 1063451392

Instructor: he ling li

abstract】Introducing the design of digital clock combined FPGA with verilogHDL,the time of clock can be displayed with the digital driving circuit.the project adopts the methods of Hierarchical modules to design with verilogHDL.the digital clock is designed,compiled and pin assignment on Quartus II 11.0 ,is simulated on ModelSim and is tested in the experiment box. The simulation waves and test results indicate that the project is feasible.
key words】 FPGA; verilog; Quartus II 11.0; ModelSim; digital clock

目錄
基于FPGA的24小時(shí)數(shù)字鐘設(shè)計(jì)
引言
1.軟件與verilogHDL介紹
1.1軟件引入
1.2語(yǔ)言介紹
2.數(shù)字鐘的設(shè)計(jì)方案及原理
2.1設(shè)計(jì)方案
2.2設(shè)計(jì)原理
2.2.1數(shù)字鐘組成框圖
2.2.2數(shù)字鐘層次結(jié)構(gòu)圖
3.核心模塊設(shè)計(jì)
3.1頂層模塊
3.2底層模塊
4.管腳分配
5.電路測(cè)試
6.注意事項(xiàng)
7.心得與體會(huì)
【參考文獻(xiàn)】
致謝
附錄




引言
  隨著現(xiàn)代電子技術(shù)的發(fā)展,數(shù)字電子時(shí)鐘在家庭,車(chē)站,醫(yī)院,辦公等各個(gè)場(chǎng)所有著廣泛的應(yīng)用,成為人們生活的必需品,由于生產(chǎn)工藝上的進(jìn)步大大降低了現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的成本,使其成為目前設(shè)計(jì)數(shù)字電路的首選器件之一[1]。電子時(shí)鐘的精度遠(yuǎn)遠(yuǎn)大于老式鐘表,而且在鐘表的報(bào)時(shí)能功能的基礎(chǔ)上不斷發(fā)展,諸如自動(dòng)定時(shí)報(bào)警裝置,定時(shí)廣播,鬧鐘設(shè)置,甚至各種大型醫(yī)療設(shè)備的定時(shí)啟用,智能儀表,機(jī)器人,所有這些都是在數(shù)字鐘表的基礎(chǔ)上實(shí)現(xiàn),為其他電路的設(shè)計(jì)提供一定借鑒作用[1]。因此對(duì)簡(jiǎn)單數(shù)字鐘的研究有極大的意義。
1.軟件與verilogHDL介紹1.1軟件引入
  Altera® Quartus® II設(shè)計(jì)軟件是適合單芯片可編程系統(tǒng)(SOPC)的最全面的設(shè)計(jì)環(huán)境[2]。建立工程項(xiàng)目和verilog HDL文件設(shè)計(jì)之后,可以使用 Quartus II 軟件中的 Settings 對(duì)話框、Assignment Editor 和 Floorplan Editor 指定初始設(shè)計(jì)約束條件,例如,引腳分配、器件選項(xiàng)和時(shí)序約束條件[2]。Quartus II還提供Compiler Settings 向?qū)Вˋssignments 菜單)協(xié)助用戶指定初始設(shè)計(jì)的約束條件。
  ModelSim仿真工具是Model公司開(kāi)發(fā)的,它支持Verilog、VHDL以及他們的混合仿真,它可以將整個(gè)程序分步執(zhí)行,使設(shè)計(jì)者直接看到程序下一步將要執(zhí)行的語(yǔ)句,而且在程序執(zhí)行的任何步驟任何時(shí)刻都可以查看任意變量的當(dāng)前值?梢栽贒ataflow窗口觀察某一單元或模塊的輸入輸出連續(xù)變化等,比Quartus 自帶的仿真功能強(qiáng)大的多,支持Testbench,是目前業(yè)界最通用的仿真器之一[2]。
1.2語(yǔ)言介紹
  Verilog語(yǔ)言形式簡(jiǎn)單,與C語(yǔ)言相近,容易掌握,在門(mén)級(jí)開(kāi)關(guān)電路描述方面比VHDL強(qiáng)的多[3]。相比傳統(tǒng)電路原理圖輸入法,verilogHDL設(shè)計(jì)周期短,無(wú)需專(zhuān)門(mén)的設(shè)計(jì)工具即可很輕松的將完成的設(shè)計(jì)移植到不同廠家的不同芯片中去[3],并在不同規(guī)模應(yīng)用時(shí)比較方便的作修改調(diào)整。由于verilog HDL的信號(hào)位數(shù)是很容易改變的,故可對(duì)它進(jìn)行修改來(lái)適應(yīng)不同的規(guī)模你應(yīng)用[4]。且在仿真驗(yàn)證時(shí),仿真測(cè)試文件可采用同一種描述語(yǔ)言來(lái)對(duì)設(shè)計(jì)電路進(jìn)行測(cè)試。Verilog HDL 程序是由模塊構(gòu)成的,每個(gè)模塊的內(nèi)容都是嵌在module和endmodule兩個(gè)語(yǔ)句之間,每個(gè)verilog程序包括四個(gè)主要部分:端口定義,I/O說(shuō)明,內(nèi)部信號(hào)聲明,功能定義。每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。正因?yàn)槿绱,才可以將大型的?shù)字電路設(shè)計(jì)分割成不同的小模塊來(lái)實(shí)現(xiàn)特定的功能,最后通過(guò)頂層模塊調(diào)用子模塊來(lái)實(shí)現(xiàn)整體功能[4]

2.數(shù)字鐘的設(shè)計(jì)方案及原理2.1設(shè)計(jì)方案
  本文以FPGA為實(shí)驗(yàn)平臺(tái),采用VerilogHDL語(yǔ)言在Quartus II 11.0開(kāi)發(fā)環(huán)境下設(shè)計(jì)數(shù)字時(shí)鐘[5-6],具有計(jì)時(shí),校時(shí),整點(diǎn)報(bào)時(shí)的功能,具體功能為:1)能夠?qū)πr(shí)、分鐘、秒鐘進(jìn)行正常計(jì)時(shí),每日按24小時(shí)計(jì)時(shí)制,能用四個(gè)七段式數(shù)碼管清晰顯示時(shí)和分,八個(gè)LED采用二進(jìn)制形式來(lái)顯示秒鐘。2)具有復(fù)位功能,按下reset鍵可以對(duì)當(dāng)前時(shí)間清零。3)校驗(yàn)功能,能夠?qū)?shù)字鐘進(jìn)行分時(shí)設(shè)置,方便在時(shí)鐘跑錯(cuò)時(shí)進(jìn)行校正。4)整點(diǎn)報(bào)時(shí)功能,當(dāng)為12:00時(shí)和00:00時(shí),蜂鳴器以1Hz的頻率響起12下,報(bào)整點(diǎn)功能實(shí)現(xiàn)。
數(shù)字鐘的硬件框圖如圖1所示。


圖1 數(shù)字鐘的硬件框圖
2.2設(shè)計(jì)原理2.2.1數(shù)字鐘組成框圖
  數(shù)字時(shí)鐘組成框圖如圖2所示?梢(jiàn),它由2個(gè)60進(jìn)制計(jì)數(shù)器、1個(gè)24進(jìn)制計(jì)數(shù)器和2個(gè)2選1數(shù)據(jù)選擇器共5個(gè)模塊組成。3個(gè)計(jì)數(shù)器共用一個(gè)時(shí)鐘信號(hào)CP,CP是50M系統(tǒng)時(shí)鐘分頻后的1Hz信號(hào)。在時(shí)和分的輸出端接上譯碼電路,用四個(gè)共陽(yáng)極的七段數(shù)碼管顯示出時(shí)間[7] ,秒的輸出用8個(gè)LED的二進(jìn)制形式來(lái)表示。兩個(gè)選擇器分別選擇時(shí)計(jì)數(shù)器和分計(jì)數(shù)器的使能控制信號(hào),對(duì)時(shí)間進(jìn)行校正時(shí),在控制端(Adj_hour和Adj_min)的作用下,使能信號(hào)接高電平,此時(shí)每來(lái)一個(gè)時(shí)鐘信號(hào),計(jì)數(shù)器加1計(jì)數(shù),從而實(shí)現(xiàn)對(duì)小時(shí)和分鐘的校正[8]。正常計(jì)時(shí)時(shí),使能信號(hào)來(lái)自于低位計(jì)數(shù)器的進(jìn)位輸出,即秒計(jì)數(shù)達(dá)到59s時(shí),產(chǎn)生輸出信號(hào)(Sco=1)使分計(jì)數(shù)器加1,分、秒計(jì)數(shù)器同時(shí)計(jì)時(shí)到最大值(59s 59min)時(shí) ,產(chǎn)生輸出信號(hào)(Mco=1)使小時(shí)計(jì)數(shù)器加1。

圖2 數(shù)字鐘組成框圖(見(jiàn)51hei附件)

2.2.2數(shù)字鐘層次結(jié)構(gòu)圖
  數(shù)字時(shí)鐘的層次結(jié)構(gòu)圖如圖3所示?梢钥闯,整個(gè)程序分為兩個(gè)層次4個(gè)模塊,其結(jié)構(gòu)層次如圖2所示。底層由3個(gè)模塊組成,6進(jìn)制計(jì)數(shù)器模塊(counter6.v)、10進(jìn)制計(jì)數(shù)模(counter10.v)和24進(jìn)制計(jì)數(shù)模塊(counter24.v),頂層有一個(gè)模塊(top_clock.v),它調(diào)用底層的3個(gè)模塊完成數(shù)字鐘的計(jì)時(shí)功能。

        
圖3數(shù)字鐘程序的層次結(jié)構(gòu)圖
3.核心模塊設(shè)計(jì)3.1頂層模塊
  建立數(shù)字時(shí)鐘工程new project  clock,設(shè)計(jì)頂層模塊top_clock.v,頂層模塊包括1Hz分頻電路、整點(diǎn)報(bào)時(shí)電路、數(shù)碼管動(dòng)態(tài)掃描(移位、選擇)、譯碼、顯示電路。其頂層框圖如圖4所示。


           
圖4 數(shù)字鐘頂層框圖

(1)生成1Hz時(shí)鐘信號(hào)模塊
  時(shí)分秒計(jì)數(shù)器的計(jì)時(shí)時(shí)鐘cp為1Hz的信號(hào),而系統(tǒng)時(shí)鐘信號(hào)(sys_clk)為50MHz,因此需要對(duì)50MHz信號(hào)進(jìn)行分頻得到1Hz。具體分頻的代碼為:
always@(posedge sys_clk or negedge reset) begin
  if(~reset)begin
    cnt<=0;cp<=0;
    end else begin
       if(cnt=25’d24999999)begin
         cp<=~cp;cnt<=0;
        end else begin
          cnt<=cnt+1;
        end
     end
end
(2)整點(diǎn)報(bào)時(shí)模塊
  正常計(jì)數(shù)時(shí),當(dāng)分秒計(jì)數(shù)達(dá)到59分59秒,下一個(gè)時(shí)鐘信號(hào)cp的上升沿到來(lái)時(shí)蜂鳴器以1Hz的頻率發(fā)出蜂鳴實(shí)現(xiàn)整點(diǎn)報(bào)時(shí),且N整點(diǎn)時(shí),蜂鳴器就發(fā)出N聲“嘀”響,13時(shí)及13時(shí)以后的每個(gè)整點(diǎn),蜂鳴器發(fā)出(N-12)聲“嘀”響。具體整點(diǎn)報(bào)時(shí)代碼為:
assign hour_num=hour[7:4]*10+hour[3:0]+1;
always@(posedge cp or negedge reset)begin
if(~reset)        bp_cnt_end<={5{1'b1}};
else if(hour_en)
bp_cnt_end<=((hour_num==24)?12:(hour_num>=13)?(hour_num-12):hour_num)-1;
end
always@(posedge cp or negedge reset)begin
if(~reset)                 bp_cnt<={5{1'b1}};
else if(hour_en)           bp_cnt<=5'b0;
else if(bp_cnt<bp_cnt_end)   bp_cnt<=bp_cnt+1'b1;
end
always@(posedge cp or negedge reset)begin
if(~reset)                  bp_enable<=1'b0;
else if(hour_en)            bp_enable<=1'b1;
else bp_enable<=(bp_cnt<bp_cnt_end);
end
assign cp_out=scan_cnt[19] & bp_enable&cp;

(3)掃描信號(hào)模塊
  數(shù)字鐘工作于正常時(shí),每來(lái)一個(gè)時(shí)鐘信號(hào)sys_clk,reg [SCAN_CNT_WIDTH-1:0]scan_cnt進(jìn)行動(dòng)態(tài)掃描移位狀態(tài)(00,01,10,11)來(lái)選擇一個(gè)數(shù)碼管,只要掃描速度足夠快,利用發(fā)光二極管的余暉和人眼視覺(jué)的暫留作用,使人感覺(jué)每個(gè)數(shù)碼管都在顯示。具體掃描代碼為:
always@(posedge sys_clk or negedge reset)
  begin
    if(~reset)
      scan_cnt<=0;
    else begin
      scan_cnt<=scan_cnt+1;
     end
              end
always@(*)  
  begin
    case(scan_cnt[SCAN_CNT_WIDTH-1:SCAN_CNT_WIDTH-2])
                 2'b00:begin DIG_r<=4'b0001; scan_out<=minute[3:0];end
                 2'b01:begin DIG_r<=4'b0010; scan_out<=minute[7:4];end
                 2'b10:begin DIG_r<=4'b0100; scan_out<=hour[3:0];end
                 2'b11:begin DIG_r<=4'b1000; scan_out<=hour[7:4];end
      default:begin DIG_r<=4'b0000;scan_out<=4'b0;end
    endcase
   end

(4)選擇顯示數(shù)據(jù)及譯碼模塊
  掃描信號(hào)決定某一時(shí)刻哪一個(gè)數(shù)碼管被點(diǎn)亮,掃描信號(hào)也是顯示時(shí)間數(shù)據(jù)的選擇信號(hào)。由于時(shí)間數(shù)據(jù)為BCD碼形式,需譯成七段顯示碼。具體代碼為:
always@(*)
  begin
     case (scan_out)
         0: seg7_out_r = 7'b0111111; // 0
         1: seg7_out_r = 7'b0000110; // 1
         2: seg7_out_r = 7'b1011011; // 2
         3: seg7_out_r = 7'b1001111; // 3
         4: seg7_out_r = 7'b1100110; // 4
         5: seg7_out_r = 7'b1101101; // 5
         6: seg7_out_r = 7'b1111101; // 6
         7: seg7_out_r = 7'b0100111; // 7
         8: seg7_out_r = 7'b1111111; // 8
         9: seg7_out_r = 7'b1100111; // 9
         10: seg7_out_r = 7'b1110111; // A
         11: seg7_out_r = 7'b1111100; // b
         12: seg7_out_r = 7'b0111001; // c
         13: seg7_out_r = 7'b1011110; // d
         14: seg7_out_r = 7'b1111001; // E
         15: seg7_out_r = 7'b1110001; // F
         default: seg7_out_r = 7'b0000000;
     endcase
     end

(4)結(jié)果顯示模塊

   assign seg7_out={1'b0,(~seg7_out_r[6:0])};   
   assign DIG=~DIG_r[3:0];
   assign second_out=second[3:0]+second[7:4]*10;

(5)分時(shí)校驗(yàn)?zāi)K
  使能端(en),復(fù)位(reset)為高電平時(shí)有效且計(jì)數(shù)器正常計(jì)時(shí),分時(shí)校驗(yàn)adj_min,adj_hour 為高電平時(shí)(本實(shí)驗(yàn)開(kāi)發(fā)板將撥碼開(kāi)關(guān)撥到off狀態(tài))停止計(jì)時(shí)此時(shí)數(shù)碼管處于調(diào)表狀態(tài)(每隔一秒數(shù)碼管分和時(shí)的數(shù)字顯示增加1且互不影響),分時(shí)校驗(yàn)為低電平時(shí)計(jì)數(shù)器正常計(jì)時(shí)。具體分時(shí)校驗(yàn)代碼為:
assign minL_en=adj_min?vdd:(second==8'h59);
assign minH_en=(adj_min&&(minute[3:0]==4'h9))||(minute[3:0]==4'h9)&&(second==8'h59);
assign hour_en=adj_hour?vdd:((minute==8'h59)&&(second==8'h59));
3.2底層模塊
  設(shè)計(jì)6進(jìn)制計(jì)數(shù)器模塊(counter6.v)、10進(jìn)制計(jì)數(shù)器模塊(counter10.v)和24進(jìn)制計(jì)數(shù)器模塊(counter24.v)。計(jì)數(shù)結(jié)果為BCD碼形式,通過(guò)調(diào)用這三個(gè)元件可以實(shí)現(xiàn)計(jì)時(shí)(當(dāng)使能端en和ncr為高電平時(shí),每來(lái)一個(gè)脈沖,計(jì)數(shù)器q加1直到計(jì)滿回零)。其各模塊框圖如圖5如下:
圖5  6、10、24進(jìn)制模塊框圖


(1)6進(jìn)制計(jì)數(shù)器模塊仿真波形及代碼實(shí)現(xiàn)

圖6  6進(jìn)制計(jì)數(shù)波形

module counter6 (q,reset,en,cp);
input cp,reset,en;
output[3:0]q;
reg[3:0]q;
always@(posedge cp or negedge reset)
begin
  if(~reset)q<=4'b0000;           
  else if (~en)q<=q;
  else if(q==4'b0101)q<=4'b0000;
  else q<=q+1'b1;     
  end
  endmodule

(2)10進(jìn)制計(jì)數(shù)器模塊仿真波形及代碼實(shí)現(xiàn)
圖7  10進(jìn)制計(jì)數(shù)波形
module counter10 (q,reset,en,cp);
input cp,reset,en;
output[3:0]q;
reg[3:0]q;
always@(posedge cp or negedge reset)
begin
  if(~reset)q<=4'b0000;
  else if(~en)q<=q;
  else if(q==4'b1001)q<=4'b0000;
  else q<=q+1'b1;
  end
  endmodule
(3)24進(jìn)制計(jì)數(shù)器模塊仿真波形及代碼實(shí)現(xiàn)

圖8  24進(jìn)制計(jì)數(shù)波形

module counter24(cntH,cntL,reset,en,cp);
input cp,reset,en;
output [3:0] cntH,cntL;
reg[3:0]cntH,cntL;
always@(posedge cp or negedge reset)
begin
if(~reset){cntH,cntL}<=8'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))
                 begin
                              cntH<=cntH;
                              cntL<=cntL+1'b1;
                            end
   else if(cntL==9)
                 begin
                   cntH<=cntH+1'b1;
                              cntL<=4'b0000;
                            end
else
   begin
     cntH<=cntH;
                cntL<=cntL+1'b1;
              end
end
endmodule                             
4.管腳分配
  選擇目標(biāo)器件并對(duì)相應(yīng)地引腳進(jìn)行鎖定。在這里所選擇的器件為Altera公司Cyclone E系列的EP4C6E22C8芯片,引腳分配方法如表1。
注:在管腳分配時(shí),F(xiàn)PGA的101引腳會(huì)出現(xiàn)出現(xiàn)Error: Can't place multiple pins assigned to pin location Pin_XX (IOC_X28_Y2_N0)
解決方法:
  Assignments->Device->Device and pin options->(卡)Dual purpose pin將nCE0以及Other Active Parallel Pins(其他復(fù)用的管腳)全部設(shè)置改為: “use as regular IO”默認(rèn)只給FPGA下載使用選擇復(fù)用了就是下載完還可以給普通IO使用。

表1  引腳分配方法

信號(hào)

引腳

信號(hào)

引腳

sys_clk

PIN_91

DIG[3]

SEG_C4_87

reset

PIN_90

DIG[2]

SEG_C3_86

adj_min

SW_KEY1_34

DIG[1]

SEG-C2_99

adj_hour

SW_KEY2_33

DIG[0]

SEG_C1_98

seg7_out[7]

LED8_105

second[7]

PIN_144

seg7_out[6]

LED7_103

second[6]

PIN_143

seg7_out[5]

LED6_101

second[5]

PIN_142

seg7_out[4]

LED5_106

second[4]

PIN_1

seg7_out[3]

LED4_110

second[3]

PIN_2

seg7_out[2]

LED3_104

second[2]

PIN_3

seg7_out[1]

LED2_111

second[1]

PIN_31

seg7_out[0]

LED1_100

second[0]

PIN_39

5.電路測(cè)試
  為驗(yàn)證設(shè)計(jì)電路,最后將程序下載到FPGA開(kāi)發(fā)板上進(jìn)行硬件測(cè)試。下載目標(biāo)器件選用Alter公司的Cyclone IV E系列的EP4C6E22C8芯片,用Quartus II 11.0 軟件進(jìn)行電路綜合及程序下載。器件管腳設(shè)定后,將程序再編譯一次,最終生成可以下載的目標(biāo)文件。將器件設(shè)定的相應(yīng)管腳和數(shù)碼管驅(qū)動(dòng)電路進(jìn)行連接,最后將目標(biāo)文件下載到器件當(dāng)中,則數(shù)碼管顯示計(jì)時(shí)結(jié)果且能實(shí)現(xiàn)分時(shí)校驗(yàn)。通過(guò)測(cè)試計(jì)時(shí)結(jié)果與分時(shí)校驗(yàn)正確。

6.注意事項(xiàng)
(1)實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)數(shù)碼管部分管子的時(shí)不亮?xí)r微亮導(dǎo)致數(shù)字的顯示不清晰。分析數(shù)碼管的掃描頻率為系統(tǒng)脈沖50MHz,而FPGA數(shù)碼管的掃描頻率不支持太高頻率或者是數(shù)碼管的管腳不支持太高頻,而把掃描頻率降下來(lái)即可(本實(shí)驗(yàn)采用增大掃描頻率的位寬,由于位寬定義的越大,掃描頻率越低)。程序改動(dòng)如下:
reg[7:0]scan_out改為reg[19:0]scan_out
case(scan_cntt[7:6])改為case(scan_cnt[19:18])
這樣即可解決數(shù)碼管顯示不清的問(wèn)題。
  • 在觀察實(shí)驗(yàn)的過(guò)程中將ifcnt==24999999)改成if(cnt==25000000/k-1)即可將時(shí)間走快k倍方便觀察實(shí)驗(yàn)結(jié)果。

7.心得與體會(huì)
  本次論文從查閱文獻(xiàn),結(jié)合實(shí)際選題,軟件安裝到可實(shí)施方案的設(shè)計(jì),VerilogHDL的編寫(xiě),由于是第一次做電子硬件功能設(shè)計(jì):
  首先:在設(shè)計(jì)思路上存在嚴(yán)重模糊,邏輯混亂,尤其在頂層模塊的設(shè)計(jì)時(shí)不能理清模塊之間的相互關(guān)系,對(duì)一些基本概念缺乏準(zhǔn)確的認(rèn)識(shí);
  其次:對(duì)軟件的安裝及操作環(huán)境的不熟悉導(dǎo)致實(shí)驗(yàn)進(jìn)行的緩慢;
  第三:第一次倉(cāng)促自學(xué)VerilogHDL語(yǔ)言常常犯一些低級(jí)的語(yǔ)法錯(cuò)誤,即使是一個(gè)標(biāo)點(diǎn)、匹配問(wèn)題、數(shù)據(jù)類(lèi)型定義錯(cuò)了都會(huì)導(dǎo)致一連串的錯(cuò)誤,故在編程時(shí)一定要倍加仔細(xì);
  第四:在仿真波形的觀察與分析上明顯感到專(zhuān)業(yè)知識(shí)的不夠,尤其在對(duì)分頻,掃描,譯碼,顯示電路這塊由于掃描頻率、延時(shí)單位、時(shí)間精度及運(yùn)行時(shí)間沒(méi)有設(shè)計(jì)好導(dǎo)致無(wú)法觀察實(shí)驗(yàn)意達(dá)到的波形及顯示結(jié)果;
  第五:此次論文設(shè)計(jì)時(shí)間倉(cāng)促且基礎(chǔ)不夠沒(méi)有進(jìn)一步做數(shù)字時(shí)鐘的功能擴(kuò)展;
  第六:實(shí)驗(yàn)是檢驗(yàn)原理方案的唯一方法,只有通過(guò)不斷的嘗試、觀察、分析才能得到正確的實(shí)驗(yàn)結(jié)果。
  最后:此次論文也收獲很多,學(xué)習(xí)了數(shù)字系統(tǒng)自上而下的設(shè)計(jì)方法,進(jìn)一步熟悉層次電路的設(shè)計(jì)方法。自頂而下的電子設(shè)計(jì)方法能使程序之間條理理清晰,分工明確,便于設(shè)計(jì)。同時(shí)也培養(yǎng)了自己動(dòng)手設(shè)計(jì)實(shí)驗(yàn)的能力及對(duì)計(jì)算機(jī)軟件編程應(yīng)用方面的興趣也為今后的學(xué)習(xí)打好基礎(chǔ)。
【參考文獻(xiàn)】
[1]康華光,鄒壽彬.《電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)》[M].北京:高等教育出版社,2005144-146,162-163,121-133.
[2]陳欣波.Alter FPGA 工程師成長(zhǎng)手冊(cè)[M].北京:清華大學(xué)出版社,2012.
[3]夏宇聞.verilog基本知識(shí)(下)[J].電子產(chǎn)品世界,2002,(20):87-90.
[4]夏宇聞.《verilog數(shù)字系統(tǒng)設(shè)計(jì)教程》[M].北京:北京航空航天大學(xué),2004年版.
[5]紀(jì)欣然,丁一,梁致源.基于FPGA的多功能數(shù)字鐘設(shè)計(jì)[J].
電子設(shè)計(jì)工程,2012,20(16):177-179.
JI Xin-ran,DING Yi,LIANG Zhi-yuan.Design of
multifunction digital clock based on FPGA [J].Electronic
Design Engineering,2012,20(16):177-179.
[6]徐大詔.基于FPGA實(shí)現(xiàn)的數(shù)字鐘設(shè)計(jì)[J].信息技術(shù).
[7]楊軍.基于FPGA的SOPC實(shí)踐教程[M].北京:科學(xué)出版社,2010.
[8]王琥,任峻.基于FPGA的數(shù)字電子鐘設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014,22(4):127-129

致謝
  本次論文得以完成首先要感謝我的指導(dǎo)老師--何伶俐老師,從選題到寫(xiě)作方向與思路再到整個(gè)論文的完成,在此期間不管大大小小的問(wèn)題,只要我問(wèn)到,何老師都會(huì)第一時(shí)間不厭其煩的為我解答。何老師認(rèn)真負(fù)責(zé)的教學(xué)精神與樸實(shí)的品質(zhì)深深的影響了我,告誡我科研來(lái)不得半點(diǎn)虛假,一定要腳踏實(shí)地是什么就是什么。其次,感謝參考文獻(xiàn)作者所提到的方法與觀點(diǎn),正是因?yàn)殚喿x了作者的相關(guān)著作讓我對(duì)層次電路的設(shè)計(jì)有了進(jìn)一步的認(rèn)識(shí)并逐漸熟悉了verilog語(yǔ)言的編程風(fēng)格。然后我要感謝親愛(ài)的同學(xué)們,正是因?yàn)槟銈兊呐惆榕c鼓勵(lì)使我變得堅(jiān)強(qiáng)與勇毅,另外也非常感謝網(wǎng)上熱心論壇好友提供的幫助和解答。最后由于專(zhuān)業(yè)知識(shí)所限,論文中還存在很多瑕疵和需要研究改進(jìn)的地方,望老師和同學(xué)予以指正。再次感謝四年來(lái)老師的諄諄教導(dǎo),感謝同學(xué)的幫助與關(guān)心,祝福我的老師工作愉悅,闔家幸福,我的同學(xué)工作順利,勇攀高峰。

附錄
(圖片)
            



(代碼)


…………
…………

完整的Word格式文檔51黑下載地址(內(nèi)含清晰圖片與源代碼):
基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn).doc (6.21 MB, 下載次數(shù): 211)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:780207 發(fā)表于 2020-6-17 17:29 | 只看該作者
不錯(cuò),值得下載學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表