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

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

?? uart.vhd

?? uart VHDL code : include tx,rx,parity bit control
?? VHD
字號:
--============================================================================
-- Project 		: line Control
-- Programmer	: Byungchan Son
-- Function		: line 價薦腳扁
-- Language		: VHDL
--============================================================================
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
--============================================================================
-- 澇免仿 器飄 瀝狼
--============================================================================
entity uart_tranceiver is
	port(
		-- 矯膠袍 腳齲
		reset : in std_logic;
		clock : in std_logic;
		-- com 腳齲
		tx_line : out std_logic;
		rx_line : in std_logic;
		-- line 力絹何
		com_baudrate : in std_logic_vector(15 downto 0);
		com_control : in std_logic_vector(1 downto 0);
		com_tx_data : in std_logic_vector(7 downto 0);
		com_tx_wrreq : in std_logic;
		com_tx_full : out std_logic;
		com_rx_data : out std_logic_vector(7 downto 0);
		com_rx_rdreq : in std_logic;
		com_rx_empty : out std_logic
		);
end uart_tranceiver;
--============================================================================
-- 備煉 瀝狼
--============================================================================
architecture uart_tranceiver_a of uart_tranceiver is
--------------------------------------------------------------------
-- 郴何 葛碘
--------------------------------------------------------------------
-- com 價腳 滾欺
component transmit_buff
	PORT
	(
		clock		: IN STD_LOGIC ;
		data		: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
		rdreq		: IN STD_LOGIC ;
		wrreq		: IN STD_LOGIC ;
		empty		: OUT STD_LOGIC ;
		full		: OUT STD_LOGIC ;
		q		: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
	);
end component;
-- com 薦腳 滾欺
component receiver_buff
	port(
		clock		: IN STD_LOGIC ;
		data		: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
		rdreq		: IN STD_LOGIC ;
		wrreq		: IN STD_LOGIC ;
		empty		: OUT STD_LOGIC ;
		q		: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
		);
end component;
--------------------------------------------------------------------
-- 郴何 腳齲
--------------------------------------------------------------------
--惑怕扁拌 腳齲
-- 薦腳 葛碘
type receive_state is(
	rx_ready,
	rx_start,
	rx_data_accept,
	rx_parity_bit,
	rx_stop_bit
	);
signal rx_current_state, rx_next_state : receive_state;
-- 價腳 葛碘
type transmit_state is(
	tx_ready,
	tx_read_delay,
	tx_read_data,
	tx_data_transmit,
	tx_parity_bit,
	tx_stop_bit
	);
