eda課程設計 基于VHDL的 洗衣機控制器

上傳人:ch****o 文檔編號:120382017 上傳時間:2022-07-17 格式:DOC 頁數(shù):15 大?。?36.50KB
收藏 版權(quán)申訴 舉報 下載
eda課程設計 基于VHDL的 洗衣機控制器_第1頁
第1頁 / 共15頁
eda課程設計 基于VHDL的 洗衣機控制器_第2頁
第2頁 / 共15頁
eda課程設計 基于VHDL的 洗衣機控制器_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《eda課程設計 基于VHDL的 洗衣機控制器》由會員分享,可在線閱讀,更多相關(guān)《eda課程設計 基于VHDL的 洗衣機控制器(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、子信息科學與技術(shù)專業(yè)課程設計任務書 學生姓名 專業(yè)班級 學號 題 目 洗衣機控制器 課題性質(zhì) A 課題來源 D 指導教師 同組姓名 無 主要內(nèi)容 (1)設計一個洗衣機控制器,使洗衣機作如下運轉(zhuǎn):定時啟動—〉正轉(zhuǎn)20秒—〉暫停10秒—〉反轉(zhuǎn)20秒—〉暫停10秒—〉定時不到,重復上面過程。 (2)若定時到,則停止,并發(fā)出音響信號。 (3)用兩個數(shù)碼管顯示洗滌的預置時間(分鐘數(shù)),按倒計時方式對洗滌過程作計時顯示,直到時間到停機;洗滌過程由開始信號開始。 (4)三只LED燈表示正轉(zhuǎn)、反轉(zhuǎn)、暫停三個狀態(tài)。 任務要求 (1) 制定完整地設

2、計方案,結(jié)合框圖進行說明。 (2) 給出主要模塊的VHDL程序。 (3) 如有可能,在實驗箱上進行下載驗證。 (4) 給出完整地設計報告。 參考文獻 (1)黃智偉. FPGA系統(tǒng)設計與實踐 電子工業(yè)出版社 2005.1 (2)焦素敏. EDA課程設計指導書 河南工業(yè)大學 2008.2 (3)焦素敏. EDA技術(shù)基礎 清華大學出版社 2009.8 (4)閻石.數(shù)字電子技術(shù)基礎 高等教育出版社 2006.5 審查意見 指導教師簽字: 教研室主任簽字: 2012年 2月 20日 說明:本表由指導教師填寫,由教研

3、室主任審核后下達給選題學生,裝訂在設計(論文)首頁 1 設計任務及要求 (1)設計一個洗衣機控制器,控制洗衣機如下運轉(zhuǎn):定時啟動-正轉(zhuǎn)20秒-暫停10秒-反轉(zhuǎn)10秒-暫停10秒-定時未到回到“正轉(zhuǎn)20秒-暫停10秒-……”,定時到停止; (2)若定時到,則停機發(fā)出音響信號; (3)用兩個數(shù)碼管顯示洗滌的預置時間(分鐘數(shù)),按倒計時方式對洗滌過程作計時顯示,直到時間到停機;洗滌過程由“開始”信號開始; (4)三只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫停”三個狀態(tài)。 設計出的洗衣機控制器可以實現(xiàn)按預置的時間對衣服進行洗滌,并在結(jié)束后發(fā)出音響提示。本次設計分工如下,有預置洗滌時間模塊、

4、倒計時減法計數(shù)器、狀態(tài)控制模塊、發(fā)出音響模塊和譯碼模塊。  2設計原理及總體框圖 (1)設計的總體框圖 正轉(zhuǎn) 暫停 反轉(zhuǎn) 暫停 停止 定時啟動 定時未到 (2)設計總原理 洗衣機控制器的設計主要是定時器的設計。由一片F(xiàn)PGA (Field Programmable Gate Array)和外圍電路構(gòu)成了電器控制部分。FPGA接收鍵盤的控制命令,控制洗衣機的進水、排水、水位和洗衣機的工作狀態(tài)、并控制顯示工作狀態(tài)以及設定直流電機速度、正反轉(zhuǎn)控制、制動控制、起??刂坪瓦\動狀態(tài)控制。對FPGA芯片的編程采用模塊化的VHDL (硬件描述語

5、言)進行設計,設計分為三層實現(xiàn),頂層實現(xiàn)整個芯片的功能。頂層和中間層多數(shù)是由VHDL的元件例化語句實現(xiàn)。中間層由無刷直流電機控制、運行模式選擇、洗滌模式選擇、定時器、顯示控制、鍵盤掃描以及對直流電機控制板進行速度設定、正反轉(zhuǎn)控制、啟??刂频饶K組成,它們分別調(diào)用底層模塊。 3 程序設計 (1)VHDL語言(VHSIC Hardware Description Language,甚高速集成電路硬件描述語言)是一種設計、仿真、綜合的標準硬件描述語言,是對可編程邏輯器件進行開發(fā)與設計的重要工具,其優(yōu)點是:支持自上而下和基于庫的設計,支持范圍廣,具有多層次描述系統(tǒng)硬件功能的能力。VHDL

6、語言已成為IEEE的一種工業(yè)標準,是實現(xiàn)信息系統(tǒng)硬件開發(fā)所必備的知識和技能。 (2)設計的各個模塊程序 a、倒計時減法計數(shù)器模塊 由于洗衣機有工作時間,必須要一模塊來控制它的工作時間范圍,所以我設計了一個減法計數(shù)器模塊,當洗衣機開始工作后,減法計數(shù)器即會實現(xiàn)減數(shù)功能,直到時間減到零,洗衣機便停止工作。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNT IS PORT(CLK,TLA,START,ENTER: IN STD_LOGIC;

7、 INI: IN STD_LOGIC_VECTOR(7 DOWNTO 0); SHOW: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); FINISH: OUT STD_LOGIC); END COUNT; ARCHITECTURE one OF COUNT IS SIGNAL FINI:STD_LOGIC; SIGNAL SHOW1:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(TLA,CLK,START) VARIABLE NUM: STD_LOGI

