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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serial_test.vhd

?? -- 本模塊的功能是驗(yàn)證實(shí)現(xiàn)和PC機(jī)進(jìn)行基本的串口通信的功能。需要在 --PC機(jī)上安裝一個(gè)串口調(diào)試工具來驗(yàn)證程序的功能。 -- 程序?qū)崿F(xiàn)了一個(gè)收發(fā)一幀10個(gè)bit(即無奇偶校驗(yàn)位)的串口控 --
?? VHD
字號(hào):

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

ENTITY serial_test IS
   PORT (
      clk                     : IN std_logic;   
      rst                     : IN std_logic;   
      rxd                     : IN std_logic;   --串行數(shù)據(jù)接收端
      txd                     : OUT std_logic; --串行數(shù)據(jù)發(fā)送端  
	  led                     : out std_logic_vector(7 downto 0)  
 
      );
END serial_test;

ARCHITECTURE arch OF serial_test IS

   --//////////////////inner reg////////////////////
   SIGNAL div_reg                  :  std_logic_vector(15 DOWNTO 0);--分頻計(jì)數(shù)器,分頻值由波特率決定。分頻后得到頻率8倍波特率的時(shí)鐘   
   SIGNAL div8_tras_reg            :  std_logic_vector(2 DOWNTO 0);--該寄存器的計(jì)數(shù)值對應(yīng)發(fā)送時(shí)當(dāng)前位于的時(shí)隙數(shù)   
   SIGNAL div8_rec_reg             :  std_logic_vector(2 DOWNTO 0);  --寄存器的計(jì)數(shù)值對應(yīng)接收時(shí)當(dāng)前位于的時(shí)隙數(shù) 
   SIGNAL state_tras               :  std_logic_vector(3 DOWNTO 0);  -- 發(fā)送狀態(tài)寄存器
   SIGNAL state_rec                :  std_logic_vector(3 DOWNTO 0); -- 接受狀態(tài)寄存器 
   SIGNAL clkbaud_tras             :  std_logic; --以波特率為頻率的發(fā)送使能信號(hào)  
   SIGNAL clkbaud_rec              :  std_logic; --以波特率為頻率的接受使能信號(hào)  
   SIGNAL clkbaud8x                :  std_logic; --以8倍波特率為頻率的時(shí)鐘,它的作用是將發(fā)送或接受一個(gè)bit的時(shí)鐘周期分為8個(gè)時(shí)隙  
   SIGNAL recstart                 :  std_logic; -- 開始發(fā)送標(biāo)志 
   SIGNAL recstart_tmp             :  std_logic; --開始接受標(biāo)志  
   SIGNAL trasstart                :  std_logic;   
   SIGNAL rxd_reg1                 :  std_logic; --接收寄存器1  
   SIGNAL rxd_reg2                 :  std_logic; --接收寄存器2,因?yàn)榻邮諗?shù)據(jù)為異步信號(hào),故用兩級緩存  
   SIGNAL txd_reg                  :  std_logic; --發(fā)送寄存器  
   SIGNAL rxd_buf                  :  std_logic_vector(7 DOWNTO 0);--接受數(shù)據(jù)緩存   
   SIGNAL txd_buf                  :  std_logic_vector(7 DOWNTO 0);--發(fā)送數(shù)據(jù)緩存   
   SIGNAL send_state               :  std_logic_vector(2 DOWNTO 0);--每次按鍵給PC發(fā)送"Welcome"字符串,這是發(fā)送狀態(tài)寄存器   
   SIGNAL key_entry2               :  std_logic;  --確定有鍵按下標(biāo)志 
   --//////////////////////////////////////////////
   CONSTANT  div_par               :  std_logic_vector(15 DOWNTO 0) := "0000000000011011"; --"0000000101000101"; 
   --分頻參數(shù),其值由對應(yīng)的波特率計(jì)算而得,按此參數(shù)分頻的時(shí)鐘頻率是波倍特率的8倍,此處值對應(yīng)57600的波特率,即分頻出的時(shí)鐘頻率是115200*8	    
   SIGNAL txd_xhdl3                :  std_logic;   

