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

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

?? uart.vhd

?? 串口程序
?? VHD
?? 第 1 頁 / 共 2 頁
字號:

--
-- 本模塊的功能是驗證實現和PC機進行基本的串口通信的功能。需要在
--PC機上安裝一個串口調試工具來驗證程序的功能。
-- 程序實現了一個收發一幀10個bit(即無奇偶校驗位)的串口控
--制器,10個bit是1位起始位,8個數據位,1個結束
--位。串口的波特律由程序中定義的div_par參數決定,更改該參數可以實
--現相應的波特率。程序當前設定的div_par 的值是0x104,對應的波特率是
--9600。用一個8倍波特率的時鐘將發送或接受每一位bit的周期時間
--劃分為8個時隙以使通信同步.
--程序的工作過程是:串口處于全雙工工作狀態,按動SW0,CPLD向PC發送“welcome"
--字符串(串口調試工具設成按ASCII碼接受方式);PC可隨時向CPLD發送0-F的十六進制
--數據,CPLD接受后顯示在7段數碼管上。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; 

ENTITY UART IS
   PORT (
      clk                     : IN std_logic;   
      rst                     : IN std_logic;   
      rxd                     : IN std_logic;   --串行數據接收端
      txd                     : OUT std_logic; --串行數據發送端  
      en                      : OUT std_logic; -- 數碼管使能 
      seg_data                : OUT std_logic_vector(7 DOWNTO 0); --數碼管數據  
      key_input               : IN std_logic  --按鍵輸入
      ); 
END UART;

ARCHITECTURE arch OF UART IS


   --//////////////////inner reg////////////////////
   SIGNAL div_reg                  :  std_logic_vector(15 DOWNTO 0);--分頻計數器,分頻值由波特率決定。分頻后得到頻率8倍波特率的時鐘   
   SIGNAL div8_tras_reg            :  std_logic_vector(2 DOWNTO 0);--該寄存器的計數值對應發送時當前位于的時隙數   
   SIGNAL div8_rec_reg             :  std_logic_vector(2 DOWNTO 0);  --寄存器的計數值對應接收時當前位于的時隙數 
   SIGNAL state_tras               :  std_logic_vector(3 DOWNTO 0);  -- 發送狀態寄存器
   SIGNAL state_rec                :  std_logic_vector(3 DOWNTO 0); -- 接受狀態寄存器 
   SIGNAL clkbaud_tras             :  std_logic; --以波特率為頻率的發送使能信號  
   SIGNAL clkbaud_rec              :  std_logic; --以波特率為頻率的接受使能信號  
   SIGNAL clkbaud8x                :  std_logic; --以8倍波特率為頻率的時鐘,它的作用是將發送或接受一個bit的時鐘周期分為8個時隙  
   SIGNAL recstart                 :  std_logic; -- 開始發送標志 
   SIGNAL recstart_tmp             :  std_logic; --開始接受標志  
   SIGNAL trasstart                :  std_logic;   
   SIGNAL rxd_reg1                 :  std_logic; --接收寄存器1  
   SIGNAL rxd_reg2                 :  std_logic; --接收寄存器2,因為接收數據為異步信號,故用兩級緩存  
   SIGNAL txd_reg                  :  std_logic; --發送寄存器  
   SIGNAL rxd_buf                  :  std_logic_vector(7 DOWNTO 0);--接受數據緩存   
   SIGNAL txd_buf                  :  std_logic_vector(7 DOWNTO 0);--發送數據緩存   
   SIGNAL send_state               :  std_logic_vector(2 DOWNTO 0);--每次按鍵給PC發送"Welcome"字符串,這是發送狀態寄存器   
   SIGNAL cnt_delay                :  std_logic_vector(19 DOWNTO 0);--延時去抖計數器   
   SIGNAL start_delaycnt           :  std_logic;  --開始延時計數標志 
   SIGNAL key_entry1               :  std_logic;  --確定有鍵按下標志 
   SIGNAL key_entry2               :  std_logic;  --確定有鍵按下標志 
   --//////////////////////////////////////////////
   CONSTANT  div_par               :  std_logic_vector(15 DOWNTO 0) := "0000010011100001"; 
   --分頻參數,其值由對應的波特率計算而得,按此參數分頻的時鐘頻率是波倍特率的8倍,此處值對應9600的波特率,即分頻出的時鐘頻率是9600*8	    
   SIGNAL txd_xhdl3                :  std_logic;   