8、C_VECTOR(7 DOWNTO 0); BEGIN IF ENTER='1' THEN NUM:=INI;--預置洗滌時間 ELSIF(TLA'EVENT AND TLA='1') THEN IF START='1'AND NUM/=0 THEN--倒計時 NUM:=NUM-1; END IF; END IF; IF ENTER='0' AND NUM=0 THEN FINI<='1'; NUM:="00000000";--停止信號發(fā)出 ELSE FINI<='0'; END IF;

9、 SHOW1<=NUM; END PROCESS; PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN FINISH<=FINI; SHOW<=SHOW1; END IF; END PROCESS; END; b、預置洗滌時間模塊 此模塊由一個累加器和一個命令控制器組成,用來實現(xiàn)預置洗滌時間的功能,洗滌時間以分鐘數(shù)為單位,用戶可根據(jù)自己的需求來設定洗滌時間的長短。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; E

10、NTITY ADDER IS PORT(IN1: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END ADDER; ARCHITECTURE one OF ADDER IS SIGNAL add:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN Q<=ADD; PROCESS(IN1) BEGIN IF IN1'EVENT AND IN1='1' THEN ADD<=ADD+1; END IF; END PROCES

11、S; END; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ORDER IS PORT(CLK: IN STD_LOGIC; ORDER: IN STD_LOGIC_VECTOR(2 DOWNTO 0); TIME:OUT INTEGER RANGE 128 DOWNTO 0); END ORDER; ARCHITECTURE one OF ORDER IS BEGIN PROCESS(CLK

12、) BEGIN CASE ORDER IS WHEN "000" => TIME<=1; WHEN "001" => TIME<=2; WHEN "010" => TIME<=3; WHEN "011" => TIME<=4; WHEN "100" => TIME<=5; WHEN "101" => TIME<=6; WHEN "110" => TIME<=7; WHEN "111" => TIME<=8; WHEN OTHERS=> TIME<=0; END CASE; END PROCESS; END; c、信號輸入模

13、塊 根據(jù)課程設計要求,必須將洗衣機的工作狀態(tài)及工作時間在數(shù)碼管和指示燈上顯示出來,此模塊是用來控制洗衣機的工作狀態(tài)及工作的頻率,并把工作狀態(tài)及工作時間顯示出來。 library ieee; use ieee.std_logic_1164.all; entity one is port(clk:in std_logic; fout:out std_logic; start: in bit); end entity one; architecture one of one is signal count:integer range 0 to 32;

14、 signal mid:std_logic; begin process(clk,start) begin if clk'event and clk='1' then if start='1' then if count=31 then --64分頻 count<=0; mid<=not mid; else count<=count+1; end if; fout<=mid; end if; end if; end process; end architecture one; library ieee; use ieee.std_logi

15、c_1164.all; entity freq_div1min is port(fout0:in std_logic; fout1: out std_logic); end entity freq_div1min; architecture one of freq_div1min is signal count:integer range 0 to 60; signal mid:std_logic; begin process(fout0) begin if fout0'event and fout0='1' then if count=29

16、 then --60分頻產(chǎn)生1分鐘的周期時鐘信號 count<=0; mid<=not mid; else count<=count+1; end if; fout1<=mid; end if; end process; end architecture one; d、狀態(tài)控制模塊 此模塊是為了實現(xiàn)洗衣機的正轉(zhuǎn)、暫停、反轉(zhuǎn)的功能,它由一個狀態(tài)控制模塊構(gòu)成,是典型的狀態(tài)機。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY state IS

17、 PORT(CLK,t10a,t20a,finishb,START,ENTER: IN STD_LOGIC; LED: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); t10_ena,t20_ena: out std_logic; P: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END state; ARCHITECTURE one OF state IS TYPE STATES IS(ST0,ST1,ST2,ST3,ST4); SIGNAL C_ST:STATES

18、; BEGIN PROCESS(CLK,ENTER,T10A,T20A) BEGIN IF ENTER='1'OR FINISHB='1' OR START='0'THEN C_ST<=ST0;P<="00000000";LED<="000"; T10_ENA<='0';T20_ENA<='0'; ELSIF CLK'EVENT AND CLK='1'THEN CASE C_ST IS WHEN ST0 => C_ST<=ST1;T20_ENA<='1';T10_ENA<='0'; WHEN ST1 => LED<="001";p<="00

19、010100"; --正轉(zhuǎn) IF T20A='1'THEN C_ST<=ST2;T20_ENA<='0';T10_ENA<='1'; ELSE C_ST<=ST1; T20_ENA<='1';T10_ENA<='0'; END IF; WHEN ST2 => LED<="010";p<="00001010"; --暫停 IF T10A='1'THEN C_S

20、T<=ST3;T20_ENA<='1';T10_ENA<='0'; ELSE C_ST<=ST2; T20_ENA<='0';T10_ENA<='1'; END IF; WHEN ST3 => LED<="100";p<="00010100";--反轉(zhuǎn) IF T20A='1'THEN C_ST<=ST4;T20_ENA<='0';T10_ENA<='1'; ELSE

21、 C_ST<=ST3; T20_ENA<='1';T10_ENA<='0'; END IF; WHEN ST4 => LED<="010";p<="00001010";--暫停 IF T10A='1'THEN C_ST<=ST1;T20_ENA<='1';T10_ENA<='0'; ELSE C_ST<=ST4; T20_ENA<='0';T10_ENA<='1'; END IF;

22、 WHEN OTHERS=> C_ST<=ST0; END CASE; END IF; END PROCESS; END; e 譯碼電路 此模塊是為了在數(shù)碼管上顯示出預置時間并按倒計時方式顯示 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY YIMA IS PORT(SHOW:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SHOWB1,SHOWS1

23、,SHOWG1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END YIMA; ARCHITECTURE TWO OF YIMA IS SIGNAL SHOW1: INTEGER RANGE 128 DOWNTO 0; SIGNAL SHOWB,SHOWS,SHOWG: INTEGER RANGE 0 TO 9 ; begin SHOW1<=CONV_INTEGER(SHOW); PROCESS(SHOW1) BEGIN SHOWB<=SHOW1/100; SHOWS<=SHOW1/10-SHOWB*10;

24、 SHOWG<=SHOW1-SHOWB*100-SHOWS*10; SHOWB1<=CONV_STD_LOGIC_VECTOR(SHOWB,4); SHOWS1<=CONV_STD_LOGIC_VECTOR(SHOWS,4); SHOWG1<=CONV_STD_LOGIC_VECTOR(SHOWG,4); END PROCESS; END; f、音響模塊 當洗滌時間結(jié)束時,洗衣機就會自動發(fā)出警報聲,以此提醒用戶洗滌工作完成,此模塊就是實現(xiàn)次功能。 library ieee; use ieee.std_logic_1164.all;

25、 use ieee.std_logic_unsigned.all; entity warming is port(clk: in std_logic; finishc:in std_logic; warn:out std_logic ); end warming; architecture six of warming is begin process(clk) begin if finishc='1' then warn<=clk;--停止工作時 else warn<='0'; end if; end process; end ;

26、 4 編譯及仿真 Max+plus II 作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。目前Altera已經(jīng)停止了對Max+plus II 的更新支持。Quartus II 是Altera公司繼Max+plus II之后開發(fā)的一種針對其公司生產(chǎn)的系列CPLD/PGFA器件的綜合性開發(fā)軟件,它的版本不斷升級,從4.0版到10.0版,這里介紹的是Quartus II 7.0版,該軟件有如下幾個顯著的特點: 1、Quartus II 的優(yōu)點 該軟件界面友好,使用便捷,功能強大,是一個完全集成化的可編程邏輯設計環(huán)境,是先進的EDA工具軟件。該軟件具有開放性、與結(jié)

27、構(gòu)無關(guān)、多平臺、完全集成化、豐富的設計庫、模塊化工具等特點,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。   Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。 2、Quartus II對器件的支持 Quartus II支持Altera公司的MAX 3000A系列、MAX

28、7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,支持MAX7000/MAX3000等乘積項器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的

29、片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。 3、Quartus II對第三方EDA工具的支持 對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三放EDA工具。 Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設計要求,其中包括支持基于Internet的協(xié)作設計。Quartus平臺與Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供應商的開發(fā)工具相兼容。改進了軟件的Logic

30、Lock模塊設計功能,增添 了FastFit編譯選項,推進了網(wǎng)絡編輯性能,而且提升了調(diào)試能力。 由上仿真波形可以看出,輸入一個脈沖信號clk,當洗衣機工作狀態(tài)結(jié)束時,warming輸出端會有一個輸出脈沖,此時洗衣機會發(fā)出鳴叫聲。 洗衣機接通電源,按IN1設置洗滌時間按start、enter置為高電平洗衣機開始工作,當時鐘第一個上升沿到達時q1(正轉(zhuǎn)功能)為高電平維持20s以后變?yōu)榈碗娖蕉鴔2(暫停功能)隨著時鐘上升沿的到來變?yōu)楦唠娖骄S持10s變?yōu)榈碗娖剑缓髊3(反轉(zhuǎn)功能)開始隨著時鐘上升沿的到來變?yōu)楦唠娖焦ぷ骶S持20s后變?yōu)榈碗娖?,再停止q3置高,接下

