大肉大捧一进一出好爽视色大师,丰满少妇被猛烈进入在线播放,欧美真人性野外做爰,黑人巨大vs日本人优在线

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
VHDL之狀態(tài)機學習筆記
VHDL之狀態(tài)機學習筆記
 更新時間:2008-7-27 16:55:52  點擊數:3
【字體: 字體顏色
由于平時比較忙,沒有時間系統的學習,所以一般情況下只能周末稍微系統的學習一下。前幾周主要學習了一下如何用VHDL來實現一個狀態(tài)機。因為狀態(tài)機的應用實在是太廣泛了,例如各種存儲器的控制,AD的控制外部器件的控制,也包括內部電路的控制,到了非學不可的地步了。

       對于狀態(tài)機的理論沒有涉及太多,只有幾點需要注意:

       (1)moore和mealy的區(qū)別在于輸出是否只和當前狀態(tài)有關。

       (2)狀態(tài)機的兩種基本操作:一是狀態(tài)機內部狀態(tài)的轉換,另一是產生輸出信號序列。

       (3)狀態(tài)機的分析可以從狀態(tài)圖入手,同樣,狀態(tài)機的設計也可以從狀態(tài)圖入手。

        在集成電路設計時,通常可以將整個系統劃分為兩部分,一部分是數據單元,另一部分是控制單元。數據單元包含保存運算數據和運算結果的數據寄存器,也包括完成數據運算的組合邏輯。控制單元用來產生信號序列,以決定何時進行何種數據運算,控制單元要從數據單元得到條件信號,以決定繼續(xù)進行那些數據運算。數據單元要產生輸出信號,數據運算狀態(tài)等有用信號。數據單元和控制單元中,有兩個非常重要的信號,即復位信號和時鐘信號。復位信號保證了系統初始狀態(tài)的確定性,時鐘信號則是時序系統工作的必要條件。狀態(tài)機通常在復位信號到來的時候恢復到初始狀態(tài),每個時鐘到來的時候內部狀態(tài)發(fā)生變化。

      正如上面的(3)提到的,設計狀態(tài)機時一般先構造出狀態(tài)圖。構造狀態(tài)圖的一般方法是從一個比較容易描述的狀態(tài)開始,通常初始態(tài)是一個很好開始的狀態(tài),也就是狀態(tài)機復位以后開始的狀態(tài)。在建立每個狀態(tài)時最好都清楚的寫出關于這個狀態(tài)的文字描述,為硬件設計過程提供清晰的參考資料,也為最后完成的設計提供完整的設計文檔。

       下面給出一個用VHDL實現ADC0804控制器的完整設計過程。

首先根據ADC0804的時序圖分析所有可能的狀態(tài),并且建立起來狀態(tài)圖。

時序圖:

http://pic13.album.tom.com/album_pic/2005/09/12/b15fe2073e48e1bb3780e6431f695e8c?%75%4e%6f%44%6a%77%49%71%6d%74

4個狀態(tài)如下:

idle: CS="0",WR=0,RD=1 啟動AD0804開始轉換

convert:CS=1,WR=1,RD=1,AD0804進行數據轉換

read1:  CS="1",WR=1,RD=1,INTR,轉換結束,開始讀

read2: CS="1",WR=1,RD=0,讀取數據。

狀態(tài)圖:

http://pic13.album.tom.com/album_pic/2005/09/12/8427a2ae7a7a9c03018d4f83dfce23a4?%75%4e%6f%44%6a%77%4b%73%69%72

VHDL程序如下,所用的綜合器是XST

--------------------------------------------------------------------------------
-- Design Name:    skycanny  
-- Module Name:    ad_controller - Behavioral
-- Description:    This VHDL design is created to implement a state machine
--                 to control AD0804
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity ad_controller is
 port(
  reset  : in std_logic;
  clk  : in std_logic;
  intr  : in std_logic;
  data_i : in std_logic_vector(7 downto 0);
  data_o : out std_logic_vector(7 downto 0);
  cs  : out std_logic;
  wr  : out std_logic;
  rd  : out std_logic
  );
end ad_controller;

architecture Behavioral of ad_controller is

type state is (start, convert, read1, read2);
signal current_state, next_state : state;
signal data_r : std_logic_vector(7 downto 0);
signal read_data : std_logic;

begin
 sync :process(reset,clk)
 begin
  if(reset = '0') then
   current_state <= start;
  elsif(clk'event and clk = '1') then
   current_state <= next_state;
  end if;
 end process sync;

 comb :process(current_state, intr)
 begin
  case current_state is
   when start =>
    next_state <= convert;
    cs <= '0';
    wr <= '0';
    rd <= '1';
    read_data <= '0';
   when convert =>
    if(intr = '0') then
     next_state <= read1;
    else
     next_state <= convert;
    end if;
    cs <= '1';
    wr <= '1';
    rd <= '1';
    read_data <= '0';
   when read1 =>
    next_state <= read2;
    cs <= '0';
    wr <= '1';
    rd <= '0';
    read_data <= '1';
   when read2 =>
    next_state <= start;
    cs <= '1';
    wr <= '1';
    rd <= '1';
    read_data <= '0';
   when others =>
    next_state <= start;
  end case;
 end process comb;

 get_data: process(reset,clk)
 begin
  if(reset = '0') then
   data_r <= X"00";
  elsif(clk'event and clk = '1') then
   if(read_data = '1') then
    data_r <= data_i;
   end if;
  end if;
 end process;

 data_o <= data_r;
end Behavioral;

功能仿真圖:

http://pic13.album.tom.com/album_pic/2005/09/12/da734f0b3c9a730aed2a367e13d9f833?%75%4e%6f%44%6a%77%4b%75%6d%73

從仿真圖可以看出,該控制器工作正常。

RTL原理圖:

http://pic13.album.tom.com/album_pic/2005/09/12/8427a2ae7a7a9c03018d4f83dfce23a4?%75%4e%6f%44%6a%77%4b%73%69%72

總結:對于時序電路中用到的狀態(tài)機,分析時序電路中間經歷的狀態(tài)可以很快得出狀態(tài)機的整體結構,然后用VHDL實現就可以。另外ISE提供了StateCad,方便了狀態(tài)機的設計,仿真等等。

  • 上一篇: CPLD的LED點陣顯示控制器
  • 下一篇: FPGA的高速可變周期脈沖發(fā)生器的設計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 福鼎市| 新野县| 淮北市| 长岛县| 乌苏市| 西城区| 大悟县| 和静县| 潼关县| 新宾| 兴宁市| 睢宁县| 巴中市| 凤台县| 马山县| 东乡族自治县| 泰安市| 阜康市| 沧源| 扎兰屯市| 延津县| 芜湖县| 宜兰县| 嘉黎县| 汝阳县| 宁都县| 城步| 从化市| 南宫市| 通海县| 绥棱县| 嵩明县| 定襄县| 化州市| 普格县| 双柏县| 美姑县| 营山县| 平远县| 涟水县| 文登市|