亚洲欧美第一页_禁久久精品乱码_粉嫩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) := "0000000100000100"; 
   --分頻參數,其值由對應的波特率計算而得,按此參數分頻的時鐘頻率是波倍特率的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一区二区三区免费野_久草精品视频
欧美在线观看一二区| 精品国产伦一区二区三区观看方式 | 7777精品伊人久久久大香线蕉的| 色综合一区二区三区| 99久久er热在这里只有精品66| 国产福利精品导航| 国产盗摄视频一区二区三区| 国产精品一区二区不卡| 国产一区二区三区国产| 国产精品自拍三区| 国产99精品国产| av中文字幕一区| 在线亚洲精品福利网址导航| 在线亚洲一区观看| 欧美三级视频在线播放| 欧美日韩在线免费视频| 91精品国产色综合久久ai换脸| 欧美一区二区人人喊爽| 精品国内片67194| 国产日韩欧美精品电影三级在线| 国产日韩欧美a| 国产欧美一区二区精品婷婷 | 午夜影视日本亚洲欧洲精品| 亚洲大片精品永久免费| 日韩成人一区二区| 国内精品伊人久久久久av影院 | 91网站最新地址| 欧美在线短视频| 日韩免费电影一区| 欧美国产精品一区二区三区| 亚洲男人的天堂在线观看| 亚洲国产视频直播| 蜜臀av性久久久久蜜臀aⅴ| 国产福利91精品一区二区三区| 99久久久久免费精品国产| 欧美日韩一本到| 久久这里只有精品首页| 亚洲色图色小说| 日欧美一区二区| 国产不卡免费视频| 欧美四级电影网| 久久久久久久综合色一本| 亚洲欧美另类在线| 久久av资源网| 91小宝寻花一区二区三区| 欧美一区二区三区婷婷月色| 亚洲国产成人午夜在线一区| 亚洲成av人片在线观看无码| 国内精品视频666| 欧美性受xxxx黑人xyx| 久久无码av三级| 亚洲国产精品久久久男人的天堂| 国内精品视频666| 欧美日韩极品在线观看一区| 久久久电影一区二区三区| 亚洲成人综合在线| 粉嫩一区二区三区性色av| 欧美肥妇bbw| 亚洲欧洲精品成人久久奇米网| 麻豆91精品视频| 欧美亚日韩国产aⅴ精品中极品| 久久免费的精品国产v∧| 亚洲乱码国产乱码精品精的特点 | 五月天亚洲婷婷| 波多野结衣在线aⅴ中文字幕不卡| 欧美另类高清zo欧美| 国产一区二区在线电影| 色综合欧美在线| 欧美一区二区日韩| 亚洲黄色av一区| 国产精品亚洲一区二区三区在线| 在线精品观看国产| 亚洲欧美怡红院| 国模套图日韩精品一区二区| 欧美日韩一区国产| 亚洲欧美日韩一区| 成人精品国产福利| 久久人人爽人人爽| 奇米色一区二区三区四区| 色婷婷综合久久久中文一区二区| 久久久99精品久久| 精品无人码麻豆乱码1区2区| 欧美老肥妇做.爰bbww| 亚洲伊人伊色伊影伊综合网| 99国产一区二区三精品乱码| 国产女人aaa级久久久级 | 欧美日韩精品欧美日韩精品一| 国产精品免费视频一区| 国产一区二区三区免费在线观看| 欧美一区二区三区电影| 亚洲国产成人tv| 在线观看成人小视频| 亚洲激情在线播放| 91亚洲男人天堂| 日韩一区中文字幕| av一区二区三区在线| 国产精品视频看| 成人黄色一级视频| 国产精品私人自拍| 粉嫩aⅴ一区二区三区四区五区 | 日韩黄色小视频| 欧美日韩高清在线| 午夜电影久久久| 在线不卡欧美精品一区二区三区| 亚洲国产精品一区二区久久| 欧美日韩一区二区三区在线看| 亚洲国产日韩在线一区模特| 欧美日韩一区二区三区高清| 五月激情综合色| 91精品国产一区二区人妖| 奇米777欧美一区二区| 日韩三级视频在线观看| 久久爱另类一区二区小说| 日韩精品一区二区三区四区| 黄页网站大全一区二区| 国产亚洲一二三区| 成人黄色av电影| 亚洲素人一区二区| 欧洲国产伦久久久久久久| 亚洲电影你懂得| 欧美一卡在线观看| 国产露脸91国语对白| 欧美激情一区在线观看| 99视频在线精品| 亚洲一区二区三区美女| 91精品一区二区三区久久久久久 | 久久草av在线| 欧美videos大乳护士334| 国产精品自拍毛片| 国产精品理伦片| 在线看国产一区| 免费看欧美美女黄的网站| 久久九九久精品国产免费直播| 成人精品国产一区二区4080| 亚洲一级片在线观看| 精品88久久久久88久久久| 99久久精品一区二区| 亚洲午夜在线视频| 欧美成人一区二区三区| eeuss鲁片一区二区三区| 亚洲成人综合网站| 久久久久国产精品麻豆| 色噜噜久久综合| 蜜桃av一区二区| 最新国产成人在线观看| 欧美一区二区三区系列电影| 懂色av一区二区三区蜜臀| 亚洲一二三区在线观看| 精品国产91洋老外米糕| 91在线观看高清| 麻豆精品久久精品色综合| 国产精品国产三级国产aⅴ中文| 欧美三级视频在线播放| 国产a久久麻豆| 五月婷婷另类国产| 中文字幕在线观看一区| 91精品中文字幕一区二区三区| 成人在线视频首页| 日韩综合小视频| 成人免费在线视频观看| 日韩精品一区二区三区在线观看| 一本色道久久综合精品竹菊| 国产一区二区毛片| 香蕉久久夜色精品国产使用方法| 国产欧美一区二区三区在线老狼 | 一区二区三区久久久| 欧美精品一区二区久久婷婷| 欧美日韩一区高清| 99热精品一区二区| 国产一区在线视频| 日韩主播视频在线| 亚洲视频精选在线| 欧美激情综合网| 日韩三级视频中文字幕| 欧美三级欧美一级| 99久久国产综合精品色伊| 国产乱子伦视频一区二区三区 | 欧美色视频一区| www.成人网.com| 国产剧情一区在线| 欧美aⅴ一区二区三区视频| 亚洲一区二区欧美日韩| 中文字幕在线播放不卡一区| 国产校园另类小说区| 日韩免费电影网站| 91精品国模一区二区三区| 欧美在线|欧美| 92国产精品观看| 高清国产一区二区三区| 黄色成人免费在线| 日本不卡视频在线| 视频一区二区三区在线| 一二三区精品视频| 亚洲男人天堂一区| 亚洲欧美一区二区三区极速播放 | 亚洲一区国产视频| 一区二区欧美视频| 一区二区三区在线免费| 亚洲人成网站色在线观看| 亚洲欧美在线视频观看|