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

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

?? uart.vhd

?? Mars-XC2S50-S-Core-V2.0開發板核心板的說明和設計文檔
?? VHD
?? 第 1 頁 / 共 2 頁
字號:

--
-- 本模塊的功能是驗證實現和PC機進行基本的串口通信的功能。需要在
--PC機上安裝一個串口調試工具來驗證程序的功能。
-- 程序實現了一個收發一幀10個bit(即無奇偶校驗位)的串口控
--制器,10個bit是1位起始位,8個數據位,1個結束
--位。串口的波特律由程序中定義的div_par參數決定,更改該參數可以實
--現相應的波特率。程序當前設定的div_par 的值是0x104,對應的波特率是
--9600。用一個8倍波特率的時鐘將發送或接受每一位bit的周期時間
--劃分為8個時隙以使通信同步.
--程序的工作過程是:串口處于全雙工工作狀態,按動key2,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_vector(7 downto 0); -- 數碼管使能 
      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 <="01111111" ;--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精品久久久久久久91蜜桃| 亚洲成在人线免费| 欧美日韩免费不卡视频一区二区三区| 亚洲精品成a人| 91麻豆国产精品久久| 亚洲欧洲三级电影| av一区二区三区黑人| 国产精品久久精品日日| 91精品国产综合久久蜜臀| 视频精品一区二区| 欧美v亚洲v综合ⅴ国产v| 国产精一区二区三区| 国产精品久久久久一区| 99精品视频在线观看免费| 亚洲制服丝袜一区| 日韩一区和二区| 精品一区二区国语对白| 国产精品少妇自拍| 欧美在线影院一区二区| 日韩中文欧美在线| 国产三级三级三级精品8ⅰ区| caoporen国产精品视频| 午夜视频一区二区| 久久你懂得1024| 色综合久久88色综合天天| 亚洲一区二区三区影院| 久久免费国产精品| 欧美影视一区二区三区| 日本成人在线看| 久久精品一区二区三区不卡| 亚洲成人三级小说| 欧美一级午夜免费电影| 波多野结衣中文字幕一区| 国产精品久久久久三级| 成人动漫在线一区| 亚洲欧美激情视频在线观看一区二区三区| 欧洲一区二区三区免费视频| 国产精品久久久久久久久久久免费看| 国产三级精品在线| 亚洲免费观看视频| 久久综合国产精品| 蜜桃视频免费观看一区| 国产日韩欧美电影| 欧美成人bangbros| 4438x亚洲最大成人网| 在线欧美日韩国产| 成人午夜免费视频| 成人午夜视频在线| 在线成人免费观看| 欧美人妇做爰xxxⅹ性高电影| 天天综合日日夜夜精品| 亚洲一区在线观看网站| 自拍偷拍欧美激情| 国产亚洲午夜高清国产拍精品| 欧美电视剧在线观看完整版| 欧美男同性恋视频网站| 亚洲国产激情av| 欧美成人性战久久| 亚洲精品一区二区三区精华液 | 日本高清无吗v一区| 精品一区二区三区香蕉蜜桃| 免费黄网站欧美| 美女视频黄久久| 六月丁香婷婷久久| 国产老肥熟一区二区三区| 久久精品国产99久久6| 美女一区二区三区在线观看| 久久99精品久久久久久| 精品一区二区三区蜜桃| 久久国产精品99久久久久久老狼 | 成人免费视频网站在线观看| 懂色一区二区三区免费观看 | 亚洲精品你懂的| 一区二区在线观看免费| 亚洲精品欧美专区| 午夜在线成人av| 麻豆视频观看网址久久| 国产一区二区女| 国产91丝袜在线18| 91在线云播放| 欧美午夜精品一区| 日韩亚洲欧美高清| 欧美韩日一区二区三区| 亚洲欧美色一区| 日本大胆欧美人术艺术动态| 国产精品资源在线看| 成人一区二区三区| 欧洲国产伦久久久久久久| 91麻豆精品91久久久久同性| 884aa四虎影成人精品一区| 亚洲国产精品欧美一二99| 偷窥国产亚洲免费视频| 国产美女在线观看一区| 91国产丝袜在线播放| 欧美日本在线看| 精品国精品国产| 亚洲曰韩产成在线| 国产乱人伦偷精品视频免下载| 懂色av一区二区夜夜嗨| 欧美日韩高清在线| 久久久精品国产免费观看同学| 亚洲视频综合在线| 久久黄色级2电影| 91免费国产在线| 日韩精品一区在线观看| 久久婷婷成人综合色| 一区二区在线免费观看| 国产一区二区在线视频| 在线亚洲人成电影网站色www| 欧美成va人片在线观看| 自拍偷自拍亚洲精品播放| 老司机精品视频导航| 色综合久久综合| 26uuu久久综合| 午夜精品免费在线观看| 国产呦萝稀缺另类资源| 日韩一卡二卡三卡国产欧美| 亚洲卡通欧美制服中文| 国产剧情在线观看一区二区| 欧美日韩亚洲综合一区| 国产精品免费丝袜| 久久精品国产99| 欧美色偷偷大香| 亚洲欧洲三级电影| 国产电影一区二区三区| 欧美日韩国产首页| 国产欧美视频一区二区| 美国一区二区三区在线播放| 在线观看视频一区二区| 欧美激情一区二区三区蜜桃视频| 久久99精品国产麻豆婷婷洗澡| 色爱区综合激月婷婷| 国产精品久久久久久妇女6080| 国产乱色国产精品免费视频| 欧美一级久久久| 性做久久久久久免费观看| 成人激情免费视频| 亚洲国产激情av| 丁香亚洲综合激情啪啪综合| 日韩一级欧美一级| 日日噜噜夜夜狠狠视频欧美人| 在线一区二区三区四区五区 | 人人精品人人爱| 欧美高清视频一二三区 | 国产九色sp调教91| 精品国产一区二区三区av性色| 午夜精品福利一区二区蜜股av| 欧美日韩精品专区| 亚洲国产va精品久久久不卡综合 | 亚洲成av人片| 欧美性大战xxxxx久久久| 自拍视频在线观看一区二区| 成人高清免费观看| 国产欧美日韩亚州综合| 精品在线亚洲视频| 欧美激情综合五月色丁香| 国产馆精品极品| 欧美激情资源网| 成人免费观看av| 亚洲三级免费电影| 在线看国产一区二区| 亚洲一二三四久久| 99精品黄色片免费大全| 亚洲综合在线第一页| 欧美色图12p| 免费成人av资源网| 久久久久久毛片| 一本色道a无线码一区v| 亚洲精品视频在线看| 欧美视频一区二| 久久黄色级2电影| 欧美激情一区二区在线| 欧美在线你懂得| 首页综合国产亚洲丝袜| 欧美www视频| 成人av一区二区三区| 亚洲一区二区3| 精品播放一区二区| 成人免费不卡视频| 久久精品一区二区三区不卡牛牛| 在线观看一区不卡| 日韩av午夜在线观看| 久久久国产精品午夜一区ai换脸| 成人久久18免费网站麻豆| 亚洲女同一区二区| 欧美一区二区三区日韩视频| 国产一区二区电影| 国产欧美一区二区三区沐欲 | 精品亚洲国产成人av制服丝袜| 久久久精品2019中文字幕之3| 波多野结衣中文字幕一区| 亚洲成人一二三| 日本一区二区三级电影在线观看 | 成人免费视频视频| 日韩av电影免费观看高清完整版| 2023国产一二三区日本精品2022| 91首页免费视频|