<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于VHDL +FPGA 的自動售貨機控制模塊的設(shè)計與實現(xiàn)

          基于VHDL +FPGA 的自動售貨機控制模塊的設(shè)計與實現(xiàn)

          作者: 時間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

          根據(jù)圖1所示的狀態(tài)轉(zhuǎn)換圖,用中的CASE_WHEN結(jié)構(gòu)和IF_THEN_ELSE語句實現(xiàn)控制功能,源程序如下:

          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_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) --時序進程

          BEGIN

          IF reset='1' 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) --組合進程

          BEGIN

          CASE current_state IS

          WHEN S0=>comb_outputs=00; --現(xiàn)態(tài)S0

          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;

          WHEN S1=>comb_outputs=00; --現(xiàn)態(tài)S1

          IF state_inputs=00 THEN next_state=S1; --輸入不同,次態(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;

          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;

          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;

          END CASE;

          END PROCESS;

          END state;



          關(guān)鍵詞: VHDL FPGA 自動售貨機 控制模塊

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();