signal tx_current_state, tx_next_state : transmit_state;
------------------------------------------------------------------------------
-- 郴何 腳齲
------------------------------------------------------------------------------
-- baud rate 努釩 慣積扁
signal rx_baudrate_clock : std_logic;
signal rx_baudrate_clock1 : std_logic;
signal rx_baudrate_counter : std_logic_vector(15 downto 0);
signal tx_baudrate_clock : std_logic;
signal tx_baudrate_clock1 : std_logic;
signal tx_baudrate_counter : std_logic_vector(15 downto 0);
-- 薦腳何 腳齲
signal rx_baudrate_enable : std_logic;
signal sync_rx_line : std_logic;
signal clk1_rx_line : std_logic;
signal rx_buffer : std_logic_vector(7 downto 0);
signal rx_bit_count : std_logic_vector(2 downto 0);
-- 價腳何 腳齲
signal tx_baudrate_enable : std_logic;
signal tx_buffer : std_logic_vector(7 downto 0);
signal tx_bit_count : std_logic_vector(2 downto 0);
signal tx_parity : std_logic;
-- 薦腳 滾欺
signal rx_buff_data	: STD_LOGIC_VECTOR (7 DOWNTO 0);
signal rx_buff_wrreq : STD_LOGIC;
-- 價腳 滾欺
signal tx_buff_rdreq : STD_LOGIC;
signal tx_buff_empty : STD_LOGIC;
signal tx_buff_q : STD_LOGIC_VECTOR (7 DOWNTO 0);
--============================================================================
-- 橇肺技輯 矯累
--============================================================================
begin
	----------------------------------------------------------------
	-- 郴何 葛碘 搬急
	----------------------------------------------------------------
	-- com 薦腳 滾欺
	m1 : receiver_buff
	port map(
		clock => clock,
		data  => rx_buff_data,
		rdreq => com_rx_rdreq,
		wrreq => rx_buff_wrreq,
		empty => com_rx_empty,
		q     => com_rx_data
		);
	-- com 價腳 滾欺
	m2 : transmit_buff
	port map(
		clock => clock,
		data  => com_tx_data,
		rdreq => tx_buff_rdreq,
		wrreq => com_tx_wrreq,
		empty => tx_buff_empty,
		full  => com_tx_full,
		q     => tx_buff_q
		);
	----------------------------------------------------------------
	-- baud rate 努釩 慣積扁
	----------------------------------------------------------------
	baudrate_generator : process(
		reset,
		clock,
		rx_baudrate_clock,
		rx_baudrate_counter,
		tx_baudrate_clock,
		tx_baudrate_counter,
		com_baudrate
		)
	begin
		if(reset = '1')then
			-- 惑怕 扁拌
			-- 郴何 腳齲
			rx_baudrate_clock <= '0';
			rx_baudrate_counter <= (others => '0');
			tx_baudrate_clock <= '0';
			tx_baudrate_counter <= (others => '0');
		elsif(clock'event and clock = '1')then
			-- 價腳 baudrate 努釩 慣積扁
			if(tx_baudrate_enable = '1')then
				if(tx_baudrate_counter = com_baudrate)then
					tx_baudrate_clock <= not tx_baudrate_clock;
                    tx_baudrate_counter <= (others => '0');
				else
					tx_baudrate_counter <= tx_baudrate_counter + 1;
                end if;
			else
				tx_baudrate_counter <= (others => '0');
				tx_baudrate_clock <= '0';
			end if;
			-- 薦腳 baudrate 努釩 慣積扁
			if(rx_baudrate_enable = '1')then
				if(rx_baudrate_counter = com_baudrate)then
					rx_baudrate_clock <= not rx_baudrate_clock;
                    rx_baudrate_counter <= (others => '0');
				else
					rx_baudrate_counter <= rx_baudrate_counter + 1;
                end if;
			else
				rx_baudrate_counter <= (others => '0');
				rx_baudrate_clock <= '0';
			end if;
		end if;
	end process;
	----------------------------------------------------------------
	-- 薦腳 葛碘
	----------------------------------------------------------------
	receiver : process(
		reset,
		clock,
		rx_line,
		sync_rx_line,
		clk1_rx_line,
		rx_current_state,
		rx_next_state,
		rx_baudrate_clock,
		rx_bit_count
		)
	begin
		if(reset = '1')then
			-- 惑怕 扁拌
			rx_next_state <= rx_ready;
			-- 郴何 腳齲
			rx_buffer <= (others => '0');
			rx_bit_count <= (others => '0');
			rx_baudrate_enable <= '0';
			rx_baudrate_clock1 <= '0';
			rx_buff_data <= (others => '0');
			rx_buff_wrreq <= '0';
		elsif(clock'event and clock = '1')then
			sync_rx_line <= rx_line;
			clk1_rx_line <= sync_rx_line;
			rx_baudrate_clock1 <= rx_baudrate_clock;
			case rx_current_state is
				when rx_ready =>
					rx_buff_wrreq <= '0';
					if(clk1_rx_line = '1' and sync_rx_line = '0')then
						rx_baudrate_enable <= '1';
						rx_next_state <= rx_start;
					else
						rx_baudrate_enable <= '0';
					end if;
				when rx_start =>
					if(rx_baudrate_clock1 = '0' and rx_baudrate_clock = '1')then
						if(sync_rx_line = '0')then
							rx_next_state <= rx_data_accept;
						else
							rx_next_state <= rx_ready;
						end if;
					end if;
				when rx_data_accept =>
					if(rx_baudrate_clock1 = '0' and rx_baudrate_clock = '1')then
						rx_buffer(7) <= sync_rx_line;
						rx_buffer(6) <= rx_buffer(7);
						rx_buffer(5) <= rx_buffer(6);
						rx_buffer(4) <= rx_buffer(5);
						rx_buffer(3) <= rx_buffer(4);
						rx_buffer(2) <= rx_buffer(3);
						rx_buffer(1) <= rx_buffer(2);
						rx_buffer(0) <= rx_buffer(1);
						if(rx_bit_count = "111")then
							rx_bit_count <= (others => '0');
							if(com_control(1) = '0')then
								rx_next_state <= rx_stop_bit;
							else
								rx_next_state <= rx_parity_bit;
							end if;
						else
							rx_bit_count <= rx_bit_count + 1;
						end if;
					end if;
				when rx_parity_bit =>
					if(rx_baudrate_clock1 = '0' and rx_baudrate_clock = '1')then
						rx_next_state <= rx_stop_bit;
					end if;
				when rx_stop_bit =>
					if(rx_baudrate_clock1 = '0' and rx_baudrate_clock = '1')then
						if(sync_rx_line = '1')then
							rx_buff_data <= rx_buffer;
							rx_buff_wrreq <= '1';
						end if;
						rx_next_state <= rx_ready;
					end if;
			end case;
		end if;
		rx_current_state <= rx_next_state;
	end process;
	----------------------------------------------------------------
	-- 價腳 葛碘
	----------------------------------------------------------------
	transmitter : process(
		reset,
		clock,
		tx_current_state,
		tx_next_state,
		tx_baudrate_clock,
		tx_bit_count
		)
	begin
		if(reset = '1')then
			-- 惑怕 扁拌
			tx_next_state <= tx_ready;
			-- 郴何 腳齲
			tx_buffer <= (others => '0');
			tx_bit_count <= (others => '0');
			tx_baudrate_enable <= '0';
			tx_line <= '1';
			tx_baudrate_clock1 <= '0';
		elsif(clock'event and clock = '1')then
			tx_baudrate_clock1 <= tx_baudrate_clock;
			case tx_current_state is
				when tx_ready =>
					if(tx_buff_empty = '0')then
						tx_buff_rdreq <= '1';
						tx_next_state <= tx_read_delay;
					else
						tx_baudrate_enable <= '0';
					end if;
				when tx_read_delay =>
					tx_buff_rdreq <= '0';
					tx_next_state <= tx_read_data;
				when tx_read_data =>
					tx_buffer <= tx_buff_q;
					tx_baudrate_enable <= '1';
					tx_line <= '0';
					tx_parity <= '0';
					tx_next_state <= tx_data_transmit;
				when tx_data_transmit =>
					if(tx_baudrate_clock1 = '1' and tx_baudrate_clock = '0')then
						tx_line <= tx_buffer(0);
						tx_parity <= tx_parity xor tx_buffer(0);
						tx_buffer(0) <= tx_buffer(1);
						tx_buffer(1) <= tx_buffer(2);
						tx_buffer(2) <= tx_buffer(3);
						tx_buffer(3) <= tx_buffer(4);
						tx_buffer(4) <= tx_buffer(5);
						tx_buffer(5) <= tx_buffer(6);
						tx_buffer(6) <= tx_buffer(7);
						if(tx_bit_count = "111")then
							tx_bit_count <= (others => '0');
							if(com_control(1) = '0')then
								tx_next_state <= tx_stop_bit;
							else
								tx_next_state <= tx_parity_bit;
							end if;
						else
							tx_bit_count <= tx_bit_count + 1;
						end if;
					end if;
				when tx_parity_bit =>
					if(tx_baudrate_clock1 = '1' and tx_baudrate_clock = '0')then
						tx_line <= tx_parity xor com_control(0);
						tx_next_state <= tx_stop_bit;
					end if;
				when tx_stop_bit =>
					if(tx_baudrate_clock1 = '1' and tx_baudrate_clock = '0')then
						if(tx_bit_count = "001")then
							tx_bit_count <= (others => '0');
							tx_next_state <= tx_ready;
						else
							tx_bit_count <= tx_bit_count + 1;
							tx_line <= '1';
						end if;
					end if;
			end case;
		end if;
		tx_current_state <= tx_next_state;
	end process;
	----------------------------------------------------------------
	-- 肺流 腳齲
	----------------------------------------------------------------
end uart_tranceiver_a;
--============================================================================
-- 場
--============================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产九色精品成人porny| 日韩午夜av一区| 欧美精品第一页| 国产精品素人一区二区| 日精品一区二区三区| 91美女精品福利| 国产日韩在线不卡| 免费人成黄页网站在线一区二区| www.在线成人| 26uuu色噜噜精品一区| 亚洲一区二区三区自拍| 成人一区在线观看| 久久久不卡网国产精品一区| 水野朝阳av一区二区三区| 99精品热视频| 国产精品午夜在线| 国内精品写真在线观看| 91精品福利在线一区二区三区| 亚洲欧美日韩系列| 不卡一卡二卡三乱码免费网站| 精品国产污污免费网站入口| 天天免费综合色| 欧美综合久久久| 亚洲欧美电影院| 91丝袜美腿高跟国产极品老师| 欧美国产精品中文字幕| 国产suv精品一区二区6| 久久综合网色—综合色88| 青青青伊人色综合久久| 91精品国产综合久久国产大片| 一区二区三区日韩在线观看| 一本到高清视频免费精品| 成人欧美一区二区三区视频网页| 高清国产一区二区三区| 久久久91精品国产一区二区三区| 激情综合五月天| 欧美精品一区视频| 国产激情视频一区二区在线观看| 久久久亚洲高清| 成人黄色软件下载| 中文字幕中文字幕一区| 色综合久久久久久久久| 亚洲午夜在线视频| 欧美日韩一区二区三区高清| 五月婷婷欧美视频| 欧美一区二区三区四区五区| 久久丁香综合五月国产三级网站| 精品久久久久香蕉网| 国产精品一区二区男女羞羞无遮挡| 久久精品视频网| 成人av网址在线| 亚洲一二三区不卡| 日韩三级高清在线| 国产成人亚洲综合a∨猫咪| 中文字幕第一区综合| 色综合天天综合网国产成人综合天 | 欧美一级一区二区| 奇米影视一区二区三区| 久久综合久久综合久久| 成人aa视频在线观看| 一区二区三区中文字幕在线观看| 欧美日韩国产免费| 国产自产高清不卡| 中文字幕一区三区| 91精品国产色综合久久不卡电影| 美国十次综合导航| 亚洲视频一区在线观看| 欧美一区二区三区白人| 成人美女在线视频| 日欧美一区二区| 中文字幕一区二区三区蜜月| 欧美另类一区二区三区| 粉嫩一区二区三区性色av| 亚洲午夜成aⅴ人片| 欧美—级在线免费片| 欧美久久一二区| av一区二区三区黑人| 日本视频免费一区| 亚洲猫色日本管| 久久久综合精品| 欧美日韩在线播| k8久久久一区二区三区| 美女一区二区视频| 一个色综合av| 国产精品久久久久久亚洲伦| 欧美一级一级性生活免费录像| 成人午夜激情片| 麻豆精品一区二区三区| 亚洲国产美女搞黄色| 国产精品久久久久一区| 欧美tickling挠脚心丨vk| 91福利在线导航| 92精品国产成人观看免费| 国产一区二区三区在线观看免费视频| 亚洲成人激情自拍| 亚洲美女免费在线| 成人欧美一区二区三区视频网页| 精品国产乱码久久久久久夜甘婷婷| 欧美色电影在线| 色视频一区二区| 成人激情电影免费在线观看| 国产真实乱子伦精品视频| 亚洲在线视频一区| 亚洲激情图片一区| 亚洲视频资源在线| 国产精品久久久久久亚洲伦 | 亚洲免费在线观看视频| 久久久久综合网| 26uuu久久综合| 日韩欧美激情一区| 日韩一级欧美一级| 91精品国产综合久久精品性色| 91国产免费观看| 在线观看亚洲成人| 欧美中文字幕一区二区三区亚洲| 97久久精品人人做人人爽| 91在线视频官网| 91在线porny国产在线看| 91看片淫黄大片一级在线观看| av在线不卡电影| 91在线porny国产在线看| 91丨porny丨首页| 欧美日韩色综合| 日韩午夜在线观看| 日韩一区二区三区视频在线| 日韩视频在线一区二区| 日韩精品一区二区三区视频播放 | 亚洲欧美日韩中文字幕一区二区三区| 国产精品视频看| 亚洲欧美日韩国产综合| 亚洲免费观看在线视频| 亚洲一二三四在线| 日韩国产欧美视频| 国产制服丝袜一区| 福利视频网站一区二区三区| 91免费小视频| 91精品国产综合久久福利| 精品久久久久久亚洲综合网| 国产拍揄自揄精品视频麻豆| 亚洲婷婷综合色高清在线| 亚洲一区在线视频| 久久99精品久久久久久久久久久久| 国产综合一区二区| 成人美女视频在线观看18| 欧洲激情一区二区| 日韩小视频在线观看专区| 国产色婷婷亚洲99精品小说| 亚洲欧美日韩国产成人精品影院| 亚洲一区二区三区视频在线 | 亚洲色欲色欲www| 午夜精品免费在线| 国产激情91久久精品导航| 在线观看成人小视频| 精品捆绑美女sm三区| 伊人婷婷欧美激情| 久久机这里只有精品| 91在线国产观看| 欧美不卡激情三级在线观看| 亚洲女人的天堂| 国产露脸91国语对白| 91官网在线免费观看| 久久影院电视剧免费观看| 洋洋成人永久网站入口| 久久精品二区亚洲w码| 91啪九色porn原创视频在线观看| 91精品国产日韩91久久久久久| 国产精品素人一区二区| 美女视频黄免费的久久| 在线视频一区二区免费| 欧美国产激情一区二区三区蜜月| 日精品一区二区| 色网综合在线观看| 国产欧美综合在线观看第十页| 一区二区视频免费在线观看| 国产乱一区二区| 日韩视频免费观看高清完整版 | 国产精品无人区| 免费成人性网站| 欧美日韩视频不卡| 亚洲品质自拍视频| 成人av在线播放网站| 久久综合狠狠综合久久综合88| 亚洲国产aⅴ天堂久久| 91视视频在线观看入口直接观看www | 欧美日韩午夜在线| 亚洲乱码国产乱码精品精的特点| 国产一区二区三区在线观看免费| 欧美理论电影在线| 亚洲福利一区二区| 一本一道波多野结衣一区二区| 中文字幕免费在线观看视频一区| 韩国女主播一区二区三区| 欧美一级理论性理论a| 亚洲成人av中文| 欧美在线色视频| 亚洲最大的成人av| 91福利资源站| 亚洲h精品动漫在线观看| 欧美亚洲动漫制服丝袜| 亚洲综合免费观看高清完整版 |