版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 實(shí)驗(yàn)報(bào)告</b></p><p><b> 多功能數(shù)字鐘設(shè)計(jì)</b></p><p> 姓名 </p><p><b> 學(xué)號(hào) </b></p><p><b> 班級(jí) </b><
2、;/p><p><b> 一、實(shí)驗(yàn)?zāi)繕?biāo):</b></p><p> 1、掌握可編程邏輯器件的應(yīng)用開發(fā)技術(shù)——設(shè)計(jì)輸入、編譯、仿真和器件編程;</p><p> 2、熟悉EDA軟件使用;</p><p> 3、掌握Verilog HDL設(shè)計(jì)方法; </p><p> 4、分模塊、分層次數(shù)字系統(tǒng)
3、設(shè)計(jì)</p><p><b> 二、實(shí)驗(yàn)任務(wù)及要求</b></p><p><b> 1、基本功能</b></p><p> 準(zhǔn)確計(jì)時(shí),以數(shù)字形式(十二進(jìn)制)顯示時(shí)、分、秒的時(shí)間</p><p> 校正時(shí)間:時(shí)、分 快校與慢校(1Hz與手動(dòng))</p><p> 復(fù)位
4、:00:00:00</p><p> 仿廣播電臺(tái)正點(diǎn)報(bào)時(shí) (四高一低)</p><p><b> 2、擴(kuò)展功能: </b></p><p><b> ?。?)任意鬧鐘;</b></p><p> ?。?)小時(shí)為12/24進(jìn)制可切換</p><p> ?。?)報(bào)正點(diǎn)數(shù)(幾點(diǎn)
5、響幾聲)</p><p><b> 三、實(shí)驗(yàn)條件:</b></p><p> DE0 實(shí)驗(yàn)板結(jié)構(gòu)與使用方法 </p><p> quartus軟件的使用 </p><p><b> FPGA的使用</b></p><p><b> 四、電路設(shè)計(jì)過程:&l
6、t;/b></p><p><b> 1、需求分析</b></p><p> 開發(fā)背景:數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便
7、,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p><b> 2、 實(shí)驗(yàn)原理:</b></p><p> 用層次化設(shè)計(jì)的方法以Verilog語言
8、編程實(shí)現(xiàn)以下功能:</p><p> ?。?)、具有“時(shí)”、“分”、“秒”計(jì)時(shí)功能;時(shí)為24進(jìn)制,分和秒都為60進(jìn)制。</p><p> ?。?)、具有校時(shí)和清零功能,能夠用4Hz脈沖對(duì)“小時(shí)”和“分”進(jìn)行調(diào)整,并可進(jìn)行秒清零;實(shí)際電路中使用快校時(shí)。</p><p> ?。?)、具有整點(diǎn)報(bào)時(shí)功能。在59分51秒、53秒、55秒、57秒發(fā)出低音512Hz信號(hào),在59分
9、59秒發(fā)出一次高音1024Hz信號(hào),音響持續(xù)1秒鐘,在1024Hz音響結(jié)束時(shí)刻為整點(diǎn)。在實(shí)際電路中使用LED燈實(shí)現(xiàn)四低使用用LED1,高音另一個(gè)LED燈顯示。</p><p> (4)、具有一鍵設(shè)定鬧鈴及正常計(jì)時(shí)與鬧鈴時(shí)間的顯示轉(zhuǎn)換。鬧時(shí)時(shí)間為一分鐘。</p><p><b> 3、模塊設(shè)計(jì)分析</b></p><p> 整體電路分為兩塊
10、,主體電路和擴(kuò)展電路分別實(shí)現(xiàn)基本功能和擴(kuò)展的功能。</p><p> ?。?)、主體電路設(shè)計(jì):</p><p> ?。?)時(shí)分秒計(jì)數(shù)器需求分析:</p><p> 分和秒計(jì)數(shù)器都是模M=60的計(jì)數(shù)器 其計(jì)數(shù)規(guī)律為00—01—…—58—59—00… </p><p><b> 時(shí)計(jì)數(shù)器:</b></p>
11、<p> 若采用24小時(shí)制:計(jì)數(shù)器為24進(jìn)制,其計(jì)數(shù)規(guī)律為 00—01……—02—23—00….</p><p> 若采用12小時(shí)制:計(jì)數(shù)器為12進(jìn)制,其計(jì)數(shù)規(guī)律為 01—02……—12—01….</p><p> 24小時(shí)制:當(dāng)數(shù)字鐘運(yùn)行到23時(shí)59分59秒時(shí),秒的個(gè)位計(jì)數(shù)器再輸入一個(gè)秒脈沖時(shí),數(shù)字鐘應(yīng)自動(dòng)顯示為00時(shí)0
12、0分00秒。</p><p> 12小時(shí)制:當(dāng)數(shù)字鐘運(yùn)行到12時(shí)59分59秒時(shí),秒的個(gè)位計(jì)數(shù)器再輸入一個(gè)秒脈沖時(shí),數(shù)字鐘應(yīng)自動(dòng)顯示為01時(shí)00分00秒。</p><p><b> 4、邏輯分析:</b></p><p> 主體電路由兩個(gè)60進(jìn)制計(jì)數(shù)器、一個(gè)24進(jìn)制計(jì)數(shù)器、兩個(gè)二選一數(shù)據(jù)選擇器、分頻器,7端譯碼顯示器共7個(gè)模塊組成。分頻器將
13、系統(tǒng)內(nèi)置的50MHz的信號(hào)分成4Hz的信號(hào)輸出CP,是數(shù)字能穩(wěn)定的在數(shù)碼管上顯示。3個(gè)計(jì)數(shù)器共用一個(gè)時(shí)鐘信號(hào)CP,為同步8421BCD碼輸出的計(jì)數(shù)器。具體實(shí)現(xiàn)如下圖:</p><p> 1 1</p><p><b> EN</b></p><p> MCoM EN SC
14、o EN</p><p> 校時(shí)控制Adj_Hour 校分控制Adj_Min </p><p> ?。╝djust_Time) (adjust_Time)</p><p> 圖中連個(gè)選擇器分別用于選擇分計(jì)數(shù)器和是計(jì)數(shù)器的使能控制信號(hào)。對(duì)時(shí)間進(jìn)行校正時(shí),先選擇校時(shí)模式,在adjust_Time=1時(shí),在
15、控制端(Adj_Hour、Adj_Min)的作用下,使能信號(hào)接高電平,此時(shí)每來一個(gè)時(shí)鐘信號(hào),計(jì)數(shù)器加1,從而實(shí)現(xiàn)對(duì)小時(shí)和分鐘的校正。正常計(jì)時(shí)時(shí),使能信號(hào)來自每一位的低位計(jì)數(shù)器的輸出,即秒計(jì)數(shù)器到59秒時(shí),產(chǎn)生一個(gè)輸出信號(hào)(Sco=1)使分計(jì)數(shù)器加1,分秒計(jì)數(shù)器同時(shí)計(jì)到最大值時(shí),產(chǎn)生輸出信號(hào)(Mco=1)使小時(shí)計(jì)數(shù)器加1。</p><p> 實(shí)現(xiàn)上述功能的Verilog的程序如下:整個(gè)程序2分為兩個(gè)層次4個(gè)模塊,
16、底層由3個(gè)模塊組成,即六進(jìn)制計(jì)數(shù)模塊、十進(jìn)制計(jì)數(shù)模塊、和24進(jìn)制計(jì)數(shù)模塊、頂層有一個(gè)模塊,他調(diào)用底層的3個(gè)模塊完成數(shù)字鐘的計(jì)時(shí)功能,其中,底層的六進(jìn)制模塊,和十進(jìn)制模塊分別被調(diào)用兩次,構(gòu)成60進(jìn)制的秒計(jì)數(shù)器和分計(jì)數(shù)器。</p><p><b> 5、各模塊接口規(guī)定</b></p><p><b> 6、程序分析:</b></p>
17、<p> (1)、六進(jìn)制計(jì)數(shù)模塊</p><p> nCR為復(fù)位端口,當(dāng)nCR 為0是,輸出為0,EN為使能端,只有當(dāng)EN為1時(shí),計(jì)數(shù)器才在CP的作用下加1。</p><p> module counter6(Q,nCR,EN,CP);</p><p> input CP,nCR,EN;</p><p> output[
18、3:0] Q;</p><p> reg [3:0] Q;</p><p> always@(posedge CP or negedge nCR)</p><p><b> begin </b></p><p> if(~nCR) Q<=4'b0000;</p><p>
19、else if(~EN) Q<=Q;</p><p> else if(Q==4'b0101) Q<=4'b0000;</p><p> else Q<=Q+1'b1;</p><p><b> end</b></p><p><b> endmodule<
20、;/b></p><p><b> 仿真波形如下:</b></p><p> ?。?)、十進(jìn)制模塊和六進(jìn)制的思想一樣</p><p> module counter10(Q,nCR,EN,CP);</p><p> input CP,nCR,EN;</p><p> output[3
21、:0] Q;</p><p> reg [3:0] Q;</p><p> always@(posedge CP or negedge nCR)</p><p><b> begin </b></p><p> if(~nCR) Q<=4'b0000;</p><p> e
22、lse if(~EN) Q<=Q;</p><p> else if(Q==4'b1001) Q<=4'b0000;</p><p> else Q<=Q+1'b1;</p><p><b> end</b></p><p><b> endmodule<
23、/b></p><p><b> 仿真波形如下:</b></p><p> (3)、24進(jìn)制模塊 </p><p> 由于擴(kuò)展功能里有12和24模式的切換,所以設(shè)置一模式控制端口Sel,當(dāng)Sel=1時(shí)為12進(jìn)制模式,當(dāng)Sel=0時(shí)為24進(jìn)制模式。12和24進(jìn)制的思想是一樣的。以24進(jìn)制為例,在nCR和EN有效時(shí),當(dāng)時(shí)鐘高位大于2或分
24、鐘高位大于9或者時(shí)鐘大于等于23時(shí),時(shí)鐘高位HourH置0,低位HourL置1;如果(HourH==2)和(HourL<3)成立則高位不變,低位加1;其余的如果HourL==9;高位加1,低位置0;剩下的情況高位不變,低位加1。</p><p> module counter24(HourH,HourL,nCR,EN,CP,Sel);</p><p> input CP,nCR,
25、EN,Sel;</p><p> output[3:0] HourH,HourL;</p><p> reg [3:0] HourH,HourL;</p><p> always@(posedge CP or negedge nCR)</p><p><b> begin</b></p><p
26、> if(~nCR) {HourH,HourL}<=8'h00 ; 復(fù)位</p><p> else if(~EN) {HourH,HourL}<={HourH,HourL}; 使能</p><p> else if(Sel==1) 模式選擇</p><p> begin
27、 12進(jìn)制</p><p> if((HourH>1)||(HourL>9)||((HourH==1)&&(HourL>=2))) </p><p> begin HourH<=4'b0000;HourL<=4'b0001;end</p><p> else if((Ho
28、urH==1)&&(HourL<2))</p><p> begin HourH<=HourH; HourL<=HourL+1'b1; end</p><p> else if(HourL==9)</p><p> begin HourH<=HourH+1'b1; HourL<=4'b000
29、0; end</p><p><b> else</b></p><p> begin HourH<=HourH; HourL<=HourL+1'b1; end</p><p><b> end</b></p><p><b> else </b>&
30、lt;/p><p> begin 24 進(jìn)制</p><p> if((HourH>2)||(HourL>9)||((HourH==2)&&(HourL>=3))) {HourH,HourL}<=4'b0000;</p><p> else if((HourH==2)&&a
31、mp;(HourL<3))</p><p> begin HourH<=HourH; HourL<=HourL+1'b1; end</p><p> else if(HourL==9)</p><p> begin HourH<=HourH+1'b1; HourL<=4'b0000; end</p&g
32、t;<p><b> else</b></p><p> begin HourH<=HourH; HourL<=HourL+1'b1; end</p><p><b> end</b></p><p><b> end</b></p><p
33、><b> endmodule</b></p><p><b> 仿真波形如下:</b></p><p> (4)、分頻成1Hz模塊</p><p> 由于系統(tǒng)供給時(shí)鐘為50MHz時(shí)鐘,為保證系統(tǒng)計(jì)數(shù)結(jié)果清晰可辨,可設(shè)計(jì)分頻模</p><p> 塊clk1hz(clk,CP),先將系
34、統(tǒng)50MHz時(shí)鐘clk(50MHz)分頻為1Hz時(shí)鐘。由于50M可以使用32位二進(jìn)制來表示,定義clk為輸入的50MHz時(shí)鐘</p><p> module fenpin(clk,CP);</p><p> input clk;</p><p> output CP;</p><p><b> reg CP;</b&g
35、t;</p><p><b> initial</b></p><p><b> begin</b></p><p> CP<=1'b0;clk1<=32'd0;</p><p><b> end</b></p><p&g
36、t; reg[31:0] clk1; //可以通過調(diào)節(jié)25000000的數(shù)值來調(diào)節(jié)輸出的頻率大小</p><p> always @(posedge clk)</p><p> if(clk1==32'd25000000) begin clk1<=32'd0; CP<=~CP; end</p><p> else clk
37、1<=clk1+1'b1;</p><p> endmodule </p><p> 由于這個(gè)仿真的時(shí)鐘頻率大,沒有在波形里顯示:</p><p> (5)、整點(diǎn)報(bào)時(shí)和仿電臺(tái)報(bào)時(shí)模塊</p><p> 將時(shí)分秒輸入,因?yàn)闆]有使用蜂鳴器,所用的報(bào)時(shí)均用LED燈來顯示,四聲低音時(shí)在51秒、53秒、57秒、59秒、D
38、亮;0時(shí)G亮;根據(jù)輸入的Hour的數(shù)值使整點(diǎn)報(bào)時(shí)的燈Voice亮Hour下,9點(diǎn)閃爍9下。整點(diǎn)報(bào)時(shí)時(shí)控制燈閃爍的頻率和秒的頻率一樣,為了實(shí)現(xiàn)閃爍必需有兩倍的Hour數(shù)值的脈沖,設(shè)置變量N來實(shí)現(xiàn)計(jì)數(shù),每次在00分00秒時(shí),將兩倍的Hour數(shù)值賦給n,每來一個(gè)脈沖就減1,直至n=0時(shí),正好有2*Hour個(gè)脈沖,燈Voice可閃爍相應(yīng)的次數(shù)。</p><p> module baoshi(Second,Minute
39、,Hour,D,G,Voice,CP);</p><p> input [7:0] Second,Minute,Hour;</p><p><b> input CP;</b></p><p> output D,G;</p><p> output Voice;</p><p><
40、b> reg D,G;</b></p><p> reg [7:0] n;</p><p> reg Voice;</p><p><b> initial</b></p><p> begin n=8'h0;Voice=0; end</p><p><
41、;b> always</b></p><p><b> begin</b></p><p> if(((Minute==8'h59)&&(Second[7:4]==4'h5))&&</p><p> ((Second[3:0]==4'h0)||(Second[3:
42、0]==4'h2)||(Second[3:0]==4'h4)||(Second[3:0]==4'h6)))</p><p><b> D<=1'b1;</b></p><p> else if((Minute==8'h59)&&(Second[7:4]==4'h5)&&Secon
43、d[3:0]==4'h8)</p><p><b> G<=1'b1;</b></p><p> else begin G<=1'b0;D<=1'b0;end </p><p><b> end</b></p><p> always@(p
44、osedge CP)</p><p><b> begin</b></p><p> if((Minute==8'h00)&&(Second==8'h00)) n<=Hour+Hour;</p><p> if((Minute==8'h00)&&(n>8'd0)
45、) begin Voice<=~Voice;n<=n-1'b1; end</p><p> else Voice<=0; </p><p><b> end</b></p><p><b> endmodule</b></p><p><b> 仿真
46、波形如下:</b></p><p><b> 仿電臺(tái)報(bào)時(shí):</b></p><p><b> 整點(diǎn)報(bào)時(shí):</b></p><p> (6)、鬧鐘設(shè)置模塊</p><p> 設(shè)置一個(gè)控制端來控制鬧鐘的顯示和鬧鐘的設(shè)置Display_A,當(dāng)Display_A=1時(shí),進(jìn)入鬧鐘模式,此時(shí)
47、數(shù)碼管上顯示的為鬧鐘的時(shí)間,為方便鬧鐘的設(shè)置依然使用Adj_Min,Adj_Hour控制端。因?yàn)轸[鐘同樣要滿足分鐘的60進(jìn)制和時(shí)鐘24 進(jìn)制,所以在alarm_Set模塊中調(diào)用底層的counter10,counter6,counter24,模塊來實(shí)現(xiàn)鬧鐘的設(shè)置。并將所設(shè)置的鬧鐘時(shí)間保存在A_Hour,A_Minute中表示鬧鐘的時(shí)間。并將其作為輸出,以便后續(xù)的使用。</p><p> module alarm_
48、Set(Adj_Min,Adj_Hour,CP,nCR,Display_A,A_Hour,A_Minute);</p><p> input CP,nCR,Adj_Min,Adj_Hour,Display_A;</p><p> output [7:0] A_Hour,A_Minute;</p><p> // 在鬧鐘的控制端Display_A&&am
49、p;Adj_Min同時(shí)為1時(shí)鬧鐘計(jì)時(shí)</p><p> counter10 A1(A_Minute[3:0],nCR,(Display_A&&Adj_Min),CP);</p><p> counter6 A2(A_Minute[7:4],nCR,(Display_A&&Adj_Min&&A_Minute[3:0]==4'h
50、9),CP);</p><p> counter24 A3(A_Hour[7:4],A_Hour[3:0],nCR,(Adj_Hour&&Display_A),CP,Sel);</p><p><b> endmodule</b></p><p><b> (7)、鬧鈴模塊</b></p>
51、;<p> 同時(shí)將時(shí)分鐘和鬧鐘的時(shí)分輸入進(jìn)行比較,如果二者對(duì)應(yīng)相等且鬧鈴設(shè)置alarm_On為0(默認(rèn)下鬧鈴為開狀態(tài)),則鬧鐘提示燈A持續(xù)亮一分鐘。一分鐘的時(shí)間有秒鐘頻率來控制。</p><p> module alarm (Hour,Minute,A_Hour,A_Minute,Second,A,CP,alarm_On);</p><p> input [7:0] H
52、our,Minute,A_Hour,A_Minute,Second;</p><p> input CP,alarm_On;</p><p><b> output A;</b></p><p><b> reg A;</b></p><p> always @(posedge CP)<
53、;/p><p> if ((Hour==A_Hour) && (A_Minute==Minute)&&(alarm_On==0))</p><p> begin if(Second<=8'h59) A<=1'b1;</p><p> else A<=1'b0;</p><
54、;p><b> end</b></p><p> else A<=1'b0;</p><p><b> endmodule</b></p><p><b> (8)、顯示模塊</b></p><p> 由于要切換時(shí)鐘和鬧鐘模式,所以由鬧鐘的控制端口
55、來決定顯示的模式,當(dāng)Disply_A為1時(shí),即為鬧鐘模式,顯示鬧鐘時(shí)間;Disply_A為0時(shí),即為時(shí)鐘模式,顯示時(shí)鐘時(shí)間。程序中Q1為時(shí)鐘信息,Q2為鬧鐘的信息。</p><p> module display(Q1,Q2,Display_A,OUT);</p><p> input[3:0] Q1,Q2;</p><p> input Display_A;
56、</p><p> output[6:0] OUT;</p><p> reg[6:0] OUT;</p><p> wire [3:0] Q;</p><p> assign Q=(Display_A==1) ? Q2[3:0] : Q1[3:0] ; //鬧鐘和時(shí)鐘的選擇</p><p> always
57、 @(Q)</p><p> case(Q[3:0])</p><p> 4'd0: OUT<=7'b0000_001;</p><p> 4'd1: OUT<=7'b1001_111;</p><p> 4'd2: OUT<=7'b0010_010;</p>
58、;<p> 4'd3: OUT<=7'b0000_110;</p><p> 4'd4: OUT<=7'b1001_100;</p><p> 4'd5: OUT<=7'b0100_100;</p><p> 4'd6: OUT<=7'b1100_000;&
59、lt;/p><p> 4'd7: OUT<=7'b0001_111;</p><p> 4'd8: OUT<=7'b0000_000;</p><p> 4'd9: OUT<=7'b0001_100;</p><p> default: OUT<=7'b00
60、00_001;</p><p><b> endcase</b></p><p> endmodule </p><p><b> (9)、頂層模塊</b></p><p><b> 調(diào)用所有的底層模塊</b></p><p> modu
61、le clock_top(out_MinL,out_MinH,out_HourL,out_HourH,clk,nCR,EN,Adj_Min,Adj_Hour,adjust_Time,SEC,D,G,A,Sel,Voice,alarm_On,Display_A);</p><p> input clk,nCR,EN,Adj_Min,Adj_Hour,Sel,Display_A,adjust_Time,alarm_
62、On;</p><p> output [6:0] out_MinL,out_MinH,out_HourL,out_HourH;</p><p> output SEC;</p><p> output D,G,Voice,A;</p><p> wire [7:0] Hour,Second,Minute,A_Hour,A_Minu
63、te;</p><p> wire MinL_EN,MinH_EN,Hour_EN;</p><p> wire [6:0] out_MinL,out_MinH,out_HourL,out_HourH;</p><p> wire D,G,Sel,A;</p><p> fenpin U0(CP,clk);</p>
64、;<p> counter10 U1(Second[3:0],nCR,EN,CP); //秒鐘的60進(jìn)制</p><p> counter6 U2(Second[7:4],nCR,(Second[3:0]==4'h9),CP);</p><p> assign SEC=Second[0]; 秒鐘以LED來顯示</p><p> /
65、/分鐘低位的使能端,滿足條件才計(jì)數(shù)</p><p> assign MinL_EN=((Adj_Min==1)&&(adjust_Time==1)) || (Second==8'h59);</p><p> //分鐘高位的使能端,滿足條件才計(jì)數(shù)</p><p> assign MinH_EN=(Adj_Min&&(adj
66、ust_Time==1)&&(Minute[3:0]==4'h9))||((Minute[3:0]==4'h9)&&(Second==8'h59)&&(Adj_Min==0));</p><p> counter10 U3(Minute[3:0],nCR,MinL_EN,CP); //分鐘的60進(jìn)制</p><p>
67、 counter6 U4(Minute[7:4],nCR,MinH_EN,CP);</p><p><b> assign</b></p><p> Hour_EN=((Adj_Hour==1)&&(adjust_Time==1))||((Minute==8'h59)&&(Second==8'h59)); <
68、;/p><p> counter24 U5(Hour[7:4],Hour[3:0],nCR,Hour_EN,CP,Sel); //時(shí)鐘的24進(jìn)制</p><p> baoshi U11(Second[7:0],Minute[7:0],Hour[7:0],D,G,Voice,CP);</p><p> alarm_Set U12(Adj_Min,Adj_Hour
69、,CP,nCR,Display_A,A_Hour,A_Minute);</p><p> alarm U13(Hour,Minute,A_Hour,A_Minute,Second,A,CP,alarm_On);</p><p><b> //顯示模塊的調(diào)用</b></p><p> display U6(Minute[3:0],A_M
70、inute[3:0],Display_A,out_MinL);</p><p> display U7(Minute[7:4],A_Minute[7:4],Display_A,out_MinH);</p><p> display U8(Hour[3:0],A_Hour[3:0],Display_A,out_HourL);</p><p> display U
71、9(Hour[7:4],A_Hour[7:4],Display_A,out_HourH);</p><p><b> endmodule</b></p><p> 為各個(gè)輸入輸出接口分配引腳,如下,使其在實(shí)驗(yàn)板上的數(shù)碼管上顯示結(jié)果。</p><p><b> 整個(gè)實(shí)驗(yàn)通過驗(yàn)收。</b></p><
72、p><b> 五、調(diào)試過程</b></p><p><b> 1、調(diào)試步驟</b></p><p> ?、湃绻绦蚓幾g出錯(cuò),可以根據(jù)錯(cuò)誤提示找出錯(cuò)誤,這類錯(cuò)誤比較容易解決。比如某一行少一個(gè)“;”之類的。</p><p> ?、迫绻幾g通過,再進(jìn)行仿真,通過仿真波形來判斷程序是否出現(xiàn)了邏輯性的錯(cuò)誤,這些需要仔細(xì)的研
73、究仿真波形,才能看出錯(cuò)誤的所在。</p><p> ?、欠抡婧?,確定仿真波形和程序沒有問題,再進(jìn)行引腳的分配,引腳分配后,編譯,再燒寫到DE0板上,如果出現(xiàn)錯(cuò)誤,返回引腳分配,找出錯(cuò)誤所在。</p><p> ?、仍贒E0實(shí)驗(yàn)板上運(yùn)行程序時(shí),碰到一些功能與設(shè)計(jì)不符,或者產(chǎn)生了競(jìng)爭(zhēng)冒險(xiǎn)等問題的時(shí)候,應(yīng)該對(duì)程序進(jìn)行查錯(cuò)和對(duì)時(shí)序的優(yōu)化,通過不斷的改進(jìn)和優(yōu)化程序,最終得到的程序才符合要求。<
74、/p><p> 2、調(diào)試中碰到的問題及解決方法</p><p> ?。?)、用Quartus自帶的波形仿真器時(shí),必須在仿真前,將自己編寫的波形文件設(shè)置為頂層文件,不然的話,仿真結(jié)果將是高阻態(tài)。</p><p> ?。?)、在編寫代碼時(shí),對(duì)于一些比較不常用的verilog語法不是很熟練。犯了一些語法錯(cuò)誤,比如在寫Disply模塊時(shí),未把Q設(shè)置成4位的二進(jìn)制數(shù),只是簡(jiǎn)單的
75、說明了一下wire Q結(jié)果在顯示時(shí),一直出現(xiàn)0,1跳變,無法正常顯示計(jì)數(shù)。</p><p> 但在編譯時(shí),并沒有報(bào)錯(cuò)。在反復(fù)檢查程序時(shí)才發(fā)現(xiàn),應(yīng)該把Q定義為4位的。更改之后出現(xiàn)了正確的顯示。</p><p><b> 六、實(shí)驗(yàn)小結(jié):</b></p><p> 通過這次設(shè)計(jì),既復(fù)習(xí)了以前所學(xué)的知識(shí),也進(jìn)一步加深了對(duì)EDA的了解,掌握了EDA
76、設(shè)計(jì)的基本流程(即設(shè)計(jì)輸入—編譯—調(diào)試—仿真—下載),領(lǐng)會(huì)了自頂而下結(jié)構(gòu)化設(shè)計(jì)的優(yōu)點(diǎn),并具備了初步的EDA程序設(shè)計(jì)能力。讓我對(duì)它有了更加濃厚的興趣。特別是當(dāng)每一個(gè)子模塊編寫調(diào)試成功時(shí),心里特別的開心。這個(gè)程序最難的地方在于頂層模塊的設(shè)計(jì),因?yàn)轫攲幽K需要將各個(gè)子模塊按照電路原理有機(jī)地結(jié)合起來,這需要扎實(shí)的理論功底,而這正是我所欠缺的。相比而言,子模塊的設(shè)計(jì)就容易多了,因?yàn)閂erilog語言和C語言有很多相似之處,只要明白了實(shí)驗(yàn)原理,就不
77、難完成,水平的高下只體現(xiàn)在程序的簡(jiǎn)潔與否。Verilog源程序的編寫很容易出現(xiàn)錯(cuò)誤,這就需要耐心的調(diào)試。因?yàn)楹芏嗲闆r下,一長(zhǎng)串的錯(cuò)誤往往是由一個(gè)不經(jīng)意的小錯(cuò)誤引起的。當(dāng)程序?qū)艺{(diào)屢錯(cuò)的時(shí)候,最好和其他同學(xué)溝通交流一下,他們不經(jīng)意的一句話,就可能給我啟發(fā),使問題迎刃而解。</p><p> 在波形仿真時(shí),也遇到了一點(diǎn)困難,想要的結(jié)果不能在波形上得到正確的顯示。還有的仿真圖根本就不出波形,怎么調(diào)節(jié)都不管用,后來直接就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子線路cad課程設(shè)計(jì)--數(shù)字鐘
- 電子線路實(shí)驗(yàn)報(bào)告-多功能電子鐘電路的設(shè)計(jì)
- 電子線路課程設(shè)計(jì)報(bào)告--數(shù)字電子鐘
- 數(shù)字電子線路課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---多功能電子數(shù)字鐘
- 課程設(shè)計(jì)--多功能電子數(shù)字鐘
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--多功能數(shù)字鐘設(shè)計(jì)
- 多功能數(shù)字鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 多功能 數(shù)字鐘
- 數(shù)字系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)報(bào)告——多功能數(shù)字鐘
- 數(shù)字邏輯課程設(shè)計(jì)報(bào)告--多功能數(shù)字鐘
- 電子線路課程設(shè)計(jì)—電子數(shù)字時(shí)鐘
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告 (2)
- 低頻數(shù)字電子線路課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--多功能數(shù)字鐘的設(shè)計(jì)
- 課程設(shè)計(jì)--多功能數(shù)字鐘設(shè)計(jì).doc
- 數(shù)字鐘課程設(shè)計(jì)---多功能數(shù)字鐘的設(shè)計(jì)與制作
評(píng)論
0/150
提交評(píng)論