vhdl描述的自動(dòng)售貨機(jī)系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題 目: 基于FPGA的自動(dòng)售貨</p><p>  機(jī)控制系統(tǒng)設(shè)計(jì) </p><p>  專  業(yè):  應(yīng)用電子技術(shù)</p><p>  班  級(jí): </p><p>  學(xué)

2、號(hào): 39號(hào)</p><p>  姓 名: </p><p>  指導(dǎo)老師: </p><p><b>  二〇一三年五月</b></p><p><b>  論 文 摘 要</b></p><p>  隨著電子技術(shù)

3、的發(fā)展,當(dāng)今數(shù)字系統(tǒng)的設(shè)計(jì)正朝著速度快,容量大,體積小,重量輕的方向發(fā)展,推動(dòng)該潮流迅猛發(fā)展的引擎就是日趨進(jìn)步和完善的ASIC設(shè)計(jì)技術(shù),AISC芯片具有價(jià)格低,體積小,可靠性高等優(yōu)點(diǎn),目前在電子產(chǎn)品中已有廣泛的應(yīng)用,VHDL是一種用來描述數(shù)字邏輯系統(tǒng)的“編程語言”,它通過對(duì)硬件行為的直接描述來實(shí)現(xiàn)對(duì)硬件的物理實(shí)現(xiàn),代表了當(dāng)今硬件設(shè)計(jì)的發(fā)展方向。</p><p>  本文是在VHDL的基礎(chǔ)上對(duì)自動(dòng)售貨機(jī)進(jìn)行設(shè)計(jì)來實(shí)

4、現(xiàn)其基本功能的,采用了Altera的開發(fā)軟件Quarts II。通過在該軟件平臺(tái)上進(jìn)行數(shù)字電路設(shè)計(jì)和仿真的方法,闡述了VHDL(Very High Speed Integrated Circuit Hardware Description Language)超高速集成電路硬件描述語言的一些特點(diǎn)及語法結(jié)構(gòu),介紹了自動(dòng)售貨機(jī)的基本原理、系統(tǒng)組成和主要功能,并分析討論了用VHDL語言開發(fā)自動(dòng)售貨機(jī)系統(tǒng)的設(shè)計(jì)流程。本設(shè)計(jì)采用VHDL硬件描述語言

5、編程的設(shè)計(jì)方法設(shè)計(jì)系統(tǒng)核心電路的硬件程序,在Quartus II軟件平臺(tái)上進(jìn)行編譯和仿真。 </p><p>  文章首先簡(jiǎn)述了自動(dòng)售貨機(jī)系統(tǒng)的意義和發(fā)展現(xiàn)狀以及VHDL語言的特點(diǎn),然后介紹了自動(dòng)售貨機(jī)的設(shè)計(jì)要求、設(shè)計(jì)思路,并給出了總體設(shè)計(jì)框圖,通過分析設(shè)計(jì)寫出VHDL程序源代碼,將代碼在Quartus II軟件平臺(tái)上進(jìn)行編譯仿真,波形基本符合設(shè)計(jì)要求。最終完成的自動(dòng)售貨機(jī)系統(tǒng)具有商品選擇,投幣處理、

6、出貨找零、異常退幣等主要功能,整個(gè)系統(tǒng)的開發(fā)體現(xiàn)了在Quartus II軟件平臺(tái)上用VHDL設(shè)計(jì)數(shù)字控制系統(tǒng)的實(shí)用性。</p><p>  關(guān)鍵詞:自動(dòng)售貨機(jī),硬件描述語言VHDL, Quarts II,F(xiàn)PGA</p><p><b>  Abstract</b></p><p>  With the development of elect

7、ronic technology, today's digital system design is moving fast, large capacity, small size, light weight and direction of development, and promote the rapid development of the trend is increasingly the engine of prog

8、ress and improvement of the ASIC design techniques, AISC chip has a low price, small size, high reliability, and is currently in electronic products has been widely used, VHDL is a digital logic system used to describe t

9、he "programming language", which ac</p><p>  This article is based on the VHDL design for vending machines to achieve its basic functions, using Altera's development software Quarts II. By the

10、software platform for the digital circuit design and simulation method, elaborated VHDL (Very High Speed ??Integrated Circuit Hardware Description Language) high-speed integrated circuit hardware description language, so

11、me characteristics and grammatical structures introduced the basic principles of automatic vending machine , system components and m</p><p>  The article first outlines the vending machine system development

12、 status as well as the meaning and characteristics of the VHDL language, then introduces the vending machine design requirements, design ideas, and gives the overall design diagram, through analysis and design to write V

13、HDL source code , the code in the Quartus II software platforms compiled simulation, waveform basically meet the design requirements. The finished product selection system has a vending machine, coin handling, shipp</

14、p><p>  Key Words: Vending machines, VHDL, FPGA, The Quartus II</p><p><b>  目錄</b></p><p><b>  論 文 摘 要Ⅰ</b></p><p>  AbstractⅡ</p><p&g

15、t;<b>  第1章 緒論1</b></p><p>  1.1題目背景與選題意義:1</p><p>  1.2設(shè)計(jì)方案比較與選擇:2</p><p>  1.3自動(dòng)售貨機(jī)控制電路的性能要求:2</p><p>  第二章 自動(dòng)售貨機(jī)控制電路總體設(shè)計(jì)3</p><p>  第三章

16、 自動(dòng)售貨機(jī)控制電路各模塊信號(hào)分析5</p><p>  1.主分頻器模塊5</p><p>  2.主控制器模塊6</p><p>  3.選擇定時(shí)模塊6</p><p>  4.商品金額計(jì)算模塊6</p><p>  5.給錢處理模塊7</p><p>  6.找零出貨模塊7

17、</p><p>  第四章 自動(dòng)售貨機(jī)控制電路的算法狀態(tài)機(jī)圖描述8</p><p>  1.主控制器模塊8</p><p>  1.1商品種類選擇控制狀態(tài)機(jī)圖8</p><p>  1.2.商品數(shù)量選擇控制狀態(tài)機(jī)圖8</p><p>  1.3.啟動(dòng)/取消控制算法狀態(tài)機(jī)圖描述12</p>&l

