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

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

?? rxcver.vhd

?? 寢室哥們喜歡編程
?? VHD
字號:
--/*******************************************************************
-- *
-- *    DESCRIPTION: UART receiver module. 
-- *
-- *    AUTHOR: Jim Jian 
-- *
-- *    HISTORY: 1/14/96    
-- *
-- *******************************************************************/

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY rxcver IS
PORT (mclkx16  :  IN std_logic;  -- input clock, 16x baudrate clock used for synchronization
      read     :  IN std_logic;  -- Read Strobe
      rx       :  IN std_logic;  -- Receive Input Line
      reset    :  IN std_logic;  -- Global Reset

	   rxrdy       :  OUT  std_logic;  -- Receiver data ready to read
	   parityerr   :  OUT  std_logic;  -- Receiver parity error flag
	   framingerr  :  OUT  std_logic;  -- Receiver framing error flag
	   overrun     :  OUT  std_logic;  -- Receiver overrun error flag

		data        :  OUT  std_logic_vector(7 downto 0));  -- 8 bit output data bus
END rxcver;

--


ARCHITECTURE behave OF rxcver IS
SIGNAL rxcnt : std_logic_vector(3 downto 0);  -- clock cycle count
SIGNAL rx1, read1, read2, idle1 : std_logic;  -- delayed versions of rx, read, idle
SIGNAL hunt  : std_logic;  -- hunting for start bit flag
SIGNAL rhr : std_logic_vector(7 downto 0);  -- Receiver hold register
SIGNAL rsr : std_logic_vector(7 downto 0);  -- Receiver serial -> parallel shift register
SIGNAL rxparity  :  std_logic;  -- parity bit of received data
SIGNAL paritygen :  std_logic;  -- generated parity of received data
SIGNAL rxstop : std_logic;   -- stop bit of received data
CONSTANT paritymode : std_logic := '1';  -- initializing to 1 = odd parity, 0 = even parity
SIGNAL rxclk  : std_logic;   -- Receive data shift clock
SIGNAL idle  :  std_logic;   -- ='1' when receiver is idling
SIGNAL rxdatardy : std_logic;  -- = '1' when data is ready to be read

BEGIN

--// Idle requires async preset since it is clocked by rxclk, and it's  
--// value determines whether rxclk gets generated or not. 
--// Idle goes low when shifting in data. This is ensured because all bits 
--// of rsr are preset to all 1's when idle is high. Idle goes high again 
--// when rsr[0] = 0, i.e. when the low "rxstop" bit reach rsr[0]. 
--// Next rising edge of rxclk preset idle to high again, and generation of 
--// rxclk is disabled.
	

	idle_preset : PROCESS (rxclk, reset)
	BEGIN
		IF reset = '1' THEN
			idle <= '1';
		ELSIF rxclk'EVENT AND rxclk='1' THEN
			idle <= (NOT idle) AND (NOT rsr(0));
		END IF;
	END PROCESS;

--		
--// Synchronizing rxclk to the centerpoint of low leading startbit.
--always @(posedge mclkx16)
--begin
--
--	// A start bit is eight clock times with rx=0 after a falling edge of rx. 

	rxclk_sync : PROCESS (mclkx16, reset)
	BEGIN
		IF reset='1' THEN
			hunt <= '0';
			rxcnt <= "0001";
			rx1 <= '1';
			rxclk <= '0';
		ELSIF (mclkx16='1') AND mclkx16'EVENT THEN
			IF (idle='1' AND rx='0' AND rx1='1') THEN
				hunt <= '1';
			ELSE
			   IF (idle='0' OR rx='1') THEN
			      hunt <= '0';
            END IF;
            IF (idle ='0' OR hunt='1') THEN
               rxcnt <= rxcnt + 1;
            ELSE
               rxcnt <= "0001";
            END IF;
  
         END IF;
         rx1 <= rx;
         rxclk <= rxcnt(3);		
		END IF;
	END PROCESS;		


