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

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

?? ?

?? 44個vhdl實例 注1: 含有不可綜合語句
??
字號:
-------------------------------------------------------------------- Copyright (c) 1992,1993,1994, Exemplar Logic Inc. All rights reserved.---------------------------------------------------------------------- This design implements a UART. ---- --     Version 1.1 : Original Creation--     Version 1.2 : Modified to std_logic types--     Version 2.1 : Extended reset to be more effective.--                   Introduced OTHERS clause.--	download from: www.pld.com.cn & www.fpga.com.cn ----------------------------------------------------------------LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;ENTITY uart IS    PORT (clkx16 : IN    std_logic;	-- Input clock. 16x bit clock            read : IN    std_logic;	-- Received data read strobe           write : IN    std_logic;	-- Transmit data write strobe	      rx : IN    std_logic;	-- Receive  data line	   reset : IN    std_logic;	-- clear dependencies	      tx : OUT   std_logic;	-- Transmit data line           rxrdy : OUT   std_logic;	-- Received data ready to be read           txrdy : OUT   std_logic;	-- Transmitter ready for next byte       parityerr : OUT   std_logic;	-- Receiver parity error      framingerr : OUT   std_logic;	-- Receiver framing error         overrun : OUT   std_logic;	-- Receiver overrun error 	    data : INOUT std_logic_vector(0 TO 7)); -- Bidirectional data busEND uart;ARCHITECTURE exemplar OF uart IS    -- Transmit data holding register    SIGNAL      txhold : std_logic_vector(0 TO 7);    -- Transmit shift register bits    SIGNAL       txreg : std_logic_vector(0 TO 7);    SIGNAL      txtag2 : std_logic;	-- tag bits for detecting     SIGNAL      txtag1 : std_logic;	--    empty shift reg    SIGNAL    txparity : std_logic;	-- Parity generation register    -- Transmit clock and control signals    SIGNAL       txclk : std_logic;     -- Transmit clock: 1/16th of clkx16    SIGNAL      txdone : std_logic;	-- '1' when shifting of byte is done    SIGNAL paritycycle : std_logic;	-- '1' on next to last shift cycle    SIGNAL   txdatardy : std_logic;     -- '1' when data is ready in txhold    -- Receive shift register bits    SIGNAL      rxhold : std_logic_vector(0 TO 7);-- Holds received data for read    SIGNAL       rxreg : std_logic_vector(0 TO 7);-- Receive data 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    -- Receive clock and control signals    SIGNAL       rxclk : std_logic;	-- Receive data shift clock    SIGNAL      rxidle : std_logic;     -- '1' when receiver is idling    SIGNAL   rxdatardy : std_logic;     -- '1' when data is ready to be readBEGIN make_txclk:    PROCESS (reset, clkx16)	VARIABLE cnt  : std_logic_vector(2 DOWNTO 0);    BEGIN	-- Toggle txclk every 8 counts, which divides the clock by 16	IF reset='1' THEN	    txclk <= '0' ;	    cnt := (OTHERS=>'0') ;	ELSIF clkx16'event AND clkx16='1' THEN	    IF (cnt = "000") THEN 	        txclk <= NOT txclk; 	    END IF;	    cnt := cnt + "001"; -- Use the exemplar_1164 "+" on std_logic_vector	END IF;    END PROCESS;make_rxclk:    PROCESS  (reset, clkx16) 	VARIABLE rxcnt : std_logic_vector(0 TO 3); -- Count of clock cycles	VARIABLE rx1   : std_logic;	-- rx delayed one cycle	VARIABLE hunt  : boolean;	-- Hunting for start bit     BEGIN	IF reset='1' THEN	    -- Reset all generated signals and variables	    hunt := FALSE ;	    rxcnt := (OTHERS=>'0') ;	    rx1 := '0' ;	    rxclk <= '0' ;	ELSIF clkx16'EVENT AND clkx16 = '1' THEN	    -- rxclk = clkx16 divided by 16 	    rxclk <= rxcnt(0);	    -- Hunt=TRUE when we are looking for a start bit:	    --  A start bit is eight clock times with rx=0 after a falling edge	    IF (rxidle = '1' AND rx = '0' AND rx1 = '1') THEN                -- Start hunting when idle and falling edge is found	        hunt := TRUE;	    END IF ;	    IF rxidle = '0' OR rx = '1' THEN	        -- Stop hunting when shifting in data or a 1 is found on rx	        hunt := FALSE;	    END IF;	    rx1 := rx;	-- rx delayed by one clock for edge detection			-- (Must be assigned AFTER reference)	    -- Increment count when not idling or when hunting	    IF (rxidle = '0' OR hunt) THEN	        -- Count clocks when not rxidle or hunting for start bit	        rxcnt := rxcnt + "0001";	    ELSE	        -- hold at 1 when rxidle and waiting for falling edge	        rxcnt := "0001";	    END IF;	END IF ;    END PROCESS;-- transmit shift register:txshift:    PROCESS (reset, txclk)    BEGIN	IF reset='1' THEN	    txreg <= (OTHERS=>'0') ; 	    txtag1 <= '0' ;	    txtag2 <= '0' ;            txparity <= '0' ;	    tx <= '0' ;	ELSIF txclk'event AND txclk = '1' THEN 	    IF (txdone AND txdatardy) = '1'  THEN	        -- Initialize registers and load next byte of data	        txreg    <= txhold; -- Load tx register from txhold	        txtag2   <= '1';    -- Tag bits for detecting 	        txtag1   <= '1';    --    when shifting is done	        txparity <= '1';    -- Parity bit.Initializing to 1==odd parity	        tx       <= '0';    -- Start bit	    ELSE	        -- Shift data	        txreg <= txreg(1 TO 7) & txtag1;	        txtag1        <= txtag2;	        txtag2 	  <= '0';	        -- Form parity as each bit goes by	        txparity      <= txparity XOR txreg(0);	        -- Shift out data or parity bit or stop/idle bit	        IF txdone = '1' THEN		    tx <= '1';	-- stop/idle bit	        ELSIF paritycycle = '1' THEN		    tx <= txparity;	-- Parity bit	        ELSE	    	    tx <= txreg(0);	--Shift data bit	        END IF;	    END IF ;	END IF;    END PROCESS;    -- paritycycle = 1 on next to last cycle (When txtag2 has reached txreg(1))    --   (Enables putting the parity bit out on tx)    paritycycle <= txreg(1) AND NOT (txtag2 OR txtag1 OR 				     txreg(7) OR txreg(6) OR txreg(5) OR 				     txreg(4) OR txreg(3) OR txreg(2));    -- txdone = 1 when done shifting (When txtag2 has reached tx)    txdone <= NOT (txtag2 OR txtag1 OR		  txreg(7) OR txreg(6) OR txreg(5) OR txreg(4) OR 		  txreg(3) OR txreg(2) OR txreg(1) OR txreg(0));rx_proc: 	-- Shift data on each rxclk when not idling    PROCESS (reset, rxclk)     BEGIN	IF reset='1' THEN	    rxreg <= (OTHERS=>'0') ;            rxparity <= '0' ;            paritygen <= '0' ;            rxstop <= '0' ;	ELSIF rxclk'event AND rxclk = '1' THEN	    IF rxidle = '1' THEN 	        -- Load all ones when idling	        rxreg <= (OTHERS=>'1');	        rxparity <= '1';	        paritygen <= '1';	-- Odd parity	        rxstop <= '0';	    ELSE	        -- Shift data when not idling	        -- bug in assigning to slices	        -- rxreg (0 TO 6) <= rxreg (1 TO 7);	        -- rxreg(7) <= rxparity;	        rxreg <= rxreg (1 TO 7) & rxparity;	        rxparity <= rxstop;	        paritygen <= paritygen XOR rxstop;-- Form parity as data shifts by	        rxstop <= rx;	    END IF ;        END IF;    END PROCESS;    async:  -- rxidle requires async preset since it is clocked by rxclk and          -- its value determines whether rxclk gets generated     PROCESS ( reset, rxclk )    BEGIN        IF reset = '1' THEN           rxidle <= '0';        ELSIF rxclk'EVENT and rxclk = '1' THEN           rxidle <= NOT rxidle AND NOT rxreg(0);        END IF;    END PROCESS async;txio:	-- Load txhold and set txdatardy on falling edge of write	-- Clear txdatardy on falling edge of txdone    PROCESS (reset, clkx16)	VARIABLE wr1,wr2: std_logic;	-- write signal delayed 1 and 2 cycles	VARIABLE txdone1: std_logic;        -- txdone signal delayed one cycle    BEGIN	IF reset='1' THEN	    txdatardy <= '0' ;	    wr1 := '0' ;	    wr2 := '0' ;	    txdone1 := '0' ;	ELSIF clkx16'event AND clkx16 = '1' THEN	    IF wr1 = '0' AND wr2= '1' THEN	        -- Falling edge on write signal. New data in txhold latches	        txdatardy  <= '1';	    ELSIF txdone = '0' AND txdone1 = '1' THEN	        -- Falling edge on txdone signal. Txhold has been read.	        txdatardy  <= '0';	    END IF;	    -- Delayed versions of write and txdone signals for edge detection    	    wr2 := wr1;	    wr1 := write;	    txdone1 := txdone;	END IF ;    END PROCESS;rxio:    PROCESS (reset, clkx16)	VARIABLE rd1, rd2 : std_logic;	-- Read input delayed 1 and 2 cycles	VARIABLE rxidle1  : std_logic;	-- rxidle signal delayed 1 cycle    BEGIN	IF reset='1' THEN	    overrun <= '0' ;	    rxhold <= (OTHERS=>'0') ;	    parityerr <= '0' ;            framingerr <= '0' ;	    rxdatardy <= '0' ;	    rd1 := '0' ;            rd2 := '0' ;	    rxidle1 := '0' ;	ELSIF clkx16'event AND clkx16 = '1' THEN	    -- Look for rising edge on idle and update output registers	    IF rxidle = '1' AND rxidle1 = '0' THEN	        IF rxdatardy = '1' THEN	    	    -- Overrun error if previous data is still there		    overrun <= '1';	        ELSE		    -- No overrun error since holding register is empty		    overrun <= '0';		    -- Update holding register		    rxhold <= rxreg;		    -- paritygen = 1 if parity error		    parityerr <= paritygen;		    -- Framingerror if stop bit is not 1		    framingerr <= NOT rxstop;		    -- Signal that data is ready for reading		    rxdatardy <= '1';	        END IF;	    END IF;	    rxidle1 := rxidle;	-- rxidle delayed 1 cycle for edge detect	    --  Clear error and data registers when data is read	    IF (NOT rd2 AND rd1) = '1' THEN	        rxdatardy  <= '0';	        parityerr  <= '0';	        framingerr <= '0';	        overrun    <= '0';	    END IF;	    rd2 := rd1;	-- Edge detect for read	    rd1 := read;	-- (Must be assigned AFTER reference)	    IF reset = '1' THEN 	        rxdatardy <= '0'; 	    END IF;	END IF ;    END PROCESS;    -- Drive data bus only during read    data <= rxhold WHEN read = '1' ELSE (OTHERS=>'Z') ;    -- Latch data bus during write    txhold <= data WHEN write = '1' ELSE txhold;    -- Receive data ready output signal    rxrdy <= rxdatardy;    -- Transmitter ready for write when no data is in txhold    txrdy <= NOT txdatardy;    -- Run-time simulation check for transmit overrun    ASSERT write = '0' OR txdatardy = '0'	REPORT "Transmitter overrun error" SEVERITY WARNING;END exemplar;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss鲁片一区二区三区| 久久免费的精品国产v∧| 精品人伦一区二区色婷婷| 欧美激情一二三区| 蜜桃av一区二区三区电影| 暴力调教一区二区三区| 欧美一区二区久久| 一区二区三区**美女毛片| 国产原创一区二区三区| 欧美人与禽zozo性伦| 国产精品青草久久| 久久国产精品免费| 欧美丝袜丝交足nylons图片| 国产三级欧美三级日产三级99| 亚洲福利一区二区| 91原创在线视频| 日本一区二区三级电影在线观看| 日日夜夜免费精品视频| 在线观看亚洲精品视频| 国产精品久久免费看| 国产在线精品一区二区三区不卡| 欧美日韩在线播放| 一区二区三区欧美视频| www.成人在线| 日本一区二区免费在线观看视频| 国内精品写真在线观看| 欧美一卡二卡三卡| 五月激情综合色| 91久久精品一区二区| 亚洲欧洲精品一区二区三区 | 亚洲精品乱码久久久久久| 韩国精品主播一区二区在线观看| 91精品欧美久久久久久动漫 | 婷婷成人综合网| 91久久精品日日躁夜夜躁欧美| 国产精品免费人成网站| 成人午夜免费av| 国产精品二三区| 色综合久久综合网欧美综合网| 欧美国产精品一区| 99久久综合精品| 亚洲免费观看高清在线观看| 91小视频免费观看| 亚洲综合精品自拍| 欧美电影在线免费观看| 日本人妖一区二区| 337p日本欧洲亚洲大胆精品| 国产乱子伦一区二区三区国色天香| 欧美精品一区二区三区蜜臀| 国产一区 二区 三区一级| 国产女人18水真多18精品一级做| 成人性生交大片免费看在线播放| 中文字幕日本乱码精品影院| 色婷婷av一区| 日韩av在线发布| 久久久久久久久久久电影| 成人在线视频一区二区| 一区二区三区在线看| 在线播放一区二区三区| 国产一区激情在线| 亚洲视频网在线直播| 56国语精品自产拍在线观看| 国产在线视频不卡二| 中文子幕无线码一区tr| 欧美性色综合网| 国产在线精品视频| 一区二区三区毛片| 欧美美女黄视频| 国产成人在线视频网站| 亚洲综合无码一区二区| 精品国产乱码久久| 一本色道综合亚洲| 免费在线观看一区二区三区| 欧美国产一区在线| 欧美巨大另类极品videosbest | 91福利在线看| 久久99热99| 亚洲免费伊人电影| 久久久久久久久久看片| 欧美探花视频资源| 成人免费毛片app| 日本成人超碰在线观看| 国产精品国产三级国产普通话三级 | 成人理论电影网| 免费精品99久久国产综合精品| 中文字幕成人在线观看| 7777精品伊人久久久大香线蕉 | 成人涩涩免费视频| 蜜臀av国产精品久久久久| 中文字幕日韩精品一区 | 中文欧美字幕免费| 日韩一区二区免费在线观看| 91婷婷韩国欧美一区二区| 久久成人免费网站| 亚洲一区精品在线| 欧美激情一区在线| 国产精品欧美久久久久无广告 | 777午夜精品视频在线播放| 成人黄色大片在线观看| 精品在线视频一区| 青青国产91久久久久久 | 日韩不卡一区二区三区 | 青青草91视频| 亚洲一二三四在线| 亚洲欧美视频在线观看视频| 欧美极品aⅴ影院| wwwwww.欧美系列| 日韩欧美精品在线视频| 欧美日韩精品高清| 欧洲日韩一区二区三区| 99精品视频一区二区| 成人精品视频一区二区三区尤物| 另类小说综合欧美亚洲| 日本不卡一二三| 日韩影视精彩在线| 日日摸夜夜添夜夜添精品视频| 亚洲蜜臀av乱码久久精品| 国产精品进线69影院| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美xxxx在线观看| 欧美mv和日韩mv的网站| 日韩一二三区视频| 日韩精品一区二区三区在线 | 久久精品免费看| 蜜桃视频第一区免费观看| 蜜桃91丨九色丨蝌蚪91桃色| 麻豆成人av在线| 国产一区二区三区在线观看免费视频 | 亚洲aaa精品| 亚洲123区在线观看| 日韩高清一区在线| 久久国产视频网| 国产精品正在播放| 国产 欧美在线| hitomi一区二区三区精品| 91在线视频官网| 欧美日韩免费视频| 日韩三级视频中文字幕| 久久夜色精品国产欧美乱极品| 国产拍欧美日韩视频二区| 国产精品久久久久久亚洲伦| 亚洲精品写真福利| 青青草国产成人99久久| 国产精品中文字幕日韩精品| www.色精品| 欧美人伦禁忌dvd放荡欲情| 日韩欧美亚洲另类制服综合在线 | 美国三级日本三级久久99 | 日本欧美一区二区| 国产盗摄一区二区三区| 色婷婷亚洲精品| 日韩一区二区三区免费观看| 国产精品丝袜在线| 亚洲香蕉伊在人在线观| 久久国产精品99久久久久久老狼 | 久久se这里有精品| 成人精品免费视频| 欧美丰满嫩嫩电影| 国产精品国产三级国产有无不卡 | 国产亚洲精品资源在线26u| 亚洲视频在线观看一区| 奇米精品一区二区三区在线观看 | 91久久久免费一区二区| 欧美xxxxxxxx| 亚洲免费毛片网站| 精品在线观看视频| 在线视频综合导航| 久久久精品蜜桃| 亚洲va天堂va国产va久| 粉嫩蜜臀av国产精品网站| 欧美日韩亚洲综合| 国产精品蜜臀av| 蜜臀av一区二区| 欧美在线小视频| 国产精品免费aⅴ片在线观看| 天堂资源在线中文精品| 成人伦理片在线| 精品国产在天天线2019| 亚洲国产成人av| 99久久精品免费看| 久久午夜色播影院免费高清| 午夜视频在线观看一区二区 | 久久精子c满五个校花| 亚洲你懂的在线视频| 丁香婷婷深情五月亚洲| 精品久久99ma| 全国精品久久少妇| 欧美一区二区在线播放| 亚洲一区二区在线播放相泽| 99热在这里有精品免费| 国产精品视频九色porn| 国产精品中文字幕一区二区三区| 日韩午夜激情av| 日韩电影在线看| 91.com在线观看| 免费的国产精品| 日韩欧美精品在线| 美女一区二区三区| 日韩三级中文字幕| 精一区二区三区|