18、t;p>  2. 選擇定時(shí)模塊12</p><p>  第五章 自動(dòng)售貨機(jī)控制電路各模塊仿真結(jié)果及分析15</p><p>  1.主分頻器模塊仿真波形:15</p><p>  2.主控制器模塊仿真波形:15</p><p>  3.選擇的定時(shí)模塊仿真波形:16</p><p>  4.商品金額計(jì)算仿

19、真波形:16</p><p>  5.給錢處理模塊仿真波形:16</p><p>  6.找零出貨模塊仿真波形:17</p><p>  7.頂層模塊仿真波形:17</p><p>  第六章 自動(dòng)售貨機(jī)控制電路的具體VHDL描述18</p><p>  1.主分頻器模塊18</p><

20、p>  2.主控制器模塊19</p><p>  3.選擇的定時(shí)模塊23</p><p>  4,商品金額計(jì)算模塊25</p><p>  5,給錢處理模塊27</p><p>  6,找零出貨模塊28</p><p><b>  7頂層文件29</b></p>&

21、lt;p><b>  結(jié)束語32</b></p><p><b>  致謝33</b></p><p><b>  參考文獻(xiàn)33</b></p><p><b>  第1章 緒論</b></p><p>  1.1題目背景與選題意義:<

22、/p><p>  隨著電子技術(shù)的發(fā)展,當(dāng)今數(shù)字系統(tǒng)的設(shè)計(jì)正朝著速度快,容量大,體積小,重量輕的方向發(fā)展,推動(dòng)該潮流迅猛發(fā)展的引擎就是日趨進(jìn)步和完善的ASIC設(shè)計(jì)技術(shù)。本數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下地逐層完成相應(yīng)的描述,綜合,優(yōu)化,仿真與驗(yàn)證,直到生成器件。上述設(shè)計(jì)過程除了系統(tǒng)行為和功能描述以外,其余所有的設(shè)計(jì)過程幾乎都可以用計(jì)算機(jī)來自動(dòng)地完成,也就是人們所謂的電子設(shè)計(jì)自動(dòng)化,

23、這樣大大地縮短了系統(tǒng)的設(shè)計(jì)周期,以適應(yīng)當(dāng)今品種多,批量小的電子市場(chǎng)的需求,提高產(chǎn)品的競(jìng)爭(zhēng)能力。</p><p>  VHDL是一種用來描述數(shù)字邏輯系統(tǒng)的“編程語言”,它通過對(duì)硬件行為的直接描述來實(shí)現(xiàn)對(duì)硬件的物理實(shí)現(xiàn),代表了當(dāng)今硬件設(shè)計(jì)的發(fā)展方向。</p><p>  第一,VHDL功能強(qiáng)大,靈活性強(qiáng):VHDL具有功能強(qiáng)大的語言結(jié)構(gòu),可用簡(jiǎn)潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì),并且它為了

24、有效控制設(shè)計(jì)的實(shí)現(xiàn),它還具有多層次的設(shè)計(jì)描述功能,支持設(shè)計(jì)庫和可重復(fù)使用的元件生成,它還支持階層設(shè)計(jì),并提供模塊設(shè)計(jì)的創(chuàng)建,VHDL是一種設(shè)計(jì),模擬,綜合的標(biāo)準(zhǔn)硬件描述語言。</p><p>  第二,VHDL不依賴于器件設(shè)計(jì):VHDL允許設(shè)計(jì)者生成一個(gè)設(shè)計(jì),而并不需要首先選擇一個(gè)用來實(shí)現(xiàn)設(shè)計(jì)的器件,對(duì)于同一個(gè)設(shè)計(jì)描述,可以采用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能,若需要對(duì)設(shè)計(jì)進(jìn)行資源利用和性能方面的優(yōu)化,也并不是要求

25、設(shè)計(jì)者非常熟悉器件的結(jié)構(gòu)才行。</p><p>  第三,VHDL可移植性:VHDL的可移植性允許設(shè)計(jì)者對(duì)需要綜合的設(shè)計(jì)描述進(jìn)行模擬,在綜合前對(duì)一個(gè)數(shù)千門的設(shè)計(jì)描述進(jìn)行模擬,可以節(jié)約設(shè)計(jì)者可觀的時(shí)間,在這時(shí)發(fā)現(xiàn)設(shè)計(jì)上的瑕疵,就能夠在設(shè)計(jì)之前給予糾正,因?yàn)閂HDL是一個(gè)標(biāo)準(zhǔn)語言,故VHDL的設(shè)計(jì) 描述可以被不同的工具所支持,可以從一個(gè)模擬工具移植到另一個(gè)模擬工具,從一個(gè)綜合工具移植到另一個(gè)綜合工具,從一個(gè)工作平臺(tái)移

26、植到另一個(gè)工作平臺(tái)去執(zhí)行。</p><p>  第四,VHDL性能評(píng)估能力:非依賴器件的設(shè)計(jì)和可移植能力允許設(shè)計(jì)者采用不同的器件結(jié)構(gòu)和不同的綜合工具來評(píng)估設(shè)計(jì),在設(shè)計(jì)者開始設(shè)計(jì)之前,無需了解將采用何種器件,設(shè)計(jì)者可以進(jìn)行一個(gè)完整的設(shè)計(jì)描述,并且對(duì)其進(jìn)行綜合,生成選定的器件結(jié)構(gòu)的邏輯功能,然后評(píng)估結(jié)果,選用最合適你設(shè)計(jì)需求的器件,為了衡量綜合的質(zhì)量,同樣可以用不同的綜合工具所得到的綜合結(jié)果來進(jìn)行分析和評(píng)估。<

27、/p><p>  第五,VHDL開發(fā)的產(chǎn)品上市時(shí)間快,成本低:VHDL語言的設(shè)計(jì)將大大提高數(shù)字單片化的設(shè)計(jì)實(shí)現(xiàn)速度,它使設(shè)計(jì)描述快捷,方便,使設(shè)計(jì)的快速復(fù)制簡(jiǎn)便易行,VHDL和可編程邏輯的組合作為一類強(qiáng)有力的現(xiàn)場(chǎng)集成設(shè)計(jì)方式,將為設(shè)計(jì)者產(chǎn)品的上市帶來創(chuàng)紀(jì)錄的速度。</p><p>  鑒于VHDL具有以上諸多優(yōu)點(diǎn),只要開發(fā)者具備一定的高級(jí)語言程序設(shè)計(jì)基礎(chǔ),擁有Pascal、C等計(jì)算機(jī)高級(jí)語言的

