人的記憶力會(huì)隨著歲月的流逝而衰退,寫作可以彌補(bǔ)記憶的不足,將曾經(jīng)的人生經(jīng)歷和感悟記錄下來,也便于保存一份美好的回憶。范文書寫有哪些要求呢?我們怎樣才能寫好一篇范文呢?這里我整理了一些優(yōu)秀的范文,希望對大家有所幫助,下面我們就來了解一下吧。
電子eda課程心得篇一
自動(dòng)打鈴系統(tǒng)設(shè)計(jì)說明書
學(xué) 生 姓 名:周文江
學(xué)
號:14112502521
專 業(yè) 班 級:1102
報(bào)告提交日期:2023.11.26
湖 南 理 工 學(xué) 院 物 電 學(xué) 院
目錄
一、題目及要求簡介……………3 1.設(shè)計(jì)題目…………………3 2.總體要求簡介……………3
二、設(shè)計(jì)方案說明……………3
三、系統(tǒng)采用器件以及模塊說明………3 1.系統(tǒng)框圖…………4 2.選擇的fpga芯片及配置………4 3.系統(tǒng)端口和模塊說明…………5
四、各部分仿真結(jié)果………5
五、調(diào)試及總結(jié)………6
六、參考文獻(xiàn)……7
七、附錄………7
一、題目及要求簡介
1、設(shè)計(jì)題目
設(shè)計(jì)一個(gè)多功能自動(dòng)打鈴系統(tǒng)
2、總體要求簡介
① 基本計(jì)時(shí)和顯示功能(24小時(shí)制顯示),包括:
1.24小時(shí)制顯示 2.動(dòng)態(tài)掃描顯示; 3.顯示格式:88-88-88 ② 能設(shè)置當(dāng)前時(shí)間(含時(shí)、分)③ 能實(shí)現(xiàn)基本打鈴功能,規(guī)定:
06:00起床鈴,打鈴5s
二、設(shè)計(jì)方案說明
本次設(shè)計(jì)主要采用verilog hdl硬件描述性語言、分模塊法設(shè)計(jì)的自動(dòng)打鈴系統(tǒng)。由于這次用的開發(fā)板提供的是50m晶振。首先要對時(shí)鐘進(jìn)行分頻,當(dāng)計(jì)時(shí)到2fa_f07f時(shí)完成1s分頻,通過計(jì)時(shí)到60s產(chǎn)生分鐘進(jìn)位信號,再通過60分鐘產(chǎn)生時(shí)鐘進(jìn)位信號。最后通過6個(gè)寄存器對時(shí)分秒進(jìn)行鎖存最終輸出到8個(gè)數(shù)碼管上完成顯示。當(dāng)顯示時(shí)鐘和默認(rèn)鬧鐘時(shí)鐘相等時(shí),驅(qū)動(dòng)打鈴模塊。通過key_mode,key_turn,key_change查看鬧鐘,時(shí)鐘顯示,調(diào)整時(shí)鐘。
三、系統(tǒng)采用器件以及模塊說明
1.系統(tǒng)框圖如下:
:下如圖框統(tǒng)系
2.選擇的fpga芯片及配置:本次系統(tǒng)設(shè)計(jì)采用的fpga芯片是alter公司生產(chǎn)的cyclone ii ep2c8q208c8。該芯片是208個(gè)管腳,138個(gè)io,并且具有兩個(gè)內(nèi)部pll,而且內(nèi)嵌乘法器,8k的邏輯門,資源相當(dāng)豐富。完成這次自動(dòng)打鈴系統(tǒng)的設(shè)計(jì)總共消耗250個(gè)le單元,22個(gè)io口,131個(gè)寄存器。經(jīng)過綜合后,本系統(tǒng)最高能實(shí)現(xiàn)145m的運(yùn)行速度。通過quartus ii 軟件觀察到內(nèi)部的rtl圖如下
3.系統(tǒng)端口和模塊說明
(1)分頻部分
分頻器的作用是對50mhz的系統(tǒng)時(shí)鐘信號進(jìn)行分頻,得到頻率為1hz的信號,即為1s的計(jì)時(shí)信號。
(2)按鍵部分
按鍵key_mode--0為顯示計(jì)時(shí),1為鬧鐘顯示,2為調(diào)整時(shí)間。按鍵key_turn—0為調(diào)整小時(shí),1為調(diào)整分鐘。按鍵key_change—每按一次加1(3)計(jì)時(shí)部分
通過sec_l,sec_h,min_l,min_h,hour_l,hour_h 6個(gè)寄存器對時(shí)分秒進(jìn)行鎖存然后送入數(shù)碼管顯示
(4)鬧鐘模塊
當(dāng)設(shè)定的鬧鐘時(shí)間和數(shù)碼管上顯示的時(shí)間相等時(shí)驅(qū)動(dòng)鬧鐘,完成打鈴,持續(xù)時(shí)間5s。
(5)數(shù)碼管顯示模塊
顯示模塊是由8個(gè)位選8個(gè)段選構(gòu)成的顯示模塊,利用人眼的余暉效果完成動(dòng)態(tài)掃描,顯示時(shí)間。
四、各部分仿真結(jié)果
測試文件如下:
module clock_tb;reg sysclk,rst_b;reg key_mode,key_turn,key_change;wire buzzer;
wire [7:0] led_sel,led_data;clock i_clock(.sysclk(sysclk),.rst_b(rst_b),.key_mode(key_mode),.key_change(key_change),.key_turn(key_turn),.buzzer(buzzer),.led_sel(led_sel),.led_data(led_data));initial begin sysclk = 1'b1;rst_b = 1'b0;//復(fù)位信號
#30 rst_b = 1'b1;end always #10 sysclk = ~sysclk;//輸入的系統(tǒng)時(shí)鐘,20ns的周期 endmodule
五、調(diào)試及總結(jié)
本次課程設(shè)計(jì)總共花費(fèi)了四天左右的時(shí)間,設(shè)計(jì)了自動(dòng)打鈴系統(tǒng)。通過這次的設(shè)計(jì)更加熟悉了對eda技術(shù)的了解和認(rèn)識,在中也發(fā)現(xiàn)許多不足的地方。使用了自頂而下的設(shè)計(jì)方法,使得設(shè)計(jì)更加的簡單和明了。在調(diào)試過程中,有些代碼的設(shè)計(jì)不規(guī)范性,導(dǎo)致時(shí)序相當(dāng)緩慢,甚至編譯綜合都會(huì)報(bào)錯(cuò)。在不斷的修改下,發(fā)現(xiàn)時(shí)序電路和組合邏輯最好分開寫,這樣便于查錯(cuò),和修改代碼。畢竟verilog hdl語言不同于c語言,不能以軟件的思想來設(shè)計(jì),而是要利用電路的思想來編程,這樣可以更好的節(jié)省資源,使得時(shí)序也比較的簡單明了。在以后的學(xué)習(xí)及程序設(shè)計(jì)當(dāng)中,我們一定要倍加小心,在程序出現(xiàn)不正常運(yùn)行的情況下要耐心調(diào)試,盡量做到精益求精。
最后通過這次eda方面的課程設(shè)計(jì),提高了我們對eda領(lǐng)域及通信電路設(shè)計(jì)領(lǐng)域的認(rèn)識,有利于培養(yǎng)我們在通信電路eda方面的設(shè)計(jì)能力。有利于鍛煉我們獨(dú)立分析問題和解決問題的能力。
六、文獻(xiàn)參考
[1].王金明、左自強(qiáng) 編,《eda技術(shù)與verilog設(shè)計(jì)》科學(xué)出版社
2008.8 [2].杜慧敏、李宥謀、趙全良 編,《基于verilog的fpga設(shè)計(jì)基礎(chǔ)》 西安電子科技大學(xué)出版社 2006.2 [3].韓彬 編,《從零開始走進(jìn)fpga世界》杭州無線電愛好者協(xié)會(huì)出版社 2011.8.20
七、附錄(實(shí)物圖及源碼)
module clock(//input
sysclk,rst_b,key_mode,key_change,key_turn,//output
buzzer,led_sel,led_data);
input sysclk,rst_b;//sysclk--global system clock,rst_b--global reset signal input key_mode;//mode choose.0--timing function.1--alarm clock function.2--adjust function input key_turn;//choose adjust minute or hour input key_change;//count add 1 output buzzer;//device buzzer output [7:0] led_sel;//led tube bit choose
output [7:0] led_data;//led_tube 8 bit data choose
parameter init_hour = 8'h12;parameter init_min = 8'h59;parameter init_sec = 8'h50;//initial time :12:59:50 parameter init_alarm_hour = 8'h06;parameter init_alarm_min = 8'h30;//initial alarm time : 06:30:0 parameter count_1s = 28'h2fa_f07f;//count time 1s;
reg [7:0] sec;reg [7:0] min;reg [7:0] hour;reg [3:0] min_l;//minute low 4 bit reg [3:0] min_h;//minute high 4 bit reg [3:0] hour_l;//hour low 4 bit reg [3:0] hour_h;//hour high 4 bit reg [23:0] key_time;//press key away shake reg key_mode_n;//press key_mode next state reg key_change_n;//press key_change next state reg key_turn_n;//press key_turn next state wire key_mode_press;//sure button press key_mode wire key_turn_press;//sure button press key_turn wire key_change_press;//sure button press key_change
always @(posedge sysclk)key_mode_n <= key_mode;assign key_mode_press =(!key_mode)&&(key_mode_n);always @(posedge sysclk)key_turn_n <= key_turn;assign key_turn_press =(!key_turn)&&(key_turn_n);always @(posedge sysclk)key_change_n <= key_change;assign key_change_press =(!key_change)&&(key_change_n);
always @(posedge sysclk or negedge rst_b)begin if(!rst_b)key_time <= 24'h0;else if(key_time!= 24'h0)
key_time <= key_time + 24'h1;else if((key_time == 24'h0)&&(key_mode_press || key_change_press || key_turn_press))key_time <= key_time + 24'h1;
end
reg [1:0] mode_num;//key mode..0--timing function.1--alarm clock function.2--adjust function always @(posedge sysclk or negedge rst_b)begin if(!rst_b)mode_num <= 2'b00;else if(mode_num == 2'h3)mode_num <= 2'h0;else if(key_mode_press &&(key_time == 24'h0))
mode_num <= mode_num + 2'h1;end
always @(*)begin if(mode_num == 2'h1)begin
min = init_alarm_min;hour = init_alarm_hour;end else begin
min = {min_h,min_l};hour = {hour_h,hour_l};end end
reg fm;//choose turn hour or minute always @(posedge sysclk or negedge rst_b)begin if(!rst_b)fm <= 1'b0;else if(key_turn_press &&(mode_num == 2'h2)&&(key_time == 24'h0))
fm <= ~fm;end
reg [27:0] time_cnt;///count time reg [27:0] time_cnt_n;//count time next state always @(posedge sysclk or negedge rst_b)begin if(!rst_b)time_cnt <= 28'h0;else time_cnt <= time_cnt_n;end
always @(*)begin if(time_cnt == count_1s)time_cnt_n <= 28'h0;else if(mode_num!= 2'h0)time_cnt_n <= time_cnt;else time_cnt_n <= time_cnt + 28'h1;end
reg [3:0] sec_l;//second low 4 bit reg [3:0] sec_h;//second high 4 bit wire sec_cb;//second carry bit signal assign sec_cb =(sec_l == 4'h9)&&(sec_h == 4'h5);always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin
sec_l <= init_sec[3:0];sec_h <= init_sec[7:4];end else if((sec_l == 4'h9)&&(sec_h!= 4'h5)&&(time_cnt == count_1s))begin
sec_l <= 4'h0;sec_h <= sec_h + 4'h1;end else if(sec_cb &&(time_cnt == count_1s))begin
sec_l <= 4'h0;sec_h <= 4'h0;end else if(time_cnt == count_1s)
sec_l <= sec_l + 4'h1;end
wire min_cb;//minute carry bit signal assign min_cb =(min_l == 4'h9)&&(min_h == 4'h5);always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin
min_l <= init_min[3:0];min_h <= init_min[7:4];end else if((sec_cb)&&(min_l!=4'h9)&&(time_cnt == count_1s))
min_l <= min_l + 4'h1;else if((sec_cb)&&(min_l == 4'h9)&&(min_h!= 4'h5)&&(time_cnt == count_1s))begin
min_l <= 4'h0;min_h <= min_h + 4'h1;end else if((sec_cb)&&(min_cb)&&(time_cnt == count_1s))begin
min_l <= 4'h0;min_h <= 4'h0;end else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(min_l!= 4'h9))
min_l = min_l + 4'h1;else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time ==
24'h0)&&(min_l == 4'h9)&&(min_h!=4'h5))begin
min_l = 4'h0;min_h = min_h + 4'h1;end else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(min_l == 4'h9)&&(min_h ==4'h5))begin
min_l = 4'h0;min_h = 4'h0;end end
always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin
hour_l <= init_hour[3:0];hour_h <= init_hour[7:4];end else if((sec_cb)&&(min_cb)&&(hour_l!= 4'h9)&&(hour_h!= 4'h2)&&(time_cnt == count_1s))
hour_l <= hour_l + 4'h1;else if((sec_cb)&&(min_cb)&&(hour_l!= 4'h3)&&(hour_h == 4'h2)&&(time_cnt == count_1s))
hour_l <= hour_l + 4'h1;else if((sec_cb)&&(min_cb)&&(hour_l == 4'h9)&&(hour_h!= 4'h2)&&(time_cnt == count_1s))begin
hour_l <= 4'h0;hour_h <= hour_h + 4'h1;end else if((sec_cb)&&(min_cb)&&(hour_l == 4'h3)&&(hour_h == 4'h2)&&(time_cnt == count_1s))begin
hour_l <= 4'h0;hour_h <= 4'h0;end else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_l!= 4'h9)&&(hour_h!=4'h2))
hour_l <= hour_l + 4'h1;else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_l!= 4'h3)&&(hour_h ==4'h2))
hour_l <= hour_l + 4'h1;else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_l == 4'h9)&&(hour_h!=4'h2))begin
hour_l <= 4'h0;hour_h <= hour_h + 4'h1;end else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time ==
24'h0)&&(hour_l == 4'h3)&&(hour_h ==4'h2))begin
hour_l <= 4'h0;hour_h <= 4'h0;end end
wire buzzer_en;assign buzzer_en =(init_alarm_min == {min_h,min_l})&&(init_alarm_hour == {hour_h,hour_l});
led_tube i_led_tube(.sysclk(sysclk),.rst_b(rst_b),.scan_time(24'h1f090),.data0({1'h1,sec_l}),.data1({1'h1,sec_h}),.data2({1'h1,4'ha}),.data3({1'h1,min[3:0]}),.data4({1'h1,min[7:4]}),.data5({1'h1,4'ha}),.data6({1'h1,hour[3:0]}),.data7({1'h1,hour[7:4]}),.led_data(led_data),.led_sel(led_sel));buzzer i_buzzer(.sysclk(sysclk),.rst_b(rst_b),.buzzer_en(buzzer_en),.buzzer(buzzer));endmodule
電子eda課程心得篇二
eda課程設(shè)計(jì)心得體會(huì)
寫心得體會(huì)是困擾很多人的問題,心中有很多想法,想說卻不知道怎么寫下來。下面本欄目搜集了eda課程設(shè)計(jì)心得體會(huì),歡迎查看,希望幫助到大家。
eda課程設(shè)計(jì)心得體會(huì)一
這次eda課程設(shè)計(jì)歷時(shí)兩個(gè)星期,在整整兩個(gè)星期的日子里,可以說是苦多于甜,但是可以學(xué)的到很多很多的東西,同時(shí)不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次設(shè)計(jì),進(jìn)一步加深了對eda的了解,讓我對它有了更加濃厚的興趣。特別是當(dāng)每一個(gè)子模塊編寫調(diào)試成功時(shí),心里特別的開心。但是在編寫頂層文件的程序時(shí),遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯(cuò)誤,在細(xì)心的檢查下,終于找出了錯(cuò)誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。在波形仿真時(shí),也遇到了一點(diǎn)困難,想要的結(jié)果不能在波形上得到正確的顯示:在設(shè)定輸入的時(shí)鐘信號后,數(shù)字秒表開始計(jì)數(shù),但是始終看不到秒和小時(shí)的循環(huán)計(jì)數(shù)。后來,在數(shù)十次的調(diào)試之后,才發(fā)現(xiàn)是因?yàn)檩斎氲臅r(shí)鐘信號對于器件的延遲時(shí)間來說太短了。經(jīng)過屢次調(diào)試,終于找到了比較合適的輸入數(shù)值:時(shí)鐘周期設(shè)置在15秒左右比較合適。另外,endtime的值需要設(shè)置的長一點(diǎn):500us左右,這樣就可以觀察到完整的仿真結(jié)果。
其次,在連接各個(gè)模塊的時(shí)候一定要注意各個(gè)輸入、輸出引腳的線寬,因?yàn)槊總€(gè)線寬是不一樣的,只要讓各個(gè)線寬互相匹配,才能得出正確的結(jié)果,否則,出現(xiàn)任何一點(diǎn)小的誤差就會(huì)導(dǎo)致整個(gè)文件系統(tǒng)的編譯出現(xiàn)錯(cuò)誤提示,在器件的選擇上也有一定的技巧,只有選擇了合適當(dāng)前電路所適合的器件,編譯才能得到完滿成功。
通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。
總的來說,這次設(shè)計(jì)的數(shù)字秒表還是比較成功的,在設(shè)計(jì)中遇到了很多問題,最后在老師的辛勤的指導(dǎo)下,終于游逆而解,有點(diǎn)小小的成就感,終于覺得平時(shí)所學(xué)的知識有了實(shí)用的價(jià)值,達(dá)到了理論與實(shí)際相結(jié)合的目的,不僅學(xué)到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認(rèn)識,同時(shí),對未來有了更多的信心。最后,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!
eda課程設(shè)計(jì)心得體會(huì)二
短暫的一周實(shí)訓(xùn)已經(jīng)過去了,對于我來說這一周的實(shí)訓(xùn)賦予了我太多實(shí)用的東西了,不僅讓我更深層次的對課本的理論知識深入了理解,而且還讓我對分析事物的邏輯思維能力得到了鍛煉,提高了實(shí)際動(dòng)手能力,下面談一下就這一周實(shí)訓(xùn)中我自己的一些心得體會(huì)。
一周的實(shí)訓(xùn)已經(jīng)過去了,我們在老師提供的實(shí)踐平臺上通過自己的實(shí)踐學(xué)到了很多課本上學(xué)不到的寶貴東西,熟悉了對quartus ⅱ軟件的一般項(xiàng)目的操作和學(xué)到了處理簡單問題的基本方法,更重要的是掌握了vhdl語言的基本設(shè)計(jì)思路和方法,我想這些會(huì)對我今后的學(xué)習(xí)起到很大的助推作用。此外,還要在今后的課本理論知識學(xué)習(xí)過程中要一步一個(gè)腳印的扎實(shí)學(xué)習(xí),靈活的掌握和運(yùn)用專業(yè)理論知識這樣才能在以后出去工作的實(shí)踐過程中有所成果。
最后還要感謝學(xué)校為我們提供這樣專業(yè)的實(shí)踐平臺還有x老師在一周實(shí)訓(xùn)以來的不斷指導(dǎo)和同學(xué)的熱情幫助。總的來說,這次實(shí)訓(xùn)我收獲很大。
同時(shí),感謝大專兩年來所有的老師,是你們?yōu)槲医饣笫軜I(yè),不僅教授我專業(yè)知識,更教會(huì)我做人的道理。
這次eda實(shí)訓(xùn)讓我感覺收獲頗多,在這一周的實(shí)訓(xùn)中我們不僅鞏固了以前學(xué)過的知識,而且還學(xué)到了怎樣運(yùn)用eda設(shè)計(jì)三種波形的整個(gè)過程和思路,更加強(qiáng)了我們動(dòng)手能力,同時(shí)也提高了我們的思考能力的鍛煉,我們在寫程序的同時(shí)還要學(xué)會(huì)要改程序,根據(jù)錯(cuò)誤的地方去修改程序。
本文基于verilog hdl的乒乓球游戲機(jī)設(shè)計(jì),利用verilog hdl語言編寫程序?qū)崿F(xiàn)其波形數(shù)據(jù)功能在分析了cpld技術(shù)的基礎(chǔ)上,利用cpld開發(fā)工具對電路進(jìn)行了設(shè)計(jì)和仿真,從分離器件到系統(tǒng)的分布,每一步都經(jīng)過嚴(yán)格的波形仿真,以確保功能正常。
從整體上看來,實(shí)訓(xùn)課題的內(nèi)容實(shí)現(xiàn)的功能都能實(shí)現(xiàn),但也存在著不足和需要進(jìn)一步改進(jìn)的地方,為我今后的學(xué)習(xí)和工作奠下了堅(jiān)實(shí)的基礎(chǔ)。通過此次的實(shí)訓(xùn)課題,掌握了制作乒乓球游戲機(jī)技術(shù)的原理及設(shè)計(jì)要領(lǐng),學(xué)習(xí)并掌握了可編程邏輯電路的設(shè)計(jì),掌握了軟件、cpld元件的應(yīng)用,受益匪淺,非常感謝x老師這一學(xué)期來的指導(dǎo)與教誨,感謝老師在學(xué)習(xí)上給予的指導(dǎo),老師平常的工作也很忙,但是在我們學(xué)習(xí)的過程中,重來沒有耽擱過,我們遇到問題問他,他重來都是很有耐心,不管問的學(xué)生有多少,他都細(xì)心的為每個(gè)學(xué)生講解,學(xué)生們遇到的不能解決的,他都配合同學(xué)極力解決。最后祝愿x老師身體健康,全家幸福。
通過這次課程設(shè)計(jì),我進(jìn)一步熟悉了verilog hdl語言的結(jié)構(gòu),語言規(guī)則和語言類型。對編程軟件的界面及操作有了更好的熟悉。在編程過程中,我們雖然碰到了很多困難和問題,到最后還是靠自己的努力與堅(jiān)持獨(dú)立的完成了任務(wù)。當(dāng)遇到了自己無法解決的困難與問題的時(shí)候,要有耐心,要學(xué)會(huì)一步步的去找問題的根源,才能解決問題,還請教老師給予指導(dǎo)和幫助。這次實(shí)訓(xùn)給我最深的印象就是擴(kuò)大自己的知識面,知道要培養(yǎng)哪些技能對我們的專業(yè)很重要。通過這次課程設(shè)計(jì),培養(yǎng)了我們共同合作的能力。但是此次設(shè)計(jì)中參考了其他程序段實(shí)際思想,顯示出我們在程序設(shè)計(jì)方面還有不足之處。
在此次實(shí)訓(xùn)的過程中,我了解到了要加強(qiáng)培養(yǎng)動(dòng)手能力,要明白理論與實(shí)踐結(jié)合的重要性,只有理論知識也是不夠的,只有把理論知識和實(shí)踐相結(jié)合,才能真正提高我們的實(shí)際動(dòng)手能力與獨(dú)立思考的能力。感謝學(xué)院給我們提供這次實(shí)訓(xùn)的機(jī)會(huì),感謝x老師對我們的指導(dǎo),他是為了教會(huì)我們?nèi)绾芜\(yùn)用所學(xué)的知識去解決實(shí)際的問題,此外,還得出一個(gè)結(jié)論:知識必須通過應(yīng)用才能實(shí)現(xiàn)其價(jià)值!有些東西以為學(xué)會(huì)了,但真正到用的時(shí)候才發(fā)現(xiàn)是兩回事,所以我認(rèn)為只有到真正會(huì)用的時(shí)候才是真的學(xué)會(huì)了。
本次設(shè)計(jì)過程中得到我們老師的悉心指導(dǎo)。x老師多次詢問設(shè)計(jì)進(jìn)程,并為我們指點(diǎn)迷津,幫助我們理順設(shè)計(jì)思路,精心點(diǎn)撥。x老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,不僅授我以文,并將積極影響我今后的學(xué)習(xí)和工作。
eda課程設(shè)計(jì)心得體會(huì)三
本學(xué)期末我們進(jìn)行了eda實(shí)訓(xùn),我們組做的是四路智能搶答器,不過本次實(shí)訓(xùn)與以往最大的不同是在熟練并掌握verilog硬件描述語言的基礎(chǔ)上,運(yùn)用quartus軟件,對其進(jìn)行波形以及功能的仿真。我們組搶答器的設(shè)計(jì)要求是:可容納四組參賽者,每組設(shè)置一個(gè)搶答按鈕供搶答者使用,電路具有第一搶答信號的鑒別和鎖存功能,系統(tǒng)具有計(jì)分、倒計(jì)時(shí)和倒計(jì)時(shí)鎖存等電路,輸入信號有:各組的搶答按鈕a、b、c、d,系統(tǒng)清零信號clr,系統(tǒng)時(shí)鐘信號clk,計(jì)分復(fù)位端rst,加分按鈕端add,計(jì)時(shí)預(yù)置控制端ldn,計(jì)時(shí)使能端en,計(jì)時(shí)預(yù)置數(shù)據(jù)調(diào)整按鈕可以用如ta、tb表示;系統(tǒng)的輸出信號有:四個(gè)組搶答成功與否的指示燈控制信號輸出口可用如leda、ledb、ledc、ledd表示,四個(gè)組搶答時(shí)的計(jì)時(shí)數(shù)碼顯示控制信號若干,搶答成功組別顯示的控制信號若干,各組計(jì)分動(dòng)態(tài)顯示的控制信號若干。整個(gè)系統(tǒng)至少有三個(gè)主要模塊:搶答鑒別模塊、搶答計(jì)時(shí)模塊、搶答計(jì)分模塊。
實(shí)訓(xùn)的第一天我們組三個(gè)人就開始對搶答器的各部分源程序進(jìn)行調(diào)試,由于剛開始對于quartus2軟件用的不是很熟練,所以在第一天幾乎上沒有啥大的進(jìn)展,一直都在改程序中的錯(cuò)誤。在不停的重復(fù)的編譯、改錯(cuò)。拿著eda修改稿、資料書檢查出錯(cuò)的地方,一邊又一遍的校對分析其中的錯(cuò)誤。
在實(shí)訓(xùn)中我們遇到了很多的問題。為了解決這些問題我和他們兩個(gè)都在的想辦法通過各種渠道尋找解決問題的方法。上網(wǎng)查資料、問同學(xué)、圖書館查資料、問老師、自己想辦法,其實(shí)最有效的方法還是自己去想那樣學(xué)到的東西才會(huì)更加的深刻記得時(shí)間也是最長的,他人的幫助當(dāng)然是很好的,但只是暫時(shí)的要想真正的學(xué)到東西還是要靠自己去想辦法。不能一有問題就希望要他人幫忙,一定自己先好好想想實(shí)在解決不了的再去問老師找同學(xué)。
由于在一開始的時(shí)候?qū)uartus2軟件的不熟悉耽誤了很多的時(shí)間,在接下來的幾天里遇到了不少的問題。剛開始的時(shí)候是源程序中的錯(cuò)誤一直在那改,好不容易幾個(gè)模塊中的錯(cuò)誤都一個(gè)個(gè)排除了,但當(dāng)把他們放到一起時(shí)問題就又出現(xiàn)了。于是又開始了檢查修改,可是弄了好長時(shí)間也沒有弄明白,最后找了一個(gè)在實(shí)驗(yàn)室的同學(xué)說是頂層文件有問題。于是晚上又找了些關(guān)于頂層文件資料還有課本上的例子。最后對步驟已經(jīng)有了很熟練的掌握,很快就完成了程序編譯、仿真、下載到最后的調(diào)試。
紙上談來終覺淺,絕知此事要躬行。在這短暫的兩周實(shí)訓(xùn)中深深的感覺到了自己要學(xué)的東西實(shí)在是太多了,自己知道的是多么的有限,由于自身專業(yè)知識的欠缺導(dǎo)致了這次實(shí)訓(xùn)不是進(jìn)行的很順利,通過這次實(shí)訓(xùn)暴露了我們自身的諸多的不足之處,我們會(huì)引以為鑒,在以后的生活中更應(yīng)該努力的學(xué)習(xí)。
雖然實(shí)訓(xùn)僅僅進(jìn)行了兩個(gè)星期就匆匆的結(jié)束了,但在這兩個(gè)星期中收獲還是很多的。實(shí)訓(xùn)的目的是要把學(xué)過的東西拿出來用這一個(gè)星期的實(shí)訓(xùn)中不僅用了而且對于quartus2軟件的使用也更加的得心應(yīng)手,這次實(shí)訓(xùn)提高了我們的動(dòng)手能力、理論聯(lián)系實(shí)際的能力、發(fā)現(xiàn)問題分析問題解決問題的能力。實(shí)訓(xùn)只要你認(rèn)真做了都是對自己能力一次很大的提高。
本次設(shè)計(jì)過程中得到我們老師的悉心指導(dǎo)。x老師多次詢問設(shè)計(jì)進(jìn)程,并為我們指點(diǎn)迷津,幫助我們理順設(shè)計(jì)思路,精心點(diǎn)撥,時(shí)刻在幫助著我們?nèi)ヌ岣咦约骸老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,不僅是我學(xué)習(xí)的楷模,并將積極影響我今后的學(xué)習(xí)和工作。在此誠摯地向x老師致謝。
電子eda課程心得篇三
eda課程設(shè)計(jì)心得體會(huì)
這次eda課程設(shè)計(jì)歷時(shí)兩個(gè)星期,在整整兩個(gè)星期的日子里,可以說是苦多于甜,但是可以學(xué)的到很多很多的東西,同時(shí)不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次設(shè)計(jì),進(jìn)一步加深了對eda的了解,讓我對它有了更加濃厚的興趣。特別是當(dāng)每一個(gè)子模塊編寫調(diào)試成功時(shí),心里特別的開心。但是在編寫頂層文件的程序時(shí),遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯(cuò)誤,在細(xì)心的檢查下,終于找出了錯(cuò)誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。在波形仿真時(shí),也遇到了一點(diǎn)困難,想要的結(jié)果不能在波形上得到正確的顯示:在設(shè)定輸入的時(shí)鐘信號后,數(shù)字秒表開始計(jì)數(shù),但是始終看不到秒和小時(shí)的循環(huán)計(jì)數(shù)。后來,在數(shù)十次的調(diào)試之后,才發(fā)現(xiàn)是因?yàn)檩斎氲臅r(shí)鐘信號對于器件的延遲時(shí)間來說太短了。經(jīng)過屢次調(diào)試,終于找到了比較合適的輸入數(shù)值:時(shí)鐘周期設(shè)置在15秒左右比較合適。另外,endtime的值需要設(shè)置的長一點(diǎn):500us左右,這樣就可以觀察到完整的仿真結(jié)果。
其次,在連接各個(gè)模塊的時(shí)候一定要注意各個(gè)輸入、輸出引腳的線寬,因?yàn)槊總€(gè)線寬是不一樣的,只要讓各個(gè)線寬互相匹配,才能得出正確的結(jié)果,否則,出現(xiàn)任何一點(diǎn)小的誤差就會(huì)導(dǎo)致整個(gè)文件系統(tǒng)的編譯出現(xiàn)錯(cuò)誤提示,在器件的選擇上也有一定的技巧,只有選擇了合適當(dāng)前電路所適合的器件,編譯才能得到完滿成功。
通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。
總的來說,這次設(shè)計(jì)的數(shù)字秒表還是比較成功的,在設(shè)計(jì)中遇到了很多問題,最后在老師的辛勤的指導(dǎo)下,終于游逆而解,有點(diǎn)小小的成就感,終于覺得平時(shí)所學(xué)的知識有了實(shí)用的價(jià)值,達(dá)到了理論與實(shí)際相結(jié)合的目的,不僅學(xué)到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認(rèn)識,同時(shí),對未來有了更多的信心。最后,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!
plc實(shí)訓(xùn)心得
和學(xué)別的學(xué)科一樣,在學(xué)完plc理論課程后我們做了課程設(shè)計(jì),此次設(shè)計(jì)以分組的方式進(jìn)行,每組有一個(gè)題目。我們做的是一個(gè)由三個(gè)部分組成的澆灌系統(tǒng)。由于平時(shí)大家都是學(xué)理論,沒有過實(shí)際開發(fā)設(shè)計(jì)的經(jīng)驗(yàn),拿到的時(shí)候都不知道怎么做。但通過各方面的查資料并學(xué)習(xí)。我們基本學(xué)會(huì)了plc設(shè)計(jì)的步聚和基本方法。分組工作的方式給了我與同學(xué)合作的機(jī)會(huì),提高了與人合作的意識與能力。
通過這次設(shè)計(jì)實(shí)踐。我學(xué)會(huì)了plc的基本編程方法,對plc的工作原理和使用方法也有了更深刻的理解。在對理論的運(yùn)用中,提高了我們的工程素質(zhì),在沒有做實(shí)踐設(shè)計(jì)以前,我們對知道的撐握都是思想上的,對一些細(xì)節(jié)不加重視,當(dāng)我們把自己想出來的程序與到plc中的時(shí)候,問題出現(xiàn)了,不是不能運(yùn)行,就是運(yùn)行的結(jié)果和要求的結(jié)果不相符合。能過解決一個(gè)個(gè)在調(diào)試中出現(xiàn)的問題,我們對plc 的理解得到加強(qiáng),看到了實(shí)踐與理論的差距。
通過合作,我們的合作意識得到加強(qiáng)。合作能力得到提高。上大學(xué)后,很多同學(xué)都沒有過深入的交流,在設(shè)計(jì)的過程中,我們用了分工與合作的方式,每個(gè)人互責(zé)一定的部分,同時(shí)在一定的階段共同討論,以解決分工中個(gè)人不能解決的問題,在交流中大家積極發(fā)言,和提出意見,同時(shí)我們還向別的同學(xué)請教。在此過程中,每個(gè)人都想自己的方案得到實(shí)現(xiàn),積極向同學(xué)說明自己的想法。能過比較選出最好的方案。在這過程也提高了我們的表過能力。
在設(shè)計(jì)的過程中我們還得到了老師的幫助與意見。在學(xué)習(xí)的過程中,不是每一個(gè)問題都能自己解決,向老師請教或向同學(xué)討論是一個(gè)很好的方法,不是有句話叫做思而不學(xué)者殆。做事要學(xué)思結(jié)合。
通過本次設(shè)計(jì),讓我很好的鍛煉了理論聯(lián)系實(shí)際,與具體項(xiàng)目、課題相結(jié)合開發(fā)、設(shè)計(jì)產(chǎn)品的能力。既讓我們懂得了怎樣把理論應(yīng)用于實(shí)際,又讓我們懂得了在實(shí)踐中遇到的問題怎樣用理論去解決。
在本次設(shè)計(jì)中,我們還需要大量的以前沒有學(xué)到過的知識,于是圖書館和internet成了我們很好的助手。在查閱資料的過程中,我們要判斷優(yōu)劣、取舍相關(guān)知識,不知不覺中我們查閱資料的能力也得到了很好的鍛煉。我們學(xué)習(xí)的知識是有限的,在以后的工作中我們肯定會(huì)遇到許多未知的領(lǐng)域,這方面的能力便會(huì)使我們受益非淺。
在設(shè)計(jì)過程中,總是遇到這樣或那樣的問題。有時(shí)發(fā)現(xiàn)一個(gè)問題的時(shí)候,需要做大量的工作,花大量的時(shí)間才能解決。自然而然,我的耐心便在其中建立起來了。為以后的工作積累了經(jīng)驗(yàn),增強(qiáng)了信心
電子eda課程心得篇四
《電子系統(tǒng)設(shè)計(jì)自動(dòng)化》課程設(shè)計(jì)報(bào)告
學(xué) 院: 機(jī)電工程學(xué)院
題 目: 數(shù)字時(shí)鐘電路設(shè)計(jì) 課 程: 《電子系統(tǒng)設(shè)計(jì)自動(dòng)化》課程設(shè)計(jì) 專業(yè)班級: 電信10級2 班 學(xué)生姓名: 劉星 秦玉杰 王艷艷 學(xué) 號: 1004101035 1004101036 1004101038
完成日期:2023年 12 月 27 日
摘要:
eda(electronic design automation)電子設(shè)計(jì)自動(dòng)化,就是以大規(guī)模可編程器件為設(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,通過相關(guān)的軟件,自動(dòng)完成用軟件方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng),最終形成集成電子系統(tǒng)或?qū)S眉尚酒1敬螌?shí)習(xí)利用quartusii為設(shè)計(jì)軟件、vhdl為硬件描述語言,結(jié)合所學(xué)的數(shù)字電路的知識設(shè)計(jì)一個(gè)24時(shí)多功能數(shù)字鐘,具有正常時(shí)、分、秒計(jì)時(shí),動(dòng)態(tài)顯示,清零、快速校時(shí)校分、整點(diǎn)報(bào)時(shí)、花樣顯示等功能。利用硬件描述語言vhdl對設(shè)計(jì)系統(tǒng)的各個(gè)子模塊進(jìn)行邏輯描述,采用模塊化的設(shè)計(jì)思想完成頂層模塊的設(shè)計(jì),通過軟件編譯、邏輯化簡、邏輯分割、邏輯綜合優(yōu)化、邏輯布線、邏輯仿真,最終將設(shè)計(jì)的軟件系統(tǒng)下載設(shè)計(jì)實(shí)驗(yàn)系統(tǒng),對設(shè)計(jì)的系統(tǒng)進(jìn)行硬件測試。
一、課程設(shè)計(jì)基本要求和任務(wù)
《eda課程設(shè)計(jì)》是繼《模擬電子技術(shù)基礎(chǔ)》、《數(shù)字電子技術(shù)基礎(chǔ)》課程后,電信專業(yè)學(xué)生在電子技術(shù)實(shí)驗(yàn)技能方面綜合性質(zhì)的實(shí)驗(yàn)訓(xùn)練課程,是電子技術(shù)基礎(chǔ)的一個(gè)部分。1.1 目的和任務(wù)
(1)通過課程設(shè)計(jì)使學(xué)生能熟練掌握一種eda軟件(quartusii)的使用方法,能熟練進(jìn)行設(shè)計(jì)輸入、編譯、管腳分配、下載等過程,為以后進(jìn)行工程實(shí)際問題的研究打下設(shè)計(jì)基礎(chǔ)。
(2)通過課程設(shè)計(jì)使學(xué)生能利用eda軟件(quartusii)進(jìn)行至少一 個(gè)電子技術(shù)綜合問題的設(shè)計(jì),設(shè)計(jì)輸入可采用圖形輸入法或vhdl硬件描述語言輸入法。(3)通過課程設(shè)計(jì)使學(xué)生初步具有分析、尋找和排除電子電路中常見 故障的能力。
(4)通過課程設(shè)計(jì)使學(xué)生能獨(dú)立寫出嚴(yán)謹(jǐn)?shù)摹⒂欣碚摳鶕?jù)的、實(shí)事求是的、文理通順的字跡端正的課程設(shè)計(jì)報(bào)告。1.2 功能要求:
(1)具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí)。(2)時(shí)鐘計(jì)數(shù)顯示時(shí)有l(wèi)ed燈的花樣顯示。(3)具有調(diào)節(jié)小時(shí)、分鐘、秒及清零的功能。(4)具有整點(diǎn)報(bào)時(shí)功能。
1.3 總體方框圖:
本系統(tǒng)可以由秒計(jì)數(shù)器、分鐘計(jì)數(shù)器、小時(shí)計(jì)數(shù)器、整點(diǎn)報(bào)時(shí)、分的調(diào)整以及小時(shí)的調(diào)整和一個(gè)頂層文件構(gòu)成。采用自頂向下的設(shè)計(jì)方法,子模塊利用vhdl語言設(shè)計(jì),頂層文件用原理圖的設(shè)計(jì)方法。顯示:小時(shí)采用24進(jìn)制,而分鐘均是采用6進(jìn)制和10進(jìn)制的組合。1.4 設(shè)計(jì)原理:
數(shù)字鐘電路設(shè)計(jì)要求所設(shè)計(jì)電路就有以下功能:時(shí)、分、秒計(jì)時(shí)顯示,清零,時(shí)、分調(diào)節(jié),整點(diǎn)報(bào)時(shí)及花樣顯示。分、秒計(jì)時(shí)原理相似,可以采用60進(jìn)制bcd碼計(jì)數(shù)器進(jìn)計(jì)時(shí);小時(shí)采用24進(jìn)制bcd碼進(jìn)行計(jì)時(shí);在設(shè)計(jì)時(shí)采用試驗(yàn)電路箱上的模式7電路,不需要進(jìn)行譯碼電路的設(shè)計(jì);所設(shè)計(jì)電路具有驅(qū)動(dòng)揚(yáng)聲器和花樣顯示的led燈信號產(chǎn)生。試驗(yàn)箱模式7的電路如圖一所示:圖一模式七實(shí)驗(yàn)電路圖
1.5 性能指標(biāo)及功能設(shè)計(jì):
(1)時(shí)鐘計(jì)數(shù):完成時(shí)、分、秒的正確計(jì)時(shí)并且顯示所計(jì)的數(shù)字;對秒、分——60進(jìn)制計(jì)數(shù),即從0到59循環(huán)計(jì)數(shù),時(shí)鐘——24進(jìn)制計(jì)數(shù),即從0到23循環(huán)計(jì)數(shù),并且在數(shù)碼管上顯示數(shù)值。
2.2 模塊劃分自頂向下分解
2.3 模塊描述
時(shí)鐘計(jì)時(shí)模塊完成時(shí)、分、秒計(jì)數(shù),及清零、調(diào)節(jié)時(shí)和分鐘的功能。時(shí)、分、秒計(jì)數(shù)的原理相同,均為bcd碼輸出的計(jì)數(shù)器,其中分和秒均為六十進(jìn)制bcd碼計(jì)數(shù)器,小時(shí)為二十四進(jìn)制bcd碼計(jì)數(shù)器。設(shè)計(jì)一個(gè)具有異步清零和設(shè)置輸出功能的六十進(jìn)制bcd碼計(jì)數(shù)器,再設(shè)計(jì)一個(gè)具有異步清零和設(shè)置輸出功能的二十四進(jìn)制計(jì)數(shù)器,然后將它們通過一定的組合構(gòu)成時(shí)鐘計(jì)時(shí)模塊。各個(gè)輸入/輸出端口的作用為:
(1)clk為計(jì)時(shí)時(shí)鐘信號,reset為異步清零信號;
(2)sethour為小時(shí)設(shè)置信號,setmin為分鐘設(shè)置信號;(3)daout[5?0]為小時(shí)的bcd碼輸出, daout[6...0]為秒和分鐘的bcd碼輸出,enmin和enhour為使能輸出信號。
(4)在時(shí)鐘整點(diǎn)的時(shí)候產(chǎn)生揚(yáng)聲器驅(qū)動(dòng)信號和花樣顯示信號。由時(shí)鐘計(jì)時(shí)模塊中分鐘的進(jìn)行信號進(jìn)行控制。當(dāng)contr_en為高電平時(shí),將輸入信號clk送到輸出端speak用于驅(qū)動(dòng)揚(yáng)聲器,同時(shí)在clk的控制下,輸出端lamp[2..0]進(jìn)行循環(huán)移位,從而控制led燈進(jìn)行花樣顯示。輸出控制模塊有揚(yáng)聲器控制器和花樣顯示控制器兩個(gè)子模塊組成 2.4 頂層電路圖
頂層文件是由四個(gè)模塊組成,分別是時(shí)、分、秒計(jì)數(shù)器和報(bào)警的vhdl語言封裝而成。經(jīng)過鎖定引腳再重新編譯獲得如下頂層原理電路圖:
三、方案實(shí)現(xiàn)
3.1 各模塊仿真及描述
(1)秒計(jì)數(shù)器模塊仿真圖:將標(biāo)準(zhǔn)秒信號送入”秒計(jì)數(shù)器”,秒計(jì)數(shù)器采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60秒發(fā)出一個(gè)分脈沖信號,該信號將作為分計(jì)數(shù)器的時(shí)鐘脈沖,daout代表秒輸出。
(2)分計(jì)數(shù)器電路仿真圖:也采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60分鐘,發(fā)出一個(gè)時(shí)脈沖信號,該信號將被送到時(shí)計(jì)數(shù)器,daout端口代表分鐘輸出
(3)小時(shí)計(jì)數(shù)器電路仿真圖:時(shí)計(jì)數(shù)器采用12進(jìn)制計(jì)時(shí)器,可實(shí)現(xiàn)對24小時(shí)累 計(jì)。每累計(jì)12小時(shí),發(fā)出一個(gè)脈沖信號。
引腳配置完成后再進(jìn)行一次全程編譯,無誤則可以下載到試驗(yàn)箱上進(jìn)行硬件測試。硬件驗(yàn)證的方法如下:選擇實(shí)驗(yàn)?zāi)J?;時(shí)鐘脈沖clk與clock0(1024hz)信號相連;鍵8和鍵5均為低電平,時(shí)鐘正常計(jì)時(shí),數(shù)碼管1和2顯示秒,數(shù)碼管4和5顯示分鐘,數(shù)碼管7和8顯示小時(shí);鍵8為高電平時(shí),時(shí)鐘清零;鍵5為高電平時(shí),按下鍵7和鍵4進(jìn)行調(diào)時(shí)調(diào)分操作;當(dāng)時(shí)鐘為整點(diǎn)的時(shí)候,三個(gè)發(fā)光二極管進(jìn)行循環(huán)移位操作,同時(shí)揚(yáng)聲器發(fā)聲。
五、心得體會(huì)
經(jīng)過源程序的編輯、邏輯綜合、邏輯適配、編程下載成功后,在eda實(shí)驗(yàn)開發(fā)系統(tǒng)進(jìn)行硬件驗(yàn)證時(shí)卻發(fā)現(xiàn)實(shí)驗(yàn)結(jié)果不正確,揚(yáng)聲器無法發(fā)聲。經(jīng)檢查,自己設(shè)計(jì)的管腳文件有錯(cuò)。將管腳鎖定文件修改后,重新進(jìn)行邏輯適配、編程下載成功后,實(shí)驗(yàn)結(jié)果仍然不正確,百思不得其解。無奈之下,決定重頭開始排查每一步的細(xì)節(jié),確定各個(gè)模塊的功能完全實(shí)現(xiàn)并且頂層模塊功能正確。修改之后,重新進(jìn)行邏輯適配、編程下載驗(yàn)證,實(shí)驗(yàn)結(jié)果完全正確。
這次eda課程設(shè)計(jì)歷時(shí)兩個(gè)星期,在整整兩個(gè)星期的日子里,不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多書本上學(xué)不到的知識,同時(shí)鍛煉了自己的能力,使自己對以后的路有了更加清楚的認(rèn)識,對未來有了更多的信心。這次課程設(shè)計(jì),進(jìn)一步加深了我對eda的了解,使我對quartusii的基本操作有所了解,使我對應(yīng)用軟件的方法設(shè)計(jì)硬件系統(tǒng)有了更加濃厚的興趣。通過這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合,從實(shí)踐中得出結(jié)論,才能真正提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中,我遇到許多問題,畢竟是第一次應(yīng)用vhdl進(jìn)行硬件電路系統(tǒng)的設(shè)計(jì),許多eda的知識還沒有充分的掌握,遇到困難也是在所難免的,同時(shí)發(fā)現(xiàn)了自己的不足之處:學(xué)習(xí)知識表面化,沒有深入了解它們的原理。總的來說,這次設(shè)計(jì)的數(shù)字時(shí)鐘電路還是比較成功的,盡管在設(shè)計(jì)中遇到了很多問題,最后在老師的辛勤指導(dǎo)、同學(xué)的幫助和自己不斷思考下,終于迎刃而解,有點(diǎn)小小的成就感,覺得平時(shí)所學(xué)的知識有了實(shí)用的價(jià)值,達(dá)到了理論與實(shí)際相結(jié)合的目的。最后,對給過我?guī)椭乃型瑢W(xué)和指導(dǎo)老師再次表示忠心的感謝!
參考文獻(xiàn)
[1] 崔健明.《電子電工eda仿真技術(shù)》 高等教育出版社 2000年 [2] 盧杰,賴毅.《vhdl與數(shù)字電路設(shè)計(jì)》 科學(xué)出版社 2001年 [3] 潘松,黃繼業(yè).《eda技術(shù)實(shí)用教程》 科學(xué)出版社 2002年 [4] 朱運(yùn)利.《eda技術(shù)應(yīng)用》 電子工業(yè)出版社 2004年 [5] 張明.《vhdl實(shí)用教程》 電子科技大學(xué)出版社 1999年
[6] 彭介華.《電子技術(shù)課程設(shè)計(jì)與指導(dǎo)》 高等教育出版 1997年
library ieee;
use ;use ;entity minute is port(clk,clk1,reset,sethour:in std_logic;enhour:out std_logic;daout:out std_logic_vector(6 downto 0));end entity minute;architecture fun of minute is signal count :std_logic_vector(6 downto 0);signal enhour_1, enhour_2: std_logic;--enmin_1為59分時(shí)的進(jìn)位信號 begin--enmin_2由clk調(diào)制后的手動(dòng)調(diào)時(shí)脈沖信號串 daout<=count;enhour_2<=(sethour and clk1);--sethour為手動(dòng)調(diào)時(shí)控制信號,高電平有效 enhour<=(enhour_1 or enhour_2);process(clk,reset,sethour)begin if(reset='0')then--若reset為0,則異步清零 count<=“0000000”;elsif(clk'event and clk='1')then--否則,若clk上升沿到 if(count(3 downto 0)=“1001”)then--若個(gè)位計(jì)時(shí)恰好到“1001”即9 if(count <16#60#)then--又若count小于16#60#,即60 if(count=“1011001”)then--又若已到59d enhour_1<='1';--則置進(jìn)位為1 count<=“0000000”;--count復(fù)0 else count<=count+7;--若count未到59d,則加7,即作“加6校正” end if;--使前面的16#60#的個(gè)位轉(zhuǎn)變?yōu)?421bcd的容量 else count<=“0000000”;--count復(fù)0(有此句,則對無效狀態(tài)電路可自啟動(dòng))end if;--end if(count<16#60#)elsif(count <16#60#)then count<=count+1;--若count<16#60#則count加1 enhour_1<='0' after 100 ns;--沒有發(fā)生進(jìn)位 else count<=“0000000”;--否則,若count不小于16#60# count復(fù)0 end if;--end if(count(3 downto 0)=“1001”)end if;--end if(reset='0')end process;end fun;
3、時(shí)計(jì)數(shù)器模塊的vhdl語言:
library ieee;use ;use ;
if(clk'event and clk='1')then if(dain=“0000000”)then speak<=count1(1);if(count1>=“10”)then count1<=“00”;--count1為三進(jìn)制加法計(jì)數(shù)器 else count1<=count1+1;end if;end if;end if;end process speaker;lamper:process(clk)begin if(rising_edge(clk))then if(count<=“10”)then if(count=“00”)then lamp<=“001”;--elsif(count=“01”)then lamp<=“010”;elsif(count=“10”)then lamp<=“100”;end if;count<=count+1;else count<=“00”;end if;end if;end process lamper;end fun;
循環(huán)點(diǎn)亮三只燈
電子eda課程心得篇五
《eda課程設(shè)計(jì)》
課程設(shè)計(jì)題目:
基于單片機(jī)的溫濕度采集系統(tǒng)
姓
名:
xxx
學(xué)
班
時(shí)
地
號:
xxxx
級:
xxxx
間:
2023.4.21~ 2023.5.5
點(diǎn):
xxxxx
指 導(dǎo)
老
師:
xxxxx
目錄
一、電路原理圖..................................................................................2
二、電路pcb圖(或?qū)嵨飯D).........................................................2
三、電路效果圖..................................................................................3
四、設(shè)計(jì)總結(jié)......................................................................................3 附錄(單片機(jī)源代碼)......................................................................4
一、電路原理圖
二、電路pcb圖(或?qū)嵨飯D)
三、電路效果圖
四、設(shè)計(jì)總結(jié)
eda的實(shí)驗(yàn)還是挺有趣的,比較講究動(dòng)手能力,當(dāng)然也不能忽略團(tuán)體合作。總的來說本次實(shí)驗(yàn)還是成功了,雖然每個(gè)環(huán)節(jié)都遇到了困難。在生成原理圖的過程中,就曾把導(dǎo)線畫成了placeline而不是placewire,還有芯片的引腳應(yīng)該用net符號而不是用文本符號,所以這些錯(cuò)誤都導(dǎo)致我花在原理圖上的時(shí)間多了點(diǎn)。而在生成pcb電路圖的過程中遇到的困難則是自動(dòng)布線之后,還有電源的幾個(gè)腳需要手動(dòng)布線,所以各個(gè)元件之間的位置要布置好,以免發(fā)生短路。腐蝕的時(shí)候,由于腐蝕的時(shí)間太長了,有些碳都化開了,導(dǎo)致里面的銅被腐蝕掉了,所以又為我的工作增加了困難。在焊接的時(shí)候,要注意元件的正負(fù)極,還要檢測錫是否都與那些銅連接上了。最終把led和 dht11的程序燒進(jìn)去就行了。
本次實(shí)驗(yàn)我還是能多多少少學(xué)到點(diǎn)什么的,總的來說還是希望能有多一點(diǎn)這樣的實(shí)習(xí)。
附錄(單片機(jī)源代碼)
//51單片機(jī)控制溫濕度傳感器dht11
lcd1602上顯示當(dāng)前機(jī)最小系統(tǒng)。//lcd 讀進(jìn)去 寫出來 #include
#include
typedef unsigned char byte;typedef unsigned int word;#define uint unsigned int
//定義無符號整型 #define uchar unsigned char typedef bit bool;//此聲明一個(gè)布爾型變量即真或假// uchar data_byte,num,i;uchar rh,rl,th,tl,flag;uchar shuzi[4];unsigned char code num1[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};
sbit dht=p2^4;
//dht11data端接單片機(jī)的p2^4口//
//***************
延
時(shí)
函
數(shù)************************************* void delay(uchar ms)//延時(shí)模塊//延時(shí)1毫秒
{
}
void delay1()
//一個(gè)for循環(huán)大概需要8個(gè)多機(jī)器周期
//一個(gè)機(jī)器周期為1us晶振為12mhz也就是說本函數(shù)延時(shí)8us{
} uchar i;
while(ms--)
for(i=0;i<110;i++);
uchar i;
for(i=0;i<1;i++);void display(void){ // if(flag==0)// {
p2=0x07;
p0=num1[shuzi[2]];delay(1);// }
// if(flag==1)// {
p2=0x0b;
p0=num1[shuzi[3]];delay(1);// } // if(flag==2)// {
p2=0x0d;
p0=num1[shuzi[0]];delay(1);// } // if(flag==3)// {
p2=0x0e;p0=num1[shuzi[1]];delay(1);// } }
//**************************dht11
測
試
某
塊*************************************// void start()//開始信號
{
dht=1;
delay1();
//主機(jī)發(fā)出8us高電平,開始信號開始發(fā)出 dht=0;
delay(25);
// 主機(jī)把總線拉低必須大于18ms
dht11能檢測到起始信號
dht=1;
//delay1();
//以下三個(gè)延時(shí)函數(shù)差不多為24usdelay1();delay1();
20-40us
}
uchar receive_byte()
//接收一個(gè)字節(jié) 8位// {
uchar i,temp;
for(i=0;i<8;i++)//接收8bit的數(shù)據(jù)
{
while(!dht);
//等待40-50us的低電平開始信號結(jié)束
delay1();
//開始信號結(jié)束之后延時(shí)26us-28us
delay1();delay1();
temp=0;
//時(shí)間為26us-28usif(dht==1)
temp=1;
//如果26us-28us
'0'
數(shù)據(jù)為'1'
while(dht);
//
'0'為26us-28us
'1'為70us
} data_byte<<=1;
//data_byte|=temp;
//接收每一位的數(shù)據(jù),相或保存數(shù)據(jù)
return data_byte;}
void receive()//接收數(shù)據(jù)// {
uchar t_h,t_l,r_h,r_l,check,num_check,i;start();
//開始信號//調(diào)用開始信號子函數(shù)
dht=1;
//主機(jī)設(shè)為輸入判斷從機(jī)dht11響應(yīng)信號
if(!dht)
//判斷從機(jī)是否有低電平響應(yīng)信號// {
while(!dht);//判斷從機(jī)發(fā)出 40us 的低電平響應(yīng)信號是否結(jié)束//
while(dht);
//判斷從機(jī)發(fā)出 40us 的高電平是否結(jié)束 如結(jié)束則從機(jī)進(jìn)入發(fā)送數(shù)據(jù)狀態(tài),主機(jī)進(jìn)入數(shù)據(jù)接收狀態(tài)
數(shù)
//兩個(gè)while語句加起來就是dht11的響應(yīng)信號
r_h=receive_byte();//濕度高位
調(diào)用接受一個(gè)字節(jié)的子函
r_l=receive_byte();//濕度低位
t_h=receive_byte();//溫度高位
t_l=receive_byte();//溫度低位
check=receive_byte();//校驗(yàn)位
//結(jié)束信號
dht=0;
//當(dāng)最后一bit數(shù)據(jù)接完畢后主機(jī)拉低電平50us// for(i=0;i<7;i++)//差不多8us的延時(shí)
delay1();
dht=1;
//總線由上拉電阻拉高進(jìn)入空閑狀態(tài)
num_check=r_h+r_l+t_h+t_l;
if(num_check==check)//判斷讀到的四個(gè)數(shù)據(jù)之和是否與校驗(yàn)位相同
{
rh=r_h;
rl=r_l;
th=t_h;
tl=t_l;
check=num_check;}
shuzi[0]=rh/10;shuzi[1]=rh%10;shuzi[2]=th/10;shuzi[3]=th%10;
} }
void main()//主函數(shù)模塊// { while(1)
//進(jìn)入死循環(huán)
{
receive();
//接收數(shù)據(jù)
display();
} }
上一篇:2023年九月九祝福語怎么說
下一篇:返回列表