亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmit_rcv_control_fsm.vhd

?? 經(jīng)典UART程序
?? VHD
字號:
-- hds header_start
--
-- VHDL Architecture UART_TXT.xmit_rcv_control.symbol
--
-- Created:
--          by - user.group (host.domain)
--          at - 19:10:38 28 Aug 2001
--
-- Generated by Mentor Graphics' HDL Designer(TM)
--
-- hds header_end
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;


ENTITY xmit_rcv_control IS
   PORT( 
      clk             : IN     std_logic;
      rst             : IN     std_logic;
      sample          : IN     std_logic;
      sin             : IN     std_logic;
      start_xmit      : IN     std_logic;
      xmitdt          : IN     std_logic_vector (7 DOWNTO 0);
      done_rcving     : OUT    std_logic;
      done_xmitting   : OUT    std_logic;
      enable_rcv_clk  : OUT    std_logic;
      enable_xmit_clk : OUT    std_logic;
      rcv_bit_cnt     : OUT    std_logic_vector (2 DOWNTO 0);
      rcving          : OUT    std_logic;
      read_bit        : OUT    std_logic;
      sout            : OUT    std_logic;
      xmitting        : OUT    std_logic
   );

-- Declarations

END xmit_rcv_control ;

-- hds interface_end

ARCHITECTURE fsm OF xmit_rcv_control IS

   -- Architecture Declarations
   SIGNAL xmit_bit_cnt : std_logic_vector(2 downto 0) := "000";

   TYPE RCV_STATE_TYPE IS (
      waiting,
      check_lock,
      rcv_locked,
      read_data,
      incr_count2,
      done_read,
      read_stop_bit,
      finish_rcv
   );
   TYPE XMIT_STATE_TYPE IS (
      waiting_to_xmit,
      send_start,
      send_data,
      incr_count,
      done_xmit,
      send_stop_bit,
      finish_xmit
   );


   -- Declare current and next state signals
   SIGNAL Rcv_current_state : RCV_STATE_TYPE ;
   SIGNAL Rcv_next_state : RCV_STATE_TYPE ;
   SIGNAL Xmit_current_state : XMIT_STATE_TYPE ;
   SIGNAL Xmit_next_state : XMIT_STATE_TYPE ;

   -- Declare any pre-registered internal signals
   SIGNAL enable_xmit_clk_cld : std_logic  ;
   SIGNAL rcv_bit_cnt_cld : std_logic_vector (2 DOWNTO 0) ;
   SIGNAL sout_cld : std_logic  ;
   SIGNAL xmitting_cld : std_logic  ;