28、基礎(chǔ),同時(shí)又了解一些基本數(shù)字電路的設(shè)計(jì)方法,在此基礎(chǔ)上來學(xué)習(xí)VHDL程序設(shè)計(jì)應(yīng)該是比較容易的,可以輕松地掌握VHDL使硬件工作軟件化?,F(xiàn)代電子系統(tǒng)設(shè)計(jì)人員應(yīng)該把VHDL語言作為一種基礎(chǔ)知識(shí)來學(xué)習(xí),并要求能夠熟練地使用EDA的設(shè)計(jì)工具。</p><p>  1.2設(shè)計(jì)方案比較與選擇:</p><p>  本文是在VHDL的基礎(chǔ)上對(duì)自動(dòng)售貨機(jī)進(jìn)行設(shè)計(jì)來實(shí)現(xiàn)其基本功能的。由于以往的設(shè)計(jì)主要是通過

29、兩種方式:通過數(shù)字電路和模擬電路設(shè)計(jì)、基于單片機(jī)的設(shè)計(jì)。第一種方式的缺點(diǎn)既所設(shè)計(jì)的整體電路規(guī)模較大,所用的器件較多,造成故障率高,導(dǎo)致計(jì)價(jià)器不夠準(zhǔn)確;而基于單片機(jī)的設(shè)計(jì),雖然其有著開發(fā)及制作成本低,能較大程度的利用資源,但其外圍電路較多,且調(diào)試復(fù)雜,抗干擾能力差,且對(duì)設(shè)計(jì)者的要求比較高,設(shè)計(jì)者對(duì)軟硬件都必須非常熟悉,由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定,可能會(huì)出現(xiàn)投入錢幣卻不出售貨物的情況,導(dǎo)致計(jì)價(jià)器不夠準(zhǔn)確;而本文采用VHDL

30、硬件描述語言將所有器件集成在一塊芯片上,體積大大減小的同時(shí)還提高了穩(wěn)定性,并且可應(yīng)用EDA軟件仿真,調(diào)試,易于進(jìn)行功能擴(kuò)展,外圍電路較少,采用硬件邏輯電路實(shí)現(xiàn),其最大的優(yōu)點(diǎn)是穩(wěn)定性好,抗干擾能力強(qiáng),非常適合作為自動(dòng)售貨機(jī)系統(tǒng)的控制核心,所以選擇用VHDL來對(duì)自動(dòng)售貨機(jī)進(jìn)行設(shè)計(jì)來實(shí)現(xiàn)其控制功能。</p><p>  1.3自動(dòng)售貨機(jī)控制電路的性能要求:</p><p>  1.自動(dòng)售貨機(jī)能出

31、售三種不同單價(jià)的貨物,并且能對(duì)商品數(shù)量進(jìn)行1,2,3個(gè)/瓶選擇。</p><p>  2.自動(dòng)售貨機(jī)給出30秒的選擇時(shí)間,時(shí)間倒計(jì)時(shí)到系統(tǒng)進(jìn)入停止?fàn)顟B(tài),放棄購買操作。</p><p>  3.系統(tǒng)上電復(fù)位后默認(rèn)選擇商品1,數(shù)量1,通過商品種類選擇按鍵和商品數(shù)量選擇按鍵來滿足購買需要。每按一次按鍵轉(zhuǎn)換一次,可多次進(jìn)行循環(huán)選擇。當(dāng)購買結(jié)束后,自動(dòng)返回初始設(shè)定狀態(tài),等待再次啟動(dòng)。</p&g

32、t;<p>  4. 通過啟動(dòng)/取消復(fù)合按鍵,來啟動(dòng)購買和取消購買,每按一次狀態(tài)轉(zhuǎn)換一次。</p><p>  5. 能識(shí)別1元,5元,10元紙幣(本系統(tǒng)希望一次性投入大于選擇商品金額的紙幣,不給連續(xù)投幣的機(jī)會(huì))。</p><p>  第二章 自動(dòng)售貨機(jī)控制電路總體設(shè)計(jì)</p><p>  根據(jù)上述對(duì)自動(dòng)售貨機(jī)控制電路的性能要求,可以畫出自動(dòng)售貨機(jī)總

33、體結(jié)構(gòu)框圖和系統(tǒng)操作流程圖,見下圖。該控制器由六大模塊組成:</p><p>  主分頻器模塊(sysclk_div):產(chǎn)生秒信號(hào),用于選擇的倒計(jì)時(shí),當(dāng)?shù)褂?jì)時(shí)時(shí)間到,系統(tǒng)認(rèn)為放棄選擇操作,使系統(tǒng)能自動(dòng)復(fù)位;只有在倒計(jì)時(shí)未到之內(nèi)的選擇有效。</p><p>  主控制器模塊(main_control):它是自動(dòng)售貨機(jī)的主控制電路,控制商品種類選擇,商品數(shù)量選擇,啟動(dòng)/取消操作,和確認(rèn)購買操作

34、,以及對(duì)其它模塊的工作控制。</p><p>  選擇的定時(shí)模塊(timer_count):用于選擇倒計(jì)時(shí)時(shí)間計(jì)算,當(dāng)啟動(dòng)系統(tǒng)時(shí),到計(jì)時(shí)開始計(jì)時(shí),當(dāng)取消或確認(rèn)購買時(shí),倒計(jì)時(shí)終止并且計(jì)時(shí)值清零,等待再次啟動(dòng),又初始倒計(jì)時(shí)。</p><p>  商品金額計(jì)算模塊(money_count):根據(jù)對(duì)商品的種類和數(shù)量的選擇,計(jì)算出商品的總金額,它是在倒計(jì)時(shí)未到,系統(tǒng)啟動(dòng)并且確認(rèn)購買的條件下工作的。&

