【正文】
al 28 amount five 為全局信號(hào)。 cleared coin 10 signal to count push button frequency 27 signal mo coin ten integaer range 0 to 2 no of throw coin ten begin ul: debounce portmap( clk﹥ =clk, touch﹥ =coin 10, push out﹥ =coin10) process( reset coin 10) begin if reset=‘ 1’ then total amount ten﹤ =0; no coin ten﹤ =0 led ten ﹤ =00 els if rising dege( coin 10) thentriggered by coin10 total amount ten﹤ =total amount ten+10。 coin 10 counting 模塊的 VHDL to count the number and amount of coin 10 and light the leds coin 10 counting。 no coin ten 信號(hào)用來累計(jì) 10 元硬幣的投入數(shù)量,這兩個(gè)信號(hào)都是局部信號(hào),不向外傳遞。模塊輸入信號(hào)有 clk 與 coin 兩個(gè)系統(tǒng)輸入信號(hào), led ten 為系統(tǒng)輸出信號(hào),輸出total amount ten 為全局信號(hào)。 and block。 and if。 else renturn_clk﹤ =’ 0’ 。free count from 0 to 255 begin process(reset_clk) begin if reset=’ 1’ then count﹤ =” 00000000” return_clk﹤ =’ 0’ 。下面列出 return_clk 模塊的程序代碼。本模塊采用一個(gè) 8 位自動(dòng)計(jì)數(shù)器,將 1024HZ 的系統(tǒng)時(shí)鐘除以 2^8=256,可以得到 4HZ 的閃爍信號(hào)。 signal for diet delivery begin 產(chǎn)生退幣閃爍信號(hào)的電路模塊( return_clk) 為了提醒退幣,設(shè)計(jì)輸出 4HZ 閃爍信號(hào)給對(duì)應(yīng)的 LED。 total amount of coin ten signal cola ok:out std_ logic。 to maintain the diet selection status signal total amount – five:integer range0 to 15。 twinkling singal for coin returned 25 signal cola choice std_ logic。 edged cancle buy signal money ok std_ logic。 total amount five: 5元硬幣的累計(jì)投入金額(最高為 15 元); total amount ten: 10元硬幣的累計(jì)投入金額(最高為 20 元); cola_out: cola 已經(jīng)出貨的信號(hào); diet_out: diet 已經(jīng)出貨的信號(hào); 下面列出 architecture 模塊的程序代碼 architecture 模塊的 VHDL 碼 define the signal structure and flow of the device Architecture arch of vendor is global signal flowing among different circuit blocks signal ok std_ logic。 renturn_ok: 退幣的閃爍警示信號(hào); cola_choice: 用來維持 cola_selection 狀態(tài) 。 cancle: 用來維持 cancle 狀態(tài) 。 led for diet delivery end. architecture 模塊 此處,我們必須定義一些功能快之間整體共享的傳遞信號(hào),以整合所有快的功能。 leds to show coin ten returned led cola out: out std_ logic。 leds to show coin ten numbers. led five return: out std_ logic vector(2to0)。led for cancle led five out std_ logic vector(2to0)。 led to show diet choosen led buy: out std_ logic。 led for diet avaiable led cola sel: out std_ logic。button to choose drink diet led cola ok:out std_ logic。 button to throw coin $10 select cola in std_ logic。button to cancle buying coin_5: in std_ logic。system clock lkhz ok_ in std logic。package including ‘ debounce’ ponent input and output pins declaraction entity vendor is port( reset: in std logic。 use 。 use 。 另外,應(yīng)將抖動(dòng)消除電路 debounce 放在 my_pkg 的程序包中,故在主程序中應(yīng)加上一行: Use 23 下面列出 entity 模塊的程序代碼。 Use 。 Led five return: 3 個(gè) LED , 以每秒 4 次的閃爍代表被推出的硬幣; Led ten renturn: 2 個(gè) LED, 以每秒 4次的閃爍代表被推出的硬幣; Led cola out: 燈亮顯示 cola 已出貨; Led diet out: 燈亮顯示 diet 已出貨; 在 Xilinx 的 FPGA Express 設(shè)計(jì)環(huán)境中,對(duì)所有 VHDL 程序都加入下列幾行有關(guān)庫及程序包的調(diào)用語句。與 Led cola sel 只有一個(gè)燈亮,后按著優(yōu)先; Led buy: 燈亮顯示按了購買確認(rèn)鍵; Led cancle: 燈亮顯示按了購買取消鍵; Led five( 1 to 3): 3個(gè) LED,投入 1個(gè) 5元硬幣亮一個(gè) LED。 Led cola sel: 燈亮顯示傳統(tǒng)可樂選擇按鍵被按 。 Led cola ok: 燈亮顯示還有傳統(tǒng)可樂 。 Select diet: 選擇減肥可樂的按鍵信號(hào) 。 Cancle: 購買取消的按鍵信號(hào) 。 Reset: 系統(tǒng)內(nèi)部設(shè)置給其他顧客 重新操作的復(fù)位信號(hào); Clk: 由外接信號(hào)發(fā)射器提供 1024b/s 的系統(tǒng)時(shí)鐘信號(hào) 。該電路為一臺(tái)自動(dòng)售貨機(jī)的控制核心,可以直接用來驅(qū)動(dòng)機(jī)械裝置。因?yàn)橥稁攀怯?jì)次電路,應(yīng)先經(jīng)過抖動(dòng)消除電路處理。一次交易只能買一罐,且自動(dòng)找零只要按下取消鍵就會(huì)馬上無條件退幣。 20 第七章 自動(dòng)售貨機(jī) 自動(dòng)售貨機(jī)功能概述 本設(shè)計(jì)的自動(dòng)售貨機(jī)只銷售傳統(tǒng)型( cola)與減肥型( diet)兩種灌裝可樂,銷售的價(jià)格均為 15 元。操作系統(tǒng): Windows95/98 或,安裝所占空間為 80Mbytes。 設(shè)計(jì)驗(yàn)證: 通過 MAX+plusII 的定時(shí)分析器進(jìn)行時(shí)序分析、功能仿真、時(shí)序仿真和波形分析,生成一些標(biāo)準(zhǔn)文件為其他 EDA 工具使用。還可以通過 MAX+plusII 波形編譯器,創(chuàng)建波形設(shè)計(jì)文件( wdf)等。有如下功能 : 支持的器件 : 所支持的器件有 EPF10K10, EPF10K10A, EPF10K20, EPF10K30A,以及 MAX700系列(含 MAX7000A, MAX7000AE, MAX7000E, MAX7000S), EPM9320, EPM9320A,EPF8452A, EPF8282A, FLEX6000/A 系列, MAX5000 系列和 ClassicTM 系列。 ALTERA 公司的 MAX+plusII 軟件是易學(xué)、易用的可編程邏輯器件開發(fā)軟件。 17 圖 EPM7128S 芯片引腳圖 18 第六章 MAX+plusII 概述 本系統(tǒng)采用 MAX+plusII 進(jìn)行仿真。 MAX7128S是一種復(fù)雜課編程邏輯器件, IC管腳參閱原理圖 ,是 84pinPLCC封裝,另外還有其他類型的管腳和封裝,選擇性強(qiáng),該 IC具有以下主要功能: 以第二代多陣列矩陣( MAX)結(jié)構(gòu)為基礎(chǔ),是一種高性能 CMOS EEPROM 器件; 通過 JTAG(Joint Text Action Group 聯(lián)合測(cè)試組 )接口可實(shí)現(xiàn)在線編程( ISP),本實(shí)驗(yàn)板提供 JTAG 接口; 邏輯密度為 2500 個(gè)可用編程門電路, 128 個(gè)宏單元; 68 條可編程 I/O, TTL 邏輯電平為 5V 或 3V; 引腳到引腳的邏輯延時(shí)為 ,計(jì)數(shù)器工作頻率可達(dá)到 ;有集電路開路選擇,可可 編程宏單元觸發(fā)器,具有專有的清除( clear)、時(shí)鐘( clock)、輸出使能( OE)控制; 與不同電源電壓的系統(tǒng)接口, VCCIO 引腳用于輸出緩沖器接到 5V 電源時(shí),輸出電平與 5V 電源兼容, VCCIO 引腳用于輸出緩沖器接到 電源時(shí),輸出電平與 兼容, VCCINT 用于內(nèi)部電路和輸出緩沖器; 包括一個(gè)可編程的程序加密位,全面保護(hù)專利,防止程序被復(fù)制和讀出設(shè)計(jì)。宏單元內(nèi)的寄存器具有單獨(dú)的時(shí)鐘和復(fù)位信號(hào)。引腳可配置為開漏輸出。完全符合 JTAG 邊界掃描標(biāo)準(zhǔn),具有 5V ISP 的功能。 16 第五章 EPM7128S 芯片簡介 本 設(shè)計(jì)采用 EPM7128S 芯片,下面將對(duì)其進(jìn)行簡單介紹。 4 寄存器傳輸式 VHDL 是一種類型化的語言,一種數(shù)據(jù)類型的數(shù)據(jù)內(nèi)容不能指定給其他類型的數(shù)據(jù),而且不同數(shù)據(jù)類型的數(shù)據(jù)需經(jīng)過轉(zhuǎn)換才能相互運(yùn)算。通常以引腳圖方式調(diào)用并連接。 2 數(shù)據(jù)流 從數(shù)據(jù)輸入與輸出的觀點(diǎn),大部分的并行語 句都用于數(shù)據(jù)轉(zhuǎn)換工作。 1 行為式 采用語言邏輯方式直接描述硬件電路的工作,表示一個(gè)設(shè)計(jì)的功能或算法,描述 IC 內(nèi)部電路行為。其特有的層次性一一由上而下的結(jié)構(gòu)式語法結(jié)構(gòu)適合大型設(shè)計(jì)項(xiàng)目的 15 分包下去,各自獨(dú)立運(yùn)行。 VHDL 語言可描述一個(gè)數(shù)字電路的輸入、輸出以及相互間的行為與功能。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部的概念是 VHDL 系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。 語言特性 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。 VHDL 的設(shè)計(jì)層面可以劃分為系統(tǒng)層、算法層、寄存器傳輸層、邏輯層以及電路層。后來將一種可配合集成工具的 VHDL 程序包,特別命名為 ,并成為 1076 號(hào)IEEE 標(biāo)準(zhǔn)的一部分。 1983 年的 IBH 及TI 等公司在此專案規(guī)定下,開始開發(fā) VHDL。 14 第四章 VHDL 語言的概述 VHDL 語言的概述 目前最通用的硬件描述語言有 VHDL 與 Verilog 兩種。當(dāng)余額大于等于某種商品價(jià)格時(shí),程序使相應(yīng)