版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 目錄0</b></p><p><b> 摘要1</b></p><p><b> 正文2</b></p><p> 1設(shè)計(jì)目的和要求2</p><p
2、><b> 2設(shè)計(jì)原理2</b></p><p><b> 3設(shè)計(jì)內(nèi)容3</b></p><p> ?。?)程序源代碼3</p><p> ?。?)調(diào)試分析過(guò)程描述9</p><p> ?。?)結(jié)果分析11</p><p><b> 總結(jié)與致謝
3、12</b></p><p><b> 參考文獻(xiàn)13</b></p><p><b> 附錄14</b></p><p><b> 摘要</b></p><p> EDA(Electronic Design Automation)電
4、子設(shè)計(jì)自動(dòng)化,就是以大規(guī)??删幊唐骷樵O(shè)計(jì)載體,以硬件描述語(yǔ)言為系統(tǒng)邏輯描述的主要表達(dá)方式,通過(guò)相關(guān)的軟件,自動(dòng)完成用軟件方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng),最終形成集成電子系統(tǒng)或?qū)S眉尚酒?。本次課程設(shè)計(jì)利用Quartus II為設(shè)計(jì)軟件、Verilog HDL為硬件描述語(yǔ)言,結(jié)合所學(xué)的數(shù)字電路的知識(shí)設(shè)計(jì)一個(gè)24時(shí)電子秒表,具有正常時(shí)、分、秒計(jì)時(shí),動(dòng)態(tài)顯示,清零等功能。利用硬件描述語(yǔ)言Verilog HDL對(duì)設(shè)計(jì)系統(tǒng)的各個(gè)子模塊進(jìn)行邏輯描述
5、,采用模塊化的設(shè)計(jì)思想完成頂層模塊的設(shè)計(jì),通過(guò)軟件編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合優(yōu)化、邏輯布線(xiàn)、邏輯仿真,最終將設(shè)計(jì)的軟件系統(tǒng)下載設(shè)計(jì)實(shí)驗(yàn)系統(tǒng),對(duì)設(shè)計(jì)的系統(tǒng)進(jìn)行硬件測(cè)試。</p><p> 關(guān)鍵詞:EDA;Quartus II;Verilog HDL;電子秒表正文</p><p><b> 1設(shè)計(jì)目的和要求</b></p><p>
6、(1)具有時(shí)、分、秒計(jì)數(shù)功能,以24h循環(huán)計(jì)時(shí)的電子鐘。</p><p> ?。?)計(jì)時(shí)結(jié)果要用6個(gè)數(shù)碼管分別顯示時(shí)、分、秒的十位和個(gè)位。</p><p> ?。?)具有清零的功能。</p><p> ?。?)熟練掌握分頻器的使用。</p><p> (5)熟練掌握各種計(jì)數(shù)器的使用,能用計(jì)數(shù)器構(gòu)成二十四進(jìn)制、六十進(jìn)制等所需進(jìn)制的計(jì)數(shù)器。&l
7、t;/p><p><b> 2設(shè)計(jì)原理</b></p><p> 電子秒表以其顯示時(shí)間的直觀(guān)性、走時(shí)準(zhǔn)確性作為一種計(jì)時(shí)工具,電子秒表的基本組成部分離不開(kāi)計(jì)數(shù)器,在控制邏輯電路的控制下完成預(yù)定的各項(xiàng)功能。電子秒表的基本原理方框圖如下圖所示:</p><p> 本數(shù)字系統(tǒng)實(shí)現(xiàn)電子秒表的基本的計(jì)時(shí)功能,輸入50MHz的時(shí)鐘,采用24小時(shí)制計(jì)時(shí),能顯
8、示時(shí)、分、秒。本電子秒表實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1Hz)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的50MHz時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定。通常使用石英晶體振蕩器電路構(gòu)成電子秒表。</p><p> 電子秒表的基本組成 本電子秒表的實(shí)現(xiàn)可分為以下幾個(gè)模塊: </p><p> (1) 秒計(jì)數(shù)模塊:秒計(jì)數(shù),在頻率為1Hz的時(shí)鐘下以6
9、0次為循環(huán)計(jì)數(shù),并產(chǎn)生進(jìn)位信號(hào)影響分計(jì)數(shù); </p><p> (2) 分計(jì)數(shù)模塊:分計(jì)數(shù),在秒進(jìn)位信號(hào)為高電平時(shí),計(jì)數(shù)一次,同樣以60次為一個(gè)循環(huán)計(jì)數(shù),同時(shí)產(chǎn)生分進(jìn)位信號(hào)影響時(shí)計(jì)數(shù); </p><p> (3) 時(shí)計(jì)數(shù)模塊:時(shí)計(jì)數(shù),在分進(jìn)位信號(hào)為高電平時(shí),計(jì)數(shù)一次,以24次為一個(gè)循環(huán)計(jì)數(shù); </p><p> (4) 頻率產(chǎn)生模塊:主要
10、有2個(gè)部分,一個(gè)是產(chǎn)生1Hz的計(jì)數(shù)頻率,一個(gè)是產(chǎn)生5KHz的數(shù)碼管動(dòng)態(tài)掃描頻率; </p><p> (5) 時(shí)間顯示模塊:通過(guò)選中不同的數(shù)碼管,同時(shí)進(jìn)行一定頻率的掃描顯示時(shí)、分、秒。</p><p> 一個(gè)基本的電子秒表電路主要由譯碼顯示器、“時(shí)”,“分”,“秒”計(jì)數(shù)器和定時(shí)器組成。干電路系統(tǒng)由秒信號(hào)發(fā)生器、“時(shí)”,“分”,“秒”計(jì)數(shù)器、譯碼器及顯示器、電路組成。本設(shè)計(jì)方案采
11、用CycloneⅡEP2C35F672C8試驗(yàn)箱實(shí)現(xiàn),首先由晶振電路產(chǎn)生震蕩頻率50MHz的CLOCK脈沖,通過(guò)計(jì)數(shù)器計(jì)數(shù)分頻,形成兩個(gè)頻率的脈沖,其中CLK1脈沖用來(lái)動(dòng)態(tài)掃描數(shù)碼管地址,CLK2脈沖用來(lái)秒計(jì)時(shí)。“秒計(jì)數(shù)器”采用六十進(jìn)制計(jì)數(shù)器,每累計(jì)60秒向“分計(jì)數(shù)器”進(jìn)位;“分計(jì)數(shù)器”采用六十進(jìn)制計(jì)數(shù)器,每累計(jì)60分向“時(shí)計(jì)數(shù)器”進(jìn)位;“時(shí)計(jì)數(shù)器”采用二十四進(jìn)制計(jì)數(shù)器,按照“24翻1”規(guī)律計(jì)數(shù)。將時(shí)、分、秒的計(jì)數(shù)結(jié)果分別用兩個(gè)4位二進(jìn)
12、制數(shù)字表示出來(lái),經(jīng)譯碼器送8段數(shù)碼管上顯示。如遇到復(fù)位,時(shí)、分、秒計(jì)數(shù)器同時(shí)清零,采用同步清零方式。</p><p><b> 3設(shè)計(jì)內(nèi)容</b></p><p><b> 程序源代碼</b></p><p> module digital_clock(seg,scan,clk,reset);</p>
13、<p> input clk,reset;</p><p> output [7:0] seg,scan;</p><p> reg [7:0] seg,scan;</p><p> reg [2:0] cnt8;</p><p> reg [3:0] data;</p><p><b>
14、 reg clk1;</b></p><p><b> reg clk2;</b></p><p> reg [13:0] counter1;</p><p> reg [25:0] counter2;</p><p> reg [3:0] hh,hl,mh,ml,sh,sl;</p>
15、<p> reg [5:0] hour,min,sec;</p><p> always @(posedge clk)</p><p><b> begin </b></p><p> if (counter1=='d10000) </p><p> begin clk1<=~clk
16、1;counter1<=0;end</p><p><b> else</b></p><p> begin counter1<=counter1+1;end</p><p><b> end</b></p><p> always @(posedge clk1)</p&g
17、t;<p><b> begin</b></p><p> if (cnt8=='d5) cnt8<='d0;</p><p> else cnt8<=cnt8+1;</p><p><b> end</b></p><p> always @(p
18、osedge clk)</p><p><b> begin </b></p><p> if (counter2=='d50000000) </p><p> begin clk2<=~clk2;counter2<=0;end</p><p><b> else</b>
19、;</p><p> begin counter2<=counter2+1;end</p><p><b> end</b></p><p> always @(posedge clk2)</p><p><b> begin</b></p><p> if
20、(sec==8'd59)</p><p> begin sec<='d0;</p><p> if (min==8'd59)</p><p> begin min<='d0;</p><p> if (hour==8'd23)</p><p> begin
21、hour<=8'd0;end</p><p><b> else</b></p><p> begin hour<=hour+1;end</p><p><b> end</b></p><p><b> else</b></p>&l
22、t;p> begin min<=min+1;end</p><p><b> end</b></p><p><b> else </b></p><p> begin sec<=sec+1;end</p><p> if (!reset)</p><
23、p> begin sec[5:0]<='d0;</p><p> min[5:0]<='d0;</p><p> hour[5:0]<='d0; </p><p><b> end</b></p><p><b> end </b&
24、gt;</p><p> always @(sec)</p><p><b> begin</b></p><p><b> case(sec)</b></p><p> 5'd0:begin sh[3:0]<='b0000;sl[3:0]<='b0000
25、;end</p><p> 5'd1:begin sh[3:0]<='b0000;sl[3:0]<='b0001;end</p><p> 5'd2:begin sh[3:0]<='b0000;sl[3:0]<='b0010;end</p><p> 5'd3:begin sh[3
26、:0]<='b0000;sl[3:0]<='b0011;end</p><p> 5'd4:begin sh[3:0]<='b0000;sl[3:0]<='b0100;end</p><p> 5'd5:begin sh[3:0]<='b0000;sl[3:0]<='b0101;end&
27、lt;/p><p> 5'd6:begin sh[3:0]<='b0000;sl[3:0]<='b0110;end</p><p> 5'd7:begin sh[3:0]<='b0000;sl[3:0]<='b0111;end</p><p> 5'd8:begin sh[3:0]&l
28、t;='b0000;sl[3:0]<='b1000;end</p><p> 5'd9:begin sh[3:0]<='b0000;sl[3:0]<='b1001;end</p><p> 5'd10:begin sh[3:0]<='b0001;sl[3:0]<='b0000;end</
29、p><p> 5'd11:begin sh[3:0]<='b0001;sl[3:0]<='b0001;end</p><p> 5'd12:begin sh[3:0]<='b0001;sl[3:0]<='b0010;end</p><p> 5'd13:begin sh[3:0]<
30、;='b0001;sl[3:0]<='b0011;end</p><p> 5'd14:begin sh[3:0]<='b0001;sl[3:0]<='b0100;end</p><p> 5'd15:begin sh[3:0]<='b0001;sl[3:0]<='b0101;end</
31、p><p> 5'd16:begin sh[3:0]<='b0001;sl[3:0]<='b0110;end</p><p> 5'd17:begin sh[3:0]<='b0001;sl[3:0]<='b0111;end</p><p> 5'd18:begin sh[3:0]<
32、;='b0001;sl[3:0]<='b1000;end</p><p> 5'd19:begin sh[3:0]<='b0001;sl[3:0]<='b1001;end</p><p> 5'd20:begin sh[3:0]<='b0010;sl[3:0]<='b0000;end</
33、p><p> 5'd21:begin sh[3:0]<='b0010;sl[3:0]<='b0001;end</p><p> 5'd22:begin sh[3:0]<='b0010;sl[3:0]<='b0010;end</p><p> 5'd23:begin sh[3:0]<
34、;='b0010;sl[3:0]<='b0011;end</p><p> 5'd24:begin sh[3:0]<='b0010;sl[3:0]<='b0100;end</p><p> 5'd25:begin sh[3:0]<='b0010;sl[3:0]<='b0101;end</
35、p><p> 5'd26:begin sh[3:0]<='b0010;sl[3:0]<='b0110;end</p><p> 5'd27:begin sh[3:0]<='b0010;sl[3:0]<='b0111;end</p><p> 5'd28:begin sh[3:0]<
36、;='b0010;sl[3:0]<='b1000;end</p><p> 5'd29:begin sh[3:0]<='b0010;sl[3:0]<='b1001;end</p><p> 5'd30:begin sh[3:0]<='b0011;sl[3:0]<='b0000;end</
37、p><p> 5'd31:begin sh[3:0]<='b0011;sl[3:0]<='b0001;end</p><p> 5'd32:begin sh[3:0]<='b0011;sl[3:0]<='b0010;end</p><p> 5'd33:begin sh[3:0]<
38、;='b0011;sl[3:0]<='b0011;end</p><p> 5'd34:begin sh[3:0]<='b0011;sl[3:0]<='b0100;end</p><p> 5'd35:begin sh[3:0]<='b0011;sl[3:0]<='b0101;end</
39、p><p> 5'd36:begin sh[3:0]<='b0011;sl[3:0]<='b0110;end</p><p> 5'd37:begin sh[3:0]<='b0011;sl[3:0]<='b0111;end</p><p> 5'd38:begin sh[3:0]<
40、;='b0011;sl[3:0]<='b1000;end</p><p> 5'd39:begin sh[3:0]<='b0011;sl[3:0]<='b1001;end</p><p> 5'd40:begin sh[3:0]<='b0100;sl[3:0]<='b0000;end</
41、p><p> 5'd41:begin sh[3:0]<='b0100;sl[3:0]<='b0001;end</p><p> 5'd42:begin sh[3:0]<='b0100;sl[3:0]<='b0010;end</p><p> 5'd43:begin sh[3:0]<
42、;='b0100;sl[3:0]<='b0011;end</p><p> 5'd44:begin sh[3:0]<='b0100;sl[3:0]<='b0100;end</p><p> 5'd45:begin sh[3:0]<='b0100;sl[3:0]<='b0101;end</
43、p><p> 5'd46:begin sh[3:0]<='b0100;sl[3:0]<='b0110;end</p><p> 5'd47:begin sh[3:0]<='b0100;sl[3:0]<='b0111;end</p><p> 5'd48:begin sh[3:0]<
44、;='b0100;sl[3:0]<='b1000;end</p><p> 5'd49:begin sh[3:0]<='b0100;sl[3:0]<='b1001;end</p><p> 5'd50:begin sh[3:0]<='b0101;sl[3:0]<='b0000;end</
45、p><p> 5'd51:begin sh[3:0]<='b0101;sl[3:0]<='b0001;end</p><p> 5'd52:begin sh[3:0]<='b0101;sl[3:0]<='b0010;end</p><p> 5'd53:begin sh[3:0]<
46、;='b0101;sl[3:0]<='b0011;end</p><p> 5'd54:begin sh[3:0]<='b0101;sl[3:0]<='b0100;end</p><p> 5'd55:begin sh[3:0]<='b0101;sl[3:0]<='b0101;end</
47、p><p> 5'd56:begin sh[3:0]<='b0101;sl[3:0]<='b0110;end</p><p> 5'd57:begin sh[3:0]<='b0101;sl[3:0]<='b0111;end</p><p> 5'd58:begin sh[3:0]<
48、;='b0101;sl[3:0]<='b1000;end</p><p> 5'd59:begin sh[3:0]<='b0101;sl[3:0]<='b1001;end</p><p> default:begin sh[3:0]<='bx;sl[3:0]<='bx;end</p>&
49、lt;p><b> endcase</b></p><p><b> end</b></p><p> always @(min)</p><p><b> begin</b></p><p> case(min) </p><p>
50、5'd0:begin mh[3:0]<='b0000;ml[3:0]<='b0000;end</p><p> 5'd1:begin mh[3:0]<='b0000;ml[3:0]<='b0001;end</p><p> 5'd2:begin mh[3:0]<='b0000;ml[3:0]&
51、lt;='b0010;end</p><p> 5'd3:begin mh[3:0]<='b0000;ml[3:0]<='b0011;end</p><p> 5'd4:begin mh[3:0]<='b0000;ml[3:0]<='b0100;end</p><p> 5'
52、;d5:begin mh[3:0]<='b0000;ml[3:0]<='b0101;end</p><p> 5'd6:begin mh[3:0]<='b0000;ml[3:0]<='b0110;end</p><p> 5'd7:begin mh[3:0]<='b0000;ml[3:0]<=&
53、#39;b0111;end</p><p> 5'd8:begin mh[3:0]<='b0000;ml[3:0]<='b1000;end</p><p> 5'd9:begin mh[3:0]<='b0000;ml[3:0]<='b1001;end</p><p> 5'd10:
54、begin mh[3:0]<='b0001;ml[3:0]<='b0000;end</p><p> 5'd11:begin mh[3:0]<='b0001;ml[3:0]<='b0001;end</p><p> 5'd12:begin mh[3:0]<='b0001;ml[3:0]<=
55、9;b0010;end</p><p> 5'd13:begin mh[3:0]<='b0001;ml[3:0]<='b0011;end</p><p> 5'd14:begin mh[3:0]<='b0001;ml[3:0]<='b0100;end</p><p> 5'd15:
56、begin mh[3:0]<='b0001;ml[3:0]<='b0101;end</p><p> 5'd16:begin mh[3:0]<='b0001;ml[3:0]<='b0110;end</p><p> 5'd17:begin mh[3:0]<='b0001;ml[3:0]<=
57、9;b0111;end</p><p> 5'd18:begin mh[3:0]<='b0001;ml[3:0]<='b1000;end</p><p> 5'd19:begin mh[3:0]<='b0001;ml[3:0]<='b1001;end</p><p> 5'd20:
58、begin mh[3:0]<='b0010;ml[3:0]<='b0000;end</p><p> 5'd21:begin mh[3:0]<='b0010;ml[3:0]<='b0001;end</p><p> 5'd22:begin mh[3:0]<='b0010;ml[3:0]<=
59、9;b0010;end</p><p> 5'd23:begin mh[3:0]<='b0010;ml[3:0]<='b0011;end</p><p> 5'd24:begin mh[3:0]<='b0010;ml[3:0]<='b0100;end</p><p> 5'd25:
60、begin mh[3:0]<='b0010;ml[3:0]<='b0101;end</p><p> 5'd26:begin mh[3:0]<='b0010;ml[3:0]<='b0110;end</p><p> 5'd27:begin mh[3:0]<='b0010;ml[3:0]<=
61、9;b0111;end</p><p> 5'd28:begin mh[3:0]<='b0010;ml[3:0]<='b1000;end</p><p> 5'd29:begin mh[3:0]<='b0010;ml[3:0]<='b1001;end</p><p> 5'd30:
62、begin mh[3:0]<='b0011;ml[3:0]<='b0000;end</p><p> 5'd31:begin mh[3:0]<='b0011;ml[3:0]<='b0001;end</p><p> 5'd32:begin mh[3:0]<='b0011;ml[3:0]<=
63、9;b0010;end</p><p> 5'd33:begin mh[3:0]<='b0011;ml[3:0]<='b0011;end</p><p> 5'd34:begin mh[3:0]<='b0011;ml[3:0]<='b0100;end</p><p> 5'd35:
64、begin mh[3:0]<='b0011;ml[3:0]<='b0101;end</p><p> 5'd36:begin mh[3:0]<='b0011;ml[3:0]<='b0110;end</p><p> 5'd37:begin mh[3:0]<='b0011;ml[3:0]<=
65、9;b0111;end</p><p> 5'd38:begin mh[3:0]<='b0011;ml[3:0]<='b1000;end</p><p> 5'd39:begin mh[3:0]<='b0011;ml[3:0]<='b1001;end</p><p> 5'd40:
66、begin mh[3:0]<='b0100;ml[3:0]<='b0000;end</p><p> 5'd41:begin mh[3:0]<='b0100;ml[3:0]<='b0001;end</p><p> 5'd42:begin mh[3:0]<='b0100;ml[3:0]<=
67、9;b0010;end</p><p> 5'd43:begin mh[3:0]<='b0100;ml[3:0]<='b0011;end</p><p> 5'd44:begin mh[3:0]<='b0100;ml[3:0]<='b0100;end</p><p> 5'd45:
68、begin mh[3:0]<='b0100;ml[3:0]<='b0101;end</p><p> 5'd46:begin mh[3:0]<='b0100;ml[3:0]<='b0110;end</p><p> 5'd47:begin mh[3:0]<='b0100;ml[3:0]<=
69、9;b0111;end</p><p> 5'd48:begin mh[3:0]<='b0100;ml[3:0]<='b1000;end</p><p> 5'd49:begin mh[3:0]<='b0100;ml[3:0]<='b1001;end</p><p> 5'd50:
70、begin mh[3:0]<='b0101;ml[3:0]<='b0000;end</p><p> 5'd51:begin mh[3:0]<='b0101;ml[3:0]<='b0001;end</p><p> 5'd52:begin mh[3:0]<='b0101;ml[3:0]<=
71、9;b0010;end</p><p> 5'd53:begin mh[3:0]<='b0101;ml[3:0]<='b0011;end</p><p> 5'd54:begin mh[3:0]<='b0101;ml[3:0]<='b0100;end</p><p> 5'd55:
72、begin mh[3:0]<='b0101;ml[3:0]<='b0101;end</p><p> 5'd56:begin mh[3:0]<='b0101;ml[3:0]<='b0110;end</p><p> 5'd57:begin mh[3:0]<='b0101;ml[3:0]<=
73、9;b0111;end</p><p> 5'd58:begin mh[3:0]<='b0101;ml[3:0]<='b1000;end</p><p> 5'd59:begin mh[3:0]<='b0101;ml[3:0]<='b1001;end</p><p> default:be
74、gin mh[3:0]<='bx;ml[3:0]<='bx;end</p><p><b> endcase</b></p><p><b> end</b></p><p> always @(hour)</p><p><b> begin</
75、b></p><p> case(hour)</p><p> 5'd0:begin hh[3:0]<='b0000;hl[3:0]<='b0000;end</p><p> 5'd1:begin hh[3:0]<='b0000;hl[3:0]<='b0001;end</p&g
76、t;<p> 5'd2:begin hh[3:0]<='b0000;hl[3:0]<='b0010;end</p><p> 5'd3:begin hh[3:0]<='b0000;hl[3:0]<='b0011;end</p><p> 5'd4:begin hh[3:0]<='
77、;b0000;hl[3:0]<='b0100;end</p><p> 5'd5:begin hh[3:0]<='b0000;hl[3:0]<='b0101;end</p><p> 5'd6:begin hh[3:0]<='b0000;hl[3:0]<='b0110;end</p>&
78、lt;p> 5'd7:begin hh[3:0]<='b0000;hl[3:0]<='b0111;end</p><p> 5'd8:begin hh[3:0]<='b0000;hl[3:0]<='b1000;end</p><p> 5'd9:begin hh[3:0]<='b000
79、0;hl[3:0]<='b1001;end</p><p> 5'd10:begin hh[3:0]<='b0001;hl[3:0]<='b0000;end</p><p> 5'd11:begin hh[3:0]<='b0001;hl[3:0]<='b0001;end</p><
80、p> 5'd12:begin hh[3:0]<='b0001;hl[3:0]<='b0010;end</p><p> 5'd13:begin hh[3:0]<='b0001;hl[3:0]<='b0011;end</p><p> 5'd14:begin hh[3:0]<='b000
81、1;hl[3:0]<='b0100;end</p><p> 5'd15:begin hh[3:0]<='b0001;hl[3:0]<='b0101;end</p><p> 5'd16:begin hh[3:0]<='b0001;hl[3:0]<='b0110;end</p><
82、p> 5'd17:begin hh[3:0]<='b0001;hl[3:0]<='b0111;end</p><p> 5'd18:begin hh[3:0]<='b0001;hl[3:0]<='b1000;end</p><p> 5'd19:begin hh[3:0]<='b000
83、1;hl[3:0]<='b1001;end</p><p> 5'd20:begin hh[3:0]<='b0010;hl[3:0]<='b0000;end</p><p> 5'd21:begin hh[3:0]<='b0010;hl[3:0]<='b0001;end</p><
84、p> 5'd22:begin hh[3:0]<='b0010;hl[3:0]<='b0010;end</p><p> 5'd23:begin hh[3:0]<='b0010;hl[3:0]<='b0011;end</p><p> default:begin hh[3:0]<='bx;hl[
85、3:0]<='bx;end</p><p><b> endcase</b></p><p><b> end</b></p><p><b> always</b></p><p><b> begin</b></p>
86、<p> case(cnt8)</p><p> 'b000:begin scan<='b01111111;data [3:0]<=sl[3:0];end</p><p> 'b001:begin scan<='b10111111;data [3:0]<=sh[3:0];end</p><p>
87、; 'b010:begin scan<='b11011111;data [3:0]<=ml[3:0];end</p><p> 'b011:begin scan<='b11101111;data [3:0]<=mh[3:0];end</p><p> 'b100:begin scan<='b11110111
88、;data [3:0]<=hl[3:0];end</p><p> 'b101:begin scan<='b11111011;data [3:0]<=hh[3:0];end</p><p> default:begin scan<='bx;data [3:0]<='bx;end</p><p><
89、;b> endcase</b></p><p> case(data [3:0])</p><p> 0:seg=8'b11000000;</p><p> 1:seg=8'b11111001;</p><p> 2:seg=8'b10100100;</p><p>
90、 3:seg=8'b10110000;</p><p> 4:seg=8'b10011001;</p><p> 5:seg=8'b10010010;</p><p> 6:seg=8'b10000010;</p><p> 7:seg=8'b11111000;</p><
91、p> 8:seg=8'b10000000;</p><p> 9:seg=8'b10010000;</p><p> default:seg=8'b11111111;</p><p><b> endcase</b></p><p><b> end</b>&
92、lt;/p><p><b> endmodule</b></p><p> ?。?)調(diào)試分析過(guò)程描述</p><p> ?、僬S?jì)數(shù)的功能仿真結(jié)果</p><p> ②正常計(jì)數(shù)的時(shí)序仿真結(jié)果</p><p> ?、塾?jì)數(shù)復(fù)位功能仿真結(jié)果</p><p><b>
93、(3)結(jié)果分析</b></p><p> 當(dāng)正常計(jì)數(shù)是,觀(guān)察波形可知,當(dāng)秒計(jì)數(shù)sec計(jì)到59后,分計(jì)數(shù)min加1。小時(shí)計(jì)數(shù)hour與分計(jì)數(shù)類(lèi)似,均滿(mǎn)足正常計(jì)數(shù)邏輯功能。</p><p> 當(dāng)復(fù)位信號(hào)reset置0后,且計(jì)時(shí)脈沖CLK2下降沿到來(lái)時(shí),觀(guān)察波形可知,hour、min、sec均同步置0。</p><p><b> 總結(jié)與致謝&l
94、t;/b></p><p> 這次EDA課程設(shè)計(jì)歷時(shí)一個(gè)星期,在整整一個(gè)星期的日子里,不僅鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多書(shū)本上學(xué)不到的知識(shí),同時(shí)鍛煉了自己的能力,使自己對(duì)以后的路有了更加清楚的認(rèn)識(shí),對(duì)未來(lái)有了更多的信心。這次課程設(shè)計(jì),進(jìn)一步加深了我對(duì)EDA的了解,使我對(duì)QuartusII的基本操作有所了解,使我對(duì)應(yīng)用軟件的方法設(shè)計(jì)硬件系統(tǒng)有了更加濃厚的興趣。 </p>&l
95、t;p> 通過(guò)這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合,從實(shí)踐中得出結(jié)論,才能真正提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中,我遇到許多問(wèn)題,畢竟是第一次應(yīng)用VHDL進(jìn)行硬件電路系統(tǒng)的設(shè)計(jì),許多EDA的知識(shí)還沒(méi)有充分的掌握,遇到困難也是在所難免的,同時(shí)發(fā)現(xiàn)了自己的不足之處:學(xué)習(xí)知識(shí)表面化,沒(méi)有深入了解它們的原理。</p><p>
96、; 經(jīng)過(guò)快一個(gè)星期的緊張工作,我終于完成了我的設(shè)計(jì)任務(wù)——電子秒表設(shè)計(jì)。在這次課程設(shè)計(jì)中特別感謝楊紅娟老師對(duì)我的指導(dǎo),正是由于她的督促和耐心指導(dǎo),我才可以順利完成這次的設(shè)計(jì),鍛煉了動(dòng)手能力。參考文獻(xiàn)</p><p> [1] 黃仁欣.EDA技術(shù)實(shí)用教程.北京:清華大學(xué)出版社,2006</p><p> [2] 潘松,黃繼業(yè).EDA技術(shù)與VHDL.北京:清華大學(xué)出版社,2009<
97、/p><p> [3] 江國(guó)強(qiáng)編著.EDA技術(shù)與應(yīng)用(第三版)..北京:電子工業(yè)出版社,2010</p><p> [4] 夏宇聞編著.Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)教程..北京:北京航空航天大學(xué)出版社,2008</p><p> [5] 周祖成,程曉軍,馬卓釗編著.?dāng)?shù)字電路與系統(tǒng)教學(xué)實(shí)驗(yàn)教程.北京:科學(xué)出版社,2010</p><p>
98、; [6] 周潤(rùn)景,蘇良碧.基于Quartus II 的數(shù)字系統(tǒng)Verilog HDL設(shè)計(jì)實(shí)例詳解.北京:電子工業(yè)出版社,2010</p><p> [7] (美國(guó))Sanir Palnitkar 譯者:夏宇聞 胡燕祥 刁嵐松.Verilog HDL數(shù)字設(shè)計(jì)與綜合(第2版).北京:電子工業(yè)出版社,2009</p><p> [8] 云創(chuàng)工作室.Verilog HDL程序設(shè)計(jì)與實(shí)踐.北
99、京:人民郵電出版社,2009</p><p> [9] 劉福奇,劉波.Verilog HDL應(yīng)用程序設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2009</p><p> [10] 張延偉,楊金巖,葛愛(ài)學(xué).verilog hdl程序設(shè)計(jì)實(shí)例詳解.北京:人民郵電出版社,2008</p><p><b> 附錄 程序源代碼</b></p>
100、<p> module digital_clock(seg,scan,clk,reset);</p><p> input clk,reset;</p><p> output [7:0] seg,scan;</p><p> reg [7:0] seg,scan;</p><p> reg [2:0] cnt8;&l
101、t;/p><p> reg [3:0] data;</p><p><b> reg clk1;</b></p><p><b> reg clk2;</b></p><p> reg [13:0] counter1;</p><p> reg [25:0] count
102、er2;</p><p> reg [3:0] hh,hl,mh,ml,sh,sl;</p><p> reg [5:0] hour,min,sec;</p><p> always @(posedge clk)</p><p><b> begin </b></p><p> if
103、(counter1=='d10000) </p><p> begin clk1<=~clk1;counter1<=0;end</p><p><b> else</b></p><p> begin counter1<=counter1+1;end</p><p><b>
104、end</b></p><p> always @(posedge clk1)</p><p><b> begin</b></p><p> if (cnt8=='d5) cnt8<='d0;</p><p> else cnt8<=cnt8+1;</p>
105、<p><b> end</b></p><p> always @(posedge clk)</p><p><b> begin </b></p><p> if (counter2=='d50000000) </p><p> begin clk2<=~cl
106、k2;counter2<=0;end</p><p><b> else</b></p><p> begin counter2<=counter2+1;end</p><p><b> end</b></p><p> always @(posedge clk2)</p&
107、gt;<p><b> begin</b></p><p> if (sec==8'd59)</p><p> begin sec<='d0;</p><p> if (min==8'd59)</p><p> begin min<='d0;</p
108、><p> if (hour==8'd23)</p><p> begin hour<=8'd0;end</p><p><b> else</b></p><p> begin hour<=hour+1;end</p><p><b> end<
109、/b></p><p><b> else</b></p><p> begin min<=min+1;end</p><p><b> end</b></p><p><b> else </b></p><p> begin s
110、ec<=sec+1;end</p><p> if (!reset)</p><p> begin sec[5:0]<='d0;</p><p> min[5:0]<='d0;</p><p> hour[5:0]<='d0; </p><p>&
111、lt;b> end</b></p><p><b> end </b></p><p> always @(sec)</p><p><b> begin</b></p><p><b> case(sec)</b></p><p
112、> 5'd0:begin sh[3:0]<='b0000;sl[3:0]<='b0000;end</p><p> 5'd1:begin sh[3:0]<='b0000;sl[3:0]<='b0001;end</p><p> 5'd2:begin sh[3:0]<='b0000;sl
113、[3:0]<='b0010;end</p><p> 5'd3:begin sh[3:0]<='b0000;sl[3:0]<='b0011;end</p><p> 5'd4:begin sh[3:0]<='b0000;sl[3:0]<='b0100;end</p><p>
114、 5'd5:begin sh[3:0]<='b0000;sl[3:0]<='b0101;end</p><p> 5'd6:begin sh[3:0]<='b0000;sl[3:0]<='b0110;end</p><p> 5'd7:begin sh[3:0]<='b0000;sl[3:0]
115、<='b0111;end</p><p> 5'd8:begin sh[3:0]<='b0000;sl[3:0]<='b1000;end</p><p> 5'd9:begin sh[3:0]<='b0000;sl[3:0]<='b1001;end</p><p> 5
116、9;d10:begin sh[3:0]<='b0001;sl[3:0]<='b0000;end</p><p> 5'd11:begin sh[3:0]<='b0001;sl[3:0]<='b0001;end</p><p> 5'd12:begin sh[3:0]<='b0001;sl[3:0]&l
117、t;='b0010;end</p><p> 5'd13:begin sh[3:0]<='b0001;sl[3:0]<='b0011;end</p><p> 5'd14:begin sh[3:0]<='b0001;sl[3:0]<='b0100;end</p><p> 5
118、9;d15:begin sh[3:0]<='b0001;sl[3:0]<='b0101;end</p><p> 5'd16:begin sh[3:0]<='b0001;sl[3:0]<='b0110;end</p><p> 5'd17:begin sh[3:0]<='b0001;sl[3:0]&l
119、t;='b0111;end</p><p> 5'd18:begin sh[3:0]<='b0001;sl[3:0]<='b1000;end</p><p> 5'd19:begin sh[3:0]<='b0001;sl[3:0]<='b1001;end</p><p> 5
120、9;d20:begin sh[3:0]<='b0010;sl[3:0]<='b0000;end</p><p> 5'd21:begin sh[3:0]<='b0010;sl[3:0]<='b0001;end</p><p> 5'd22:begin sh[3:0]<='b0010;sl[3:0]&l
121、t;='b0010;end</p><p> 5'd23:begin sh[3:0]<='b0010;sl[3:0]<='b0011;end</p><p> 5'd24:begin sh[3:0]<='b0010;sl[3:0]<='b0100;end</p><p> 5
122、9;d25:begin sh[3:0]<='b0010;sl[3:0]<='b0101;end</p><p> 5'd26:begin sh[3:0]<='b0010;sl[3:0]<='b0110;end</p><p> 5'd27:begin sh[3:0]<='b0010;sl[3:0]&l
123、t;='b0111;end</p><p> 5'd28:begin sh[3:0]<='b0010;sl[3:0]<='b1000;end</p><p> 5'd29:begin sh[3:0]<='b0010;sl[3:0]<='b1001;end</p><p> 5
124、9;d30:begin sh[3:0]<='b0011;sl[3:0]<='b0000;end</p><p> 5'd31:begin sh[3:0]<='b0011;sl[3:0]<='b0001;end</p><p> 5'd32:begin sh[3:0]<='b0011;sl[3:0]&l
125、t;='b0010;end</p><p> 5'd33:begin sh[3:0]<='b0011;sl[3:0]<='b0011;end</p><p> 5'd34:begin sh[3:0]<='b0011;sl[3:0]<='b0100;end</p><p> 5
126、9;d35:begin sh[3:0]<='b0011;sl[3:0]<='b0101;end</p><p> 5'd36:begin sh[3:0]<='b0011;sl[3:0]<='b0110;end</p><p> 5'd37:begin sh[3:0]<='b0011;sl[3:0]&l
127、t;='b0111;end</p><p> 5'd38:begin sh[3:0]<='b0011;sl[3:0]<='b1000;end</p><p> 5'd39:begin sh[3:0]<='b0011;sl[3:0]<='b1001;end</p><p> 5
128、9;d40:begin sh[3:0]<='b0100;sl[3:0]<='b0000;end</p><p> 5'd41:begin sh[3:0]<='b0100;sl[3:0]<='b0001;end</p><p> 5'd42:begin sh[3:0]<='b0100;sl[3:0]&l
129、t;='b0010;end</p><p> 5'd43:begin sh[3:0]<='b0100;sl[3:0]<='b0011;end</p><p> 5'd44:begin sh[3:0]<='b0100;sl[3:0]<='b0100;end</p><p> 5
130、9;d45:begin sh[3:0]<='b0100;sl[3:0]<='b0101;end</p><p> 5'd46:begin sh[3:0]<='b0100;sl[3:0]<='b0110;end</p><p> 5'd47:begin sh[3:0]<='b0100;sl[3:0]&l
131、t;='b0111;end</p><p> 5'd48:begin sh[3:0]<='b0100;sl[3:0]<='b1000;end</p><p> 5'd49:begin sh[3:0]<='b0100;sl[3:0]<='b1001;end</p><p> 5
132、9;d50:begin sh[3:0]<='b0101;sl[3:0]<='b0000;end</p><p> 5'd51:begin sh[3:0]<='b0101;sl[3:0]<='b0001;end</p><p> 5'd52:begin sh[3:0]<='b0101;sl[3:0]&l
133、t;='b0010;end</p><p> 5'd53:begin sh[3:0]<='b0101;sl[3:0]<='b0011;end</p><p> 5'd54:begin sh[3:0]<='b0101;sl[3:0]<='b0100;end</p><p> 5
134、9;d55:begin sh[3:0]<='b0101;sl[3:0]<='b0101;end</p><p> 5'd56:begin sh[3:0]<='b0101;sl[3:0]<='b0110;end</p><p> 5'd57:begin sh[3:0]<='b0101;sl[3:0]&l
135、t;='b0111;end</p><p> 5'd58:begin sh[3:0]<='b0101;sl[3:0]<='b1000;end</p><p> 5'd59:begin sh[3:0]<='b0101;sl[3:0]<='b1001;end</p><p> defa
136、ult:begin sh[3:0]<='bx;sl[3:0]<='bx;end</p><p><b> endcase</b></p><p><b> end</b></p><p> always @(min)</p><p><b> begin
137、</b></p><p> case(min) </p><p> 5'd0:begin mh[3:0]<='b0000;ml[3:0]<='b0000;end</p><p> 5'd1:begin mh[3:0]<='b0000;ml[3:0]<='b0001;end<
138、;/p><p> 5'd2:begin mh[3:0]<='b0000;ml[3:0]<='b0010;end</p><p> 5'd3:begin mh[3:0]<='b0000;ml[3:0]<='b0011;end</p><p> 5'd4:begin mh[3:0]<
139、='b0000;ml[3:0]<='b0100;end</p><p> 5'd5:begin mh[3:0]<='b0000;ml[3:0]<='b0101;end</p><p> 5'd6:begin mh[3:0]<='b0000;ml[3:0]<='b0110;end</p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)——電子秒表
- 數(shù)字秒表課程設(shè)計(jì)說(shuō)明書(shū)
- 單片機(jī)課程設(shè)計(jì)電子秒表設(shè)計(jì)說(shuō)明書(shū)
- 單片機(jī)課程設(shè)計(jì)--電子秒表設(shè)計(jì)說(shuō)明書(shū)
- 《數(shù)學(xué)電子技術(shù)基礎(chǔ)》課程設(shè)計(jì)說(shuō)明書(shū)--數(shù)字秒表
- 電子鐘課程設(shè)計(jì)說(shuō)明書(shū)
- 基于單片機(jī)電子秒表系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說(shuō)明
- 電子秒表 課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 數(shù)字式秒表-《單片機(jī)技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)
- 數(shù)字電子課程設(shè)計(jì)---電子秒表
- 電力電子課程設(shè)計(jì)---電子秒表
- 課程設(shè)計(jì)說(shuō)明書(shū)
- 電子秒表課程設(shè)計(jì)報(bào)告
- 電子秒表課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論