35、lt;/p><p>  給錢處理模塊(give_money):處理顧客投入的金額,它也是在倒計(jì)時(shí)未到,系統(tǒng)啟動(dòng)并且確認(rèn)購買的條件下工作的。</p><p>  找零出貨模塊(change_deliver):在對(duì)商品的實(shí)際金額和顧客投入的金額比較,判斷投入金額是否大于商品實(shí)際金額后,若大于則出貨并找零;若小于則推出顧客投入的金額。</p><p>  自動(dòng)售貨機(jī)控制電路的

36、結(jié)構(gòu)框圖:</p><p>  自動(dòng)售貨機(jī)總體結(jié)構(gòu)框圖</p><p>  自動(dòng)售貨機(jī)操作流程:系統(tǒng)先上電進(jìn)入初始化狀態(tài),當(dāng)顧客啟動(dòng)系統(tǒng)及開始購買時(shí),系統(tǒng)進(jìn)入倒計(jì)時(shí)選擇商品狀態(tài),選擇商品種類和商品數(shù)量,當(dāng)對(duì)商品選擇好了確認(rèn)購買以后,系統(tǒng)進(jìn)入投幣狀態(tài),之后系統(tǒng)進(jìn)入比較幣價(jià)狀態(tài),及將顧客投入的金額與商品實(shí)際的金額進(jìn)行比較,當(dāng)大于商品價(jià)格時(shí),系統(tǒng)進(jìn)入出貨商品狀態(tài),同時(shí)找零和退幣;當(dāng)小于商品價(jià)格時(shí)

37、,系統(tǒng)直接進(jìn)入找零,退幣狀態(tài),退出顧客已投入的金額,之后系統(tǒng)結(jié)束自動(dòng)購買等待系統(tǒng)再次啟動(dòng)。</p><p><b> ?。?lt;/b></p><p><b>  系統(tǒng)操作流程圖</b></p><p>  第三章 自動(dòng)售貨機(jī)控制電路各模塊信號(hào)分析</p><p><b>  1.主分頻器模

38、塊</b></p><p>  主分頻器用來產(chǎn)生1秒的時(shí)鐘供主控制器使用,本設(shè)計(jì)使用民用的石英晶體,其振蕩頻率為76.8kHz。這樣主分頻器的分頻系數(shù)為76800,現(xiàn)采用4個(gè)分頻器構(gòu)成主分頻器的分頻電路,分別是一個(gè)256分頻器,2個(gè)10分頻器和一個(gè)3分頻器,主分頻器結(jié)構(gòu)如下:</p><p><b>  2.主控制器模塊</b></p>&l

39、t;p>  主控制器的功能是根據(jù)各輸入按鍵的狀態(tài),輸出對(duì)應(yīng)的控制信號(hào),控制選擇定時(shí)模塊,商品金額計(jì)算模塊,給錢處理模塊和找零出貨模塊的工作。主控制器的輸入信號(hào)和輸出信號(hào)如上述的結(jié)構(gòu)框圖,分別敘述如下:</p><p><b>  (1)輸入信號(hào):</b></p><p>  reset:上電復(fù)位輸入;</p><p>  sysclk:系

40、統(tǒng)時(shí)鐘輸入;</p><p>  start_cancel:?jiǎn)?dòng)與取消按鍵輸入;</p><p>  quantity_sel:商品數(shù)量選擇按鍵輸入;</p><p>  type_sel:商品種類選擇按鍵輸入;</p><p>  timer_down:選擇定時(shí)到信號(hào)輸入。</p><p><b> ?。?

41、)輸出信號(hào):</b></p><p>  start_out:?jiǎn)?dòng)與取消同步信號(hào)輸出;</p><p>  type1_out:商品種類1的選擇信號(hào)輸出;</p><p>  type2_out:商品種類2的選擇信號(hào)輸出;</p><p>  type3_out:商品種類3的選擇信號(hào)輸出;</p><p>

42、  quan1_out:商品數(shù)量1的選擇信號(hào)輸出;</p><p>  quan1_out:商品數(shù)量2的選擇信號(hào)輸出;</p><p>  quan1_out:商品數(shù)量3的選擇信號(hào)輸出;</p><p><b>  3.選擇定時(shí)模塊</b></p><p>  選擇定時(shí)模塊的功能是根據(jù)主控制器送來的start_in啟動(dòng)與

43、取消信號(hào),啟動(dòng)與取消定時(shí),</p><p>  這個(gè)時(shí)間用與商品種類與數(shù)量的選擇倒計(jì)時(shí),當(dāng)?shù)褂?jì)時(shí)時(shí)間到系統(tǒng)復(fù)位及默認(rèn)顧客放棄選購商品,且當(dāng)?shù)褂?jì)時(shí)到后其它的模塊不工作,如不用商品金額計(jì)算,給錢處理和找零出貨。</p><p><b> ?。?)輸入信號(hào):</b></p><p>  clk:秒脈沖輸入信號(hào);</p><p>

44、;  sysclk:系統(tǒng)時(shí)鐘輸入信號(hào);</p><p>  start_in:?jiǎn)?dòng)與取消定時(shí)輸入信號(hào);</p><p>  ok_buy:確認(rèn)購買商品按鍵輸入信號(hào)。</p><p><b> ?。?)輸出信號(hào):</b></p><p>  timer_down_out:選擇倒計(jì)時(shí)到輸出信號(hào)。</p><

45、;p>  4.商品金額計(jì)算模塊</p><p>  商品金額計(jì)算模塊是根據(jù)主控制器輸出的商品種類和商品數(shù)量信號(hào),來計(jì)算選購商品的總金額,其輸入和輸出信號(hào)分別如下:</p><p><b> ?。?)輸入信號(hào):</b></p><p>  ok_buy:確定購買商品按鍵輸入信號(hào);</p><p>  reset:復(fù)位

46、信號(hào);</p><p>  sysclk:系統(tǒng)時(shí)鐘輸入信號(hào);</p><p>  start_in:?jiǎn)?dòng)與取消操作信號(hào);</p><p>  timer_down:選擇倒計(jì)時(shí)到輸入信號(hào);</p><p>  type1_in:商品種類1的輸入信號(hào);</p><p>  type2_in:商品種類2的輸入信號(hào);</

47、p><p>  type3_in:商品種類1的輸入信號(hào);</p><p>  quan1_in:商品數(shù)量1的輸入信號(hào);</p><p>  quan2_in:商品數(shù)量2的輸入信號(hào);</p><p>  quan3_in:商品數(shù)量3的輸入信號(hào)。.</p><p><b>  (2)輸出信號(hào):</b>&l