-- When not idling, sample data at the rx input, and generate parity.

   sample_data : PROCESS (rxclk, reset)
   BEGIN
      IF (reset = '1') THEN
      -- idle_reset   
         rsr        <= "11111111";		-- All 1's ensure that idle stays low during data shifting.
   	   rxparity   <= '1';        	-- Preset to high to ensure idle = 0 during data shifting.          
   	   paritygen  <= paritymode;	--Preset paritygen to parity mode.
   	   rxstop     <= '0';     
      ELSIF (rxclk='1') AND (rxclk'EVENT) THEN
         IF (idle='1') THEN
            -- idle_reset   
            rsr        <= "11111111";		-- All 1's ensure that idle stays low during data shifting.
   	      rxparity   <= '1';        	-- Preset to high to ensure idle = 0 during data shifting.          
   	      paritygen  <= paritymode;		-- Preset paritygen to parity mode.
   	      rxstop     <= '0';
         ELSE
  	         -- shift_data
  	         rsr         <= '0'&rsr(7 downto 1); -- Right shift receive shift register.     
            rsr(7)      <= rxparity;            -- Load rsr[7] with rxparity.
            rxparity    <= rxstop;              -- Load rxparity with rxstop.
            rxstop      <= rx;                  -- Load rxstop with rx. At 1'st shift rxstop gets low "start bit". 
            paritygen   <= paritygen XOR rxstop;  -- Generate parity as data are shifted.
         END IF;
      END IF;
   END PROCESS;


-- Generate status & error flags.

   generate_flag : PROCESS (mclkx16, reset)
   BEGIN
      IF (reset='1') THEN
      	rhr         <= "00000000";
	      rxdatardy 	<= '0';
	      overrun		<= '0';
	      parityerr   <= '0';
	      framingerr	<= '0';
	      idle1       <= '1'; 
	      read2       <= '1'; 
	      read1       <= '1'; 
      ELSIF (mclkx16='1') AND (mclkx16'EVENT) THEN
         IF (idle='1' AND idle1='0') THEN
            IF (rxdatardy='1') THEN
               overrun <= '1';
            ELSE
               overrun <= '0';				-- No overrun error, since holding register is empty.
			      rhr <= rsr;					   -- Update holding register with contens of shift register.
			      parityerr <= paritygen;    -- paritygen = 1, if parity error.
			      framingerr <= NOT rxstop;	-- Framingerror, if stop bit is not 1.
			      rxdatardy <= '1'; 			-- Data is ready for reading flag.
			   END IF;
		   END IF;
		   
		   IF (read2 = '0' AND read1='1') THEN
      	   rxdatardy  <= '0';
	         parityerr  <= '0';
	         framingerr <= '0';
	         overrun    <= '0';
		   END IF;

	      idle1 <= idle;				         -- idle delayed 1 cycle for edge detect.
	      read2 <= read1;	   				-- 2 cycle delayed version of read, used for edge detection.
	      read1 <= read;							-- 1 cycle delayed version of read, used for edge detection.
	   END IF;
   END PROCESS;
		              

   rxrdy <= rxdatardy;


   latch_data : PROCESS (read, rhr)
   BEGIN
      IF (read = '1') THEN
         data <= rhr;
      END IF;
   END PROCESS;

END behave;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲一区二区在线| 欧美福利视频一区| 欧美不卡在线视频| 国产99久久精品| 亚洲欧美日韩一区| 欧美日韩五月天| 麻豆精品在线看| 中文字幕不卡在线观看| 欧美中文字幕一区二区三区| 亚洲精品中文字幕乱码三区| 91精品国产丝袜白色高跟鞋| 国产剧情一区二区三区| 亚洲第一二三四区| 中文无字幕一区二区三区| 色88888久久久久久影院野外| 日韩福利视频导航| 亚洲天堂成人网| 欧美一级日韩免费不卡| 色综合久久88色综合天天免费| 日韩精品一区第一页| 中文字幕一区二区三中文字幕| 欧美日本国产一区| 99精品欧美一区二区三区综合在线| 青青草一区二区三区| 亚洲欧美日韩电影| 亚洲欧洲一区二区在线播放| 久久免费看少妇高潮| 色综合中文字幕国产| 国产在线一区二区| 国产资源在线一区| 国产中文字幕一区| 久久激情综合网| 国内精品国产成人国产三级粉色| 日韩不卡在线观看日韩不卡视频| 亚洲已满18点击进入久久| 亚洲欧美偷拍三级| 亚洲一区二区三区四区在线观看 | 亚洲一区二区三区小说| 亚洲欧洲精品天堂一级 | 精品理论电影在线观看| 欧美tickling挠脚心丨vk| 欧美高清精品3d| 精品欧美乱码久久久久久1区2区| 制服丝袜亚洲播放| 欧美精品一区二区高清在线观看| 精品国产91乱码一区二区三区| 精品国产凹凸成av人导航| 国产精品乱码人人做人人爱| 亚洲精品视频在线| 国产69精品一区二区亚洲孕妇| 成人精品gif动图一区| 欧美肥妇free| 亚洲欧美一区二区三区国产精品| 日本三级亚洲精品| 成人avav在线| 亚洲精品在线免费观看视频| 中文字幕永久在线不卡| 精品一区二区成人精品| 色综合中文字幕| 国产欧美日韩在线观看| 午夜不卡在线视频| 99视频热这里只有精品免费| 日韩视频一区二区三区在线播放| 国产午夜亚洲精品午夜鲁丝片| 亚洲国产一区二区在线播放| 9人人澡人人爽人人精品| 91精品国产色综合久久ai换脸| 亚洲伦理在线精品| av电影在线观看一区| 亚洲国产精品ⅴa在线观看| 国产在线一区二区综合免费视频| 91精品国产免费| 免费av成人在线| www久久精品| 国产99精品国产| 中文字幕中文字幕在线一区| 国产一区二区三区四区五区入口| 日韩无一区二区| 精品无码三级在线观看视频| 久久中文字幕电影| 国产麻豆视频一区二区| 亚洲三级在线播放| 欧美乱妇20p| 成人一区在线观看| 自拍偷拍国产亚洲| 欧美福利一区二区| 国产精品888| 亚洲成人在线观看视频| 欧美电影免费观看高清完整版| 国产91综合网| 性欧美疯狂xxxxbbbb| 国产三级欧美三级| 色8久久精品久久久久久蜜| 丝袜美腿成人在线| 久久免费国产精品| 91精品中文字幕一区二区三区| 国产乱码精品一区二区三| 亚洲va韩国va欧美va| 中文文精品字幕一区二区| 91精品国产aⅴ一区二区| 成人免费高清在线| 美国毛片一区二区| 亚洲精品视频免费观看| 国产欧美日韩中文久久| 欧美一区二区观看视频| 欧美午夜片在线观看| 懂色av一区二区三区蜜臀| 久久99精品久久久久久动态图| 亚洲色欲色欲www| 中文字幕 久热精品 视频在线| 91精品国产手机| 日韩欧美在线综合网| 3d成人h动漫网站入口| 欧美日韩国产a| 欧美精品精品一区| 制服丝袜国产精品| 日韩视频一区二区三区在线播放| 欧美色欧美亚洲另类二区| 99久久精品国产观看| 日本乱人伦一区| 欧美夫妻性生活| 精品国产乱码91久久久久久网站| 欧美一级一级性生活免费录像| 日韩欧美一区在线观看| 精品国内二区三区| 日韩一区欧美一区| 亚洲成人av中文| 日韩av电影免费观看高清完整版| 国内精品国产三级国产a久久 | 久久99国产精品尤物| 国产大陆精品国产| 欧美在线视频不卡| 亚洲精品在线免费播放| 国产精品乱码久久久久久| 亚洲h动漫在线| 国产91在线|亚洲| 91精品在线一区二区| 国产欧美日韩一区二区三区在线观看| 中文字幕在线不卡国产视频| 亚洲国产综合91精品麻豆| 国产夫妻精品视频| 欧美一区二区在线免费播放| 国产精品理论在线观看| 成人欧美一区二区三区视频网页 | 欧美成人综合网站| 亚洲国产另类精品专区| 成人午夜免费视频| 日韩女同互慰一区二区| 亚洲一级二级三级在线免费观看| 国产精品一区二区免费不卡| 日韩一区和二区| 日一区二区三区| 欧美精选午夜久久久乱码6080| 中文字幕亚洲电影| 91免费在线视频观看| 中文字幕在线免费不卡| 99久久免费国产| 亚洲欧洲一区二区在线播放| 国产最新精品精品你懂的| 久久亚洲一区二区三区明星换脸| 日韩精品亚洲一区二区三区免费| 色综合激情久久| 亚洲国产精品久久人人爱| 欧美视频中文字幕| 日韩国产高清影视| 欧美va日韩va| 91在线精品一区二区| 亚洲综合免费观看高清在线观看| 欧美日韩高清一区二区不卡| 日韩电影在线免费观看| 国产欧美综合在线| 欧洲精品在线观看| 久久99久久99小草精品免视看| 精品国产在天天线2019| 国产91精品在线观看| 亚洲成人免费视频| 精品国偷自产国产一区| 欧美怡红院视频| 成人白浆超碰人人人人| 另类的小说在线视频另类成人小视频在线 | 国产自产高清不卡| 成人午夜激情在线| 欧美日韩视频在线观看一区二区三区| 性久久久久久久| 国产精品久久久久影院| 91精品国产福利| 色综合中文字幕国产| 国产剧情一区在线| 日本亚洲天堂网| 亚洲伦理在线免费看| 中文字幕一区二区三中文字幕| 91精品国产免费| 欧美军同video69gay| 视频一区免费在线观看| 国产精品入口麻豆原神| 中文一区在线播放| 国产日韩欧美精品电影三级在线| 91精品视频网| 精品国产污网站| 日韩午夜三级在线|