BEGIN

   ----------------------------------------------------------------------------
   Rcv_clocked : PROCESS(
      clk,
      rst
   )
   ----------------------------------------------------------------------------
   BEGIN
      IF (rst = '0') THEN
         Rcv_current_state <= waiting;
         -- Reset Values
         rcv_bit_cnt_cld <= (others=>'0');
      ELSIF (clk'EVENT AND clk = '1') THEN
         Rcv_current_state <= Rcv_next_state;

         -- State Actions for internal signals only
         CASE Rcv_current_state IS
         WHEN waiting =>
            rcv_bit_cnt_cld <= "000";
         WHEN OTHERS =>
            NULL;
         END CASE;

         -- Transition Actions for internal signals only
         CASE Rcv_current_state IS
         WHEN waiting =>
            IF (sin='0') THEN
               rcv_bit_cnt_cld <= "000";
            END IF;
         WHEN incr_count2 =>
            IF (sample='1' AND rcv_bit_cnt_cld /= "111") THEN
               rcv_bit_cnt_cld <= unsigned(rcv_bit_cnt_cld) + 1;
            END IF;
         WHEN OTHERS =>
            NULL;
         END CASE;

      END IF;

   END PROCESS Rcv_clocked;

   ----------------------------------------------------------------------------
   Rcv_nextstate : PROCESS (
      Rcv_current_state,
      rcv_bit_cnt_cld,
      sample,
      sin
   )
   ----------------------------------------------------------------------------
   BEGIN
      -- Default Assignment
      done_rcving <= '0';
      enable_rcv_clk <= '0';
      rcving <= '0';
      read_bit <= '0';

      -- State Actions
      CASE Rcv_current_state IS
      WHEN check_lock =>
         enable_rcv_clk <= '1';
      WHEN rcv_locked =>
         rcving <= '1';
         enable_rcv_clk <= '1';
      WHEN read_data =>
         rcving <= '1';
         enable_rcv_clk <= '1';
      WHEN incr_count2 =>
         rcving <= '1';
         enable_rcv_clk <= '1';
      WHEN done_read =>
         rcving <= '1';
         enable_rcv_clk <= '1';
      WHEN read_stop_bit =>
         rcving <= '1';
         enable_rcv_clk <= '1';
      WHEN finish_rcv =>
         enable_rcv_clk <= '0';
         rcving <= '0';
         done_rcving <= '1';
      WHEN OTHERS =>
         NULL;
      END CASE;

      CASE Rcv_current_state IS
      WHEN waiting =>
         IF (sin='0') THEN
            enable_rcv_clk <= '1';
            Rcv_next_state <= check_lock;
         ELSE
            Rcv_next_state <= waiting;
         END IF;
      WHEN check_lock =>
         IF (sin='1') THEN
            enable_rcv_clk <= '0';
            Rcv_next_state <= waiting;
         ELSIF (sin='0') THEN
            Rcv_next_state <= rcv_locked;
         ELSE
            Rcv_next_state <= check_lock;
         END IF;
      WHEN rcv_locked =>
         IF (sample='1') THEN
            Rcv_next_state <= read_data;
         ELSE
            Rcv_next_state <= rcv_locked;
         END IF;
      WHEN read_data =>
         IF (sample='0') THEN
            Rcv_next_state <= incr_count2;
         ELSE
            Rcv_next_state <= read_data;
         END IF;
      WHEN incr_count2 =>
         IF (sample='1' AND rcv_bit_cnt_cld /= "111") THEN
            read_bit <= '1';
            Rcv_next_state <= read_data;
         ELSIF (sample='1' AND rcv_bit_cnt_cld = "111") THEN
            read_bit <= '1';
            Rcv_next_state <= done_read;
         ELSE
            Rcv_next_state <= incr_count2;
         END IF;
      WHEN done_read =>
         IF (sample='0') THEN
            Rcv_next_state <= read_stop_bit;
         ELSE
            Rcv_next_state <= done_read;
         END IF;
      WHEN read_stop_bit =>
         IF (sample='1') THEN
            Rcv_next_state <= finish_rcv;
         ELSE
            Rcv_next_state <= read_stop_bit;
         END IF;
      WHEN finish_rcv =>
            Rcv_next_state <= waiting;
      WHEN OTHERS =>
         Rcv_next_state <= waiting;
      END CASE;

   END PROCESS Rcv_nextstate;

   ----------------------------------------------------------------------------
   Xmit_clocked : PROCESS(
      clk,
      rst
   )
   ----------------------------------------------------------------------------
   BEGIN
      IF (rst = '0') THEN
         Xmit_current_state <= waiting_to_xmit;
         -- Reset Values
         enable_xmit_clk_cld <= '0';
         sout_cld <= '1';
         xmitting_cld <= '0';
         xmit_bit_cnt <= (others=>'0');
      ELSIF (clk'EVENT AND clk = '1') THEN
         Xmit_current_state <= Xmit_next_state;
         -- Default Assignment To Internals
         sout_cld <= '1';

         -- State Actions for internal signals only
         CASE Xmit_current_state IS
         WHEN waiting_to_xmit =>
            xmit_bit_cnt <= "000";
         WHEN send_start =>
            sout_cld <= '0';
            enable_xmit_clk_cld <= '1';
            xmitting_cld <= '1';
         WHEN send_data =>
            sout_cld <= xmitdt(CONV_INTEGER(unsigned(xmit_bit_cnt)));
         WHEN incr_count =>
            sout_cld <= xmitdt(CONV_INTEGER(unsigned(xmit_bit_cnt)));
         WHEN finish_xmit =>
            enable_xmit_clk_cld <= '0';
            xmitting_cld <= '0';
         WHEN OTHERS =>
            NULL;
         END CASE;

         -- Transition Actions for internal signals only
         CASE Xmit_current_state IS
         WHEN send_data =>
            IF (sample='0') THEN
               xmit_bit_cnt <= unsigned(xmit_bit_cnt) + 1;
            END IF;
         WHEN OTHERS =>
            NULL;
         END CASE;

      END IF;

   END PROCESS Xmit_clocked;

   ----------------------------------------------------------------------------
   Xmit_nextstate : PROCESS (
      Xmit_current_state,
      sample,
      start_xmit,
      xmit_bit_cnt
   )
   ----------------------------------------------------------------------------
   BEGIN
      -- Default Assignment
      done_xmitting <= '0';

      -- State Actions
      CASE Xmit_current_state IS
      WHEN send_stop_bit =>
         done_xmitting <= '1';
      WHEN OTHERS =>
         NULL;
      END CASE;

      CASE Xmit_current_state IS
      WHEN waiting_to_xmit =>
         IF (start_xmit='1') THEN
            Xmit_next_state <= send_start;
         ELSE
            Xmit_next_state <= waiting_to_xmit;
         END IF;
      WHEN send_start =>
         IF (sample='1') THEN
            Xmit_next_state <= send_data;
         ELSE
            Xmit_next_state <= send_start;
         END IF;
      WHEN send_data =>
         IF (sample='0') THEN
            Xmit_next_state <= incr_count;
         ELSE
            Xmit_next_state <= send_data;
         END IF;
      WHEN incr_count =>
         IF (sample='1' AND xmit_bit_cnt /= "000") THEN
            Xmit_next_state <= send_data;
         ELSIF (sample='1' AND xmit_bit_cnt = "000") THEN
            Xmit_next_state <= done_xmit;
         ELSE
            Xmit_next_state <= incr_count;
         END IF;
      WHEN done_xmit =>
         IF (sample='0') THEN
            Xmit_next_state <= send_stop_bit;
         ELSE
            Xmit_next_state <= done_xmit;
         END IF;
      WHEN send_stop_bit =>
            Xmit_next_state <= finish_xmit;
      WHEN finish_xmit =>
            Xmit_next_state <= waiting_to_xmit;
      WHEN OTHERS =>
         Xmit_next_state <= waiting_to_xmit;
      END CASE;

   END PROCESS Xmit_nextstate;

   -- Clocked output assignments
   enable_xmit_clk <= enable_xmit_clk_cld;
   rcv_bit_cnt <= rcv_bit_cnt_cld;
   sout <= sout_cld;
   xmitting <= xmitting_cld;


END fsm;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产精品不卡| 日韩欧美激情在线| 国产又粗又猛又爽又黄91精品| 亚洲伦理在线免费看| 国产精品传媒在线| 亚洲欧美日韩久久| 亚洲靠逼com| 一区二区成人在线| 一区二区三区欧美日| 亚洲二区在线观看| 日韩主播视频在线| 免费在线成人网| 国产原创一区二区| 高清av一区二区| 99精品视频免费在线观看| www.欧美日韩| 一本色道久久综合亚洲aⅴ蜜桃| 不卡一区二区中文字幕| 一本大道综合伊人精品热热 | 99久久精品免费看国产 | 中日韩av电影| 国产精品午夜久久| 亚洲另类春色国产| 天堂午夜影视日韩欧美一区二区| 日本午夜一本久久久综合| 精品伊人久久久久7777人| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美综合视频在线观看| 欧美男女性生活在线直播观看| 日韩欧美国产三级电影视频| 久久久久青草大香线综合精品| 中文字幕av资源一区| 亚洲猫色日本管| 久久国产生活片100| 成人av电影在线网| 337p亚洲精品色噜噜狠狠| 久久久久高清精品| 亚洲精品自拍动漫在线| 精品一二三四在线| 91高清在线观看| 久久免费国产精品| 亚洲午夜精品网| 国产精品一区二区久久精品爱涩 | 成人免费在线视频观看| 视频一区二区中文字幕| 成人app网站| 欧美一区二区三区不卡| 1024成人网色www| 激情综合色播激情啊| 91美女在线看| 久久久久久麻豆| 日韩一区欧美二区| av毛片久久久久**hd| 久久综合色婷婷| 天天免费综合色| 99re热视频这里只精品| 欧美成人三级电影在线| 亚洲国产精品欧美一二99| 成人一级视频在线观看| 欧美成人精品3d动漫h| 亚洲一区二区视频| 99精品欧美一区| 久久久99久久| 精品一区二区三区免费| 欧美三级韩国三级日本一级| 1024成人网| 波多野结衣视频一区| 久久先锋资源网| 久久机这里只有精品| 制服丝袜在线91| 婷婷久久综合九色综合伊人色| 91丨porny丨在线| 国产精品久久久一区麻豆最新章节| 日本一不卡视频| 欧美一级艳片视频免费观看| 亚洲午夜私人影院| 欧美日韩午夜精品| 亚洲一区二区三区视频在线 | 亚洲免费视频中文字幕| 成人免费视频一区二区| 国产欧美一区二区精品忘忧草| 久久成人av少妇免费| 欧美成人精精品一区二区频| 蜜桃91丨九色丨蝌蚪91桃色| 欧美xingq一区二区| 国产精品一区二区久久精品爱涩| 久久综合九色综合97婷婷女人| 激情文学综合丁香| 国产亚洲精品精华液| 成人精品一区二区三区四区 | 91亚洲精品久久久蜜桃网站| 国产精品久久久久久久久免费相片 | www.亚洲免费av| 一区二区三区国产精华| 在线观看亚洲专区| 日韩 欧美一区二区三区| 精品免费国产一区二区三区四区| 国模少妇一区二区三区| 中文字幕乱码久久午夜不卡| 色综合天天综合狠狠| 亚洲成在人线在线播放| 欧美videos大乳护士334| 国产成人综合在线| 一区二区三区日韩欧美| 日韩一区二区三区在线观看| 精品一区二区免费视频| 最新日韩av在线| 欧美人与z0zoxxxx视频| 国产乱人伦精品一区二区在线观看| 中文一区二区完整视频在线观看| 色婷婷av一区| 美女任你摸久久| 国产精品麻豆欧美日韩ww| 欧美日韩一区二区三区视频| 久久草av在线| 一区二区久久久久久| 久久综合999| 欧美综合在线视频| 国产成人精品亚洲777人妖| 亚洲自拍另类综合| 国产日韩精品一区二区三区在线| 欧美性受极品xxxx喷水| 国产一区二区福利视频| 亚洲制服丝袜av| 久久众筹精品私拍模特| 欧美日韩一区精品| 成人理论电影网| 精品一区二区在线视频| 一区二区三区免费在线观看| 久久久国产精品麻豆| 欧美日韩成人在线一区| 成人性生交大片免费看中文| 欧美a级一区二区| 一区二区欧美国产| 欧美激情综合五月色丁香 | 日韩午夜激情av| 成人aa视频在线观看| 国产乱子轮精品视频| 免费观看一级欧美片| 国产精品视频一二三区| 久久婷婷国产综合国色天香 | 日韩激情一二三区| 亚洲精品日韩一| 中文字幕中文字幕一区二区| 久久蜜桃av一区二区天堂| 欧美一区二区视频网站| 精品视频一区 二区 三区| jizz一区二区| 成人蜜臀av电影| 粉嫩高潮美女一区二区三区| 国产一区二区91| 久久疯狂做爰流白浆xx| 蜜臀精品久久久久久蜜臀| 日日夜夜精品免费视频| 性久久久久久久久| 亚洲第一久久影院| 亚洲一区二区四区蜜桃| 怡红院av一区二区三区| 亚洲久草在线视频| 一区二区三区四区高清精品免费观看| 国产精品免费丝袜| 国产精品五月天| 国产精品国产三级国产专播品爱网 | 亚洲男人的天堂一区二区| **性色生活片久久毛片| 亚洲精品久久久久久国产精华液| 亚洲欧美在线aaa| 亚洲一区日韩精品中文字幕| 亚洲一二三区不卡| 男男视频亚洲欧美| 国模套图日韩精品一区二区 | 国产高清精品久久久久| 国产成人在线网站| 99久久99久久综合| 欧美伊人久久久久久久久影院| 欧美人体做爰大胆视频| 欧美一二三区精品| 久久久99精品免费观看不卡| 亚洲国产精品ⅴa在线观看| 亚洲少妇屁股交4| 亚洲成人自拍偷拍| 久久精品国产在热久久| 成人午夜短视频| 欧美日本在线视频| 26uuu亚洲婷婷狠狠天堂| 中文字幕一区二区三区四区| 亚洲第一在线综合网站| 韩国v欧美v亚洲v日本v| 成人av免费在线观看| 欧美日本乱大交xxxxx| 久久久久综合网| 亚洲国产视频网站| 国产一级精品在线| 欧美性xxxxx极品少妇| 久久综合久久综合久久综合| 一区二区三区精品在线| 精品午夜久久福利影院| 91丨九色丨尤物| 精品88久久久久88久久久| 亚洲精选视频免费看|