48、t;/p><p>  money_1:選擇商品總金額輸出信號(hào)。</p><p><b>  5.給錢處理模塊</b></p><p>  給錢處理模塊主要是根據(jù)顧客在確認(rèn)購買商品后,計(jì)算并輸出顧客投入的總金額,其輸入和輸出信號(hào)分別如下:</p><p><b>  (1)輸入信號(hào):</b></p&

49、gt;<p>  reset:復(fù)位信號(hào);</p><p>  sysclk:系統(tǒng)時(shí)鐘輸入信號(hào);</p><p>  start_in:?jiǎn)?dòng)與取消操作信號(hào);</p><p>  timer_down:選擇倒計(jì)時(shí)到輸入信號(hào);</p><p>  ok_buy:確定購買商品按鍵輸入信號(hào);</p><p>  g

50、ive_1yuan:1元紙幣輸入信號(hào);</p><p>  give_5yuan:5元紙幣輸入信號(hào);</p><p>  give_10yuan:10元紙幣輸入信號(hào);</p><p><b> ?。?)輸出信號(hào):</b></p><p>  money_2:顧客投入的紙幣金額輸出信號(hào)。</p><p&

51、gt;<b>  6.找零出貨模塊</b></p><p>  找零出貨是對(duì)顧客投入的金額與選購商品金額比較后的找零出貨動(dòng)作,其輸入和輸出信號(hào)分別如下:</p><p><b> ?。?)輸入信號(hào):</b></p><p>  reset:復(fù)位信號(hào);</p><p>  sysclk:系統(tǒng)時(shí)鐘輸入信

52、號(hào);</p><p>  start_in:?jiǎn)?dòng)與取消操作信號(hào);</p><p>  timer_down:選擇倒計(jì)時(shí)到輸入信號(hào);</p><p>  ok_buy:確定購買商品按鍵輸入信號(hào);</p><p>  money_1:選擇商品總金額輸入信號(hào);</p><p>  money_2:顧客投入的紙幣金額輸入信號(hào)。

53、</p><p><b>  (2)輸出信號(hào):</b></p><p>  deliver:出貨信號(hào);</p><p>  change:找零金額輸出信號(hào)。</p><p>  第四章 自動(dòng)售貨機(jī)控制電路的算法狀態(tài)機(jī)圖描述</p><p>  由系統(tǒng)的分析可知,自動(dòng)售貨機(jī)控制電路主要是控制電路和計(jì)

54、數(shù)電路,因此直接用算法狀態(tài)機(jī)圖描述比較簡(jiǎn)潔。</p><p>  本次設(shè)計(jì)的自動(dòng)售貨機(jī)能銷售3種不同單價(jià)的商品,且能對(duì)商品的數(shù)量進(jìn)行1,2,3的選擇,這樣主控制器共有9種狀態(tài),如果用這9種狀態(tài)的算法狀態(tài)機(jī)圖來描述,則其狀態(tài)轉(zhuǎn)換將會(huì)變得復(fù)雜而難以處理,當(dāng)考慮到商品種類和商品數(shù)量的選擇是相對(duì)獨(dú)立的,沒有很強(qiáng)的關(guān)聯(lián)性,因此,可以用3個(gè)算法狀態(tài)機(jī)圖來描述。</p><p><b>  1

55、.主控制器模塊</b></p><p>  1.1商品種類選擇控制狀態(tài)機(jī)圖</p><p>  系統(tǒng)復(fù)位后進(jìn)入默認(rèn)的商品種類1狀態(tài),并輸出默認(rèn)狀態(tài)的控制信號(hào)set_type1,并判斷定時(shí)倒計(jì)時(shí)信號(hào)timer_down是否有效,如果有效,則表明放棄繼續(xù)購買,set_type1置0回到系統(tǒng)默認(rèn)狀態(tài);如果無效則判斷商品種類選擇按鍵是否按下,如果未按下,則仍處在默認(rèn)狀態(tài),如果已按下,則

56、進(jìn)入商品種類2狀態(tài)及set_type2置1。通過類似的操作和判斷,該狀態(tài)機(jī)可在商品1,商品2,商品3三種狀態(tài)下循環(huán)選擇和工作,并送出相應(yīng)的狀態(tài)信號(hào),具體的VHDL代碼框圖如下圖中的圖(一)。</p><p>  1.2.商品數(shù)量選擇控制狀態(tài)機(jī)圖</p><p>  商品數(shù)量選擇控制狀態(tài)機(jī)圖如上所示,其結(jié)構(gòu)與商品種類選擇控制狀態(tài)機(jī)圖一致,所不同的僅僅是狀態(tài)名,狀態(tài)輸出信號(hào)和引起狀態(tài)轉(zhuǎn)換的按鍵

57、信號(hào),VHDL代碼框圖如圖(二)。</p><p>  1.3.啟動(dòng)/取消控制算法狀態(tài)機(jī)圖描述</p><p>  本設(shè)計(jì)的自動(dòng)售貨系統(tǒng)用了一個(gè)多功能啟動(dòng)/取消按鍵,來啟動(dòng)系統(tǒng)和在購買過程中隨時(shí)取消的操作,如此系統(tǒng)有2種工作狀態(tài):取消狀態(tài)(停止?fàn)顟B(tài))和啟動(dòng)狀態(tài),系統(tǒng)復(fù)位是進(jìn)入停止?fàn)顟B(tài),當(dāng)start_cancel按鍵按下時(shí),狀態(tài)轉(zhuǎn)移至啟動(dòng)狀態(tài),并輸出啟動(dòng)控制信號(hào)start_out。再按下st

