EDA自動(dòng)售貨機(jī)設(shè)計(jì)
《EDA自動(dòng)售貨機(jī)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《EDA自動(dòng)售貨機(jī)設(shè)計(jì)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 摘 要 人類社會(huì)已進(jìn)入到高度發(fā)達(dá)的信息化社會(huì), 信息社會(huì)的發(fā)展離不開(kāi)電子產(chǎn)品的進(jìn)步?,F(xiàn)代電子產(chǎn)品在性能提高、復(fù)雜度增大的同時(shí),價(jià)格卻一直呈下降趨勢(shì),而且產(chǎn)品更新?lián)Q代的步伐也越來(lái)越快, 實(shí)現(xiàn)這種進(jìn)步的主要原因就是生產(chǎn)制造技術(shù)和電子設(shè)計(jì)技術(shù)的發(fā)展。 自動(dòng)售貨是 20 世紀(jì) 70 年代在日本、 歐美發(fā)展起來(lái)的一種全新的消費(fèi)方式, 自動(dòng)售貨機(jī)又被稱為 24 小時(shí)營(yíng)業(yè)的微型自助超市,它的售貨領(lǐng)域非常廣泛,是發(fā)達(dá)國(guó)家 商品零售的一種主要方式。 本設(shè)計(jì)要實(shí)現(xiàn)自動(dòng)售貨機(jī)的基本功能, 如投幣處理、 商品 選擇、購(gòu)貨撤銷、異常退幣、計(jì)算存貨等
2、功能。采用 VHDL硬件描述語(yǔ)言編程的設(shè)計(jì) 方法設(shè)計(jì)系統(tǒng)核心電路的硬件程序,與一般的軟件開(kāi)發(fā)不同, VHDL 編程更需要熟悉 一些底層的硬件知識(shí),特別是數(shù)字邏輯電路的設(shè)計(jì),因此 VHDL編程的方法、思路都要更多的與硬件電路聯(lián)系起來(lái)。 完成系統(tǒng)各個(gè)功能模塊的硬件程序設(shè)計(jì)后, 在軟件平 臺(tái)上進(jìn)行編譯和電路仿真,最后生成的目標(biāo)文件下載到實(shí)驗(yàn)臺(tái)內(nèi)的 FPGA芯片以實(shí)現(xiàn)該系統(tǒng),并在實(shí)驗(yàn)臺(tái)上對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證。 關(guān)鍵字 :自動(dòng)售貨機(jī) ;VHDL編程;編譯;電路仿真 Abstract Human society has en
3、tered into a highly developed information community, social development of information on electronic products progress. the modern electronic products in the performance, the increased complexity of the same time, the price has been a downward trend, and the pace of product faster and faster, the re
4、alization of this progress is that of manufacturing technology and electronic design of technology. The coin is in the 70s of 20th century in japan, and develop a new and vending machine is called open 24 hours in the cafeteria, it is very widespread area of sale in retail in the developed countr
5、ies, is a major way. this is designed to enable automatic machines in the basic functionality, such as a coin, choose and purchases of goods, money is retired, stock and functions. Complete system of the various functional modules of hardware, software design process in the compilation and circuit e
6、mulation, the target file download to the test stand in the chip to implement the system fpga, and on the stage of design validation. Keywords: Vending machine; Vhdl programming ; Compilation ; Circuit simulation - 1 - 目
7、 錄 引言 ........................................................... - 3 - 1 EDA技術(shù)簡(jiǎn)介 ................................................. - 10 - 1.1 EDA 技術(shù)的發(fā)展概況 ..................................... - 10 - 1.2 EDA 技術(shù)的基本特征 ..................................... - 10 - 1.2.1 “自頂向下”的設(shè)計(jì)方法 ....
8、........................ - 11 - 1.2.2 高層次設(shè)計(jì) ........................................ - 11 - 2 工作原理 ..................................................... - 11 - 2. 1 任務(wù)概述 .............................................. - 11 - 2.2 系統(tǒng)設(shè)計(jì) - 12 - 2.3 系統(tǒng)組成方框圖 ...........................
9、.............. - 12 - 2.4 工作過(guò)程 ............................................... - 12 - 3 設(shè)計(jì)方案 ..................................................... - 13 - 3.1 自動(dòng)售貨機(jī) VHDL程序 .................................... - 13 - 3.2 各功能部件系統(tǒng)仿真圖 ................................... - 16 - 結(jié) 論 .......
10、................................................. - 19 - 參考文獻(xiàn) ...................................................... - 20 - - 2 -
11、 引言 自動(dòng)售貨機(jī)能夠根據(jù)投入錢幣自動(dòng)收貨的機(jī)器,是商業(yè)自動(dòng)化的常用設(shè)備。不受 時(shí)間、地點(diǎn)的限制,能節(jié)省人力物力。 現(xiàn)代售貨機(jī)的功能、 結(jié)構(gòu)根據(jù)商品的種類而異。 貨幣裝置時(shí)售貨機(jī)的核心, 其主要功能是確認(rèn)投入幣數(shù)及面值, 計(jì)算余額,找兌余額。 因此,自動(dòng)售貨機(jī)在商業(yè),食品業(yè)越來(lái)越普及,更方便消費(fèi)者購(gòu)買自己所需的商品。 使用方便、可靠、節(jié)省人力的自動(dòng)售貨機(jī)將在社會(huì)生活中成為一種趨勢(shì)。 新 浪 騰訊 ?QQ 空間搜 狐 網(wǎng) 易 谷 歌 鳳 凰 網(wǎng)新 浪微博 新 華 網(wǎng) 人
12、 民 網(wǎng)中國(guó)移動(dòng) 中國(guó)政府網(wǎng) 人 人 網(wǎng)開(kāi) 心 網(wǎng) 天涯社區(qū) 汽車之家 4399 游戲太平洋電腦 東方財(cái)富 中華英才網(wǎng) 中 彩 網(wǎng) 賽 爾 號(hào)智聯(lián)招聘 攜程旅行網(wǎng) CNTV 中國(guó)電信 58 同城 淘 寶 網(wǎng)湖南衛(wèi)視 大眾點(diǎn)評(píng)網(wǎng) 工商銀行 凡客誠(chéng)品 中關(guān)村在線 國(guó)美電器 易 車 網(wǎng) 去哪兒網(wǎng) 京東商城 蘇寧易購(gòu) 新功能 刷卡購(gòu)物功能: 在網(wǎng)絡(luò)環(huán)境支持情況下,具備多種電子支付功能,如信用卡、儲(chǔ)值卡、手機(jī)卡等刷卡消費(fèi)。 多種貨幣識(shí)別功能:
13、電控系統(tǒng)可以配合紙幣、硬幣識(shí)別器增加代金券功能,可以識(shí)別紙質(zhì)和硬幣類型的代金券。 數(shù)據(jù)下載功能: 應(yīng)用 USB技術(shù),使用一個(gè)優(yōu)盤,就能輕松下載售貨機(jī)的運(yùn)營(yíng)信息,然后使用 PC機(jī)對(duì)下載的 數(shù)據(jù)進(jìn)行處理,便于運(yùn)營(yíng)商掌握不同地區(qū)、不同機(jī)器、不同商品的售賣情況。 - 3 - 無(wú)線網(wǎng)絡(luò)運(yùn)營(yíng)管理功能: 將自動(dòng)售貨機(jī)當(dāng)前運(yùn)營(yíng)的數(shù)據(jù),包括系統(tǒng)狀態(tài)、系統(tǒng)故障、料道故障、缺貨情況、銷售數(shù)據(jù) 通過(guò)安裝在自動(dòng)售貨機(jī)上的 GPRS模塊無(wú)線傳輸?shù)绞圬洐C(jī)網(wǎng)絡(luò)服務(wù)器,運(yùn)營(yíng)人員可以在任何一臺(tái) 聯(lián)網(wǎng)的電腦上掌握售貨機(jī)的這些
14、信息,實(shí)現(xiàn)自動(dòng)售貨機(jī)的大規(guī)模運(yùn)營(yíng)和網(wǎng)絡(luò)化管理。 EDA技術(shù)是以計(jì)算機(jī)為工具完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計(jì)仿真等工 作。電路設(shè)計(jì)者只需要完成對(duì)系統(tǒng)功能的描述,就可以由計(jì)算機(jī)軟件進(jìn)行系統(tǒng)處理, 最后得到設(shè)計(jì)結(jié)果, 并且修改設(shè)計(jì)方案如同修改軟件一樣方便。 利用 EDA工具可以極大地提高設(shè)計(jì)效率。 利用硬件描述語(yǔ)言編程來(lái)表示邏輯器件及系統(tǒng)硬件的功能和行為, 是 EDA設(shè)計(jì)方法的一個(gè)重要特征。 VHDL(Very High Speed Integrated Circuit Hardware Description La
15、nguage,超高速集成電路硬件描述語(yǔ)言)是硬件描述語(yǔ)言的一種,對(duì)系統(tǒng)硬件的描述功能很強(qiáng)而語(yǔ)法又比較簡(jiǎn)單。 VHDL具有強(qiáng)大的行為描述能力,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu), 只需集中精力進(jìn)行電子系統(tǒng)的設(shè)計(jì)和性能優(yōu)化; 具有方便的邏輯仿真與調(diào)試功能, 在設(shè)計(jì)早期就能查驗(yàn)系統(tǒng)的功能, 方便地比較各種方案的可行性及其優(yōu)劣。目前, VHDL作為 IEEE 的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,得到眾多 EDA公司的支持,在電子工程領(lǐng)域已經(jīng)成為事實(shí)上通用硬件描述語(yǔ)言。 本文采用 VHDL作為工具描述了自動(dòng)售貨機(jī)控制模塊的邏輯控制電路, 并在 FPGA 上實(shí)現(xiàn)。該自動(dòng)售貨機(jī)能夠根據(jù)投入硬幣額度, 按預(yù)定的要求在投入
16、硬幣大于規(guī)定值 時(shí)送出飲料并找零。 設(shè)計(jì)方案 本文所設(shè)計(jì)的簡(jiǎn)易自動(dòng)售貨機(jī)可銷售礦泉水,假設(shè)每瓶 1.5 元。設(shè)兩個(gè)投幣孔,分別接收 1 元和 5 角兩種硬幣, 兩個(gè)輸出口, 分別輸出購(gòu)買的商品和找零。 假設(shè)每次只能投入一枚 1 元或 5 角硬幣,投入 1 元 5 角硬幣后機(jī)器自動(dòng)給出一瓶礦泉水; 投入 2 元硬幣后,在給出一瓶礦泉水的同時(shí)找回一枚 5 角的硬幣。另外設(shè)置一復(fù)位按鈕,當(dāng)復(fù)位按鈕按下時(shí),自動(dòng)售貨機(jī)回到初始狀態(tài)。 開(kāi)發(fā)軟件選用功能強(qiáng)大的 Altera 公司的最新可編程邏輯器件開(kāi)發(fā)工具 Quartus II 8.0 ,實(shí)現(xiàn)芯片選用 Alt
17、era 公司 FLEX10K系列的 EPF10K10LC84-;4首先在計(jì)算機(jī)上完成程序設(shè)計(jì)、 編譯及時(shí)序仿真, 然后將經(jīng)過(guò)驗(yàn)證的設(shè)計(jì)文件下載到選擇的可編程邏輯器件中,并在電子設(shè)計(jì)自動(dòng)化實(shí)驗(yàn)系統(tǒng)中進(jìn)行硬件模擬和測(cè)試。 狀態(tài)機(jī) VHDL程序設(shè)計(jì) - 4 - 0 表示不輸出貨物或不找零。 有限狀態(tài)機(jī) FSM( Finite State Machine )及其設(shè)計(jì)技術(shù)是實(shí)用數(shù)字系統(tǒng)設(shè)計(jì)中實(shí)現(xiàn)高效率、高可靠邏輯控制的重要途徑。 傳統(tǒng)的狀態(tài)機(jī)設(shè)計(jì)方法需進(jìn)行繁瑣的狀態(tài)分配、繪制狀態(tài)表、簡(jiǎn)化次態(tài)方程等,而利用 VHDL可以避免這些煩瑣的
18、過(guò)程,直接利用狀態(tài)轉(zhuǎn)換圖進(jìn)行狀態(tài)機(jī)的描述。此外,與 VHDL的其他描述方式相比,狀態(tài)機(jī)的VHDL表述豐富多樣,程序?qū)哟畏置?,結(jié)構(gòu)清晰,易讀易懂;在排錯(cuò)、修改和模塊移植方面也有其獨(dú)到的特點(diǎn)。 狀態(tài)機(jī)有摩爾( Moore)型和米立( Mealy)型兩種。 Moore 型狀態(tài)機(jī)的輸出信號(hào)只與當(dāng)前狀態(tài)有關(guān); Mealy 型狀態(tài)機(jī)的輸出信號(hào)不僅與當(dāng)前狀態(tài)有關(guān),還與輸入信號(hào)有關(guān)。結(jié)合本文設(shè)計(jì), 由于輸出僅與狀態(tài)有關(guān), 選用了 Moore 型狀態(tài)機(jī)設(shè)計(jì)自動(dòng)售貨機(jī)控制模塊,狀態(tài)轉(zhuǎn)換圖如圖 1 所示。 圖 1 自動(dòng)售貨機(jī)狀態(tài)轉(zhuǎn)換圖 1)狀態(tài)定義: S0 表示初態(tài)
19、, S1 表示投入 5 角硬幣, S2 表示投入 1 元硬幣, S3 表示投入 1 元 5 角硬幣, S4 表示投入 2 元硬幣。 2)輸入信號(hào):取投幣信號(hào)為輸入邏輯變量,用兩位的矢量 state_inputs 表示。 state_inputs (0)表示投入 1 元硬幣, state_inputs ( 1)表示投入 5 角硬幣。輸入信號(hào)為 1 表示投入硬幣,輸入信號(hào)為 0 表示未投入硬幣。 3)輸出信號(hào):給出礦泉水和找零為兩個(gè)輸出變量,用兩位的矢量 comb_outputs 表示。 comb_outputs( 0)表示輸出貨物, comb_outputs( 1)表示找 5
20、 角零錢。輸出 信號(hào)為 1 表示輸出貨物或找零,輸出信號(hào)為 EDA技術(shù)是以計(jì)算機(jī)為工具完成數(shù)字系統(tǒng)的邏輯綜合、 布局布線和設(shè)計(jì)仿真等工作。電路設(shè)計(jì)者只需要完成對(duì)系統(tǒng)功能的描述,就可以由計(jì)算機(jī)軟件進(jìn)行系統(tǒng)處理, 最后得到設(shè)計(jì)結(jié)果, 并且修改設(shè)計(jì)方案如同修改軟件一樣方便。 利用 EDA工具可以極大地提高設(shè)計(jì)效率。 利用硬件描述語(yǔ)言編程來(lái)表示邏輯器件及系統(tǒng)硬件的功能和行為, 是 EDA設(shè)計(jì)方法的一個(gè)重要特征。 VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路
21、硬件描述語(yǔ)言)是硬件描述語(yǔ)言的一種,對(duì)系統(tǒng)硬件的描述功能很強(qiáng)而語(yǔ)法又比較簡(jiǎn)單。 VHDL具有強(qiáng)大的行為描述能力,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu), 只需集中精力進(jìn)行電子系統(tǒng)的設(shè)計(jì)和性能優(yōu)化; 具有方便的邏輯仿真與調(diào)試功能, 在設(shè)計(jì)早期就能查驗(yàn)系統(tǒng)的功能, 方便地比較各種方案的可行性及其優(yōu)劣。目前, VHDL作為 IEEE 的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,得到眾多 EDA公司的支持,在電子工程領(lǐng)域已經(jīng)成為事實(shí)上通用硬件描述語(yǔ)言。 本文采用 VHDL作為工具描述了自動(dòng)售貨機(jī)控制模塊的邏輯控制電路, 并在 FPGA 上實(shí)現(xiàn)。該自動(dòng)售貨機(jī)能夠根據(jù)投入硬幣額度, 按預(yù)定的要求在投入硬幣大于規(guī)定值時(shí)送出飲料并找
22、零。 - 5 - 設(shè)計(jì)方案 本文所設(shè)計(jì)的簡(jiǎn)易自動(dòng)售貨機(jī)可銷售礦泉水,假設(shè)每瓶 1.5 元。設(shè)兩個(gè)投幣孔, 分別接收 1 元和 5 角兩種硬幣, 兩個(gè)輸出口, 分別輸出購(gòu)買的商品和找零。 假設(shè)每次只能投入一枚 1 元或 5 角硬幣,投入 1 元 5 角硬幣后機(jī)器自動(dòng)給出一瓶礦泉水; 投入 2 元硬幣后,在給出一瓶礦泉水的同時(shí)找回一枚 5 角的硬幣。另外設(shè)置一復(fù)位按鈕,當(dāng)復(fù)位按鈕按下時(shí),自動(dòng)售貨機(jī)回到初始狀態(tài)。 開(kāi)發(fā)軟件選用功能強(qiáng)大的 Altera 公司的最新可編程邏輯器件開(kāi)發(fā)工具 Quartus II 8.0 ,
23、實(shí)現(xiàn)芯片選用 Altera 公司 FLEX10K系列的 EPF10K10LC84-;4首先在計(jì)算機(jī)上完成程序設(shè)計(jì)、 編譯及時(shí)序仿真, 然后將經(jīng)過(guò)驗(yàn)證的設(shè)計(jì)文件下載到選擇的可編程邏輯器件中,并在電子設(shè)計(jì)自動(dòng)化實(shí)驗(yàn)系統(tǒng)中進(jìn)行硬件模擬和測(cè)試。 狀態(tài)機(jī) VHDL程序設(shè)計(jì) 有限狀態(tài)機(jī) FSM( Finite State Machine )及其設(shè)計(jì)技術(shù)是實(shí)用數(shù)字系統(tǒng)設(shè)計(jì)中實(shí)現(xiàn)高效率、高可靠邏輯控制的重要途徑。 傳統(tǒng)的狀態(tài)機(jī)設(shè)計(jì)方法需進(jìn)行繁瑣的狀態(tài)分配、繪制狀態(tài)表、簡(jiǎn)化次態(tài)方程等,而利用 VHDL可以避免這些煩瑣的過(guò)程,直接利用狀態(tài)轉(zhuǎn)換圖進(jìn)行狀態(tài)機(jī)的描述。此外,與 VHDL的其他描述方式
24、相比,狀態(tài)機(jī)的VHDL表述豐富多樣,程序?qū)哟畏置鳎Y(jié)構(gòu)清晰,易讀易懂;在排錯(cuò)、修改和模塊移植方面也有其獨(dú)到的特點(diǎn)。 狀態(tài)機(jī)有摩爾( Moore)型和米立( Mealy)型兩種。 Moore 型狀態(tài)機(jī)的輸出信號(hào)只與當(dāng)前狀態(tài)有關(guān); Mealy 型狀態(tài)機(jī)的輸出信號(hào)不僅與當(dāng)前狀態(tài)有關(guān),還與輸入信號(hào)有關(guān)。結(jié)合本文設(shè)計(jì), 由于輸出僅與狀態(tài)有關(guān), 選用了 Moore 型狀態(tài)機(jī)設(shè)計(jì)自動(dòng)售貨機(jī)控制模塊,狀態(tài)轉(zhuǎn)換圖如圖 1 所示。 圖 1 自動(dòng)售貨機(jī)狀態(tài)轉(zhuǎn)換圖 1)狀態(tài)定義: S0 表示初態(tài), S1 表示投入 5 角硬幣, S2 表示投入 1 元硬幣, S3 表示投入
25、 1 元 5 角硬幣, S4 表示投入 2 元硬幣。 2)輸入信號(hào):取投幣信號(hào)為輸入邏輯變量,用兩位的矢量 state_inputs 表示。 state_inputs (0)表示投入 1 元硬幣, state_inputs ( 1)表示投入 5 角硬幣。輸入信號(hào)為 1 表示投入硬幣,輸入信號(hào)為 0 表示未投入硬幣。 3)輸出信號(hào):給出礦泉水和找零為兩個(gè)輸出變量,用兩位的矢量 comb_outputs 表示。 comb_outputs( 0)表示輸出貨物, comb_outputs( 1)表示找 5 角零錢。輸出信號(hào)為 1 表示輸出貨物或找零,輸出信號(hào)為 0 表示不輸出貨物或
26、不找零。 根據(jù)圖 1 所示的狀態(tài)轉(zhuǎn)換圖,用 VHDL中的 CASE_WHEN結(jié)構(gòu)和 IF_THEN_ELSE語(yǔ)句實(shí)現(xiàn)控制功能,源程序如下: - 6 - LIBRARY IEEE; -- 庫(kù)和程序包的使用說(shuō)明 USE IEEE.STD_LOGIC_1164.ALL; ENTITY sellmachine IS -- 實(shí)體定義 PORT(clk , reset : IN std_logic; state_inputs:IN std_logic_vector ( 0 TO 1 ); comb
27、_outputs:OUT std_logic_vector (0 TO 1 )) ; END sellmachine; ARCHITECTURE state OF sellmachine IS -- 結(jié)構(gòu)體 TYPE fsm_st IS ( S0,S1, S2,S3,S4) ; -- 狀態(tài)枚舉類型定義 SIGNAL current_state , next_state:fsm_st; -- 狀態(tài)信號(hào)的定義 BEGIN reg:PROCESS(reset ,clk ) -- 時(shí)序進(jìn)程 BEGIN IF reset= ‘1’
28、 THEN current_state 《 =S0; -- 異步復(fù)位 ELSIF rising_edge (clk ) THEN current_state 《=next_state; -- 狀態(tài)轉(zhuǎn)換 END IF; END PROCESS; corn:PROCESS( current_state ,state_inputs ) -- 組合進(jìn)程 BEGIN CASE current_state IS WHEN S0=》comb_outputs 《=“00”; -- 現(xiàn)態(tài) S0 IF state_i
29、nputs 《=“00” THEN next_state 《 =S0; -- 輸入不同,次態(tài)不同 - 7 - ELSIF state_inputs 《=“01” THEN next_state 《 =S1; ELSIF state_inputs 《=“10” T HEN next_state 《=S2; END IF; WHEN S1=》comb_outputs 《=“00”; -- 現(xiàn)態(tài) S1 IF state_inputs 《=“00” THEN next_state 《 =S1;
30、 -- 輸入不同,次態(tài)不同 ELSIF state_inputs 《=“01” THEN next_state 《 =S2; ELSIF state_inputs 《=“10” THEN next_state 《 =S3; END IF; WHEN S2=》comb_outputs 《=“00”; -- 現(xiàn)態(tài) S2 IF state_inputs 《=“00” THEN next_state 《 =S2; -- 輸入不同,次態(tài)不同 ELSIF state_inputs 《=“01” THEN next_state 《 =S3;
31、 ELSIF state_inputs 《=“10” THEN next_state 《 =S4; END IF; WHEN S3=》comb_outputs 《=“10”; -- 現(xiàn)態(tài) S3 IF state_inputs 《=“00” THEN next_state 《 =S0; -- 輸入不同,次態(tài)不同 ELSIF state_inputs 《=“01” THEN next_state 《 =S1; ELSIF state_inputs 《=“10” THEN next_state 《 =S2; END IF;
32、 WHEN S4=》comb_outputs 《=“11”; -- 現(xiàn)態(tài) S4 IF state_inputs 《=“00” THEN next_state 《 =S0; -- 輸入不同,次態(tài)不同 ELSIF state_inputs 《=“01” THEN next_state 《 =S1; ELSIF state_inputs 《=“10” THEN next_state 《 =S2; END IF; - 8 - END CASE; END PROCESS; E
33、ND state; 編譯、仿真及 FPGA實(shí)現(xiàn) 在 Altera 公司的可編程邏輯器件集成開(kāi)發(fā)平臺(tái) Quartus II 8.0 下完成程序的編輯、編譯并進(jìn)行時(shí)序仿真。 1)編譯:編譯是 EDA設(shè)計(jì)中的核心環(huán)節(jié)。 軟件將對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡(jiǎn)、綜合和優(yōu)化, 適當(dāng)?shù)赜靡黄蚨嗥骷M(jìn)行適配,最后產(chǎn)生編程用的編程文件。主要包括設(shè)計(jì)編譯和檢查、邏輯優(yōu)化和綜合、適配和分割、布局和布線、生成編程數(shù)據(jù)文件等過(guò)程。自動(dòng)售貨機(jī)控制模塊 VHDL文件編譯報(bào)告如圖 2 所示。 圖 2 編譯報(bào)告 報(bào)告中給出了進(jìn)行編譯的時(shí)間、 采用的開(kāi)發(fā)軟件的
34、版本、 頂層設(shè)計(jì)實(shí)體名、 選用器件的系列和型號(hào)、時(shí)序分析情況、占用資源情況及引腳使用情況等信息。 2)時(shí)序仿真:編譯后對(duì)系統(tǒng)和各模塊進(jìn)行時(shí)序仿真,分析其時(shí)序關(guān)系,估計(jì)設(shè) 計(jì)的性能及檢查和消除競(jìng)爭(zhēng)冒險(xiǎn)是非常有必要的。 仿真前,先利用波形編輯器建立波 形文件,仿真結(jié)果將會(huì)生成報(bào)告文件和輸出信號(hào)波形, 從中便可以觀察到各個(gè)節(jié)點(diǎn)的 信號(hào)變化。若發(fā)現(xiàn)錯(cuò)誤, 則返回設(shè)計(jì)輸入中修改設(shè)計(jì)邏輯。 自動(dòng)售貨機(jī)控制模塊仿真 波形如圖 3 所示。 圖 3 時(shí)序仿真波形 3) FPGA實(shí)現(xiàn):將編譯階段生成的編程數(shù)據(jù)文件通過(guò) Quartus II
35、下載到芯片EPF10K10LC84-4中,并在電子設(shè)計(jì)自動(dòng)化實(shí)驗(yàn)系統(tǒng)中進(jìn)行測(cè)試得到了正確的結(jié)果。 - 9 - 基于 EDA的自動(dòng)售貨機(jī)的控制系統(tǒng) 1 EDA 技術(shù)簡(jiǎn)介 EDA( Electronic Design Automation ),即電子設(shè)計(jì)自動(dòng)化,是指利用計(jì)算機(jī)
36、完 成電子系統(tǒng)的設(shè)計(jì)。 EDA技術(shù)是以計(jì)算機(jī)和微電子技術(shù)為先導(dǎo)的,匯集了計(jì)算機(jī)圖形 學(xué)、拓?fù)鋵W(xué)、邏輯學(xué)、微電子工藝與結(jié)構(gòu)學(xué)和計(jì)算數(shù)學(xué)等多種計(jì)算機(jī)應(yīng)用學(xué)科最新成 果的先進(jìn)技術(shù)。 EDA技術(shù)以計(jì)算機(jī)為工具,代替人完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計(jì)仿真等工作。 設(shè)計(jì)人員只需要完成對(duì)系統(tǒng)功能的描述, 就可以由計(jì)算機(jī)軟件進(jìn)行處理,得到設(shè)計(jì)結(jié)果, 而且修改設(shè)計(jì)如同修改軟件一樣方便, 可以極大地提高設(shè) 計(jì)效率 [1] 。 1.1 EDA 技術(shù)的發(fā)展概況 從 20 世紀(jì) 60 年代中期開(kāi)始, 人們就不斷開(kāi)發(fā)出各種計(jì)算機(jī)輔助設(shè)計(jì)工具來(lái)幫助設(shè)計(jì)人員進(jìn)行電子系統(tǒng)的
37、設(shè)計(jì)。 電路理論和半導(dǎo)體工藝水平的提高, 對(duì) EDA技術(shù)的發(fā)展起到了巨大的作用,使 EDA作用范圍從 PCB板設(shè)計(jì)延伸到電子線路和集成電路設(shè)計(jì),直至整個(gè)系統(tǒng)的設(shè)計(jì),也使 IC 芯片系統(tǒng)應(yīng)用、電路制作和整個(gè)電子生產(chǎn)過(guò)程都集成 在一個(gè)環(huán)境之中。 根據(jù)電子設(shè)計(jì)技術(shù)的發(fā)展特征, EDA技術(shù)發(fā)展大致分為三個(gè)階段 [2] 。 1.2 EDA 技術(shù)的基本特征 EDA技術(shù)代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員 按照“自頂向下”的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電 - 10 -
38、路用一片或幾片專用集成電路( ASIC)實(shí)現(xiàn),然后采用硬件描述語(yǔ)言( HDL)完成系 統(tǒng)行為級(jí)設(shè)計(jì),最后通過(guò)綜合器和適配器生成最終的目標(biāo)器件 [3] 。這樣的設(shè)計(jì)方法被 稱為高層次的電子設(shè)計(jì)方法。下面介紹與 EDA基本特征有關(guān)的幾個(gè)概念。 1.2.1“自頂向下”的設(shè)計(jì)方法 10 年前,電子設(shè)計(jì)的基本思路還是選擇標(biāo)準(zhǔn)集成電路“自底向上” (Bottom-Up)地構(gòu) 造出一個(gè)新的系統(tǒng),這樣的設(shè)計(jì)方法就如同一磚一瓦地建造金字塔,不僅效率低、成本高而且還容易出錯(cuò)。 1.2.2 高層次設(shè)計(jì) 高層次設(shè)計(jì)提供了一種“自頂向下” (Top-Down)的全新的
39、設(shè)計(jì)方法,這種設(shè)計(jì)方法首先從系統(tǒng)設(shè)計(jì)入手, 在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì)。 在方框圖一級(jí)進(jìn)行仿真、糾錯(cuò),并用硬件描述語(yǔ)言對(duì)高層次的系統(tǒng)行為進(jìn)行描述, 在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證。然后用綜合優(yōu)化工具生成具體門電路的網(wǎng)表, 其對(duì)應(yīng)的物理實(shí)現(xiàn)級(jí)可以是印刷電路板或?qū)S眉呻娐贰?由于設(shè)計(jì)的主要仿真和調(diào)試過(guò)程是在高層次上完成的, 這不僅有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤, 避免設(shè)計(jì)工作的浪費(fèi), 而且也減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率。 2 工作原理 2. 1 任務(wù)概述 自動(dòng)售貨是 20 世紀(jì) 70 年代在日本、 歐美發(fā)展起來(lái)的一種全新的消費(fèi)方式, 自
40、動(dòng)售貨機(jī)又被稱為 24 小時(shí)營(yíng)業(yè)的微型自助超市,它的售貨領(lǐng)域非常廣泛,是發(fā)達(dá)國(guó)家 商品零售的一種主要方式。 自動(dòng)售貨機(jī)作為一種先進(jìn)的消費(fèi)方式, 已經(jīng)成為城市現(xiàn)代文明發(fā)達(dá)程度的重要標(biāo)志,其新穎、時(shí)尚的購(gòu)物方式, 24 小時(shí)營(yíng)業(yè)的特點(diǎn)給人們生活帶來(lái)了便利, 美化了城市環(huán)境, 受到消費(fèi)者的歡迎。 但是在我國(guó)自動(dòng)售貨機(jī)的普及還不及發(fā)達(dá)國(guó)家, 主要原因是我國(guó) EDA技術(shù)的應(yīng)用水平長(zhǎng)期落后于發(fā)達(dá)國(guó)家。 本設(shè)計(jì)要實(shí)現(xiàn)自動(dòng)售貨機(jī)的基本功能,可以實(shí)現(xiàn)投幣處理、計(jì)算投幣總額、輸出商品、輸出 找零的控制。 - 11 -
41、 2.2 系統(tǒng)設(shè)計(jì) 設(shè)計(jì)一臺(tái)自動(dòng)售貨機(jī) ,要求具備貨物信息存儲(chǔ) 、進(jìn)程控制、硬幣處理、余額計(jì)算、自動(dòng)找零、狀態(tài)顯示等功能。該系統(tǒng)能完成貨物信息存儲(chǔ),進(jìn)程控制,硬幣處理,余額計(jì)算,顯示等功能。該系統(tǒng)可以管理四種貨物 ,每種的數(shù)量和單價(jià)在初始化時(shí)輸入,在存儲(chǔ)器中存儲(chǔ)。用戶可以用硬幣進(jìn)行購(gòu)物,按鍵進(jìn)行選擇。系統(tǒng)根據(jù)用戶輸入的貨幣,判斷錢幣是否夠,錢幣足夠則根據(jù)顧客的要求自動(dòng)售貨,錢幣不足則給出提示并退出。系統(tǒng)自動(dòng)的計(jì)算出應(yīng)找錢幣余額、庫(kù)存數(shù)量并顯示。 2.3 系統(tǒng)組成方框圖 系統(tǒng)按功能分為:分頻模塊;控制模塊;譯碼模塊;譯碼顯示模塊。
42、 系統(tǒng)組成方框圖 2.4 工作過(guò)程 首先由售貨員把自動(dòng)售貨機(jī)里的每種商品的數(shù)量和單價(jià)通過(guò) set 鍵和 sel 鍵 置入到 RAM里。然后顧客通過(guò) sel 鍵對(duì)所需要購(gòu)買的商品進(jìn)行選擇,選定以后通 過(guò) get 鍵進(jìn)行購(gòu)買,再按 finish 鍵取回找?guī)?,同時(shí)結(jié)束此次交易。按 get 鍵時(shí),如果投的錢數(shù)等于或則大于所購(gòu)買的商品單價(jià),則自動(dòng)售貨機(jī)會(huì)給出所購(gòu)買的商 品;如果投的錢數(shù)不夠,自動(dòng)售貨機(jī)不做響應(yīng),繼續(xù)等待顧客的下次操作。顧客的下次操
43、作可以繼續(xù)投幣,直到錢數(shù)到達(dá)所要的商品單價(jià)進(jìn)行購(gòu)買;也可以直接按 finish 鍵退幣。 - 12 - 3 設(shè)計(jì)方案 3.1 自動(dòng)售貨機(jī) VHDL程序 -- 文件名: AUTO.vhd。 -- 功能:硬幣處理,余額計(jì)算,輸出商品。 -- 說(shuō)明:顯示的錢數(shù) coin 的 以 5 角為單位。 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.a
44、ll; use ieee.std_logic_unsigned.all; entity AUTO is port ( clk:in std_logic; -- 系統(tǒng)時(shí)鐘 set,get,sel,finish: in std_logic; -- 設(shè)定、買、選擇、完成信號(hào) coin0,coin1: in std_logic; --5 角硬幣、 1 元硬幣 price,quantity :in std_logic_vector(3 downto 0); -- 價(jià)格、數(shù)量數(shù)據(jù) item0 , act:out std_logic_v
45、ector(3 downto 0); -- 顯示、開(kāi)關(guān)信號(hào) y0,y1 :out std_logic_vector(6 downto 0); -- 錢數(shù)、商品數(shù)量顯示數(shù)據(jù) act10,act5 :out std_logic); --1 元硬幣、 5 角硬幣 end AUTO; architecture behav of AUTO is type ram_type is array(3 downto 0)of std_logic_vector(7 downto 0); signal ram :ram_type; -- 定義 RAM
46、 signal item: std_logic_vector(1 downto 0); -- 商品種類 signal coin: std_logic_vector(3 downto 0); -- 幣數(shù)計(jì)數(shù)器 signal pri,qua:std_logic_vector(3 downto 0); -- 商品單價(jià)、數(shù)量 signal clk1: std_logic; -- 控制系統(tǒng)的時(shí)鐘信號(hào) begin com:process(set,clk1) variable quan:std_logic_vector(3 downto 0); begin
47、 if set=1 then ram(conv_integer(item))<=price & quantity;act<="0000"; - 13 - -- 把商品的單價(jià)、數(shù)量置入到 RAM elsif clk1event and clk1=1 then act5<=0; act10<=0; if coin0=1 then if coin<"1001"then coin<=coin+1; -- 投入 5 角硬幣, coin 自加 1 else coin<="0000"; end if; elsif
48、 coin1=1 then if coin<"1001"then coin<=coin+2; -- 投入 1 元硬幣, coin 自加 2 else coin<="0000"; end if; elsif sel= ‘1’ then item<=item+1; -- 對(duì)商品進(jìn)行循環(huán)選擇 elsif get=1 then -- 對(duì)商品進(jìn)行購(gòu)買 if qua>"0000" and coin>=pri then coin<=coin-pri;quan:=quan-1; ram(conv_integer(item))<=pri & quan;
49、 if item="00" then act<="1000"; -- 購(gòu)買時(shí),自動(dòng)售貨機(jī)對(duì) 4 種商品的操作 elsif item="01" then act<="0100"; elsif item="10" then act<="0010"; elsif item="11" then act<="0001"; end if; end if; elsif finish=1 then -- 結(jié)束交易,退幣(找?guī)牛? if coin> “0001” then act10<= ‘1’;coin<=coin-2; -- 此 IF 語(yǔ)句完成找?guī)挪僮?
50、 elsif coin>"0000" then act5<=1; coin<=coin-1; else act5<=0; act10<=0; end if; elsif get=0 then act<="0000"; for i in 4 to 7 loop pri(i-4)<=ram (conv_integer(item))(i); -- 商品單價(jià)的讀取 end loop; for i in 0 to 3 loop quan(i):=ram(conv_integer(item))(i); -- 商品數(shù)量的讀取 - 14 -
51、 end loop; end if; end if; qua<=quan; end process com; m32:process(clk) -- 此進(jìn)程完成對(duì) 32Mhz的脈沖分頻 variable q: std_logic_vector( 24 downto 0); begin if clkevent and clk=1 then q:=q+1; end if; if q="111111111111111111111111" then clk1<=1; else clk1<=0; e
52、nd if; end process m32; code0:process(item) -- 商品指示燈譯碼 begin case item is when "00"=>item0<="0111"; when "01"=>item0<="1011"; when "10"=>item0<="1101"; when others=>item0<="1110"; end case; end process code1: process (coin) -- 錢數(shù)的 BCD到七段碼的譯碼 Begin case coin is
53、 when "0000"=>y0<="0000001"; when "0001"=>y0<="1001111"; when "0010"=>y0<="0010010"; when "0011"=>y0<="0000110"; when "0100"=>y0<="1001100"; when "0101"=>y0<="0100100"; when "0110"=>y0<="0100000"; when "0111"=>y0<="0001111"; - 15 - when "1000"=>y0<="0
54、000000"; when "1001"=>y0<="0000100"; when others=>y0<="1111111"; end case; end process; code2: process (qua) -- 單價(jià)的 BCD到七段碼的譯碼 Begin case qua is when "0000"=>y1<="0000001"; when "0001"=>y1<="1001111"; when "0010"=>y1<="0010010"; when "0011"=>y1<="0000110"; when "
55、0100"=>y1<="1001100"; when "0101"=>y1<="0100100"; when "0110"=>y1<="0100000"; when "0111"=>y1<="0001111"; when "1000"=>y1<="0000000"; when "1001"=>y1<="0000100"; when others=>y1<="1111111"; end case; end process; end behav; 3.2 各功能部件系統(tǒng)仿真圖 通過(guò)軟件仿真,得出如下仿真圖:
56、 - 16 - 系統(tǒng)仿真全圖
57、 - 17 - 系統(tǒng)仿真圖 -商品種類選擇部分 系統(tǒng)仿真圖 -投幣部分 系統(tǒng)仿真圖 -購(gòu)買、找?guī)沤Y(jié)束交易部 - 1
58、8 - 結(jié) 論 這次設(shè)計(jì)完成了。再設(shè)計(jì)中遇到了種種問(wèn)題,在自己查閱資料及老師的幫助下一 一攻克了。在即將開(kāi)設(shè) EDA專業(yè)課程時(shí), 為了能夠更加熟練的掌握本課程, 選擇了這 個(gè)學(xué)年設(shè)計(jì)。在設(shè)計(jì)過(guò)程中,通過(guò)自己的動(dòng)手及查閱了相關(guān)資料,初步了解了 VHDL 語(yǔ)言的編程, 并熟悉了相關(guān)軟件的使用。
59、 本次學(xué)年設(shè)計(jì)我學(xué)到了不少新的東西, 也發(fā)現(xiàn)了大量的問(wèn)題, 有些在設(shè)計(jì)過(guò)程中已經(jīng)解決, 有些還有待今后慢慢學(xué)習(xí)。 學(xué)習(xí)中會(huì)有更多的問(wèn)題,有更多的難點(diǎn),但也會(huì)有更多的收獲。 這次設(shè)計(jì)不僅提高了動(dòng)手能力,更培養(yǎng)了自學(xué) ,獨(dú)立思考和處理問(wèn)題的能力。 為以后的學(xué)習(xí)和工作提供了幫助。 由于我的水平有限, 學(xué)年設(shè)計(jì)還并不十分完善, 論文還有許多疏漏, 懇請(qǐng)各位老師批評(píng)指正。 - 19 -
60、 參考文獻(xiàn) [1] 鄭燕 . 基于 VHDL語(yǔ)言與 Quartus Ⅱ軟件的可編程邏輯器件應(yīng)用與開(kāi)發(fā) .2007. [2] 楊曉慧 . 基于 FPGA的 EDA/SOPC技術(shù)與 VHDL.2007. [3] 張霞. VHDL在現(xiàn)代 EDA中的應(yīng)用. 2001. [4] 潘松、黃繼業(yè). EDA技術(shù)實(shí)用教程 2002. [5] 李志方. EDA技術(shù)簡(jiǎn)介 .2001 . - 20 -
- 溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國(guó)人民警察節(jié)(筑牢忠誠(chéng)警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國(guó)企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國(guó)青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書(shū)記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長(zhǎng)會(huì)長(zhǎng)長(zhǎng)的路慢慢地走