第一篇:EDA課程 跑馬燈設(shè)計(jì)
EDA目錄
第一章 設(shè)計(jì)思路.................................................................................................................................................1 第二章 子模塊......................................................................................................................................................2 2.1 分頻器....................................................................................................................................................2 2.2 顯示模式模塊.......................................................................................................................................3 2.3 顯示LED燈模塊..................................................................................................................................5 第三章 調(diào)試及結(jié)果............................................................................................................................................6 3.1頂層原理圖............................................................................................................................................6 第四章 體會(huì)..........................................................................................................................................................7
第一章 設(shè)計(jì)思路
在掌握常用數(shù)字電路功能和原理的基礎(chǔ)上,根據(jù)EDA技術(shù)課程所學(xué)知識(shí),以及平時(shí)實(shí)驗(yàn)的具體操作內(nèi)容,利用硬件描述語(yǔ)言HDL,EDA軟件QuartusⅡ和硬件平臺(tái)cycloneⅡFPGAJ進(jìn)行一個(gè)簡(jiǎn)單的電子系統(tǒng)設(shè)計(jì),本次試驗(yàn)我所完成的內(nèi)容是跑馬燈的設(shè)計(jì),下面我簡(jiǎn)單的進(jìn)行一下原理的闡述。
跑馬燈課程設(shè)計(jì)的要求是控制8個(gè)LED進(jìn)行花樣顯示,設(shè)計(jì)四種顯示模塊:第一種顯示是從左向右逐個(gè)點(diǎn)亮LED。第二種顯示:從右向左逐個(gè)點(diǎn)亮LED。第三種顯示:從兩邊向中間逐個(gè)點(diǎn)亮LED。第四種顯示:從中間到兩邊逐個(gè)點(diǎn)亮LED。四種顯示模式循環(huán)切換,并帶有一位復(fù)位鍵控制系統(tǒng)的運(yùn)行停止。為了完成要求的效果顯示,由于要求比較簡(jiǎn)單,所以不用分為很多模塊來(lái)具體控制,所以我先擇利用賦值語(yǔ)句來(lái)完成燈的點(diǎn)亮,根據(jù)了解我們實(shí)驗(yàn)箱上的LED燈屬于共陰極接法,當(dāng)給于高電平時(shí)點(diǎn)亮,那么當(dāng)我們需要點(diǎn)亮某位LED燈時(shí),只需在該位上賦予高電平即可,比如:如果我們要實(shí)現(xiàn)8個(gè)數(shù)碼燈從左到右依次點(diǎn)亮,那么我們就可以給這8個(gè)數(shù)碼燈分別賦值10000000,經(jīng)過一段時(shí)間的延時(shí)后再給其賦值01000000,再經(jīng)過一段時(shí)間延時(shí)后再給其賦值00100000,依次類推,則最后一種賦值狀態(tài)為00000001,這樣就得到了相應(yīng)的現(xiàn)象。同理,要實(shí)現(xiàn)數(shù)碼燈從右向左依次點(diǎn)亮,從中間向兩端依次點(diǎn)亮,從兩端向中間依次點(diǎn)亮都可以采用這樣賦值的方法。在延時(shí)的程序編寫的過程中,我們采用計(jì)數(shù)時(shí)鐘脈沖個(gè)數(shù)的方式來(lái)實(shí)現(xiàn)。結(jié)合具體程序來(lái)說就是,在每個(gè)時(shí)鐘上升沿將clk_cnt變量加一,當(dāng)達(dá)到499999后,就進(jìn)入顯示進(jìn)程做下一步的賦值操作以顯示相應(yīng)接續(xù)的狀態(tài)。為了達(dá)到四種顯示模式循環(huán)切換的目的,可以將以上的所有賦值語(yǔ)句以順序語(yǔ)句的形式置于進(jìn)程中,這樣在完成了一種顯示方式后就會(huì)自動(dòng)進(jìn)入下一種設(shè)定好的顯示模式,如此反復(fù)循環(huán)。當(dāng)需要程序復(fù)位時(shí),只需按下rst鍵即可,程序不管走都那里,執(zhí)行那條語(yǔ)句,只要確定復(fù)位鍵按下時(shí),程序立刻返回到程序執(zhí)行語(yǔ)句的第一步,程序接著進(jìn)行新的循環(huán)點(diǎn)亮。
第二章 子模塊
系統(tǒng)工作流程如下圖所示,在沒有外界輸入控制時(shí),中央控制器將反復(fù)循環(huán)輸入預(yù)先設(shè)定的編碼,因此8個(gè)數(shù)碼燈將在四種顯示模式中循環(huán)顯示。若復(fù)位端被置0,則系統(tǒng)被重置,無(wú)論當(dāng)前處于什么狀態(tài),都重新從最開始的狀態(tài)開始重新執(zhí)行。
2.1 分頻器
輸入一個(gè)CLK信號(hào),通過分頻器模塊分別輸送到顯示模式模塊和顯示LED模塊 生成分頻器程序:
module FPQ(rst,clk,sel,fp);input clk,rst;input [1:0]sel;output fp;reg[1:0]temp;reg fp;always@(posedge clk or negedge rst)if(!rst)begin temp<=0;fp<=0;圖1 分頻器模塊 end else case(sel)2'b00: if(temp==2)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b01: if(temp==3)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b10: if(temp==1)begin fp<=1;temp<=0;end Else begin temp<=temp+1;fp<=0;end 2'b11:fp<=clk;endcase endmodule 2.2 顯示模式模塊
在實(shí)驗(yàn)箱上顯示彩燈運(yùn)行的模式,分別有1-4種模式生成數(shù)碼管顯示程序:
module moshi(state,led,rst,clk,);input [1:0] state;input rst,clk;output[7:0] led;reg [7:0]led;reg [2:0]temp;always@(posedge clk or negedge rst)if(!rst)temp<=0;else if(temp==3'b111)temp<=3'b000;else temp<=temp+1;always@(posedge clk)case(state)2'b00: begin case(temp)3'b000:led<=8'b10000000;3'b001:led<=8'b01000000;3'b010:led<=8'b00100000;3'b011:led<=8'b00010000;3'b100:led<=8'b00001000;3'b101:led<=8'b00000100;3'b110:led<=8'b00000010;3'b111:led<=8'b00000001;
圖2 顯示模式模塊 endcase end 2'b01: begin case(temp)3'b000:led<=8'b00000001;3'b001:led<=8'b00000010;3'b010:led<=8'b00000100;3'b011:led<=8'b00001000;3'b100:led<=8'b00010000;3'b101:led<=8'b00100000;3'b110:led<=8'b01000000;3'b111:led<=8'b10000000;endcase end 2'b10: begin case(temp)3'b000:led<=8'b10000001;3'b001:led<=8'b01000010;3'b010:led<=8'b00100100;3'b011:led<=8'b00011000;3'b100:led<=8'b10000001;3'b101:led<=8'b01000010;3'b110:led<=8'b00100100;3'b111:led<=8'b00011000;endcase end 2'b11: begin case(temp)3'b000:led<=8'b00011000;3'b001:led<=8'b00100100;3'b010:led<=8'b01000010;3'b011:led<=8'b10000001;3'b100:led<=8'b00011000;3'b101:led<=8'b00100100;3'b110:led<=8'b01000010;3'b111:led<=8'b10000001;endcase end endcase endmodule 2.3 顯示LED燈模塊
通過8個(gè)LED燈顯示4種顯示模式:1模式,從左到右逐個(gè)點(diǎn)亮LED;2模式,從右到左逐個(gè)點(diǎn)亮LED;3模式,從兩邊到中間逐個(gè)點(diǎn)亮LED;4模式,從中見到兩邊逐個(gè)點(diǎn)亮LED。生成LED燈模塊程序:
module SEG7(ms,clk,rst,seg7);input clk,rst;input [1:0]ms;output [6:0]seg7;reg[6:0]seg7;always@(posedge clk or negedge rst)if(!rst)seg7<=7'b0111111;else case(ms)2'b00:seg7<=7'b0000110;2'b01:seg7<=7'b1011011;2'b10:seg7<=7'b1001111;2'b11:seg7<=7'b1100110;endcase endmodule
圖3 顯示LED燈模塊
第三章 調(diào)試及結(jié)果
3.1頂層原理圖
原理圖如下:
圖4原理圖
根據(jù)引腳鎖定,完成實(shí)驗(yàn)箱硬件電路部分的線路連接。
再次編譯,設(shè)定好編程下載方式后,將導(dǎo)線與相應(yīng)數(shù)碼管及開關(guān)諒解好就可以進(jìn)行硬件下載測(cè)試了。最后,將程序下載入芯片后,觀察硬件運(yùn)行結(jié)果,即數(shù)碼燈顯示情況。經(jīng)測(cè)試,所編寫的程序完全達(dá)到了課程設(shè)計(jì)的要求,并得要了相應(yīng)的結(jié)果。
第一種顯示是從左向右逐個(gè)點(diǎn)亮LED。第二種顯示:從右向左逐個(gè)點(diǎn)亮LED。第三種顯示:從兩邊向中間逐個(gè)點(diǎn)亮LED。第四種顯示:從中間到兩邊逐個(gè)點(diǎn)亮LED。在每個(gè)顯示模式之間都有一次8位led全亮,接著全滅的顯示過程,四種顯示模式通過手動(dòng)切換,并帶有一位復(fù)位鍵控制系統(tǒng)的運(yùn)行停止。當(dāng)rst按鍵按下時(shí),led停止顯示,保持按下前的狀態(tài),如過不按rst,八位led燈四種模式通過手動(dòng)控制模式顯示。
第四章 心得體會(huì)
在這為期近一周的EDA課程設(shè)計(jì)過程中,自己受益匪淺,不僅對(duì)書本知識(shí)有了更全面更深刻的理解,還掌握了QuartusⅡ這款軟件。在以后的工作有增加了一門新技能。在整個(gè)課設(shè)過程中遇到了很多的困難,引腳的設(shè)定,頂層文件的建立,畫圖中連線的區(qū)分,都是小細(xì)節(jié),但都必須注意,否則就會(huì)影響整個(gè)設(shè)計(jì)的實(shí)驗(yàn)的過程使我明白了,要想避免實(shí)驗(yàn)中走彎路,首先程序要邏輯清晰,簡(jiǎn)潔明了,避免不必要的嵌套與條用,其次要適當(dāng)?shù)亟o程序加上注解文字,提高可讀性,以方便之后的程序出錯(cuò)時(shí)進(jìn)行查找,最后充分利用仿真軟件提供的各項(xiàng)編譯工具與報(bào)錯(cuò)消息,按圖索驥,有方向的完成程序調(diào)試。網(wǎng)上搜集的一些資料也給予了我很大的幫助。
在這短短幾天的課設(shè)中,加深了我對(duì)EDA的理解,認(rèn)識(shí)。對(duì)QuartusⅡ軟件的使用更加得心應(yīng)手,在以后的學(xué)習(xí)和工作中又多了一門技能。
書本上的知識(shí)學(xué)會(huì)知識(shí)了解,必須在實(shí)踐中才能深入的掌握所學(xué)的知識(shí),要不就是紙上談兵,不論說的多么華麗,只有在實(shí)踐中才能體現(xiàn)知識(shí)的價(jià)值,也才能考研一個(gè)人的真正能力。
這次EDA課設(shè)對(duì)我受益匪淺,謝謝在設(shè)計(jì)中幫助過我的老師和同學(xué),團(tuán)結(jié)就是力量。
第二篇:跑馬燈設(shè)計(jì)EDA課程設(shè)計(jì)
第一章 設(shè)計(jì)內(nèi)容與設(shè)計(jì)方案
1.1課程設(shè)計(jì)內(nèi)容
控制8個(gè)LED進(jìn)行花樣性顯示。
設(shè)計(jì)4種顯示模式:s0,從左到右逐個(gè)點(diǎn)亮LED;s1,從右到左逐個(gè)點(diǎn)亮LED;s2,從兩邊到中間逐個(gè)點(diǎn)亮LED;s3,從中見到兩邊逐個(gè)點(diǎn)亮LED。
4種模式循環(huán)切換,復(fù)位鍵(rst)控制系統(tǒng)的運(yùn)行停止。數(shù)碼管顯示模式編號(hào)。可預(yù)置彩燈變換速度,4檔快、稍快、中速、慢速,默認(rèn)工作為中速。
1.2設(shè)計(jì)方案
在掌握常用數(shù)字電路功能和原理的基礎(chǔ)上,根據(jù)EDA技術(shù)課程所學(xué)知識(shí),以及平時(shí)實(shí)驗(yàn)的具體操作內(nèi)容,利用硬件描述語(yǔ)言HDL,EDA軟件QuartusⅡ和硬件平臺(tái)cycloneⅡFPGA進(jìn)行一個(gè)簡(jiǎn)單的電子系統(tǒng)設(shè)計(jì),本次課程設(shè)計(jì)采用Verilog HDL硬件描述語(yǔ)言編寫控制程序,應(yīng)用Quartus Ⅱ軟件實(shí)現(xiàn)仿真測(cè)試。采用FPGA芯片對(duì)LED燈進(jìn)行控制,使其達(dá)到流水跑馬燈顯示的效果,LED燈采用共陽(yáng)極接法,當(dāng)給它一個(gè)低電平時(shí),LED點(diǎn)亮,我們利用移位寄存器使各輸出口循環(huán)輸出高低電平,達(dá)到控制的目的。
第二章 設(shè)計(jì)原理
2.1設(shè)計(jì)原理及設(shè)計(jì)流程
本次試驗(yàn)我所完成的內(nèi)容是跑馬燈的設(shè)計(jì),下面我簡(jiǎn)單的進(jìn)行一下原理的闡述。
跑馬燈課程設(shè)計(jì)的要求是控制8個(gè)LED進(jìn)行花樣顯示,設(shè)計(jì)四種顯示模塊:第一種顯示是從左向右逐個(gè)點(diǎn)亮LED。第二種顯示:從右向左逐個(gè)點(diǎn)亮LED。第三種顯示:從兩邊向中間逐個(gè)點(diǎn)亮LED。第四種顯示:從中間到兩邊逐個(gè)點(diǎn)亮LED。四種顯示模式循環(huán)切換,并帶有一位復(fù)位鍵控制系統(tǒng)的運(yùn)行停止。為了完成要求的效果顯示,由于要求比較簡(jiǎn)單,所以不用分為很多模塊來(lái)具體控制,所以我先擇利用移位寄存器來(lái)完成燈的點(diǎn)亮,我們將LED燈采用共陽(yáng)極接法,當(dāng)給于低電平時(shí)點(diǎn)亮,那么當(dāng)我們需要點(diǎn)亮某位LED燈時(shí),只需在該位上賦予低電平即可,比如:如果我們要實(shí)現(xiàn)8個(gè)數(shù)碼燈從左到右依次點(diǎn)亮,那么我們就可以給這8個(gè)數(shù)碼燈分別賦值10000000,經(jīng)過一段時(shí)間的延時(shí)后再給其賦值01000000,再經(jīng)過一段時(shí)間延時(shí)后再給其賦值00100000,依次類推,則最后一種賦值狀態(tài)為00000001,這樣就得到了相應(yīng)的現(xiàn)象。同理,要實(shí)現(xiàn)數(shù)碼燈從右向左依次點(diǎn)亮,從中間向兩端依次點(diǎn)亮,從兩端向中間依次點(diǎn)亮都可以采用這樣賦值的方法。為了達(dá)到四種顯示模式循環(huán)切換的目的,可以將以上的所有賦值語(yǔ)句以順序語(yǔ)句的形式置于進(jìn)程中,這樣在完成了一種顯示方式后就會(huì)自動(dòng)進(jìn)入下一種設(shè)定好的顯示模式,如此反復(fù)循環(huán)。當(dāng)需要程序復(fù)位時(shí),只需按下rst鍵即可,程序不管走都那里,執(zhí)行那條語(yǔ)句,只要確定復(fù)位鍵按下時(shí),程序立刻返回到程序執(zhí)行語(yǔ)句的第一步,程序接著進(jìn)行新的循環(huán)點(diǎn)亮。
第三章 設(shè)計(jì)程序
3.1 Verilog HDL程序
module ceshi(clk,rst,Q,DIN,CLK,a);input clk,rst;input [1:0]DIN;
//DIN為變換速度檔 output signed[7:0]Q;
//Q為7個(gè)LED output [6:0]a;
//a為數(shù)碼管顯示模式 output CLK;
//自定義時(shí)鐘 parameter DOUT=8'b0111_1111;reg
CLK;reg
[6:0]x;reg
[1:0]cs;reg
[7:0]Q;reg
[6:0]a;always@(posedge clk)begin x<=7'b0000000;CLK=0;case(DIN)0:begin
x<=x+1'b1;
if(x==20)begin
x<=7'b0;
CLK=~CLK;
end
end 1:begin
x<=x+1'b1;
if(x==15)begin
x<=7'b0;
CLK=~CLK;
end
end 2:begin
x<=x+1'b1;
if(x==10)begin
x<=7'b0;
CLK=~CLK;
end
end 3:begin
x<=x+1'b1;
if(x==5)begin
x<=7'b0;
CLK=~CLK;
end
end default begin
x<=x+1'b1;
if(x==20)begin
x<=7'b0;
CLK=~CLK;
end
end endcase end always@(posedge CLK or negedge rst)begin if(!rst)begin
Q<=DOUT;cs<=2'b00;a=7'b000_0000;end else begin case(cs)0:begin Q<=Q>>1;Q[7]<=1'b1;a=7'b0111111;
if(Q==8'b1111_1110)begin
Q<=8'b1111_1101;
cs<=2'b01;
end
end 1:begin Q<=Q<<1;Q[0]<=1'b1;a=7'b0000_110;
if(Q==8'b0111_1111)begin
Q<=8'b0111_1110;
cs<=2'b10;
end
end 2:begin Q[7:4]<=Q[7:4]>>1;
Q[3:0]<=Q[3:0]<<1;
Q[7]<=1'b1;
Q[0]<=1'b1;a=7'b1011_011;
if(Q==8'b1110_0111)begin
Q<=8'b1101_1011;
cs<=2'b11;
end
end 3:begin Q[7:4]<=Q[7:4]<<1;
Q[3:0]<=Q[3:0]>>1;
Q[4]<=1'b1;
Q[3]<=1'b1;a=7'b100_1111;
if(Q==8'b0111_1110)begin
Q<=8'b0111_1111;
cs<=2'b00;
end
end default begin
Q<=DOUT;
cs<=2'b00;
a=7'b0000_000;
end endcase end end endmodule
第四章 設(shè)計(jì)結(jié)果及仿真波形
4.1 設(shè)計(jì)結(jié)果
圖1 頂層文件原理圖
4.2仿真波形
4.3仿真結(jié)果分析
當(dāng)輸入DIN為00時(shí)選擇慢速檔,CLK的周期大約為20us,隨著CLK上升沿的到來(lái)輸出Q做移位變化,開始從左向右移,數(shù)碼管段碼輸出a顯示0,然后從右向左移,數(shù)碼管段碼輸出a顯示1,然后從中間向兩邊移,數(shù)碼管段碼輸出a顯示2,然后從兩邊向中間移,數(shù)碼管段碼輸出a顯示3,之后循環(huán)顯示,當(dāng)按下復(fù)位鍵rst時(shí)系統(tǒng)運(yùn)行停止,第一個(gè)燈點(diǎn)亮,數(shù)碼管無(wú)顯示。當(dāng)輸入DIN為01時(shí)選擇中速檔,CLK的周期大約為15us,執(zhí)行以上循環(huán)顯示。當(dāng)輸入DIN為10時(shí)選擇稍快檔,CLK的周期大約為10us,執(zhí)行以上循環(huán)顯示。當(dāng)輸入DIN為11時(shí)選擇快速檔,CLK的周期大約為5us,執(zhí)行以上循環(huán)顯示。
第五章 設(shè)計(jì)總結(jié)
通過這次有關(guān)于EDA技術(shù)的課程設(shè)計(jì)的學(xué)習(xí)與應(yīng)用,我們基本了解了EDA技術(shù)的相關(guān)應(yīng)用,也掌握了EDA設(shè)計(jì)的相關(guān)軟件Quartus7.2的最基礎(chǔ)的使用方法,豐富了我們的設(shè)計(jì)手段,也讓我了解了更多的仿真方法。
在上機(jī)操作的過程中,剛開始我們遇到了很多的困難,對(duì)軟件的不熟悉以及對(duì)原理掌握的不透徹,使得剛開始的時(shí)候舉步維艱,但是經(jīng)過對(duì)最簡(jiǎn)單的模型的設(shè)計(jì)及仿真練習(xí)過后,我們基本掌握了軟件的使用方法,通過軟件仿真及對(duì)各個(gè)參數(shù)的設(shè)置,我們不斷調(diào)試仿真出來(lái)的波形。這期間我們也了解到,雖然軟件的仿真功能很強(qiáng)大,但是還是需要操作人員仔細(xì)的進(jìn)行觀察及調(diào)試的,否則也容易出現(xiàn)仿真錯(cuò)誤。
這次的學(xué)習(xí)開闊了我們的視野,使我們了解了更多的專業(yè)方面的實(shí)際應(yīng)用,在生產(chǎn)應(yīng)用方面的用處等,以及專業(yè)方面的發(fā)展方向等……隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,在涉及通信、國(guó)防、航天、工業(yè)自動(dòng)化、儀器儀表等領(lǐng)域的電子系統(tǒng)設(shè)計(jì)工作中,EDA技術(shù)的含量正以驚人的速度上升,它已成為當(dāng)今電子技術(shù)發(fā)展的前沿之一。EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來(lái)描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計(jì)工具趨于完美的地步,所以我們更加應(yīng)該多多掌握這方面的知識(shí)。
第六章 參考文獻(xiàn)
[1] 潘松、黃繼業(yè)編著.EDA技術(shù)與VHDL,北京:清華大學(xué)出版社 [2] 邊計(jì)年主編.用VHDL設(shè)計(jì)電子線路, 北京:清華大學(xué)出版社
[3] 王金明,楊吉斌編著.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL.北京:電子工業(yè)出版社 [4] 徐志軍,徐光輝編著.CPLD/FPGA的開發(fā)與應(yīng)用.北京:電子工業(yè)出版社 [5] 葉天遲主編.EDA實(shí)用技術(shù)實(shí)驗(yàn)及課程設(shè)計(jì)指導(dǎo)書.長(zhǎng)春:自編實(shí)驗(yàn)指導(dǎo)書
第三篇:EDA課程心得
EDA課程學(xué)習(xí)心得
這學(xué)期的后半期,我們開了EDA技術(shù)這門課程。EDA的中文解釋是電子設(shè)計(jì)自動(dòng)化,這門課程主要是用于對(duì)現(xiàn)代高新電子產(chǎn)品的設(shè)計(jì),EDA在硬件方面融合了大規(guī)模集成電路技術(shù),是一款綜合性很強(qiáng)的工具。
這門課程的學(xué)習(xí)在教學(xué)中應(yīng)該以實(shí)踐為主,我們每周有兩節(jié)課,一節(jié)是理論課學(xué)習(xí),一節(jié)是實(shí)踐課。剛開始上理論課程的時(shí)候,主要是對(duì)該軟件的使用做介紹,而在實(shí)踐課程上,我們應(yīng)該對(duì)軟件進(jìn)行運(yùn)用,但是,有很多的同學(xué)卻沒有干與課程相關(guān)的事,只有一部分的同學(xué)在練習(xí)。開始的時(shí)候,對(duì)軟件很陌生,都是幾個(gè)同學(xué)在一起研究,并且詢問老師,才慢慢的掌握了使用方法。在后面的理論學(xué)習(xí)中,老師主要是講解編程的一些語(yǔ)法,并且只講了一些常用的,像信號(hào)量,變量,還有PROCESS語(yǔ)句等,這些是編程中常用的一些知識(shí)。在實(shí)踐課上,主要是以實(shí)驗(yàn)指導(dǎo)書為主,根據(jù)指導(dǎo)書上的內(nèi)容進(jìn)行編程,畫圖仿真來(lái)對(duì)EDA技術(shù)的運(yùn)用有更深入的理解。在每周一節(jié)理論課的學(xué)習(xí)情況下,很多的時(shí)間都是很珍貴的,學(xué)習(xí)理論的時(shí)間就那么一點(diǎn),那么,肯定就不可能學(xué)習(xí)的很全面,老師主要是講方法,更多的是要我們自己努力。這本教材還很不錯(cuò),講解的很詳細(xì),讓初學(xué)者也能理解。然后實(shí)踐課程是可以在課后也能練習(xí),課上發(fā)現(xiàn)問題就能及時(shí)的詢問老師,但是,課后就只能詢問同學(xué),或者是將問題留到課堂上再問老師。
這門課程學(xué)完最大的感觸就是學(xué)習(xí)的時(shí)間太短了,這門課程聽老師說對(duì)我們的以后工作是有很大的幫助的,但是我們卻只學(xué)習(xí)了半個(gè)學(xué)期,只用了32個(gè)課時(shí)就結(jié)束了,這肯定是不夠的。EDA技術(shù)可以完成各種自動(dòng)設(shè)計(jì)過程,是目前最為矚目的一項(xiàng)技術(shù),它有強(qiáng)大的邏輯設(shè)計(jì)仿真測(cè)試技術(shù)。它的仿真測(cè)試技術(shù)只要通過計(jì)算機(jī),就能對(duì)所設(shè)計(jì)的電子系統(tǒng)從各種不同層次的系統(tǒng)性能特點(diǎn)完成一系列準(zhǔn)確的測(cè)試與仿真操作,在完成實(shí)際系統(tǒng)的安裝后,還能對(duì)系統(tǒng)上的目標(biāo)器件進(jìn)行所謂的邊界掃描測(cè)試。這一切都極大的提高了大規(guī)模的系統(tǒng)電子設(shè)計(jì)的自動(dòng)化程度。現(xiàn)在的很多設(shè)計(jì)工作都需要先進(jìn)行計(jì)算機(jī)仿真,如果沒有錯(cuò)誤,在運(yùn)用到實(shí)際的硬件中,這不僅能提高設(shè)計(jì)速度,還能減少因?yàn)樵O(shè)計(jì)失誤而造成的原料浪費(fèi)。學(xué)好一門仿真軟件對(duì)于我們本科學(xué)生是必不可少的,因?yàn)橐院螽厴I(yè)了如果從事設(shè)計(jì)方向的工作,那必然要求我們有這樣的一門技術(shù)。
以下是我在這門課程的學(xué)習(xí)過程中總結(jié)的幾點(diǎn)建議,希望老師能夠耐心的看完:
(1)、根據(jù)學(xué)生的層次,設(shè)計(jì)一種適合學(xué)生的教學(xué)方案。像我們班這樣的基礎(chǔ)不太好的班級(jí),可能采用重實(shí)踐的方法更合適一些。上課講很多的理論知識(shí),都不及在機(jī)房自己練習(xí)來(lái)的快。而且,老師有時(shí)候在課堂上也不知道該給我們講些什么我們才會(huì)更好的接收,這樣的話,在我們自己動(dòng)手實(shí)踐的過程中我們發(fā)現(xiàn)了問題,經(jīng)過詢問老師和與同學(xué)一起研究,這樣,就可以克服難題,而且,經(jīng)過這樣的經(jīng)歷,我們對(duì)于該問題也會(huì)有很深的印象,在以后的應(yīng)用中出現(xiàn)類似的問題我們也會(huì)更快的找到方法解決。
(2)、在實(shí)踐課上要嚴(yán)抓課堂秩序。在實(shí)踐課的時(shí)候,很多同學(xué)都不做與課程相關(guān)的事,要么翻紙盤,要么幾個(gè)一起玩游戲,而真正在做實(shí)驗(yàn)的同學(xué)就只有那么少許的人。很多人都是在一開始就養(yǎng)成這樣的壞習(xí)慣的,如果在剛開始就嚴(yán)抓課堂秩序,那么,很多人可能就會(huì)按照要求循規(guī)蹈矩了。在實(shí)踐課上是很重要的學(xué)習(xí)機(jī)會(huì),本來(lái)課程安排的時(shí)間就很少,不好好的利用,那么肯定是一項(xiàng)嚴(yán)重的損失。
(3)、上理論課的時(shí)候盡量的多的將一些知識(shí)點(diǎn)講詳細(xì)一些。我們學(xué)習(xí)的都是很基礎(chǔ)的知識(shí),不要求深入,但是應(yīng)該盡量的將基礎(chǔ)的東西都掌握了。在這門課程中,我們只學(xué)習(xí)了幾章較為基礎(chǔ)和重要的內(nèi)容,只要掌握了這幾章也就能進(jìn)行簡(jiǎn)單的編程,在這樣的情況下,我們就更是需要老師幫助我們,引導(dǎo)我們,理清這些知識(shí)點(diǎn),從而掌握它們。
以上是我在這門課程的學(xué)習(xí)中的一些感觸和心得,雖然這門課程的學(xué)習(xí)結(jié)束了,但是,有一些學(xué)習(xí)方法是同樣可以運(yùn)用到其他的課程學(xué)習(xí)中,在以后的學(xué)習(xí)中,我們還應(yīng)該堅(jiān)持,努力,將學(xué)習(xí)進(jìn)行到底!
第四篇:合肥工業(yè)大學(xué)EDA課程總結(jié)報(bào)告
EDA課程總結(jié)報(bào)告
一、EDA技術(shù)簡(jiǎn)介 1.EDA技術(shù)的概念
EDA即Electronic Design Automation的縮寫,直譯為:電子設(shè)計(jì)自動(dòng)化 EDA技術(shù)有狹義和廣義之分,狹義EDA技術(shù)就是以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件描述語(yǔ)言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計(jì)算機(jī)、大規(guī)模可編程邏輯器件的開發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件的方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至完成對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù),或稱為IES/ASIC自動(dòng)設(shè)計(jì)技術(shù)。
2.EDA技術(shù)的目的和意義
EDA技術(shù)以規(guī)模巨大的可編程邏輯器件(PLD)作為進(jìn)行電子設(shè)計(jì)的載體,硬件描述語(yǔ)言(HDL)作為系統(tǒng)邏輯描述的一種主要 表達(dá)方式,通過它來(lái)完成對(duì)系統(tǒng)邏輯的描述,再依托具有強(qiáng)大功能的計(jì)算機(jī),通過運(yùn)用與 EDA 技術(shù)相應(yīng)的工具軟件,完成電子系統(tǒng)的 自動(dòng)化設(shè)計(jì)。這種技術(shù)的應(yīng)用使設(shè)計(jì)人員得以 高效快速地完成設(shè)計(jì)任務(wù),使設(shè)計(jì)所用周期時(shí)間得以縮短,減少了設(shè)計(jì)所需的投入成本。20 世紀(jì)70年代由于計(jì)算機(jī)及集成電路的急劇發(fā)展,使電子技術(shù)受到劇烈的沖擊,其更新?lián)Q代的周期不斷縮減,而專用的集成電路卻不斷提升其設(shè)計(jì)難度,致使兩者之間的矛盾逐漸擴(kuò)大,這就使得電子技術(shù)要不斷地更新,從而滿足電子產(chǎn)品生產(chǎn)的需要,經(jīng)過近幾十年的發(fā)展,電子設(shè)計(jì)技術(shù)大致經(jīng)歷了三個(gè)主要的發(fā)展階段,從初期的 CAD 階段到 CAE 階段再到現(xiàn)在的 EDA 階段,電子設(shè)計(jì)技術(shù)取得了飛躍性的發(fā)展。EDA技術(shù)最特別之處在于它的設(shè)計(jì)流程,與傳統(tǒng)自下而上的電子設(shè)計(jì)流程恰恰相反,EDA技術(shù)選擇使用自上而下的設(shè)計(jì)流程,它從電子系統(tǒng)設(shè)計(jì)的整體出發(fā),在進(jìn)行設(shè)計(jì)之前就將系統(tǒng)中各部分之間的結(jié)構(gòu)規(guī)劃好,在對(duì)方框圖進(jìn)行劃分時(shí)完成相關(guān)的仿真和糾錯(cuò)工作,使用 HDL 對(duì)高層次邏輯進(jìn)行描述,并運(yùn)用綜合優(yōu)化方法完成所有有關(guān)工作,然后通過使用 EDA 技術(shù),可以幫助用戶實(shí)現(xiàn)對(duì)系統(tǒng)中任意一項(xiàng)硬件功能進(jìn)行系統(tǒng)描述,最后再利用現(xiàn)場(chǎng)可編程門陣列(FPGA)或復(fù)雜可編程邏輯器 件(CPLD)來(lái)實(shí)現(xiàn)電子系統(tǒng)設(shè)計(jì)的結(jié)果。這種先進(jìn)的電子技術(shù)有效地解決了傳統(tǒng)電子設(shè)計(jì)技術(shù)的弊端,減少了實(shí)際應(yīng)用中出現(xiàn)故障的幾率,從而使設(shè)計(jì)效率得以大幅度提升。
二、EDA技術(shù)發(fā)展現(xiàn)狀
EDA 技術(shù)發(fā)展迅猛, 逐漸在教學(xué)、科研、產(chǎn)品設(shè)計(jì)與制造等各方面都發(fā)揮著巨大的作用。
在教學(xué)方面: 幾乎所有理工科(特別是電子信息)類的高校都開設(shè)了EDA 課程。主要是讓學(xué)生了解EDA 的基本原理和基本概念、掌握用VHDL 描述系統(tǒng)邏輯的方法、使用EDA 工具進(jìn)行電子電路課程的模擬仿真實(shí)驗(yàn)。如實(shí)驗(yàn)教學(xué)、課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、設(shè)計(jì)競(jìng)賽等均可借助CPLD/ FPGA 器件, 使實(shí)驗(yàn)設(shè)備或設(shè)計(jì)出的電子系統(tǒng)具有高可靠性, 又經(jīng)濟(jì)、快速、容易實(shí)現(xiàn)、修改便利, 同時(shí)可大大提高學(xué)生的實(shí)踐動(dòng)手能力、創(chuàng)新能力和計(jì)算機(jī)應(yīng)用能力。
在科研方面: 主要利用電路仿真工具進(jìn)行電路設(shè)計(jì)與仿真;利用虛擬儀器進(jìn)行產(chǎn)品調(diào)試;將CPLD/ FPGA 器件的開發(fā)應(yīng)用到儀器設(shè)備中, CPLD/ FPGA 可直接應(yīng)用于小批量產(chǎn)品的芯片或作為大批量產(chǎn)品的芯片前期開發(fā)。傳統(tǒng)機(jī)電產(chǎn)品的升級(jí)換代和技術(shù)改造, CPLD/ FPGA 的應(yīng)用可提高傳統(tǒng)產(chǎn)品的性能, 縮小體積, 提高技術(shù)含量和產(chǎn)品的附加值。作為高等院校有關(guān)專業(yè)的學(xué)生和廣大的電子工程師了解和掌握這一先進(jìn)技術(shù)是勢(shì)在必行, 這不僅是提高設(shè)計(jì)效率的需要, 更是時(shí)代發(fā)展的需求, 只有掌握了EDA 技術(shù)才有能力參與世界電子工業(yè)市場(chǎng)的競(jìng)爭(zhēng), 才能生存與發(fā)展。隨著科技的進(jìn)步, 電子產(chǎn)品的更新日新月異, EDA 技術(shù)作為電子產(chǎn)品開發(fā)研制的源動(dòng)力, 已成為現(xiàn)代電子設(shè)計(jì)的核心。所以發(fā)展EDA 技術(shù)將是電子設(shè)計(jì)領(lǐng)域和電子產(chǎn)業(yè)界的一場(chǎng)重大的技術(shù)革命, 同時(shí)也對(duì)電類課程的教學(xué)和科研提出了更深更高的要求。
在產(chǎn)品設(shè)計(jì)與制造方面: 從高性能的微處理器、數(shù)字信號(hào)處理器一直到彩電、音響和電子玩具電路等, EDA 技術(shù)不單是應(yīng)用于前期的計(jì)算機(jī)模擬仿真、產(chǎn)品調(diào)試, 而且也在PCB 的制作、電子設(shè)備的研制與生產(chǎn)、電路板的焊接、制作過程等有重要作用。可以說EDA 技術(shù)已經(jīng)成為電子工業(yè)領(lǐng)域不可缺少的技術(shù)支持。
進(jìn)入21 世紀(jì)后,電子技術(shù)全方位納入EDA 領(lǐng)域,EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容,突出表現(xiàn)在以下幾個(gè)方面: 使電子設(shè)計(jì)成果以自主知識(shí)產(chǎn)權(quán)的方式得以明確表達(dá)和確認(rèn)成為可能;基于EDA 工具的ASIC 設(shè)計(jì)標(biāo)準(zhǔn)單元已涵蓋大規(guī)模電子系統(tǒng)及IP 核模塊;軟硬件IP 核在電子行業(yè)的產(chǎn)業(yè)領(lǐng)域、技術(shù)領(lǐng)域和設(shè)計(jì)應(yīng)用領(lǐng)域得到進(jìn)一步確認(rèn);SOC(System-on-Chip)高效低成本設(shè)計(jì)技術(shù)的成熟。隨著半導(dǎo)體技術(shù)、集成技術(shù)和計(jì)算機(jī)技術(shù)的迅猛發(fā)展, 電子系統(tǒng)的設(shè)計(jì)方法和設(shè)計(jì)手段都發(fā)生了很大的變化。
傳統(tǒng)的固定功能集成塊加連線的設(shè)計(jì)方法正逐步地退出歷史舞臺(tái), 而基于芯片的設(shè)計(jì)方法正成為現(xiàn)代電子系統(tǒng)設(shè)計(jì)的主流。
三、器件的封裝
常用的各種電路元器件以及IC芯片采用的封裝形式:
元件名稱
元件符號(hào)
封裝屬性
電阻 RES1-RES4 AXIAL系列 從AXIAL-0.3到AXIAL-1.0,后綴數(shù)字代表兩焊盤的間距,單位為Kmil.瓷片電容 RAD0.1-RAD0.3。其中0.1-0.3指電容大小,一般用RAD0.1 電解電容: RB.1/.2-RB.4/.8 其中.1/.2-.4/.8指電容大小。一般<100uF 用RB.1/.2,100uF-470uF用RB.2/.4,>470uF用RB.3/.6 電位器 POT1和POT2 VR-1到VR-5.普通二極管 DIODE DIODE0.4和DIODE 0.7 肖特基二極管 DIODE SCHOTTKY DIODE0.4和DIODE 0.7 隧道二極管 DUIDE TUNNEL DIODE0.4和DIODE 0.7 變?nèi)荻O管 DIODE VARCTOR DIODE0.4和DIODE 0.7 穩(wěn)壓二極管 ZENER1~3 DIODE0.4和DIODE 0.7 發(fā)光二極管 RB.1/.2 三極管 NPN,NPN1,PNP,PNP1 TO18、TO-92A(普通三極管)TO-220(大功率三極管)TO3(大功率達(dá)林頓管)
N溝道結(jié)型場(chǎng)效應(yīng)管 JFET N TO18 P溝道結(jié)型場(chǎng)效應(yīng)管 JFET P TO18 N溝道增強(qiáng)型管 MOSFET N TO18 P溝道增強(qiáng)型管 MOSFET P TO18 整流橋 BRIDGE1和BRIDGE2 D系列,如D-44,D-37,D-46等。單排多針插座 CON CON系列,從CON1到CON60,引腳封裝形式為SIP系列,從SIP-2到SIP-20。
.雙列直插元件
根據(jù)功能的不同而不同
DIP系列。
串并口類原理圖 DB DB系列,引腳封裝形式為DB和MD系列 電源穩(wěn)壓塊78系列 7805,7812 TO-126和TO-126 電源穩(wěn)壓塊79系列 7905,7912 TO-126和TO-126
四、PCB板布線
PCB板布線對(duì)電路的影響:
1.我們要注意貼片器件(電阻電容)與芯片和其余器件的最小距離芯片:一般我們定義分立器件和IC芯片的距離0.5~0.7mm,特殊的地方可能因?yàn)閵A具配置的不同而改變
2.對(duì)于分立直插的器件
一般的電阻如果為分立直插的比貼片的距離略大一般在1~3mm之間。注意保持足夠的間距(因?yàn)榧庸さ穆闊灾辈宓幕静粫?huì)用)
3.對(duì)于IC的去耦電容的擺放
每個(gè)IC的電源端口附近都需要擺放去耦電容,且位置盡可能靠近IC的電源口,當(dāng)一個(gè)芯片有多個(gè)電源口的時(shí)候,每個(gè)口都要布置去耦電容。
4.在邊沿附近的分立器件
由于一般都是用拼板來(lái)做PCB,因此在邊沿附近的器件需要符合兩個(gè)條件,第一就是與切割方向平行(使器件的應(yīng)力均勻),第二就是在一定距離之內(nèi)不能布置器件(防止板子切割的時(shí)候損壞元器件)5.如果相鄰的焊盤需要相連,首先確認(rèn)在外面進(jìn)行連接,防止連成一團(tuán)造成橋接,同時(shí)注意此時(shí)的銅線的寬度。
6.焊盤如果在鋪通區(qū)域內(nèi)需要考慮熱焊盤(必須能夠承載足夠的電流),如果引線比直插器件的焊盤小的話需要加淚滴(角度小于45度),同樣適用于直插連接器的引腳。
7.元件焊盤兩邊的引線寬度要一致,如果時(shí)間焊盤和電極大小有差距,要注意是否會(huì)出現(xiàn)短路的現(xiàn)象,最后要注意保留未使用引腳的焊盤,并且正確接地或者接電源。
8.注意通孔最好不要打在焊盤上。
9.另外就是要注意的是引線不能和板邊過近,也不允許在板邊鋪銅(包括定位孔附近區(qū)域)
10.大電容:首先要考慮電容的環(huán)境溫度是否符合要求,其次要使電容盡可能的遠(yuǎn)離發(fā)熱區(qū)域
五、總結(jié)
心得感想:
在開始上這門課時(shí),我對(duì)它有一點(diǎn)興趣,因?yàn)楫?dāng)我用自己所學(xué)的知識(shí)做出一些東西時(shí)我覺得特別開心。通過對(duì)這門課程相關(guān)理論的學(xué)習(xí),我掌握了EDA的一些基本的的知識(shí),用自己學(xué)到的東西盡可能的去完成老師布置的實(shí)驗(yàn)。通過實(shí)驗(yàn)使我更加深刻的認(rèn)識(shí)和理解了EDA。不過在做實(shí)驗(yàn)的時(shí)候帶來(lái)的不僅僅只是收獲,也會(huì)有很多的困難。例如,當(dāng)在畫實(shí)驗(yàn)原理圖的時(shí)候需要一個(gè)元件,但是怎么找都找不到這個(gè)元件。做實(shí)驗(yàn)的時(shí)候我也深刻的感覺到團(tuán)結(jié)的力量以及在老師的重要性,有很多的時(shí)候出現(xiàn)問題了不要自己硬抗著,而是應(yīng)該多問問身邊的人,多問問老師,因?yàn)槔蠋煹闹笇?dǎo)會(huì)使你的問題馬上得以解決而且你也會(huì)理解,當(dāng)下次出現(xiàn)同樣的錯(cuò)誤時(shí),你會(huì)很快的解決。
對(duì)這門課程的最大收獲除了學(xué)習(xí)到了知識(shí)以外,更重要的是讓我明白了一個(gè)道理:只要全身心的投入到一件事中,并且要有持之以恒的決心,就一定會(huì)有收獲。有的人覺得自己做不出來(lái),就網(wǎng)上搜一個(gè)了事,但是,放棄一次黑暗中摸索的經(jīng)歷,就放棄了一次成長(zhǎng)的機(jī)會(huì)!如果你付出了,沒有收獲。那只能說,是付出的還不夠多。
在學(xué)習(xí)這門課的時(shí)候我覺得實(shí)驗(yàn)真的很重要,而且只有經(jīng)過實(shí)驗(yàn)我們才能更好的掌握所學(xué)的理論知識(shí),才能更好的應(yīng)用它們。
第五篇:EDA數(shù)字鐘設(shè)計(jì)
數(shù)字鐘
一、實(shí)驗(yàn)?zāi)康?/p>
1、掌握多位計(jì)數(shù)器相連的設(shè)計(jì)方法。
2、掌握十進(jìn)制,六進(jìn)制,二十四進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法。
3、掌握揚(yáng)聲器的驅(qū)動(dòng)及報(bào)時(shí)的設(shè)計(jì)。
4、LED燈的花樣顯示。
5、掌握CPLD技術(shù)的層次化設(shè)計(jì)方法。
二、實(shí)驗(yàn)器材
1、主芯片Altera EPF10K10LC84-4。2、8個(gè)LED燈。
3、揚(yáng)聲器。4、4位數(shù)碼顯示管。5、8個(gè)按鍵開關(guān)(清零,調(diào)小時(shí),調(diào)分鐘)。
三、實(shí)驗(yàn)內(nèi)容
根據(jù)電路特點(diǎn),運(yùn)用層次設(shè)計(jì)概念設(shè)計(jì)。將此設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口。
1、時(shí)計(jì)時(shí)程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity hour is
port(reset,clk : in std_logic;
daout : out std_logic_vector(7 downto 0));end hour;
architecture behav of hour is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);begin
p1: process(reset,clk)
begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<2)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
else
if(count=3)
then
counter<=“0000”;
else
count<=count+1;
count<=“0000”;
end if;
end if;
end if;
end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;
end behav;
2、分計(jì)時(shí)程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity minute is
port(reset,clk,sethour: in std_logic;
daout : out std_logic_vector(7 downto 0);
enhour : out std_logic);end minute;
architecture behav of minute is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;
p2: process(clk)begin
if(clk'event and clk='0')then
if(counter=0)then
if(count=0)then
carry_out2<='0';
end if;
else
carry_out2<='1';
end if;end if;end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enhour<=(carry_out1 and carry_out2)or sethour;end behav;
3、秒計(jì)時(shí)程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity second is
port(reset,clk,setmin : in std_logic;
daout : out std_logic_vector(7 downto 0);
enmin : out std_logic);end second;
architecture behav of second is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)
then
if
(count=9)
then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)
then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;daout(7 downto
4)<=counter;
daout(3
downto
0)<=count;enmin<=carry_out1 or setmin;end behav;6
4、alert程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity alert is port(clkspk : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
speak : out std_logic;
lamp : out std_logic_vector(8 downto 0));end alert;
architecture behav of alert is signal divclkspk2 : std_logic;begin p1: process(clkspk)begin
if(clkspk'event and clkspk='1')then
divclkspk2<=not divclkspk2;
end if;end process;p2: process(second,minute)begin if(minute=“01011001”)then case second is
when “01010001”=>lamp<=“000000001”;speak<=divclkspk2;when “01010010”=>lamp<=“000000010”;speak<='0';when “01010011”=>lamp<=“000000100”;speak<=divclkspk2;when “01010100”=>lamp<=“000001000”;speak<='0';when “01010101”=>lamp<=“000010000”;speak<=divclkspk2;when “01010110”=>lamp<=“000100000”;speak<='0';when “01010111”=>lamp<=“001000000”;speak<=divclkspk2;when “01011000”=>lamp<=“010000000”;speak<='0';when “01011001”=>lamp<=“100000000”;speak<=clkspk;when others=>lamp<=“000000000”;end case;end if;end process;end behav;8
5、seltime程序 library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity seltime is port(ckdsp : in std_logic;
reset : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
hour : in std_logic_vector(7 downto 0);
daout : out std_logic_vector(3 downto 0);
sel : out std_logic_vector(2 downto 0));end seltime;
architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin
process(reset,ckdsp)begin
if(reset='0')then sec<=“000”;
elsif(ckdsp'event and ckdsp='1')then
sec<=“000”;else
sec<=sec+1;end if;end if;end process;
process(sec,second,minute,hour)begin case sec is
when “000”=>daout<=second(3 downto 0);when “001”=>daout<=second(7 downto 4);when “011”=>daout<=minute(3 downto 0);when “100”=>daout<=minute(7 downto 4);when “110”=>daout<=hour(3 downto 0);when “111”=>daout<=hour(7 downto 4);when others=>daout<=“1111”;end case;end process;
if(sec=“111”)then
sel<=sec;end behav;
6、deled程序: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;
ENTITY deled IS PORT(S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
A,B,C,D,E,F,G,H: OUT STD_LOGIC);END deled;
ARCHITECTURE BEHAV OF deled IS
SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DATA<=S;PROCESS(DATA)BEGIN
CASE DATA IS
WHEN “0000”=>DOUT<=“00111111”;WHEN “0001”=>DOUT<=“00000110”;WHEN “0010”=>DOUT<=“01011011”;WHEN “0011”=>DOUT<=“01001111”;WHEN “0100”=>DOUT<=“01100110”;WHEN “0101”=>DOUT<=“01101101”;WHEN “0110”=>DOUT<=“01111101”;WHEN “0111”=>DOUT<=“00000111”;WHEN “1000”=>DOUT<=“01111111”;WHEN “1001”=>DOUT<=“01101111”;WHEN “1010”=>DOUT<=“01110111”;WHEN “1011”=>DOUT<=“01111100”;WHEN “1100”=>DOUT<=“00111001”;WHEN “1101”=>DOUT<=“01011110”;WHEN “1110”=>DOUT<=“01111001”;WHEN “1111”=>DOUT<=“01000000”;WHEN OTHERS=>DOUT<=“00000000”;END CASE;END PROCESS;H<=DOUT(7);
G<=DOUT(6);
F<=DOUT(5);
E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;
7、頂層原理圖:
四、實(shí)驗(yàn)結(jié)果 頂層原理圖仿真波形:
五、心得體會(huì)
1、系統(tǒng)設(shè)計(jì)進(jìn)要行充分的方案論證,不可盲目就動(dòng)手去做;
2、實(shí)驗(yàn)中對(duì)每一個(gè)細(xì)節(jié)部分都要全面思考,要對(duì)特殊情況進(jìn)行處理;
3、對(duì)于數(shù)字系統(tǒng),要考慮同步、異步問題;
4、數(shù)字電路的理論分析要結(jié)合時(shí)序圖;
5、遇到問題,要順藤摸瓜,分析清楚,不可胡亂改動(dòng),每做一次改變都要有充分的理由;
6、模塊化設(shè)計(jì)方法的優(yōu)點(diǎn)在于其簡(jiǎn)潔性,但是在實(shí)驗(yàn)設(shè)計(jì)中也發(fā)現(xiàn),在實(shí)驗(yàn)最終電路確定之前,要盡量減少模塊重疊嵌套,因?yàn)樵诳偟碾娐非枚ㄖ埃娐愤€不成熟,很多地方需要改進(jìn),如果在開始時(shí)就進(jìn)行多層模塊化,里層模塊電路的修改將影響其外層的全部電路,這樣就是牽一發(fā)動(dòng)全身,很顯然,這樣將導(dǎo)致電 數(shù)字鐘課程設(shè)計(jì) 電路設(shè)計(jì)的低效,所以在設(shè)計(jì)過程中,一定要盡量減少超過兩層的模塊;
7、遇到問題花了很長(zhǎng)時(shí)間沒有解決掉,要學(xué)會(huì)想他人請(qǐng)教,別人的不經(jīng)意一點(diǎn),可能就能把自己帶出思維死區(qū)。