58、art_cancel鍵時(shí),是取消購買操作,系統(tǒng)又回到停止?fàn)顟B(tài),這樣可以人為的進(jìn)行系統(tǒng)的取消購買行為,具體VHDL代碼程序框圖如啟動(dòng)/取消多功能按鍵流程圖。</p><p>  啟動(dòng)/取消多功能按鍵流程圖</p><p><b>  2. 選擇定時(shí)模塊</b></p><p>  選擇定時(shí)模塊有23種狀態(tài):停止?fàn)顟B(tài)(IDLE),和計(jì)時(shí)狀態(tài)(INC

59、COUNT),VHDL代碼框圖如倒計(jì)時(shí)程序框圖。</p><p>  系統(tǒng)復(fù)位后就進(jìn)入停止?fàn)顟B(tài)(IDLE),在停止?fàn)顟B(tài)下不斷判斷啟動(dòng)信號(hào)start_in是否為1,如果為1,則表明啟動(dòng)鍵已按下,定時(shí)器開始工作,轉(zhuǎn)移的下一個(gè)狀態(tài)為計(jì)數(shù)狀態(tài);否則仍停留在停止?fàn)顟B(tài)。</p><p>  在計(jì)數(shù)狀態(tài)(INCCOUNT)下,先要判斷啟動(dòng)信號(hào)是否仍為1,因?yàn)閱?dòng)/取消按鍵是一個(gè)多功能按鈕,按一次狀態(tài)轉(zhuǎn)換

60、一次,如果復(fù)位后按一下啟動(dòng)/取消按鍵,使start_in=1,則定時(shí)器開始計(jì)數(shù)。如果再按一次啟動(dòng)/取消按鍵,使start_in=0,則定時(shí)器處于等待再次啟動(dòng)狀態(tài)。</p><p>  系統(tǒng)中確認(rèn)按鍵也能影響定時(shí)器的計(jì)數(shù),所以也要判斷它的狀態(tài),當(dāng)確認(rèn)后,定時(shí)器計(jì)數(shù)值清零,定時(shí)器也回到等待再次啟動(dòng)狀態(tài)。</p><p>  在計(jì)數(shù)狀態(tài)下,如果start_in=1,接著判斷秒clk_1s上升沿是

61、否到來,如果未到來,則仍停留在計(jì)數(shù)狀態(tài),若秒時(shí)鐘的上升沿已到來,則秒計(jì)數(shù)器就進(jìn)行減1倒計(jì)時(shí)操作,接著判斷時(shí)間是否減到了0,如果到0了則發(fā)出倒計(jì)時(shí)時(shí)間到信號(hào)(timer_down),如果沒減到0則仍處于計(jì)數(shù)狀態(tài)。</p><p><b>  倒計(jì)時(shí)程序框圖</b></p><p>  通過以上對(duì)VHDL代碼框圖的分析,更加容易的完成了VHDL代碼的編寫,后面的的幾個(gè)模塊

62、由于程序比較簡(jiǎn)單,只要看看VHDL代碼就能看出它的程序框圖的流程,所以這里就沒有在畫其他模塊的VHDL代碼框圖,具體分析見VHDL代碼。</p><p>  第五章 自動(dòng)售貨機(jī)控制電路各模塊仿真結(jié)果及分析</p><p>  1.主分頻器模塊仿真波形:</p><p>  通過對(duì)系統(tǒng)時(shí)鐘的計(jì)數(shù)來分頻,每一位相當(dāng)于一個(gè)2分頻,div1[7]為2的8次方分頻,div2[

63、3]為2的4次方分頻,系統(tǒng)中當(dāng)div2[3]中計(jì)到10時(shí)清零,所以div2[3]實(shí)際完成的是10分頻,同理div3[3]也為10分頻,div4[1]為2的2次方分頻,系統(tǒng)中div4[1]中計(jì)到3時(shí)清零,所以div4[1]實(shí)際完成的是3分頻,通過這樣的分頻便得到了秒信號(hào)。</p><p>  2.主控制器模塊仿真波形:</p><p>  Type_sel為商品種類選擇按鍵,復(fù)位時(shí)系統(tǒng)默認(rèn)t

64、ype1及type1_out為高電平,type_sel每按一次種類的選擇轉(zhuǎn)換一次;quantity_sel為商品數(shù)量選擇,它的分析與type_sel一致;start_out為啟動(dòng)/取消同步輸出信號(hào),當(dāng)啟動(dòng)時(shí)start_out輸出高電平,當(dāng)取消時(shí)start_out輸出低電平;timer_down為倒計(jì)時(shí)時(shí)間,時(shí)間到系統(tǒng)復(fù)位,等待再次啟動(dòng)。</p><p>  3.選擇的定時(shí)模塊仿真波形:</p>&l

65、t;p>  系統(tǒng)啟動(dòng)時(shí)及start_in為高電平時(shí),倒計(jì)時(shí)開始計(jì)數(shù),當(dāng)確認(rèn)購買時(shí)及ok_buy為高電平時(shí)計(jì)數(shù)值清零,系統(tǒng)從新開始倒計(jì)時(shí),這里以計(jì)時(shí)4秒來替代30秒的選擇倒計(jì)時(shí),方便仿真。</p><p>  4.商品金額計(jì)算仿真波形:</p><p>  系統(tǒng)在啟動(dòng)狀態(tài),倒計(jì)時(shí)未到且確認(rèn)購買時(shí),根據(jù)顧客對(duì)商品的選擇,計(jì)算出商品的金額,這里type1的單價(jià)為1元,type2的單價(jià)為2元

66、,type3的單價(jià)為3元;quan1指選擇一個(gè)商品,quan2指選擇2個(gè)商品,quan3指選擇3個(gè)商品。單價(jià)*商品數(shù)量即為商品總金額。</p><p>  5.給錢處理模塊仿真波形:</p><p>  系統(tǒng)在啟動(dòng)狀態(tài),倒計(jì)時(shí)未到且確認(rèn)購買時(shí),系統(tǒng)根據(jù)輸入的投幣信號(hào),輸出顧客投入的金額。這里give_1yuan指顧客投入的是1元,give_5yuan指顧客投入的是5元,give_10yua

67、n指顧客投入的是10元,這樣就能識(shí)別1元,5元和10的紙幣。</p><p>  6.找零出貨模塊仿真波形:</p><p>  系統(tǒng)在啟動(dòng)狀態(tài),倒計(jì)時(shí)未到且確認(rèn)購買時(shí),系統(tǒng)將商品的實(shí)際金額和顧客投入的金額進(jìn)行比較,當(dāng)顧客投入的金額大于商品實(shí)際金額時(shí),系統(tǒng)找出相應(yīng)的錢數(shù)并出貨;當(dāng)小于時(shí),系統(tǒng)退出顧客已投入的錢數(shù)。</p><p>  7.頂層模塊仿真波形:</