BEGIN

   txd <= txd_xhdl3;

   txd_xhdl3 <= txd_reg ;
	led<=rxd_buf;




   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倍波特率的時(shí)鐘
   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  --接收開始標(biāo)志
            div8_rec_reg <= div8_rec_reg + "001";--接收開始后,時(shí)隙數(shù)在8倍波特率的時(shí)鐘下加1循環(huán)    
         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";--發(fā)送開始后,時(shí)隙數(shù)在8倍波特率的時(shí)鐘下加1循環(huán)    
         END IF;
	   END IF;
      END IF;
   END PROCESS;

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

   PROCESS(div8_tras_reg)
   BEGIN
      IF (div8_tras_reg = "111") THEN
         clkbaud_tras <= '1';  --在第7個(gè)時(shí)隙,發(fā)送使能信號(hào)有效,將數(shù)據(jù)發(fā)出  
      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 <= '1';
			txd_buf <= "01110111";   --"w"    
      ELSE IF(clkbaud8x'EVENT AND clkbaud8x = '1') THEN
     
            CASE state_tras IS
               WHEN "0000" =>  --發(fā)送起始位
                        IF ((NOT trasstart='1') AND (send_state < "111") ) THEN
                           trasstart <= '1';    
                        ELSE
                           IF (send_state < "111") THEN
                              IF (clkbaud_tras = '1') THEN
                                 txd_reg <= '0';    
                                 state_tras <= state_tras + "0001";    
                              END IF;
                           ELSE
                              key_entry2 <= '0';    
                              state_tras <= "0000";    
                           END IF;
                        END IF;
               WHEN "0001" => --發(fā)送第1位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0010" =>  --發(fā)送第2位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0011" =>  --發(fā)送第3位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0100" => --發(fā)送第4位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0101" => --發(fā)送第5位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0110" => --發(fā)送第6位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "0111" => --發(fā)送第7位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "1000" =>  --發(fā)送第8位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= txd_buf(0);    
                           txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1);    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "1001" =>  --發(fā)送停止位
                        IF (clkbaud_tras = '1') THEN
                           txd_reg <= '1';    
                           txd_buf <= "01010101";    
                           state_tras <= state_tras + "0001";    
                        END IF;
               WHEN "1111" =>
                        IF (clkbaud_tras = '1') THEN
                           state_tras <= state_tras + "0001";    
                           send_state <= send_state + "001";    
                           trasstart <= '0';    
                           CASE send_state IS
                              WHEN "000" =>
                                       txd_buf <= "01100101"; --"e"   
                              WHEN "001" =>
                                       txd_buf <= "01101100"; --"l"   
                              WHEN "010" =>
                                       txd_buf <= "01100011";  --"c"  
                              WHEN "011" =>
                                       txd_buf <= "01101111"; --"o"  
                              WHEN "100" =>
                                       txd_buf <= "01101101";  --"m"  
                              WHEN "101" =>
                                       txd_buf <= "01100101";-- "e"   
                              WHEN OTHERS  =>
                                       txd_buf <= "00000000";  
                              
                           END CASE;
                        END IF;
               WHEN OTHERS  =>
                        IF (clkbaud_tras = '1') THEN
                           state_tras <= state_tras + "0001";    
                           trasstart <= '1';    
                        END IF;
               
            END CASE;
         END IF;
      END IF;

   END PROCESS;

   PROCESS(clkbaud8x,rst)  --接受PC機(jī)的數(shù)據(jù)
   BEGIN
      IF (NOT rst = '1') THEN
         rxd_reg1 <= '0';    
         rxd_reg2 <= '0';    
         rxd_buf <= "00000000";    
         state_rec <= "0000";    
         recstart <= '0';    
         recstart_tmp <= '0';    
      ELSE IF(clkbaud8x'EVENT AND clkbaud8x = '1') THEN
         rxd_reg1 <= rxd;    
         rxd_reg2 <= rxd_reg1;    
         IF (state_rec = "0000") THEN
            IF (recstart_tmp = '1') THEN
               recstart <= '1';    
               recstart_tmp <= '0';    
               state_rec <= state_rec + "0001";    
            ELSE
               IF ((NOT rxd_reg1 AND rxd_reg2) = '1') THEN --檢測到起始位的下降沿,進(jìn)入接受狀態(tài)
                  recstart_tmp <= '1';    
               END IF;
            END IF;
         ELSE
            IF (state_rec >= "0001" AND state_rec<="1000") THEN
               IF (clkbaud_rec = '1') THEN
                  rxd_buf(7) <= rxd_reg2;    
                  rxd_buf(6 DOWNTO 0) <= rxd_buf(7 DOWNTO 1);    
                  state_rec <= state_rec + "0001";    
               END IF;
            ELSE
               IF (state_rec = "1001") THEN
                  IF (clkbaud_rec = '1') THEN
                     state_rec <= "0000";    
                     recstart <= '0';    
                  END IF;
               END IF;
            END IF;
         END IF;
      END IF;
	END IF;
   END PROCESS;




END arch;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲少妇30p| 欧美日韩久久一区| 国产婷婷色一区二区三区在线| 蜜臀av一区二区| 精品国产一区二区亚洲人成毛片| 免费一区二区视频| 久久影院视频免费| 国产精品亚洲第一区在线暖暖韩国 | 丁香激情综合国产| 欧美激情在线一区二区| 久久国产夜色精品鲁鲁99| 久久只精品国产| 成人不卡免费av| 一区二区三区欧美视频| 欧美精品99久久久**| 男人操女人的视频在线观看欧美| 日韩欧美一区二区久久婷婷| 国产精品一级黄| 亚洲色大成网站www久久九九| 欧美三级在线看| 黄一区二区三区| 亚洲欧美一区二区久久| 欧美日韩亚洲另类| 国产精品一卡二卡| 一区二区三区四区蜜桃 | 777午夜精品视频在线播放| 琪琪久久久久日韩精品| 久久精品夜色噜噜亚洲a∨| 色综合久久综合网欧美综合网| 日日夜夜一区二区| 国产视频一区二区三区在线观看| 色一情一伦一子一伦一区| 日本欧美大码aⅴ在线播放| 欧美精品一区二区三区一线天视频| 不卡视频在线看| 日韩和欧美一区二区三区| 国产亚洲精品7777| 欧美日韩日本视频| 成人黄色777网| 青青草国产精品97视觉盛宴| 中文字幕亚洲一区二区va在线| 678五月天丁香亚洲综合网| 不卡的av在线播放| 五月激情综合婷婷| 国产精品久久久久久久久图文区 | 日本在线不卡视频一二三区| 国产精品视频免费| 精品欧美黑人一区二区三区| 一本色道久久综合精品竹菊 | 成人的网站免费观看| 免费观看一级特黄欧美大片| 亚洲精品中文在线影院| 久久久精品影视| 日韩一区二区免费高清| 色狠狠色噜噜噜综合网| 成人精品小蝌蚪| 国产综合色视频| 另类综合日韩欧美亚洲| 亚洲成人高清在线| 亚洲激情av在线| 日韩理论片一区二区| 久久久国际精品| 2023国产精华国产精品| 日韩欧美另类在线| 777奇米四色成人影色区| 在线这里只有精品| 色呦呦网站一区| 99久久久国产精品免费蜜臀| 国产69精品一区二区亚洲孕妇| 麻豆成人免费电影| 欧美aaaaaa午夜精品| 日韩综合一区二区| 午夜国产不卡在线观看视频| 亚洲高清视频在线| 一区二区在线观看不卡| 一区二区三区资源| 亚洲乱码日产精品bd| 亚洲精品国产成人久久av盗摄| 中文字幕在线播放不卡一区| 国产精品久久久久一区二区三区| 国产精品视频第一区| 国产精品女人毛片| 综合久久给合久久狠狠狠97色| 国产精品你懂的在线| 亚洲欧洲精品一区二区三区 | 在线观看视频一区| 91成人免费在线| 欧美色综合网站| 欧美三级韩国三级日本三斤| 欧美日韩国产高清一区二区三区| 欧美日韩亚洲高清一区二区| 日韩一级二级三级精品视频| 日韩欧美色综合网站| 久久综合九色综合97_久久久| 久久久不卡网国产精品一区| 国产日韩欧美一区二区三区综合| 欧美国产日本韩| 亚洲另类在线视频| 午夜视频在线观看一区二区三区| 日韩电影在线一区二区| 国产最新精品免费| 99在线精品免费| 欧美少妇性性性| 精品久久久久香蕉网| 亚洲国产高清aⅴ视频| 一区二区三区四区不卡视频| 婷婷开心久久网| 国产在线日韩欧美| 99精品欧美一区| 91麻豆精品91久久久久久清纯 | 午夜激情一区二区三区| 国内精品国产成人| av爱爱亚洲一区| 欧美精品久久99久久在免费线 | 调教+趴+乳夹+国产+精品| 美女网站色91| 99久久国产综合精品色伊| 欧美日韩美女一区二区| www久久精品| 一区二区三区精品| 国精产品一区一区三区mba桃花| 99久久精品国产观看| 91精品国产综合久久久久久漫画| 精品不卡在线视频| 一区二区三区精品在线观看| 久久99久久精品| 欧美在线观看一区| 国产日本欧洲亚洲| 视频一区中文字幕| 99久久777色| 精品国产91九色蝌蚪| 一区二区三区波多野结衣在线观看| 看电影不卡的网站| 日本高清不卡在线观看| 久久久久久免费| 污片在线观看一区二区| 9人人澡人人爽人人精品| 欧美电影免费观看高清完整版 | 成人av网站免费观看| 日韩三级电影网址| 亚洲一区二区偷拍精品| 成人高清伦理免费影院在线观看| 777a∨成人精品桃花网| 亚洲男人天堂av网| 国产91精品精华液一区二区三区 | 色婷婷亚洲婷婷| 国产精品美女久久久久久| 蜜桃av一区二区| 8x8x8国产精品| 亚洲午夜精品网| 色美美综合视频| 中文字幕一区二区三区四区不卡 | 性久久久久久久久| 色综合久久久久综合体桃花网| 26uuu精品一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美性猛交一区二区三区精品| 国产精品初高中害羞小美女文| 国产激情偷乱视频一区二区三区 | 国产一区视频网站| 日韩欧美一级片| 免费av成人在线| 日韩欧美国产高清| 免费人成黄页网站在线一区二区| 欧美精品精品一区| 日韩av网站在线观看| 欧美日韩精品一二三区| 午夜伊人狠狠久久| 欧美日韩国产一级片| 亚洲成人777| 4438x成人网最大色成网站| 天天操天天色综合| 9191国产精品| 麻豆成人免费电影| 久久在线观看免费| 国产乱码精品一区二区三区忘忧草 | 青青草原综合久久大伊人精品优势| 欧美性生活影院| 午夜不卡av免费| 欧美一区二区三区在| 男男视频亚洲欧美| 亚洲精品一区二区三区影院| 国产精品一色哟哟哟| 国产精品视频一二三区 | 欧美日韩精品一区二区| 婷婷丁香久久五月婷婷| 日韩一级大片在线| 国产麻豆成人精品| 国产精品国产三级国产aⅴ中文| 91视视频在线观看入口直接观看www| 亚洲美女一区二区三区| 欧美日韩高清影院| 精品一区二区日韩| 国产精品久久看| 在线观看视频一区二区| 久久精品99久久久| 国产精品短视频| 91精品欧美久久久久久动漫| 国产精品综合二区| 亚洲激情成人在线|