31、來電路一直重復上述工作,直到定時器計數(shù)結(jié)束。 5 硬件調(diào)試與結(jié)果分析 通過分析,該實驗可選擇NO.7號電路進行硬件驗證,選定電路圖之后,再選擇ACEX1K/EP1K30TC144-3器件,對應于該器件對各個輸入輸出信號進行引腳鎖定。下載完成后便可進行硬件驗證。 6 參考文獻 (1)黃智偉. FPGA系統(tǒng)設計與實踐 電子工業(yè)出版社 2005.1 (2)焦素敏. EDA課程設計指導書 河南工業(yè)大學 2008.2 (3)焦素敏. EDA技術(shù)基礎 清華大學出版社 2009.8 (4)閻石.數(shù)字電子技術(shù)基礎 高等教育出版社 2006.5 心得

32、體會 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.從選題到定稿,從理論到實踐,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識

33、理解得不夠深刻,掌握得不夠牢固,通過這次課程設計之后,一定把以前所學過的知識重新溫故。通過這次的VHDL設計,我可以說是受益良多。看到洗衣機控制器的題目,我首先想到的是狀態(tài)機的設計,因為課本上說狀態(tài)機其實就是控制器,后來經(jīng)過看書覺得應該是摩爾型狀態(tài)機。通過這次設計,讓我初步掌握了VHDL的設計方法與一些技巧,讓我對FPGA的編程、定時器和計數(shù)器的設計更加熟悉,讓我更加明白時序組合門電路設計思路和方法。在設計中也參了和查閱了很多資料,從中學到不少課本上沒有的東西,這些對我將來的學習和工作都有很大的幫助。 這次課程設計是一個理論與實際結(jié)合的過程,讓我明白理論知識往往是不夠的,只有把所學的理論與實際行動相結(jié)合,才能提高自己的綜合實際能力和獨立思考的能力。在設計過程中我們都會遇到很多的問題,但往往是一個小問題都會導致設計的失敗,這就要我們花大量的時間區(qū)思索和改正,這是一個很艱辛的過程,但同時也是我收獲最大的過程。 課程設計的時間是比較短暫,但從中卻學到了不少有用的知識。設計往往是一個苦中有樂的過程,我希望在以后的學習中自己能獨立思考,同時也要認真去完成,這樣既能學到知識,也能讓自己的實踐操作得到鍛煉。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!