68、p><p>  Start_cancel啟動(dòng)系統(tǒng),倒計(jì)時(shí)開始計(jì)時(shí),顧客在此期間選擇商品種類及type_sel按鍵輸入,和商品數(shù)量選擇及quantity_sel按鍵輸入,它們的狀態(tài)均為每按一次狀態(tài)轉(zhuǎn)換一次,商品選擇好了,確認(rèn)購買及ok_buy為高電平后,顧客投幣,系統(tǒng)比較后進(jìn)行找零和出貨操作。</p><p>  第六章 自動(dòng)售貨機(jī)控制電路的具體VHDL描述</p><p&g

69、t;<b>  1.主分頻器模塊</b></p><p>  LIBRARYIEEE;</p><p>  USEIEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY sysclk_div IS<

70、/p><p>  PORT(sysclk:IN STD_LOGIC;</p><p>  clk :OUT STD_LOGIC);</p><p>  END ENTITY sysclk_div;</p><p>  ARCHITECTURE rtl OF sysclk_div IS</p><p>  SIGNAL

71、div1:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL div2:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL div3:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL div4:STD_LOGIC_VECTOR(1 DOWN

72、TO 0);</p><p>  SIGNAL clk1,clk2,clk3:std_logic;</p><p><b>  BEGIN</b></p><p>  div_256:PROCESS(sysclk)IS</p><p><b>  BEGIN</b></p><p

