EDA自動售貨機(jī)設(shè)計
《EDA自動售貨機(jī)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《EDA自動售貨機(jī)設(shè)計(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 摘 要 人類社會已進(jìn)入到高度發(fā)達(dá)的信息化社會, 信息社會的發(fā)展離不開電子產(chǎn)品的進(jìn)步?,F(xiàn)代電子產(chǎn)品在性能提高、復(fù)雜度增大的同時,價格卻一直呈下降趨勢,而且產(chǎn)品更新?lián)Q代的步伐也越來越快, 實現(xiàn)這種進(jìn)步的主要原因就是生產(chǎn)制造技術(shù)和電子設(shè)計技術(shù)的發(fā)展。 自動售貨是 20 世紀(jì) 70 年代在日本、 歐美發(fā)展起來的一種全新的消費方式, 自動售貨機(jī)又被稱為 24 小時營業(yè)的微型自助超市,它的售貨領(lǐng)域非常廣泛,是發(fā)達(dá)國家 商品零售的一種主要方式。 本設(shè)計要實現(xiàn)自動售貨機(jī)的基本功能, 如投幣處理、 商品 選擇、購貨撤銷、異常退幣、計算存貨等
2、功能。采用 VHDL硬件描述語言編程的設(shè)計 方法設(shè)計系統(tǒng)核心電路的硬件程序,與一般的軟件開發(fā)不同, VHDL 編程更需要熟悉 一些底層的硬件知識,特別是數(shù)字邏輯電路的設(shè)計,因此 VHDL編程的方法、思路都要更多的與硬件電路聯(lián)系起來。 完成系統(tǒng)各個功能模塊的硬件程序設(shè)計后, 在軟件平 臺上進(jìn)行編譯和電路仿真,最后生成的目標(biāo)文件下載到實驗臺內(nèi)的 FPGA芯片以實現(xiàn)該系統(tǒng),并在實驗臺上對設(shè)計進(jìn)行驗證。 關(guān)鍵字 :自動售貨機(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ù)簡介 ................................................. - 10 - 1.1 EDA 技術(shù)的發(fā)展概況 ..................................... - 10 - 1.2 EDA 技術(shù)的基本特征 ..................................... - 10 - 1.2.1 “自頂向下”的設(shè)計方法 ....
8、........................ - 11 - 1.2.2 高層次設(shè)計 ........................................ - 11 - 2 工作原理 ..................................................... - 11 - 2. 1 任務(wù)概述 .............................................. - 11 - 2.2 系統(tǒng)設(shè)計 - 12 - 2.3 系統(tǒng)組成方框圖 ...........................
9、.............. - 12 - 2.4 工作過程 ............................................... - 12 - 3 設(shè)計方案 ..................................................... - 13 - 3.1 自動售貨機(jī) VHDL程序 .................................... - 13 - 3.2 各功能部件系統(tǒng)仿真圖 ................................... - 16 - 結(jié) 論 .......
10、................................................. - 19 - 參考文獻(xiàn) ...................................................... - 20 - - 2 -
11、 引言 自動售貨機(jī)能夠根據(jù)投入錢幣自動收貨的機(jī)器,是商業(yè)自動化的常用設(shè)備。不受 時間、地點的限制,能節(jié)省人力物力。 現(xiàn)代售貨機(jī)的功能、 結(jié)構(gòu)根據(jù)商品的種類而異。 貨幣裝置時售貨機(jī)的核心, 其主要功能是確認(rèn)投入幣數(shù)及面值, 計算余額,找兌余額。 因此,自動售貨機(jī)在商業(yè),食品業(yè)越來越普及,更方便消費者購買自己所需的商品。 使用方便、可靠、節(jié)省人力的自動售貨機(jī)將在社會生活中成為一種趨勢。 新 浪 騰訊 ?QQ 空間搜 狐 網(wǎng) 易 谷 歌 鳳 凰 網(wǎng)新 浪微博 新 華 網(wǎng) 人
12、 民 網(wǎng)中國移動 中國政府網(wǎng) 人 人 網(wǎng)開 心 網(wǎng) 天涯社區(qū) 汽車之家 4399 游戲太平洋電腦 東方財富 中華英才網(wǎng) 中 彩 網(wǎng) 賽 爾 號智聯(lián)招聘 攜程旅行網(wǎng) CNTV 中國電信 58 同城 淘 寶 網(wǎng)湖南衛(wèi)視 大眾點評網(wǎng) 工商銀行 凡客誠品 中關(guān)村在線 國美電器 易 車 網(wǎng) 去哪兒網(wǎng) 京東商城 蘇寧易購 新功能 刷卡購物功能: 在網(wǎng)絡(luò)環(huán)境支持情況下,具備多種電子支付功能,如信用卡、儲值卡、手機(jī)卡等刷卡消費。 多種貨幣識別功能:
13、電控系統(tǒng)可以配合紙幣、硬幣識別器增加代金券功能,可以識別紙質(zhì)和硬幣類型的代金券。 數(shù)據(jù)下載功能: 應(yīng)用 USB技術(shù),使用一個優(yōu)盤,就能輕松下載售貨機(jī)的運營信息,然后使用 PC機(jī)對下載的 數(shù)據(jù)進(jìn)行處理,便于運營商掌握不同地區(qū)、不同機(jī)器、不同商品的售賣情況。 - 3 - 無線網(wǎng)絡(luò)運營管理功能: 將自動售貨機(jī)當(dāng)前運營的數(shù)據(jù),包括系統(tǒng)狀態(tài)、系統(tǒng)故障、料道故障、缺貨情況、銷售數(shù)據(jù) 通過安裝在自動售貨機(jī)上的 GPRS模塊無線傳輸?shù)绞圬洐C(jī)網(wǎng)絡(luò)服務(wù)器,運營人員可以在任何一臺 聯(lián)網(wǎng)的電腦上掌握售貨機(jī)的這些
14、信息,實現(xiàn)自動售貨機(jī)的大規(guī)模運營和網(wǎng)絡(luò)化管理。 EDA技術(shù)是以計算機(jī)為工具完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計仿真等工 作。電路設(shè)計者只需要完成對系統(tǒng)功能的描述,就可以由計算機(jī)軟件進(jìn)行系統(tǒng)處理, 最后得到設(shè)計結(jié)果, 并且修改設(shè)計方案如同修改軟件一樣方便。 利用 EDA工具可以極大地提高設(shè)計效率。 利用硬件描述語言編程來表示邏輯器件及系統(tǒng)硬件的功能和行為, 是 EDA設(shè)計方法的一個重要特征。 VHDL(Very High Speed Integrated Circuit Hardware Description La
15、nguage,超高速集成電路硬件描述語言)是硬件描述語言的一種,對系統(tǒng)硬件的描述功能很強(qiáng)而語法又比較簡單。 VHDL具有強(qiáng)大的行為描述能力,設(shè)計者可以不懂硬件的結(jié)構(gòu), 只需集中精力進(jìn)行電子系統(tǒng)的設(shè)計和性能優(yōu)化; 具有方便的邏輯仿真與調(diào)試功能, 在設(shè)計早期就能查驗系統(tǒng)的功能, 方便地比較各種方案的可行性及其優(yōu)劣。目前, VHDL作為 IEEE 的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多 EDA公司的支持,在電子工程領(lǐng)域已經(jīng)成為事實上通用硬件描述語言。 本文采用 VHDL作為工具描述了自動售貨機(jī)控制模塊的邏輯控制電路, 并在 FPGA 上實現(xiàn)。該自動售貨機(jī)能夠根據(jù)投入硬幣額度, 按預(yù)定的要求在投入
16、硬幣大于規(guī)定值 時送出飲料并找零。 設(shè)計方案 本文所設(shè)計的簡易自動售貨機(jī)可銷售礦泉水,假設(shè)每瓶 1.5 元。設(shè)兩個投幣孔,分別接收 1 元和 5 角兩種硬幣, 兩個輸出口, 分別輸出購買的商品和找零。 假設(shè)每次只能投入一枚 1 元或 5 角硬幣,投入 1 元 5 角硬幣后機(jī)器自動給出一瓶礦泉水; 投入 2 元硬幣后,在給出一瓶礦泉水的同時找回一枚 5 角的硬幣。另外設(shè)置一復(fù)位按鈕,當(dāng)復(fù)位按鈕按下時,自動售貨機(jī)回到初始狀態(tài)。 開發(fā)軟件選用功能強(qiáng)大的 Altera 公司的最新可編程邏輯器件開發(fā)工具 Quartus II 8.0 ,實現(xiàn)芯片選用 Alt
17、era 公司 FLEX10K系列的 EPF10K10LC84-;4首先在計算機(jī)上完成程序設(shè)計、 編譯及時序仿真, 然后將經(jīng)過驗證的設(shè)計文件下載到選擇的可編程邏輯器件中,并在電子設(shè)計自動化實驗系統(tǒng)中進(jìn)行硬件模擬和測試。 狀態(tài)機(jī) VHDL程序設(shè)計 - 4 - 0 表示不輸出貨物或不找零。 有限狀態(tài)機(jī) FSM( Finite State Machine )及其設(shè)計技術(shù)是實用數(shù)字系統(tǒng)設(shè)計中實現(xiàn)高效率、高可靠邏輯控制的重要途徑。 傳統(tǒng)的狀態(tài)機(jī)設(shè)計方法需進(jìn)行繁瑣的狀態(tài)分配、繪制狀態(tài)表、簡化次態(tài)方程等,而利用 VHDL可以避免這些煩瑣的
18、過程,直接利用狀態(tài)轉(zhuǎn)換圖進(jìn)行狀態(tài)機(jī)的描述。此外,與 VHDL的其他描述方式相比,狀態(tài)機(jī)的VHDL表述豐富多樣,程序?qū)哟畏置?,結(jié)構(gòu)清晰,易讀易懂;在排錯、修改和模塊移植方面也有其獨到的特點。 狀態(tài)機(jī)有摩爾( Moore)型和米立( Mealy)型兩種。 Moore 型狀態(tài)機(jī)的輸出信號只與當(dāng)前狀態(tài)有關(guān); Mealy 型狀態(tài)機(jī)的輸出信號不僅與當(dāng)前狀態(tài)有關(guān),還與輸入信號有關(guān)。結(jié)合本文設(shè)計, 由于輸出僅與狀態(tài)有關(guān), 選用了 Moore 型狀態(tài)機(jī)設(shè)計自動售貨機(jī)控制模塊,狀態(tài)轉(zhuǎn)換圖如圖 1 所示。 圖 1 自動售貨機(jī)狀態(tài)轉(zhuǎn)換圖 1)狀態(tài)定義: S0 表示初態(tài)
19、, S1 表示投入 5 角硬幣, S2 表示投入 1 元硬幣, S3 表示投入 1 元 5 角硬幣, S4 表示投入 2 元硬幣。 2)輸入信號:取投幣信號為輸入邏輯變量,用兩位的矢量 state_inputs 表示。 state_inputs (0)表示投入 1 元硬幣, state_inputs ( 1)表示投入 5 角硬幣。輸入信號為 1 表示投入硬幣,輸入信號為 0 表示未投入硬幣。 3)輸出信號:給出礦泉水和找零為兩個輸出變量,用兩位的矢量 comb_outputs 表示。 comb_outputs( 0)表示輸出貨物, comb_outputs( 1)表示找 5
20、 角零錢。輸出 信號為 1 表示輸出貨物或找零,輸出信號為 EDA技術(shù)是以計算機(jī)為工具完成數(shù)字系統(tǒng)的邏輯綜合、 布局布線和設(shè)計仿真等工作。電路設(shè)計者只需要完成對系統(tǒng)功能的描述,就可以由計算機(jī)軟件進(jìn)行系統(tǒng)處理, 最后得到設(shè)計結(jié)果, 并且修改設(shè)計方案如同修改軟件一樣方便。 利用 EDA工具可以極大地提高設(shè)計效率。 利用硬件描述語言編程來表示邏輯器件及系統(tǒng)硬件的功能和行為, 是 EDA設(shè)計方法的一個重要特征。 VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路
21、硬件描述語言)是硬件描述語言的一種,對系統(tǒng)硬件的描述功能很強(qiáng)而語法又比較簡單。 VHDL具有強(qiáng)大的行為描述能力,設(shè)計者可以不懂硬件的結(jié)構(gòu), 只需集中精力進(jìn)行電子系統(tǒng)的設(shè)計和性能優(yōu)化; 具有方便的邏輯仿真與調(diào)試功能, 在設(shè)計早期就能查驗系統(tǒng)的功能, 方便地比較各種方案的可行性及其優(yōu)劣。目前, VHDL作為 IEEE 的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多 EDA公司的支持,在電子工程領(lǐng)域已經(jīng)成為事實上通用硬件描述語言。 本文采用 VHDL作為工具描述了自動售貨機(jī)控制模塊的邏輯控制電路, 并在 FPGA 上實現(xiàn)。該自動售貨機(jī)能夠根據(jù)投入硬幣額度, 按預(yù)定的要求在投入硬幣大于規(guī)定值時送出飲料并找
22、零。 - 5 - 設(shè)計方案 本文所設(shè)計的簡易自動售貨機(jī)可銷售礦泉水,假設(shè)每瓶 1.5 元。設(shè)兩個投幣孔, 分別接收 1 元和 5 角兩種硬幣, 兩個輸出口, 分別輸出購買的商品和找零。 假設(shè)每次只能投入一枚 1 元或 5 角硬幣,投入 1 元 5 角硬幣后機(jī)器自動給出一瓶礦泉水; 投入 2 元硬幣后,在給出一瓶礦泉水的同時找回一枚 5 角的硬幣。另外設(shè)置一復(fù)位按鈕,當(dāng)復(fù)位按鈕按下時,自動售貨機(jī)回到初始狀態(tài)。 開發(fā)軟件選用功能強(qiáng)大的 Altera 公司的最新可編程邏輯器件開發(fā)工具 Quartus II 8.0 ,
23、實現(xiàn)芯片選用 Altera 公司 FLEX10K系列的 EPF10K10LC84-;4首先在計算機(jī)上完成程序設(shè)計、 編譯及時序仿真, 然后將經(jīng)過驗證的設(shè)計文件下載到選擇的可編程邏輯器件中,并在電子設(shè)計自動化實驗系統(tǒng)中進(jìn)行硬件模擬和測試。 狀態(tài)機(jī) VHDL程序設(shè)計 有限狀態(tài)機(jī) FSM( Finite State Machine )及其設(shè)計技術(shù)是實用數(shù)字系統(tǒng)設(shè)計中實現(xiàn)高效率、高可靠邏輯控制的重要途徑。 傳統(tǒng)的狀態(tài)機(jī)設(shè)計方法需進(jìn)行繁瑣的狀態(tài)分配、繪制狀態(tài)表、簡化次態(tài)方程等,而利用 VHDL可以避免這些煩瑣的過程,直接利用狀態(tài)轉(zhuǎn)換圖進(jìn)行狀態(tài)機(jī)的描述。此外,與 VHDL的其他描述方式
24、相比,狀態(tài)機(jī)的VHDL表述豐富多樣,程序?qū)哟畏置?,結(jié)構(gòu)清晰,易讀易懂;在排錯、修改和模塊移植方面也有其獨到的特點。 狀態(tài)機(jī)有摩爾( Moore)型和米立( Mealy)型兩種。 Moore 型狀態(tài)機(jī)的輸出信號只與當(dāng)前狀態(tài)有關(guān); Mealy 型狀態(tài)機(jī)的輸出信號不僅與當(dāng)前狀態(tài)有關(guān),還與輸入信號有關(guān)。結(jié)合本文設(shè)計, 由于輸出僅與狀態(tài)有關(guān), 選用了 Moore 型狀態(tài)機(jī)設(shè)計自動售貨機(jī)控制模塊,狀態(tài)轉(zhuǎn)換圖如圖 1 所示。 圖 1 自動售貨機(jī)狀態(tài)轉(zhuǎn)換圖 1)狀態(tài)定義: S0 表示初態(tài), S1 表示投入 5 角硬幣, S2 表示投入 1 元硬幣, S3 表示投入
25、 1 元 5 角硬幣, S4 表示投入 2 元硬幣。 2)輸入信號:取投幣信號為輸入邏輯變量,用兩位的矢量 state_inputs 表示。 state_inputs (0)表示投入 1 元硬幣, state_inputs ( 1)表示投入 5 角硬幣。輸入信號為 1 表示投入硬幣,輸入信號為 0 表示未投入硬幣。 3)輸出信號:給出礦泉水和找零為兩個輸出變量,用兩位的矢量 comb_outputs 表示。 comb_outputs( 0)表示輸出貨物, comb_outputs( 1)表示找 5 角零錢。輸出信號為 1 表示輸出貨物或找零,輸出信號為 0 表示不輸出貨物或
26、不找零。 根據(jù)圖 1 所示的狀態(tài)轉(zhuǎn)換圖,用 VHDL中的 CASE_WHEN結(jié)構(gòu)和 IF_THEN_ELSE語句實現(xiàn)控制功能,源程序如下: - 6 - LIBRARY IEEE; -- 庫和程序包的使用說明 USE IEEE.STD_LOGIC_1164.ALL; ENTITY sellmachine IS -- 實體定義 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)信號的定義 BEGIN reg:PROCESS(reset ,clk ) -- 時序進(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實現(xiàn) 在 Altera 公司的可編程邏輯器件集成開發(fā)平臺 Quartus II 8.0 下完成程序的編輯、編譯并進(jìn)行時序仿真。 1)編譯:編譯是 EDA設(shè)計中的核心環(huán)節(jié)。 軟件將對設(shè)計輸入文件進(jìn)行邏輯化簡、綜合和優(yōu)化, 適當(dāng)?shù)赜靡黄蚨嗥骷M(jìn)行適配,最后產(chǎn)生編程用的編程文件。主要包括設(shè)計編譯和檢查、邏輯優(yōu)化和綜合、適配和分割、布局和布線、生成編程數(shù)據(jù)文件等過程。自動售貨機(jī)控制模塊 VHDL文件編譯報告如圖 2 所示。 圖 2 編譯報告 報告中給出了進(jìn)行編譯的時間、 采用的開發(fā)軟件的
34、版本、 頂層設(shè)計實體名、 選用器件的系列和型號、時序分析情況、占用資源情況及引腳使用情況等信息。 2)時序仿真:編譯后對系統(tǒng)和各模塊進(jìn)行時序仿真,分析其時序關(guān)系,估計設(shè) 計的性能及檢查和消除競爭冒險是非常有必要的。 仿真前,先利用波形編輯器建立波 形文件,仿真結(jié)果將會生成報告文件和輸出信號波形, 從中便可以觀察到各個節(jié)點的 信號變化。若發(fā)現(xiàn)錯誤, 則返回設(shè)計輸入中修改設(shè)計邏輯。 自動售貨機(jī)控制模塊仿真 波形如圖 3 所示。 圖 3 時序仿真波形 3) FPGA實現(xiàn):將編譯階段生成的編程數(shù)據(jù)文件通過 Quartus II
35、下載到芯片EPF10K10LC84-4中,并在電子設(shè)計自動化實驗系統(tǒng)中進(jìn)行測試得到了正確的結(jié)果。 - 9 - 基于 EDA的自動售貨機(jī)的控制系統(tǒng) 1 EDA 技術(shù)簡介 EDA( Electronic Design Automation ),即電子設(shè)計自動化,是指利用計算機(jī)
36、完 成電子系統(tǒng)的設(shè)計。 EDA技術(shù)是以計算機(jī)和微電子技術(shù)為先導(dǎo)的,匯集了計算機(jī)圖形 學(xué)、拓?fù)鋵W(xué)、邏輯學(xué)、微電子工藝與結(jié)構(gòu)學(xué)和計算數(shù)學(xué)等多種計算機(jī)應(yīng)用學(xué)科最新成 果的先進(jìn)技術(shù)。 EDA技術(shù)以計算機(jī)為工具,代替人完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計仿真等工作。 設(shè)計人員只需要完成對系統(tǒng)功能的描述, 就可以由計算機(jī)軟件進(jìn)行處理,得到設(shè)計結(jié)果, 而且修改設(shè)計如同修改軟件一樣方便, 可以極大地提高設(shè) 計效率 [1] 。 1.1 EDA 技術(shù)的發(fā)展概況 從 20 世紀(jì) 60 年代中期開始, 人們就不斷開發(fā)出各種計算機(jī)輔助設(shè)計工具來幫助設(shè)計人員進(jìn)行電子系統(tǒng)的
37、設(shè)計。 電路理論和半導(dǎo)體工藝水平的提高, 對 EDA技術(shù)的發(fā)展起到了巨大的作用,使 EDA作用范圍從 PCB板設(shè)計延伸到電子線路和集成電路設(shè)計,直至整個系統(tǒng)的設(shè)計,也使 IC 芯片系統(tǒng)應(yīng)用、電路制作和整個電子生產(chǎn)過程都集成 在一個環(huán)境之中。 根據(jù)電子設(shè)計技術(shù)的發(fā)展特征, EDA技術(shù)發(fā)展大致分為三個階段 [2] 。 1.2 EDA 技術(shù)的基本特征 EDA技術(shù)代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人員 按照“自頂向下”的設(shè)計方法,對整個系統(tǒng)進(jìn)行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電 - 10 -
38、路用一片或幾片專用集成電路( ASIC)實現(xiàn),然后采用硬件描述語言( HDL)完成系 統(tǒng)行為級設(shè)計,最后通過綜合器和適配器生成最終的目標(biāo)器件 [3] 。這樣的設(shè)計方法被 稱為高層次的電子設(shè)計方法。下面介紹與 EDA基本特征有關(guān)的幾個概念。 1.2.1“自頂向下”的設(shè)計方法 10 年前,電子設(shè)計的基本思路還是選擇標(biāo)準(zhǔn)集成電路“自底向上” (Bottom-Up)地構(gòu) 造出一個新的系統(tǒng),這樣的設(shè)計方法就如同一磚一瓦地建造金字塔,不僅效率低、成本高而且還容易出錯。 1.2.2 高層次設(shè)計 高層次設(shè)計提供了一種“自頂向下” (Top-Down)的全新的
39、設(shè)計方法,這種設(shè)計方法首先從系統(tǒng)設(shè)計入手, 在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計。 在方框圖一級進(jìn)行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進(jìn)行描述, 在系統(tǒng)一級進(jìn)行驗證。然后用綜合優(yōu)化工具生成具體門電路的網(wǎng)表, 其對應(yīng)的物理實現(xiàn)級可以是印刷電路板或?qū)S眉呻娐贰?由于設(shè)計的主要仿真和調(diào)試過程是在高層次上完成的, 這不僅有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤, 避免設(shè)計工作的浪費, 而且也減少了邏輯功能仿真的工作量,提高了設(shè)計的一次成功率。 2 工作原理 2. 1 任務(wù)概述 自動售貨是 20 世紀(jì) 70 年代在日本、 歐美發(fā)展起來的一種全新的消費方式, 自
40、動售貨機(jī)又被稱為 24 小時營業(yè)的微型自助超市,它的售貨領(lǐng)域非常廣泛,是發(fā)達(dá)國家 商品零售的一種主要方式。 自動售貨機(jī)作為一種先進(jìn)的消費方式, 已經(jīng)成為城市現(xiàn)代文明發(fā)達(dá)程度的重要標(biāo)志,其新穎、時尚的購物方式, 24 小時營業(yè)的特點給人們生活帶來了便利, 美化了城市環(huán)境, 受到消費者的歡迎。 但是在我國自動售貨機(jī)的普及還不及發(fā)達(dá)國家, 主要原因是我國 EDA技術(shù)的應(yīng)用水平長期落后于發(fā)達(dá)國家。 本設(shè)計要實現(xiàn)自動售貨機(jī)的基本功能,可以實現(xiàn)投幣處理、計算投幣總額、輸出商品、輸出 找零的控制。 - 11 -
41、 2.2 系統(tǒng)設(shè)計 設(shè)計一臺自動售貨機(jī) ,要求具備貨物信息存儲 、進(jìn)程控制、硬幣處理、余額計算、自動找零、狀態(tài)顯示等功能。該系統(tǒng)能完成貨物信息存儲,進(jìn)程控制,硬幣處理,余額計算,顯示等功能。該系統(tǒng)可以管理四種貨物 ,每種的數(shù)量和單價在初始化時輸入,在存儲器中存儲。用戶可以用硬幣進(jìn)行購物,按鍵進(jìn)行選擇。系統(tǒng)根據(jù)用戶輸入的貨幣,判斷錢幣是否夠,錢幣足夠則根據(jù)顧客的要求自動售貨,錢幣不足則給出提示并退出。系統(tǒng)自動的計算出應(yīng)找錢幣余額、庫存數(shù)量并顯示。 2.3 系統(tǒng)組成方框圖 系統(tǒng)按功能分為:分頻模塊;控制模塊;譯碼模塊;譯碼顯示模塊。
42、 系統(tǒng)組成方框圖 2.4 工作過程 首先由售貨員把自動售貨機(jī)里的每種商品的數(shù)量和單價通過 set 鍵和 sel 鍵 置入到 RAM里。然后顧客通過 sel 鍵對所需要購買的商品進(jìn)行選擇,選定以后通 過 get 鍵進(jìn)行購買,再按 finish 鍵取回找?guī)?,同時結(jié)束此次交易。按 get 鍵時,如果投的錢數(shù)等于或則大于所購買的商品單價,則自動售貨機(jī)會給出所購買的商 品;如果投的錢數(shù)不夠,自動售貨機(jī)不做響應(yīng),繼續(xù)等待顧客的下次操作。顧客的下次操
43、作可以繼續(xù)投幣,直到錢數(shù)到達(dá)所要的商品單價進(jìn)行購買;也可以直接按 finish 鍵退幣。 - 12 - 3 設(shè)計方案 3.1 自動售貨機(jī) VHDL程序 -- 文件名: AUTO.vhd。 -- 功能:硬幣處理,余額計算,輸出商品。 -- 說明:顯示的錢數(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)時鐘 set,get,sel,finish: in std_logic; -- 設(shè)定、買、選擇、完成信號 coin0,coin1: in std_logic; --5 角硬幣、 1 元硬幣 price,quantity :in std_logic_vector(3 downto 0); -- 價格、數(shù)量數(shù)據(jù) item0 , act:out std_logic_v
45、ector(3 downto 0); -- 顯示、開關(guān)信號 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ù)計數(shù)器 signal pri,qua:std_logic_vector(3 downto 0); -- 商品單價、數(shù)量 signal clk1: std_logic; -- 控制系統(tǒng)的時鐘信號 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 - -- 把商品的單價、數(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; -- 對商品進(jìn)行循環(huán)選擇 elsif get=1 then -- 對商品進(jìn)行購買 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"; -- 購買時,自動售貨機(jī)對 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 語句完成找?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); -- 商品單價的讀取 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)程完成對 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) -- 單價的 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)仿真圖 通過軟件仿真,得出如下仿真圖:
56、 - 16 - 系統(tǒng)仿真全圖
57、 - 17 - 系統(tǒng)仿真圖 -商品種類選擇部分 系統(tǒng)仿真圖 -投幣部分 系統(tǒng)仿真圖 -購買、找?guī)沤Y(jié)束交易部 - 1
58、8 - 結(jié) 論 這次設(shè)計完成了。再設(shè)計中遇到了種種問題,在自己查閱資料及老師的幫助下一 一攻克了。在即將開設(shè) EDA專業(yè)課程時, 為了能夠更加熟練的掌握本課程, 選擇了這 個學(xué)年設(shè)計。在設(shè)計過程中,通過自己的動手及查閱了相關(guān)資料,初步了解了 VHDL 語言的編程, 并熟悉了相關(guān)軟件的使用。
59、 本次學(xué)年設(shè)計我學(xué)到了不少新的東西, 也發(fā)現(xiàn)了大量的問題, 有些在設(shè)計過程中已經(jīng)解決, 有些還有待今后慢慢學(xué)習(xí)。 學(xué)習(xí)中會有更多的問題,有更多的難點,但也會有更多的收獲。 這次設(shè)計不僅提高了動手能力,更培養(yǎng)了自學(xué) ,獨立思考和處理問題的能力。 為以后的學(xué)習(xí)和工作提供了幫助。 由于我的水平有限, 學(xué)年設(shè)計還并不十分完善, 論文還有許多疏漏, 懇請各位老師批評指正。 - 19 -
60、 參考文獻(xiàn) [1] 鄭燕 . 基于 VHDL語言與 Quartus Ⅱ軟件的可編程邏輯器件應(yīng)用與開發(fā) .2007. [2] 楊曉慧 . 基于 FPGA的 EDA/SOPC技術(shù)與 VHDL.2007. [3] 張霞. VHDL在現(xiàn)代 EDA中的應(yīng)用. 2001. [4] 潘松、黃繼業(yè). EDA技術(shù)實用教程 2002. [5] 李志方. EDA技術(shù)簡介 .2001 . - 20 -
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備采購常用的四種評標(biāo)方法
- 車間員工管理須知(應(yīng)知應(yīng)會)
- 某公司設(shè)備維護(hù)保養(yǎng)工作規(guī)程
- 某企業(yè)潔凈車間人員進(jìn)出管理規(guī)程
- 企業(yè)管理制度之5S管理的八個口訣
- 標(biāo)準(zhǔn)化班前會的探索及意義
- 某企業(yè)內(nèi)審員考試試題含答案
- 某公司環(huán)境保護(hù)考核管理制度
- 現(xiàn)場管理的定義
- 員工培訓(xùn)程序
- 管理制度之生產(chǎn)廠長的職責(zé)與工作標(biāo)準(zhǔn)
- 某公司各級專業(yè)人員環(huán)保職責(zé)
- 企業(yè)管理制度:5S推進(jìn)與改善工具
- XXX公司環(huán)境風(fēng)險排查及隱患整改制度
- 生產(chǎn)車間基層管理要點及建議