BEGIN
   en <='0' ;--7段數碼管使能信號賦值
   txd <= txd_xhdl3;   
   txd_xhdl3 <= txd_reg ;

   PROCESS(clk,rst)
   BEGIN
      
      IF (NOT rst = '1') THEN
         cnt_delay <= "00000000000000000000";    
         start_delaycnt <= '0';    
      ELSIF(clk'EVENT AND clk='1')THEN
         IF (start_delaycnt = '1') THEN
            IF (cnt_delay /= "11000011010100000000") THEN
               cnt_delay <= cnt_delay + "00000000000000000001";    
            ELSE
               cnt_delay <= "00000000000000000000";    
               start_delaycnt <= '0';    
            END IF;
         ELSE
            IF ((NOT key_input='1') AND (cnt_delay = "00000000000000000000")) THEN
               start_delaycnt <= '1';    
            END IF;
         END IF;
      END IF;
   END PROCESS;

   PROCESS(clk,rst)
   BEGIN
      
      IF (NOT rst = '1') THEN
         key_entry1 <= '0';    
      ELSIF(clk'EVENT AND clk='1')THEN
         IF (key_entry2 = '1') THEN
            key_entry1 <= '0';    
         ELSE
            IF (cnt_delay = "11000011010100000000") THEN
               IF (NOT key_input = '1') THEN
                  key_entry1 <= '1';    
               END IF;
            END IF;
         END IF;
      END IF;
   END PROCESS;

   PROCESS(clk,rst)
   BEGIN
      
      IF (NOT rst = '1') THEN
         div_reg <= "0000000000000000";    
      ELSIF(clk'EVENT AND clk='1')THEN
         IF (div_reg = div_par - "0000000000000001") THEN
            div_reg <= "0000000000000000";    
         ELSE
            div_reg <= div_reg + "0000000000000001";    
         END IF;
      END IF;
   END PROCESS;

   PROCESS(clk,rst)  --分頻得到8倍波特率的時鐘
   BEGIN
      
      IF (NOT rst = '1') THEN
         clkbaud8x <= '0';    
      ELSIF(clk'EVENT AND clk='1')THEN
         IF (div_reg = div_par - "0000000000000001") THEN
            clkbaud8x <= NOT clkbaud8x;    
         END IF;
      END IF;
   END PROCESS;

   PROCESS(clkbaud8x,rst)
   BEGIN
      IF (NOT rst = '1') THEN
         div8_rec_reg <= "000";    
      ELSE IF(clkbaud8x'EVENT AND clkbaud8x = '1') THEN
         IF (recstart = '1') THEN  --接收開始標志
            div8_rec_reg <= div8_rec_reg + "001";--接收開始后,時隙數在8倍波特率的時鐘下加1循環    
         END IF;
	   END IF;
      END IF;
   END PROCESS;

   PROCESS(clkbaud8x,rst)
   BEGIN
      IF (NOT rst = '1') THEN
         div8_tras_reg <= "000";    
      ELSE IF(clkbaud8x'EVENT AND clkbaud8x = '1') THEN
         IF (trasstart = '1') THEN
            div8_tras_reg <= div8_tras_reg + "001";--發送開始后,時隙數在8倍波特率的時鐘下加1循環    
         END IF;
	   END IF;
      END IF;
   END PROCESS;

   PROCESS(div8_rec_reg)
   BEGIN
      IF (div8_rec_reg = "111") THEN
         clkbaud_rec <= '1'; ---在第7個時隙,接收使能信號有效,將數據打入   
      ELSE
         clkbaud_rec <= '0';    
      END IF;
   END PROCESS;

   PROCESS(div8_tras_reg)
   BEGIN
      IF (div8_tras_reg = "111") THEN
         clkbaud_tras <= '1';  --在第7個時隙,發送使能信號有效,將數據發出  
      ELSE
         clkbaud_tras <= '0';    
      END IF;
   END PROCESS;

   PROCESS(clkbaud8x,rst)
   BEGIN
      IF (NOT rst = '1') THEN
         txd_reg <= '1';    
         trasstart <= '0';    
         txd_buf <= "00000000";    
         state_tras <= "0000";    
         send_state <= "000";    
         key_entry2 <= '0';    
      ELSE IF(clkbaud8x'EVENT AND clkbaud8x = '1') THEN
         IF (NOT key_entry2 = '1') THEN
            IF (key_entry1 = '1') THEN
               key_entry2 <= '1';    
               txd_buf <= "01110111";   --"w"
            END IF;
         ELSE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产品国语在线不卡| 日本韩国欧美国产| 亚洲超丰满肉感bbw| 一区二区免费在线播放| 亚洲精品视频在线观看网站| 国产精品美女久久久久aⅴ| 精品毛片乱码1区2区3区| 欧美三级电影精品| 欧美日韩亚洲另类| 日韩欧美专区在线| 精品电影一区二区| 日本一区二区动态图| 亚洲欧洲日产国码二区| 亚洲影院免费观看| 蜜桃久久精品一区二区| 精品在线播放午夜| 99综合电影在线视频| 在线观看av一区二区| 日韩一二三四区| 国产亚洲精品中文字幕| 综合色中文字幕| 日韩精品亚洲一区| 国产精品66部| 在线看不卡av| 国产日韩欧美精品在线| 亚洲综合av网| 国产美女av一区二区三区| 成人动漫一区二区三区| 欧美精品高清视频| 国产亚洲一区二区在线观看| 亚洲亚洲精品在线观看| 狠狠色伊人亚洲综合成人| 97se狠狠狠综合亚洲狠狠| 欧美色图天堂网| 久久久亚洲精品一区二区三区| 中文字幕乱码日本亚洲一区二区 | 蜜臀av一级做a爰片久久| 国产自产v一区二区三区c| 91精品国产一区二区三区蜜臀| 精品美女一区二区三区| 亚洲欧美激情视频在线观看一区二区三区 | 欧美一区二区二区| 国产精品三级视频| 欧美aaa在线| 在线看一区二区| 久久久久久久久久久久久久久99 | 日本久久电影网| 精品乱人伦小说| 亚洲成av人综合在线观看| 国产成人在线网站| 日韩无一区二区| 亚洲午夜免费福利视频| 99在线精品免费| 久久久久久久电影| 精品一区二区三区不卡 | 国产精品一二三在| 这里只有精品免费| 亚洲国产精品久久一线不卡| 97se亚洲国产综合在线| 国产精品日日摸夜夜摸av| 黑人精品欧美一区二区蜜桃| 欧美一区二区三区在线观看| 亚洲图片欧美色图| 一本到高清视频免费精品| 欧美国产激情二区三区| 亚洲欧美日韩国产手机在线| 一区二区三区四区精品在线视频| 精品一区二区三区视频| 欧美色电影在线| 一区二区三区中文在线观看| 91在线看国产| 中文字幕一区二区日韩精品绯色| 国产iv一区二区三区| 国产性天天综合网| 国产精品资源网站| 中文字幕乱码亚洲精品一区| 国产成人精品三级麻豆| 中文幕一区二区三区久久蜜桃| 国产乱码精品一区二区三区av| 精品日韩一区二区| 精品午夜一区二区三区在线观看| 日韩美女天天操| 国产一区福利在线| 国产精品网站在线| 一本色道久久加勒比精品| 久久久精品综合| 精品中文字幕一区二区小辣椒| 精品婷婷伊人一区三区三| 亚洲一区二区三区小说| 欧美亚洲高清一区| 日韩精品欧美成人高清一区二区| 欧美一级免费大片| 国产综合久久久久影院| 国产欧美一区二区精品忘忧草| 国产成人在线视频网站| 亚洲男人电影天堂| 制服丝袜一区二区三区| 国产成人日日夜夜| 一区二区三区四区五区视频在线观看| 欧美日韩精品系列| 精品一区二区三区免费毛片爱| 国产精品欧美一区二区三区| 色999日韩国产欧美一区二区| 日韩国产一二三区| 国产日韩高清在线| 欧美性欧美巨大黑白大战| 亚洲国产sm捆绑调教视频| 在线免费观看日韩欧美| 亚洲不卡av一区二区三区| 日韩欧美精品三级| av中文字幕在线不卡| 日韩激情在线观看| 国产亚洲污的网站| 欧美色图在线观看| 成人黄色av网站在线| 丝袜美腿亚洲色图| 精品精品国产高清一毛片一天堂| 大白屁股一区二区视频| 午夜在线成人av| 中文字幕亚洲区| 欧美一区2区视频在线观看| 99精品欧美一区二区三区小说 | 一区二区三区国产精华| 91高清视频在线| 麻豆成人av在线| 亚洲综合色自拍一区| 久久婷婷国产综合精品青草| 精品视频在线免费观看| 国产成人a级片| 日韩avvvv在线播放| 亚洲精品美国一| 最新久久zyz资源站| 久久综合成人精品亚洲另类欧美 | 2017欧美狠狠色| 欧美日韩高清不卡| 99re成人精品视频| 成人综合在线观看| 国产丶欧美丶日本不卡视频| 久久99国产精品免费网站| 婷婷开心久久网| 无吗不卡中文字幕| 亚洲午夜久久久久久久久电影院| 亚洲欧洲日产国产综合网| 国产精品美女久久久久久久网站| 久久久亚洲综合| 久久久精品国产免大香伊| 久久人人爽爽爽人久久久| 色美美综合视频| 精品av综合导航| 4438x成人网最大色成网站| 欧美日韩成人在线| 欧美最猛性xxxxx直播| 91黄色激情网站| 欧美亚洲日本国产| 制服.丝袜.亚洲.中文.综合| 91精品国产入口| 日韩区在线观看| 久久一留热品黄| 国产精品三级电影| 成人欧美一区二区三区在线播放| 亚洲色图清纯唯美| 亚洲一区二区三区四区的| 午夜精品一区二区三区免费视频| 亚洲不卡在线观看| 精品一二三四区| 粉嫩绯色av一区二区在线观看| 成人黄色片在线观看| 91啦中文在线观看| 欧美写真视频网站| 精品久久久久久久久久久久久久久久久| 欧美一区二区二区| 国产精品视频看| 亚洲国产精品久久久久秋霞影院| 成人sese在线| 国产激情一区二区三区四区| 成人av第一页| 欧美三级视频在线| 精品国产伦一区二区三区观看体验 | 一区二区三区**美女毛片| 日本中文字幕一区| 国产大陆精品国产| 欧美色偷偷大香| 国产亚洲精品超碰| 亚洲成人精品一区| 国产一区二区三区免费观看| 91香蕉视频污| 欧美一级精品在线| 国产精品进线69影院| 日本一区二区动态图| 亚洲国产精品精华液ab| 中文字幕综合网| 免费精品99久久国产综合精品| 国产成人综合网站| 欧美电影一区二区| 国产精品网曝门| 久久激情五月婷婷| 欧美三级视频在线观看| 国产日产亚洲精品系列| 国产精品理论在线观看| 精品一区中文字幕|