73、>  IF(sysclk'EVENT AND sysclk='1')THEN</p><p>  div1<=div1+1;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  clk1<=div1(7);<

74、/p><p>  div10:PROCESS(clk1)IS</p><p><b>  BEGIN</b></p><p>  IF(clk1'EVENT AND clk1='1')THEN</p><p>  IF(div2="1001")THEN</p><

75、;p>  div2<="0000";</p><p><b>  ELSE</b></p><p>  div2<=div2+1;</p><p><b>  END IF;</b></p><p><b>  END IF;</b><

76、;/p><p>  END PROCESS;</p><p>  clk2<=div2(3);</p><p>  div_10:PROCESS(clk2)IS</p><p><b>  BEGIN</b></p><p>  IF(clk2'EVENT AND clk2='1

77、')THEN</p><p>  IF(div3="1001")THEN</p><p>  div3<="0000";</p><p><b>  ELSE</b></p><p>  div3<=div3+1;</p><p><

78、;b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  clk3<=div3(3);</p><p>  div_3:PROCESS(clk3)IS</p><p><b&

79、gt;  BEGIN</b></p><p>  IF(clk3'EVENT AND clk3='1')THEN</p><p>  IF(div4="10")THEN</p><p>  div4<="00";</p><p><b>  ELSE&

80、lt;/b></p><p>  div4<=div4+1;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  clk<=div4(1);

81、</p><p>  END ARCHITECTURE rtl;</p><p><b>  2.主控制器模塊</b></p><p>  LIBRARYIEEE;</p><p>  USEIEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOG

82、IC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY main_control IS</p><p>  PORT(reset,sysclk,start_cancel,type_sel,quantity_sel,timer_down:IN STD_LOGIC;</p&

83、gt;<p>  type1_out,type2_out,type3_out,start_out:OUT STD_LOGIC;</p><p>  quan1_out,quan2_out,quan3_out:OUT STD_LOGIC);</p><p>  END ENTITY;</p><p>  ARCHITECTURE rtl OF main_

84、control IS</p><p>  TYPE state1TYPE IS(s_type1,s_type2,s_type3);</p><p>  TYPE state2TYPE IS(s_quan1,s_quan2,s_quan3);</p><p>  TYPE state3TYPE IS(s_start,s_cancel);</p><

85、p>  SIGNAL state1,nextstate1:state1TYPE;</p><p>  SIGNAL state2,nextstate2:state2TYPE;</p><p>  SIGNAL state3,nextstate3:state3TYPE;</p><p>  SIGNAL start_cancel_rising,start_can

86、cel_dlayed,setstart,clrstart:STD_LOGIC;</p><p>  SIGNAL type_sel_dlayed,typesel_rising,quantity_sel_dlayed,quantitysel_rising:STD_LOGIC;</p><p>  SIGNAL timer_down_rising,timer_down_dlayed:STD_L

87、OGIC;</p><p>  SIGNAL set_type1,set_type2,set_type3,start,set_quan1,set_quan2,set_quan3:STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  typesel_rising<=type_sel AND (NOT ty

88、pe_sel_dlayed);</p><p>  quantitysel_rising<=quantity_sel AND (NOT quantity_sel_dlayed);</p><p>  start_cancel_rising<=start_cancel AND (NOT start_cancel_dlayed);</p><p>  tim

89、er_down_rising<=timer_down AND (NOT timer_down_dlayed);</p><p>  type_ctr:PROCESS(typesel_rising,state1,timer_down)IS</p><p><b>  BEGIN</b></p><p>  set_type1<=

90、9;0';set_type2<='0';set_type3<='0';</p><p>  CASE state1 IS</p><p>  WHEN s_type1=>set_type1<='1';</p><p>  IF(timer_down='1')THEN se

91、t_type1<='0';nextstate1<=s_type1;</p><p>  ELSIF(typesel_rising='0')THEN nextstate1<=s_type1;</p><p><b>  ELSE</b></p><p>  set_type1<='0

92、';nextstate1<=s_type2;</p><p><b>  END IF;</b></p><p>  WHEN s_type2=>set_type2<='1';</p><p>  IF(timer_down='1')THEN set_type2<='0&#

93、39;;nextstate1<=s_type1;</p><p>  ELSIF(typesel_rising='0')THEN nextstate1<=s_type2;</p><p><b>  ELSE</b></p><p>  set_type2<='0';nextstate1<

94、=s_type3;</p><p><b>  END IF;</b></p><p>  WHEN s_type3=>set_type3<='1';</p><p>  IF(timer_down='1')THEN set_type3<='0';nextstate1<=s

95、_type1;</p><p>  ELSIF(typesel_rising='0')THEN nextstate1<=s_type3;</p><p><b>  ELSE</b></p><p>  set_type3<='0';nextstate1<=s_type1;</p>

96、<p><b>  END IF;</b></p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  quantity_ctr:PROCESS(quantitysel_rising,state2,timer_down)IS</p>&

97、lt;p><b>  BEGIN</b></p><p>  set_quan1<='0';set_quan2<='0';set_quan3<='0';</p><p>  CASE state2 IS</p><p>  WHEN s_quan1=>set_quan

98、1<='1';</p><p>  IF(timer_down='1')THEN set_quan1<='0';nextstate2<=s_quan1;</p><p>  ELSIF(quantitysel_rising='0')THEN nextstate2<=s_quan1;</p>

99、<p><b>  ELSE</b></p><p>  set_quan1<='0';nextstate2<=s_quan2;</p><p><b>  END IF;</b></p><p>  WHEN s_quan2=>set_quan2<='1'

100、;;</p><p>  IF(timer_down='1')THEN set_quan2<='0';nextstate2<=s_quan1;</p><p>  ELSIF(quantitysel_rising='0')THEN nextstate2<=s_quan2;</p><p><b&

101、gt;  ELSE</b></p><p>  set_quan2<='0';nextstate2<=s_quan3;</p><p><b>  END IF;</b></p><p>  WHEN s_quan3=>set_quan3<='1';</p>&l

102、t;p>  IF(timer_down='1')THEN set_quan3<='0';nextstate2<=s_quan1;</p><p>  ELSIF(quantitysel_rising='0')THEN nextstate2<=s_quan3;</p><p><b>  ELSE</b&

103、gt;</p><p>  set_quan3<='0';nextstate2<=s_quan1;</p><p><b>  END IF;</b></p><p><b>  END CASE;</b></p><p>  END PROCESS;</p>

104、<p>  start_ctr:PROCESS(start_cancel_rising,state3,timer_down)IS</p><p><b>  BEGIN</b></p><p>  setstart<='0';clrstart<='0';</p><p>  CASE s

105、tate3 IS</p><p>  WHEN s_cancel=></p><p>  IF(start_cancel_rising='1')THEN nextstate3<=s_start;setstart<='1';</p><p><b>  ELSE</b></p>&l

106、t;p>  nextstate3<=s_cancel;clrstart<='1';</p><p><b>  END IF;</b></p><p>  WHEN s_start=></p><p>  IF(timer_down_rising='1')THEN clrstart<

107、='1';nextstate3<=s_cancel;</p><p>  ELSIF(start_cancel_rising='1')THEN nextstate3<=s_cancel;clrstart<='1';</p><p><b>  ELSE</b></p><p> 

108、 nextstate3<=s_start;</p><p><b>  END IF;</b></p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  main_control_update:PROCESS(reset,sysc

109、lk,timer_down_rising)IS</p><p><b>  BEGIN</b></p><p>  IF(reset='0')THEN</p><p>  state1<=s_type1;state2<=s_quan1;state3<=s_cancel;</p><p>

110、  ELSIF(sysclk'EVENT AND sysclk='1')THEN</p><p>  state1<=nextstate1;state2<=nextstate2;state3<=nextstate3;</p><p>  IF(set_type1='1')THEN type1_out<='1';

111、ELSE type1_out<='0';END IF;</p><p>  IF(set_type2='1')THEN type2_out<='1';ELSE type2_out<='0';END IF;</p><p>  IF(set_type3='1')THEN type3_out<

112、;='1';ELSE type3_out<='0';END IF;</p><p>  IF(set_quan1='1')THEN quan1_out<='1';ELSE quan1_out<='0';END IF;</p><p>  IF(set_quan2='1')THE

113、N quan2_out<='1';ELSE quan2_out<='0';END IF;</p><p>  IF(set_quan3='1')THEN quan3_out<='1';ELSE quan3_out<='0';END IF;</p><p>  IF(timer_down_

114、rising='1')THEN start_out<='0';</p><p>  ELSIF(clrstart='1')THEN start_out<='0';</p><p>  ELSIF(setstart='1')THEN start_out<='1';</p&g

115、t;<p><b>  END IF;</b></p><p>  type_sel_dlayed<=type_sel;</p><p>  quantity_sel_dlayed<=quantity_sel;</p><p>  start_cancel_dlayed<=start_cancel;</p&

116、gt;<p>  timer_down_dlayed<=timer_down;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  END ARCHITECTURE rtl;</p><p><b>  3.選擇的定時(shí)模塊&l

117、t;/b></p><p>  LIBRARYIEEE;</p><p>  USEIEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p&

118、gt;  ENTITY timer_count IS</p><p>  PORT(reset,sysclk,clk,start_in,ok_buy:IN STD_LOGIC;</p><p>  timer_down_out:OUT STD_LOGIC);</p><p>  END ENTITY;</p><p>  ARCHITECTU

119、RE rtl OF timer_count IS</p><p>  TYPE stateTYPE IS(idle,incount);</p><p>  SIGNAL state,nextstate:stateTYPE;</p><p>  SIGNAL count_inc,count_clr,setdown,clrdown:STD_LOGIC;</p>

120、;<p>  SIGNAL timer_down,ok_buy_rising,ok_buy_dlayed:STD_LOGIC;</p><p>  SIGNAL count,count_u:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL timerdown_rising,timerdown_dlayed,clk_rising,cl

121、k_dlayed:STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  timerdown_rising<=timer_down AND (NOT timerdown_dlayed);</p><p>  ok_buy_rising<=ok_buy AND (NOT ok_buy_dlayed);

122、</p><p>  clk_rising<=clk AND (NOT clk_dlayed);</p><p>  count1:PROCESS(clk_rising,state,start_in,count,ok_buy_rising)IS</p><p><b>  BEGIN</b></p><p>  s

123、etdown<='0';clrdown<='0';count_inc<='0';count_clr<='0';</p><p>  CASE state IS</p><p>  WHEN idle=>clrdown<='1';count_clr<='1'

124、;;</p><p>  IF(start_in='1' AND timerdown_rising='0')THEN </p><p>  nextstate<=incount;</p><p><b>  ELSE </b></p><p>  nextstate<=idle

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論