版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> .</b></p><p> 《數(shù)字電子技術(shù)》課程設(shè)計(jì)</p><p> 題目:基于FPGA的全自動(dòng)洗衣機(jī)設(shè)計(jì)</p><p><b> 目 錄</b></p><p><b> 1 課題背景1</b></p><p
2、> 2 Quartus II軟件、FPGA硬件介紹2</p><p> 2.1 Quartus II軟件介紹2</p><p> 2.2 FPGA硬件介紹2</p><p> 3 全自動(dòng)洗衣機(jī)的總體方案4</p><p><b> 3.1方案內(nèi)容4</b></p><p&
3、gt;<b> 3.2設(shè)計(jì)原理4</b></p><p> 4 全自動(dòng)洗衣機(jī)各模塊解析6</p><p> 4.1 定時(shí)器模塊6</p><p> 4.1.1定時(shí)器模塊流程圖6</p><p> 4.1.2定時(shí)器模塊仿真結(jié)果和分析6</p><p> 4.2 分頻器
4、模塊7</p><p> 4.2.1分頻器模塊流程圖7</p><p> 4.2.2分頻器模塊仿真結(jié)果和分析7</p><p> 4.3 計(jì)數(shù)器模塊8</p><p> 4.3.1個(gè)位計(jì)數(shù)器模塊流程圖和仿真8</p><p> 4.3.2十位計(jì)數(shù)器模塊流程圖和仿真9</p>&l
5、t;p> 5 全自動(dòng)洗衣機(jī)整體電路仿真10</p><p> 5.1 全自動(dòng)洗衣機(jī)整體流程圖10</p><p> 5.2 全自動(dòng)洗衣機(jī)整體仿真結(jié)果和分析10</p><p> 6 程序下載調(diào)試圖11</p><p> 7 設(shè)計(jì)總結(jié)13</p><p><b> 參考文獻(xiàn)
6、14</b></p><p><b> 附 錄15</b></p><p><b> 1 課題背景</b></p><p> 模糊控制是以模糊數(shù)學(xué)為基礎(chǔ)發(fā)展起來(lái)的一種新的非線性的控制方法,對(duì)那些無(wú)法取得數(shù)學(xué)模型或數(shù)學(xué)模型相當(dāng)粗糙的系統(tǒng)可以取得較滿意的控制效果,解決了一些用傳統(tǒng)方法無(wú)法解決的問題。近
7、年來(lái),模糊控制在家用電器控制中得到較廣泛的應(yīng)用,采用模糊控制技術(shù)的洗衣機(jī)具有自動(dòng)識(shí)別衣質(zhì)、衣量,自動(dòng)識(shí)別骯臟程度,自動(dòng)決定水量,自動(dòng)投入恰當(dāng)?shù)南礈靹┑裙δ埽粌H實(shí)現(xiàn)了洗衣機(jī)的全面自動(dòng)化,也大大提高了洗衣的質(zhì)量,具有很強(qiáng)的實(shí)用性和較好的發(fā)展前景。</p><p> 基于模糊控制的全自動(dòng)洗衣機(jī)自動(dòng)控制系統(tǒng),以FPGA為核心,可以實(shí)現(xiàn)洗衣機(jī)的智能控制,提高洗衣質(zhì)量,節(jié)約能源。硬件結(jié)構(gòu)框圖及軟件流程圖是該系統(tǒng)的重要組成
8、部分,在整個(gè)控制過程中,模糊控制軟件起了決定性的作用基于FPGA的洗衣控制系統(tǒng),控制面板由按鍵和LED指示燈顯示器組成。按鍵選擇洗衣機(jī)工作時(shí)間,指示燈配合按鍵工作,LED指示燈顯示器則顯示洗衣機(jī)正處于什么狀態(tài)。洗衣機(jī)的整體電路模塊包括按鍵、指示燈、數(shù)碼管和FPGA[1]。</p><p> 2 Quartus II軟件、FPGA硬件介紹</p><p> 2.1 Quartus II
9、軟件介紹</p><p> Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。</p><p> Quartus II可以在XP、Lin
10、ux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。</p><p> Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫(kù),使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA
11、工具[2]。</p><p> 此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。</p><p> Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺(tái)。該
12、平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的LogicLock模塊設(shè)計(jì)功能,增添 了FastFit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項(xiàng)器件[3]。</p>
13、<p> 2.2 FPGA硬件介紹</p><p> FPGAFPGA是英文Field-Programmable Gate Array的縮寫,即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)[4]。 </p><p>
14、FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有: </p><p> 采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片,F(xiàn)PGA可做其它全定制或
15、半定制ASIC電路的中試樣片。</p><p> FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。 </p><p> FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 </p><p> FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容??梢哉f(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 目前FPGA
16、的品種很多,有XILINX公司的Virtex系列[5]。 3 全自動(dòng)洗衣機(jī)的總體方案</p><p><b> 3.1方案內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)電子定時(shí)器,控制洗衣機(jī)作如下運(yùn)轉(zhuǎn):定時(shí)啟動(dòng)正轉(zhuǎn)20秒暫停10秒反轉(zhuǎn)20秒暫停10秒定時(shí)未到回到“正轉(zhuǎn)20秒暫停10秒……”,定時(shí)到則停止;</p><p> 若定時(shí)到,則停機(jī)發(fā)
17、出音響信號(hào);</p><p> 用兩個(gè)數(shù)碼管顯示洗滌的預(yù)置時(shí)間(分鐘數(shù)),按倒計(jì)時(shí)方式對(duì)洗滌過程作計(jì)時(shí)顯示,直到時(shí)間到停機(jī);洗滌過程由“開始”信號(hào)開始;</p><p> 三只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫?!比齻€(gè)狀態(tài)[6]。</p><p><b> 3.2設(shè)計(jì)原理</b></p><p> 洗衣機(jī)控制器
18、的設(shè)計(jì)主要是定時(shí)器的設(shè)計(jì),由一片F(xiàn)PGA和外圍電路構(gòu)成了電器控制部分。FPGA接收按鍵的控制命令,控制洗衣機(jī)的工作狀態(tài)、并控制顯示工作時(shí)間以及設(shè)定直流電機(jī)正反轉(zhuǎn)控制、制動(dòng)控制、起??刂坪瓦\(yùn)動(dòng)狀態(tài)控制(洗衣機(jī)洗滌過程如圖3.1所示)。對(duì)FPGA芯片的編程采用模塊化的VHDL (硬件描述語(yǔ)言)進(jìn)行設(shè)計(jì),設(shè)計(jì)分為三層實(shí)現(xiàn),頂層實(shí)現(xiàn)整個(gè)芯片的功能。頂層和中間層多數(shù)是由VHDL的元件例化語(yǔ)句實(shí)現(xiàn)。中間層由無(wú)刷直流電機(jī)控制、運(yùn)行模式選擇、定時(shí)器、顯
19、示控制、鍵盤掃描以及對(duì)直流電機(jī)控制板進(jìn)行速度設(shè)定、正反轉(zhuǎn)控制、啟??刂频饶K組成,它們分別調(diào)用底層模塊。用LED顯示正轉(zhuǎn)20秒,暫停10秒,反轉(zhuǎn)20秒,暫停10秒,60秒為一周期。因此此次設(shè)計(jì)的關(guān)鍵是計(jì)數(shù)器和定時(shí)器的設(shè)計(jì)[7]。</p><p><b> 圖3.1設(shè)計(jì)流程圖</b></p><p> 4 全自動(dòng)洗衣機(jī)各模塊解析</p><p&
20、gt;<b> 4.1定時(shí)器模塊</b></p><p> 由in_gei、in_shi輸入分別為定時(shí)器個(gè)位和十位的時(shí)間信號(hào),gei和shi為輸出信號(hào)。此模塊是為了實(shí)現(xiàn)洗衣機(jī)能夠定時(shí)輸入的功能,保證洗衣機(jī)能夠正常運(yùn)行,如圖4.1所示。</p><p> 4.1.1 定時(shí)器模塊流程圖</p><p><b> 圖4.1定時(shí)器模
21、塊</b></p><p> 4.1.2 定時(shí)器模塊仿真結(jié)果和分析</p><p> 圖4.2 定時(shí)器模塊仿真圖</p><p> 從仿真圖上圖4.2可以看到的是當(dāng)我們撥動(dòng)個(gè)位和十位的的時(shí)候.都可以顯示出來(lái)數(shù)字.個(gè)位上的數(shù)字是從0到9的循環(huán).而十位上的數(shù)字是0到6的循環(huán).因?yàn)樵O(shè)置的時(shí)間是以分鐘來(lái)計(jì)算的.可以設(shè)置的時(shí)間為0到60分鐘內(nèi)</p&
22、gt;<p> 4.2分頻器模塊流程圖</p><p> Clk是分頻器的時(shí)間信號(hào),cp是以一秒鐘為單位的60分頻輸出,提供給時(shí)間計(jì)數(shù)器的時(shí)間信號(hào);wash_cp是6分頻輸出,提供狀態(tài)燈的狀態(tài)信號(hào)如圖4.3所示。 </p><p> 4.2.1分頻器模塊流程圖</p><p> 圖4.3 分頻器模塊流程圖</p><p>
23、; 4.2.2分頻器模塊仿真結(jié)果和分析</p><p> 圖4.4分頻器模塊仿真圖</p><p> 可以從仿真圖4.4中看到分頻模塊的仿真效果,正如設(shè)定所需要的。我們給輸入一個(gè)周期為20的時(shí)鐘信號(hào),然后對(duì)它進(jìn)行編譯,可以看到wash_cp的輸出有了分頻的效果,而CP還是以一秒鐘為單位的60分頻的輸出, wash_cp的輸出的分頻效果是為了提供狀態(tài)燈的狀態(tài)信號(hào),這樣才能讓燈亮起來(lái)從而
24、表示正轉(zhuǎn).暫停.和反轉(zhuǎn)的功能。</p><p><b> 4.3計(jì)數(shù)器模塊</b></p><p> Clk是計(jì)數(shù)器的時(shí)間信號(hào);set是置數(shù)開始信號(hào),它將外部信號(hào)送給come_in端口;BCD是計(jì)數(shù)器的輸出,c是進(jìn)位信號(hào),如圖4.5所示。</p><p> 4.3.1 個(gè)位計(jì)數(shù)器模塊流程圖和仿真</p><p>
25、 圖4.5 個(gè)位計(jì)數(shù)器模塊流程圖</p><p> 圖4.6 個(gè)位計(jì)數(shù)器模塊仿真結(jié)果圖</p><p> 如圖4.6可見,我們給Clk一個(gè)周期為20的時(shí)鐘信號(hào),一段時(shí)間后打開set,set變成了1,而這時(shí),外部的信號(hào)come_in從9開始計(jì)數(shù),start是一個(gè)個(gè)位和十位計(jì)數(shù)器模塊聯(lián)系紐帶,當(dāng)個(gè)位為0但是十位不為0的時(shí)候,個(gè)位重新變9開始減;而當(dāng)個(gè)位為0同時(shí)十位也為0的時(shí)候,個(gè)位不在變
26、化,計(jì)時(shí)結(jié)束。而此處,只看個(gè)位計(jì)數(shù)器的效果,所以給start為0。我們也可以看到,結(jié)果的輸出和理想中的是一致的,BCD是計(jì)數(shù)器的輸出,從9開始一直減到0,然后繼續(xù)跳回到9,以此循環(huán)。c是進(jìn)位信號(hào),當(dāng)9的時(shí)候就能有一個(gè)進(jìn)位的信號(hào),讓個(gè)位計(jì)數(shù)器的模塊可以和十位計(jì)數(shù)器的模塊結(jié)合起來(lái)。</p><p> 4.3.2 十位計(jì)數(shù)器模塊流程圖和仿真</p><p> 圖4.7 十位計(jì)數(shù)器模塊流程圖
27、</p><p> 圖4.8十位計(jì)數(shù)器模塊仿真結(jié)果圖</p><p> 我們看到如圖4.7,和個(gè)位計(jì)數(shù)器圖4.5模塊進(jìn)行對(duì)比,我們可以發(fā)現(xiàn)少一個(gè)start的輸入,這就是十位計(jì)數(shù)器和個(gè)位計(jì)數(shù)器的不同,這是兩個(gè)不同的模塊。想要讓個(gè)位計(jì)數(shù)器和十位計(jì)數(shù)器產(chǎn)生聯(lián)系,那么就要讓十位計(jì)數(shù)器的C的輸出端口與個(gè)位計(jì)數(shù)器的start輸入相連接,這樣就能有一個(gè)減的效果,比如從50減到49,C輸出信號(hào)十位不為
28、0,start接收信號(hào),十位不為0,那么個(gè)位繼續(xù)重0變成9,然后逐步減少。當(dāng)從09減到00時(shí)候,C輸出信號(hào)十位為0,start接收信號(hào),當(dāng)十位為0的時(shí)候,個(gè)位不再變成9,而是保持0,那么就說(shuō)明計(jì)時(shí)結(jié)束的操作。</p><p> 因?yàn)榇朔抡鎴D4.8是單獨(dú)十位模塊進(jìn)行的仿真,所以無(wú)法顯示十位計(jì)數(shù)器和個(gè)位計(jì)數(shù)器的聯(lián)系,下面的總程序的仿真,我們能夠看到十位計(jì)數(shù)器和個(gè)位計(jì)數(shù)器的聯(lián)系。而此圖中,我們給Clk一個(gè)周期為20的
29、時(shí)鐘信號(hào),一段時(shí)間后打開set,set變成了1,而這時(shí),外部的信號(hào)come_in從15開始計(jì)數(shù),外面的輸出也從15然后減到了0,符合我們的程序[8]。</p><p> 5 全自動(dòng)洗衣機(jī)整體電路仿真</p><p> 5.1 全自動(dòng)洗衣機(jī)整體流程圖</p><p> 圖5.1 全自動(dòng)洗衣機(jī)整體流程圖</p><p> 5.2
30、全自動(dòng)洗衣機(jī)整體仿真結(jié)果和分析</p><p> 圖5.2 全自動(dòng)洗衣機(jī)整體仿真結(jié)果圖</p><p> 如圖5.1和圖5.2所示,我們能夠看到的是整體的流程圖和波形的仿真,也的確能達(dá)到我們所需要的實(shí)驗(yàn)要求。</p><p> 6 程序下載調(diào)試圖</p><p> 如圖6.1. 顯示的就是程序成功的拷到了開發(fā)板上的時(shí)候的原始樣子&
31、lt;/p><p> 圖6.1 程序初始圖</p><p> 如圖6.2 顯示的是隨意設(shè)定一個(gè)時(shí)間.在0到60之間.如24</p><p> 圖6.2 隨意設(shè)定時(shí)間圖</p><p> 如圖6.3 顯示的是當(dāng)時(shí)間減到18分鐘時(shí)候,暫停的燈亮起的時(shí)候</p><p> 圖6.3 到18分鐘暫停圖</p>
32、<p> 如圖6.4 顯示的當(dāng)時(shí)間減到18分鐘時(shí)候,正轉(zhuǎn)的燈亮起的時(shí)候</p><p> 圖6.4 到18分鐘的正轉(zhuǎn)圖</p><p> 如圖6.5 顯示的是當(dāng)時(shí)間減到18分鐘時(shí)候,反轉(zhuǎn)的燈亮起的時(shí)候</p><p> 圖6.5 到18分鐘的反轉(zhuǎn)圖</p><p> 如圖6.6 顯示的是當(dāng)時(shí)間減到0分鐘時(shí)候,報(bào)警的燈亮
33、起的時(shí)候</p><p> 圖6.6 到0分鐘的結(jié)束圖</p><p><b> 7 設(shè)計(jì)總結(jié)</b></p><p> 通過這次的數(shù)字電子技術(shù)設(shè)計(jì),我可以說(shuō)是受益良多??吹较匆聶C(jī)控制器的題目,我首先想到的是狀態(tài)機(jī)的設(shè)計(jì),因?yàn)檎n本上說(shuō)狀態(tài)機(jī)其實(shí)就是控制器,可是自習(xí)分析后發(fā)現(xiàn)設(shè)計(jì)題目比較復(fù)雜,如果用狀態(tài)機(jī)的思路來(lái)設(shè)計(jì),比較困難超出了我的能
34、力。結(jié)合老師的教導(dǎo)和自己的努力,想到如果用模塊化層次化的設(shè)計(jì)思路更清晰,設(shè)計(jì)起來(lái)也更容易,特別是更符合EDA設(shè)計(jì)的流程,故自己開始設(shè)計(jì)各功能模塊。洗衣機(jī)控制器主要實(shí)幾種狀態(tài)的循環(huán)改變,還有計(jì)時(shí)和數(shù)碼顯示的功能,所以我覺得電路主要有五大部分組成,包括:減法計(jì)數(shù)器、時(shí)序控制電路、預(yù)置時(shí)間和編碼電路、數(shù)碼管顯示、譯碼器組成。在分析過程中,我遇到了不少困難,因?yàn)榈谝淮斡龅揭粋€(gè)比較復(fù)雜的設(shè)計(jì),剛開始不知道從哪里入手,所以借鑒了一些書和網(wǎng)上的資料,
35、雖然很復(fù)雜,但是有很多借鑒的地方。通過這次設(shè)計(jì),讓我初步掌握了VHDL的設(shè)計(jì)方法與一些技巧,讓我對(duì)FPGA的編程、定時(shí)器和計(jì)數(shù)器的設(shè)計(jì)更加熟悉,讓我更加明白時(shí)序組合門電路設(shè)計(jì)思路和方法。在設(shè)計(jì)中也參了和查閱了很多資料,從中學(xué)到不少課本上沒有的東西,并且充分認(rèn)識(shí)到家電控制電路設(shè)計(jì)在一片F(xiàn)PGA芯片內(nèi),具有體積小、可靠性高、降低成本、設(shè)計(jì)周期短,</p><p> 經(jīng)過了自己的思考,發(fā)現(xiàn)可以用FPGA接收鍵盤的控制
36、命令,控制洗衣機(jī)的進(jìn)水、排水、水位和洗衣機(jī)的工作狀態(tài)、并控制顯示工作狀態(tài)以及設(shè)定直流電機(jī)速度、正反轉(zhuǎn)控制、制動(dòng)控制、起??刂坪瓦\(yùn)動(dòng)狀態(tài)控制。對(duì)FPGA芯片的編程采用模塊化的VHDL (硬件描述語(yǔ)言)進(jìn)行設(shè)計(jì),設(shè)計(jì)分為三層實(shí)現(xiàn),頂層實(shí)現(xiàn)整個(gè)芯片的功能。頂層和中間層多數(shù)是由VHDL的元件例化語(yǔ)句實(shí)現(xiàn),最后得到了成功。</p><p> 但是其實(shí)主要還是學(xué)到的就是團(tuán)隊(duì)合作的效果遠(yuǎn)遠(yuǎn)大于一個(gè)人的埋頭苦干,很多自己無(wú)法發(fā)
37、現(xiàn)的問題被學(xué)長(zhǎng)或者老師一看就知道了錯(cuò)誤在哪里,應(yīng)該怎么修改等,也讓我學(xué)到了如果從一個(gè)木有做過的設(shè)計(jì)然后一步步開始分析,入手,到現(xiàn)在基本掌握了這款軟件的運(yùn)行的流程,我感覺十分滿足,也有了深深的成就感。</p><p> 在此,我也深深的想感謝一下幫助我的學(xué)長(zhǎng)和老師,正是你們的一步步的教導(dǎo),才能讓我對(duì)這個(gè)軟件有了解,對(duì)這個(gè)程序有把握,對(duì)這個(gè)科目感興趣。所以我也希望以后還能有這樣的設(shè)計(jì)能讓我們進(jìn)行專研,探究,只有探究
38、的越深,才能發(fā)現(xiàn)自己理解的東西其實(shí)很少,才能有更多的欲望去學(xué)習(xí),去思考。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 譚會(huì)生,張昌凡。EDA技術(shù)及應(yīng)用[M]。西安:西安電子科技大學(xué)出版社,2008:11-15。</p><p> [2] 馬學(xué)條。 Quartus II在數(shù)字電路實(shí)驗(yàn)中的應(yīng)用[J]。北京大學(xué)學(xué)報(bào)
39、,2009,第6期:2-3。</p><p> [3] 焦素敏。EDA課程設(shè)計(jì)指導(dǎo)書[M]。鄭州:河南工業(yè)大學(xué),2008:75-89。</p><p> [4] 黃繼業(yè),潘松。EDA技術(shù)實(shí)用教程[M]。北京:科學(xué)出版社,2012:124-136。</p><p> [5] 王國(guó)棟,潘松等。VHDL實(shí)用教程[M]。成都:電子科技大學(xué)出版社,2011:24-32
40、。</p><p> [6] 張亦華,延明。數(shù)字電路EDA入門[M]。北京:電子工業(yè)出版社,2008:46-54。</p><p> [7] 夏宇聞。Verliog數(shù)字系統(tǒng)設(shè)計(jì)教程[M]。北京:航空航天大學(xué)出版社,2009:20-25。</p><p> [8] 楊海鋼,孫嘉斌,王慰。 FPGA器件設(shè)計(jì)技術(shù)發(fā)展綜述[D]。北京:中國(guó)科學(xué)院電子學(xué)研究所,2
41、010。</p><p><b> 附 錄</b></p><p><b> 定時(shí)器模塊程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.st
42、d_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity dingshi is</p><p> port( in_gei : in std_logic; </p><p> in_shi: in std_logic;</p>
43、<p> gei:out std_logic_vector(3 downto 0);</p><p> shi:out std_logic_vector(3 downto 0)</p><p><b> ); </b></p><p> end dingshi;</p><p> archite
44、cture art of dingshi is</p><p> signal count: std_logic_vector(3 downto 0);</p><p> signal count1: std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p
45、> process(in_gei,in_shi) is</p><p><b> begin</b></p><p> gei<=count;</p><p> shi<=count1;</p><p> if rising_edge(in_gei) then</p><p
46、> if count="1001" then</p><p> count<="0000";</p><p><b> else</b></p><p> count<=count+1;</p><p><b> end if;</b&g
47、t;</p><p><b> end if;</b></p><p> if rising_edge(in_shi) then</p><p> if count1="0110" then</p><p> count1<="0000";</p>&l
48、t;p><b> else</b></p><p> count1<=count1+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p>
49、<p><b> end art;</b></p><p><b> 分頻器模塊程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arit
50、h.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity wash_time is</p><p> port ( clk : in std_logic;</p><p> cp :out std_logic;</p><p> wash
51、_cp:out std_logic);</p><p> end wash_time;</p><p> architecture miao20 of wash_time is</p><p> signal count: std_logic_vector(2 downto 0); </p><p> signal shi: inte
52、ger range 0 to 60;</p><p><b> begin</b></p><p> process(clk)</p><p><b> begin</b></p><p> if rising_edge(clk) then</p><p> if
53、 shi=60 then</p><p> shi<=0;cp<='1';</p><p> else shi<=shi+1;cp<='0';</p><p><b> end if;</b></p><p> if count="101"
54、; then</p><p> count<="000";</p><p> wash_cp<='1';</p><p> else count<=count+1;</p><p> wash_cp<='0';</p><p><
55、b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> end miao20;</p><p><b> 個(gè)位計(jì)數(shù)器模塊程序</b></p><p> libr
56、ary ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity jishi is</p><
57、;p><b> port( </b></p><p> clk : in std_logic;</p><p> set : in std_logic;</p><p> start:in std_logic;</p><p> come_in : in std_logic_vector(3 downto
58、 0);</p><p> BCD : out std_logic_vector(3 downto 0);</p><p> c:out std_logic</p><p><b> );</b></p><p> end jishi;</p><p> architecture art
59、 of jishi is</p><p> signal count : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> BCD <= count;</p><p> process(clk,set,come_in,start)&l
60、t;/p><p><b> begin</b></p><p> if set='0'then</p><p> count <= come_in ;</p><p><b> c<='0';</b></p><p> els
61、if rising_edge(clk) and set='1' then</p><p> if start='0' then</p><p> if count = "0000" then</p><p> c<='1';count<="1001";</
62、p><p> else count <= count-1;</p><p><b> c<='0';</b></p><p><b> end if;</b></p><p> else count<="0000";</p>&
63、lt;p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end art;</b></p><p><b> 十位計(jì)數(shù)器模塊程序</b>
64、;</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> en
65、tity jishi_H is</p><p><b> port( </b></p><p> clk : in std_logic;</p><p> set : in std_logic;</p><p> come_in : in std_logic_vector(3 downto 0);</p&g
66、t;<p> BCD : out std_logic_vector(3 downto 0);</p><p> c:out std_logic</p><p><b> );</b></p><p> end jishi_H;</p><p> architecture art of jishi_
67、H is</p><p> signal count : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> BCD <= count;</p><p> process(clk,set,come_in)</p><
68、p><b> begin</b></p><p> if clk='0'then</p><p> count <= come_in ;</p><p><b> c<='0';</b></p><p> elsif rising_edge
69、(set) then</p><p> if count = "0000" then</p><p> count<="0000";c<='1';</p><p> --c<='1';count<="1001";</p><p
70、> else count <= count-1;</p><p><b> c<='0';</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end proc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的全自動(dòng)洗衣機(jī)設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)----plc控制全自動(dòng)洗衣機(jī)設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- plc全自動(dòng)洗衣機(jī)課程設(shè)計(jì)---全自動(dòng)洗衣機(jī)的plc控制
- 基于mcgs的全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 基于mcgs的全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 基于mcgs的全自動(dòng)洗衣機(jī)設(shè)計(jì)
- plc課程設(shè)計(jì)——全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)——全自動(dòng)洗衣機(jī)
- 全自動(dòng)洗衣機(jī)plc課程設(shè)計(jì)
- plc全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)plc課程設(shè)計(jì)
- plc課程設(shè)計(jì)全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)全自動(dòng)洗衣機(jī)
- 課程設(shè)計(jì)-波輪式全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 基于mcgs組態(tài)的全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論