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

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

?? serial_test.vhd

?? FPGA EP2C5Q288C8 TEST 原碼,測(cè)試OK 打開即用.
?? 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(即無(wú)奇偶校驗(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,對(duì)應(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ù)值對(duì)應(yīng)發(fā)送時(shí)當(dāng)前位于的時(shí)隙數(shù)   
   SIGNAL div8_rec_reg             :  std_logic_vector(2 DOWNTO 0);  --寄存器的計(jì)數(shù)值對(duì)應(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),故用兩級(jí)緩存  
   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ù),其值由對(duì)應(yīng)的波特率計(jì)算而得,按此參數(shù)分頻的時(shí)鐘頻率是波倍特率的8倍,此處值對(duì)應(yīng)4800的波特率,即分頻出的時(shí)鐘頻率是9600*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 --檢測(cè)到起始位的下降沿,進(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一区二区三区免费野_久草精品视频
夜夜夜精品看看| 欧美电影在线免费观看| 一区二区三区国产| 日韩网站在线看片你懂的| 国产美女视频一区| 久久综合一区二区| 91在线免费看| 麻豆91精品视频| 国产精品久久国产精麻豆99网站| 色素色在线综合| 美女一区二区久久| 亚洲欧洲性图库| 91精品欧美久久久久久动漫| 99久久99久久久精品齐齐| 亚洲国产精品久久人人爱蜜臀| 欧美大尺度电影在线| 9i在线看片成人免费| 视频在线观看国产精品| 国产欧美一区二区精品性色超碰| 欧美自拍偷拍一区| 国产成人综合网站| 亚洲国产成人tv| 国产精品护士白丝一区av| 91精品国产aⅴ一区二区| 99精品国产热久久91蜜凸| 五月婷婷久久丁香| 国产精品久久影院| 精品剧情v国产在线观看在线| 欧日韩精品视频| 国产盗摄一区二区| 免费观看成人av| 一区二区三区成人| 中文字幕精品综合| 日韩欧美一区二区久久婷婷| 欧美体内she精高潮| 成人av午夜电影| 日韩精彩视频在线观看| 国产精品成人免费在线| 久久午夜国产精品| 日韩一区二区在线看| 色婷婷av一区二区| zzijzzij亚洲日本少妇熟睡| 韩国女主播成人在线观看| 天天射综合影视| 亚洲自拍另类综合| 亚洲欧美电影一区二区| 国产午夜亚洲精品午夜鲁丝片| 日韩精品一区二区三区蜜臀| 欧美午夜精品久久久| 91免费观看在线| 99精品黄色片免费大全| 丁香婷婷综合五月| 国产精品夜夜爽| 国产一区二区视频在线| 麻豆精品新av中文字幕| 日韩不卡手机在线v区| 婷婷成人激情在线网| 亚洲香肠在线观看| 欧美激情一区在线观看| 精品国产一区二区国模嫣然| 91精品欧美福利在线观看| 欧美高清视频一二三区| 欧美精品乱码久久久久久按摩 | 国产色产综合产在线视频| 日韩亚洲国产中文字幕欧美| 51精品久久久久久久蜜臀| 欧美网站大全在线观看| 欧美另类videos死尸| 欧美一区二区高清| 日韩久久免费av| 久久精品水蜜桃av综合天堂| 国产无一区二区| 亚洲欧洲性图库| 亚洲激情中文1区| 丝袜国产日韩另类美女| 精品一区二区三区欧美| 国产一区二区在线观看视频| 国产一区高清在线| 懂色av中文一区二区三区| 91美女在线观看| 欧美日本在线视频| 日韩一区和二区| 国产亚洲综合性久久久影院| 国产精品污污网站在线观看| 亚洲人xxxx| 亚洲福利电影网| 青青草97国产精品免费观看 | 亚洲狠狠爱一区二区三区| 午夜久久久久久久久久一区二区| 全部av―极品视觉盛宴亚洲| 久久黄色级2电影| 成人免费福利片| 91成人看片片| 日韩欧美国产精品| 国产精品网站在线| 一区二区三区高清在线| 中文无字幕一区二区三区| 一区二区三区免费在线观看| 亚洲高清中文字幕| 国产在线播精品第三| 99免费精品在线| 欧美一级理论片| 日韩美女久久久| 美国欧美日韩国产在线播放| 成人免费不卡视频| 9191成人精品久久| 日韩一区二区免费电影| 中文字幕欧美激情一区| 亚洲丶国产丶欧美一区二区三区| 裸体一区二区三区| 91麻豆自制传媒国产之光| 51精品久久久久久久蜜臀| 国产精品美女久久久久av爽李琼 | 亚洲国产精品久久不卡毛片 | 国产精品一区二区在线播放 | 蜜桃视频免费观看一区| 99精品视频在线观看| 日韩欧美高清一区| 亚洲免费av高清| 国产一区二区三区精品视频| 91成人在线观看喷潮| 一区二区三区四区在线| 色老汉av一区二区三区| 久久午夜羞羞影院免费观看| 亚洲一区二区中文在线| 成人午夜激情影院| 在线成人小视频| 国产午夜精品理论片a级大结局| 偷拍与自拍一区| 91网站最新网址| 欧美国产国产综合| 九九视频精品免费| 欧美三区在线观看| 中文字幕一区二区不卡| 亚洲一区成人在线| 99久久久国产精品免费蜜臀| 精品国精品国产| 欧美aaaaaa午夜精品| 欧美三级韩国三级日本三斤| 国产精品久久久久婷婷二区次| 激情综合色丁香一区二区| 欧美在线视频你懂得| 亚洲三级电影网站| av中文字幕在线不卡| 中文字幕日本乱码精品影院| jlzzjlzz国产精品久久| 综合亚洲深深色噜噜狠狠网站| 91在线免费视频观看| 一区二区三区加勒比av| 欧美精品丝袜中出| 蜜臀av性久久久久蜜臀av麻豆| 日韩欧美国产电影| 国产九色sp调教91| 国产精品国产自产拍在线| 一本久道久久综合中文字幕| 一区二区三区四区五区视频在线观看| 欧美伊人精品成人久久综合97| 婷婷久久综合九色综合伊人色| 91精品国产综合久久福利| 久久国产精品免费| 日本一区二区三区四区在线视频| 成人福利视频网站| 亚洲一区在线视频| 色噜噜狠狠色综合欧洲selulu| 亚洲二区在线观看| 精品乱码亚洲一区二区不卡| 国产.精品.日韩.另类.中文.在线.播放| 国产精品久久久久影院亚瑟| 在线免费观看视频一区| 蜜臀av性久久久久蜜臀aⅴ| 久久精品一区八戒影视| 色94色欧美sute亚洲线路二 | 91亚洲精品乱码久久久久久蜜桃 | www欧美成人18+| www.欧美日韩| 日韩中文字幕1| 国产欧美精品在线观看| 欧洲视频一区二区| 国内精品久久久久影院色| 国产精品女同互慰在线看| 欧美色综合天天久久综合精品| 国内久久精品视频| 亚洲精品中文在线观看| 欧美成人精品福利| 91一区二区在线| 黑人巨大精品欧美一区| 亚洲黄色av一区| 精品久久人人做人人爱| 色综合久久久久久久久| 久久国内精品自在自线400部| 国产精品第13页| 欧美欧美欧美欧美首页| 高清不卡在线观看| 日韩av一区二区三区| 国产精品久久久久久久岛一牛影视| 欧美日韩成人一区| 99视频热这里只有精品免费| 久久99久久久久| 亚洲一区二区偷拍精品| 国产精品久久久一本精品|