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

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

?? uart_core.vhd

?? 此為FPGA上的一個(gè)串口通信程序
?? VHD
字號(hào):
-- 庫(kù)聲明
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use WORK.UART_PACKAGE.all;

entity uart_core is
	generic (
	-- 數(shù)據(jù)位個(gè)數(shù)
	DATA_BIT : integer := 8;
	-- 總數(shù)據(jù)個(gè)數(shù)
	TOTAL_BIT : integer := 10;
	-- 奇偶校驗(yàn)規(guī)則
	PARITY_RULE : PARITY := NONE );
	port (
	-- 時(shí)鐘和復(fù)位信號(hào)
	clk : in std_logic;
	reset_n : in std_logic;
	-- 和信號(hào)監(jiān)測(cè)器的接口信號(hào)
	new_data : in std_logic;
	reset_dt : out std_logic;
	-- 復(fù)位、使能子模塊的信號(hào)
	reset_parts : out std_logic;
	ce_parts : out std_logic;
	-- 和移位寄存器的接口信號(hào)
	send_si : out std_logic;
	sel_si : out std_logic;
	regs : in std_logic_vector(TOTAL_BIT-1 downto 0);
	-- 計(jì)數(shù)器時(shí)鐘選擇信號(hào)和計(jì)數(shù)器計(jì)數(shù)到達(dá)上閾的指示信號(hào)
	sel_clk : out std_logic;
	overflow : in std_logic;
	-- 和奇偶校驗(yàn)器的接口信號(hào)
	sel_pv : out std_logic;
	parity : in std_logic;
	-- 輸出選擇信號(hào)
	sel_out : out std_logic;
	-- 提供給CPU的接口信號(hào)
	send : in std_logic;
	sending:out std_logic;
	send_bus : in std_logic_vector(DATA_BIT-1 downto 0);
	send_over : out std_logic;
	recv : out std_logic;
	recv_bus : out std_logic_vector(DATA_BIT-1 downto 0);
	error : out std_logic );
	
end uart_core;


architecture uart_core of uart_core is

-- 內(nèi)部信號(hào)
signal state : UART_STATE := UART_IDLE;
signal send_buf : std_logic_vector(TOTAL_BIT-1 downto 0);
signal si_count : integer range 0 to 15 := 0;

begin

	-- 主過程
	main: process(clk, reset_n)
	begin
		if reset_n = '1' then
			-- 信號(hào)監(jiān)測(cè)器復(fù)位信號(hào)
			reset_dt <= '1';
			-- 其他模塊的復(fù)位和使能信號(hào)
			reset_parts <= '0';
			ce_parts <= '0';
			-- 移位寄存器輸入
			sel_si <= '0';
			-- 波特率發(fā)生器和計(jì)數(shù)器的時(shí)鐘選擇信號(hào)
			sel_clk <= '0';
			-- 奇偶校驗(yàn)器的輸入
			sel_pv <= '0';
			-- 選擇TxD輸出
			sel_out <= '0';
			-- 與CPU之間的接口信號(hào)
			send_over <= '0';
			sending <= '0';
			recv <= '0';
			error <= '0';	 
			recv_bus <= (others => '0');
			
			-- 狀態(tài)機(jī)
			state <= UART_IDLE;
			
			-- 串行加載的計(jì)數(shù)
			si_count <= 0;
		elsif rising_edge(clk) then
			case state is
				-- 空閑狀態(tài)
				when UART_IDLE =>
				-- 當(dāng)信號(hào)監(jiān)測(cè)器監(jiān)測(cè)到數(shù)據(jù)時(shí),new_data變?yōu)?#039;1'
				if new_data = '1' then
					-- 復(fù)位子模塊
					reset_parts <= '0';
					-- 子模塊使能無效
					ce_parts <= '0';
					-- 選擇移位寄存器串行輸入為RxD
					sel_si <= '1';
					-- 選擇移位寄存器的時(shí)鐘為波特率始終
					-- 選擇計(jì)數(shù)器的時(shí)鐘為波特率發(fā)生器的指示信號(hào)
					sel_clk <= '0';
					-- 使得輸出保持為'1'
					sel_out <= '0';
					-- 設(shè)置奇偶校驗(yàn)的數(shù)據(jù)源為數(shù)據(jù)發(fā)送總線
					sel_pv <= '1';
					-- 改變狀態(tài)為接收
					state <= UART_RECV;
				-- 當(dāng)send信號(hào)變?yōu)?#039;1',表示CPU要求發(fā)送數(shù)據(jù)
				elsif send = '1' then
					-- 復(fù)位子模塊
					reset_parts <= '0';
					-- 子模塊使能無效
					ce_parts <= '0';
					-- 選擇移位寄存器串行輸入為串行加載序列
					sel_si <= '0';
					-- 選擇移位寄存器的時(shí)鐘為波特率始終
					-- 選擇計(jì)數(shù)器的時(shí)鐘為波特率發(fā)生器的指示信號(hào)
					sel_clk <= '1';
					-- 使得輸出保持為'1'
					sel_out <= '0';
					-- 設(shè)置奇偶校驗(yàn)的數(shù)據(jù)源為數(shù)據(jù)發(fā)送總線
					sel_pv <= '0';
					
					-- 初始化串行加載序列的索引變量
					si_count <= TOTAL_BIT-1;
					
					sending <= '1';
					
					-- 改變狀態(tài)為加載
					state <= UART_LOAD;
				else
					-- 停止對(duì)信號(hào)監(jiān)測(cè)器的復(fù)位
					reset_dt <= '1';
				end if;

				-------- 數(shù)據(jù)加載和發(fā)送狀態(tài)--------
					-- 加載狀態(tài)
				when UART_LOAD =>
				-- 如果overflow信號(hào)為'1',表示數(shù)據(jù)加載完成
				if overflow = '1' then
					-- 復(fù)位子模塊
					reset_parts <= '0';
					-- 子模塊使能信號(hào)無效
					ce_parts <= '0';
					-- 選擇移位寄存器串行輸入為串行加載序列
					sel_si <= '0';
					-- 選擇移位寄存器的時(shí)鐘為波特率始終
					-- 選擇計(jì)數(shù)器的時(shí)鐘為波特率發(fā)生器的指示信號(hào)
					sel_clk <= '1';
					-- 使得輸出保持為'1'
					sel_out <= '1';
					-- 設(shè)置奇偶校驗(yàn)的數(shù)據(jù)源為數(shù)據(jù)發(fā)送總線
					sel_pv <= '0';
					
					-- 改變狀態(tài)為發(fā)送
					state <= UART_SEND;
				else
					-- 選擇移位寄存器的時(shí)鐘為系統(tǒng)時(shí)鐘
					-- 選擇計(jì)數(shù)器的時(shí)鐘為系統(tǒng)時(shí)鐘
					sel_clk <= '1';
					-- 通過增加si_count,生成串行加載序列
					if not(si_count = TOTAL_BIT-1) then
						si_count <= si_count+1;
					else
						si_count <= 0;
					end if;
					-- 子模塊復(fù)位信號(hào)無效
					reset_parts <= '1';
					-- 子模塊使能信號(hào)有效
					ce_parts <= '1';
				end if;

				-- 發(fā)送狀態(tài)
				when UART_SEND => 
				
				-- 選擇輸出為TxD
				sel_out <= '1';
				sel_clk <= '0';
				-- 如果overflow為'1',表示發(fā)送完成
				if overflow = '1' then	
					-- 輸出發(fā)送完成的指示信號(hào)
					send_over <= '1';
					
					-- 改變狀態(tài)為發(fā)送完成
					state <= UART_END_SEND;
				else
					-- 子模塊復(fù)位信號(hào)無效
					reset_parts <= '1';
					-- 子模塊使能信號(hào)有效
					ce_parts <= '1';
				end if;				
				
				-- 發(fā)送完成狀態(tài)
				when UART_END_SEND =>
				-- 子模塊使能信號(hào)無效
				ce_parts <= '0';
				-- 復(fù)位信號(hào)監(jiān)測(cè)器
				reset_dt <= '0';
				-- 恢復(fù)發(fā)送完成指示信號(hào)
				send_over <= '0';
				sending <= '0';
				
				-- 改變狀態(tài)為空閑
				state <= UART_IDLE;				
				
				-------- 數(shù)據(jù)接收狀態(tài)--------
				-- 接收狀態(tài)
				when UART_RECV =>
				-- 如果overflow變?yōu)?quot;1",表示接收完成
				if overflow = '1' then
					-- 輸出接收指示信號(hào)
					recv <= '1';		  
					-- 總線數(shù)據(jù)輸出
					recv_bus <= regs(DATA_BIT downto 1);
					-- 改變狀態(tài)為接收完成
					state <= UART_END_RECV;
				else
					-- 子模塊復(fù)位信號(hào)無效
					reset_parts <= '1';
					-- 子模塊使能信號(hào)有效
					ce_parts <= '1';
				end if;
				
				-- 接收完成狀態(tài)
				when UART_END_RECV =>
				-- 進(jìn)行奇偶校驗(yàn)
				if not(regs(0) = parity) then
					error <= '1';
				end if;
				-- 子模塊使能信號(hào)無效
				ce_parts <= '0';
				-- 復(fù)位信號(hào)監(jiān)測(cè)器
				reset_dt <= '0';
				-- 恢復(fù)接收完成指示信號(hào)
				recv <= '0';
				
				-- 改變狀態(tài)為空閑
				state <= UART_IDLE;
				
				-- 如果產(chǎn)生未知狀態(tài),輸出錯(cuò)誤信息
				when others =>
				error <= '1';
				
				-- 恢復(fù)到空閑狀態(tài)
				state <= UART_IDLE;
			end case;
		end if;
	end process;	
	
	-- 生成串行加載序列
	send_buffer: process(send_bus, parity)
	begin							
		-- 存儲(chǔ)起始位
		send_buf(0) <= '0';
		-- 存儲(chǔ)數(shù)據(jù)位
		--send_buf(DATA_BIT downto 1) <= send_bus(DATA_BIT-1 downto 0);
		send_buf(1)<=send_bus(DATA_BIT-1);
		send_buf(2)<=send_bus(DATA_BIT-2);
		send_buf(3)<=send_bus(DATA_BIT-3);
		send_buf(4)<=send_bus(DATA_BIT-4);
		send_buf(5)<=send_bus(DATA_BIT-5);
		send_buf(6)<=send_bus(DATA_BIT-6);
		send_buf(7)<=send_bus(DATA_BIT-7);
		send_buf(8)<=send_bus(DATA_BIT-8);
		-- 存儲(chǔ)奇偶校驗(yàn)位和停止位
		if PARITY_RULE = ODD or PARITY_RULE = EVEN then
			send_buf(DATA_BIT+1) <= parity;
			send_buf(TOTAL_BIT-1 downto DATA_BIT+2)<=(others=>'1');
		else
			send_buf(TOTAL_BIT-1 downto DATA_BIT+1)<=(others=>'1');
		end if;	 
	end process;
	
	-- 串行輸入選擇
	si_switch: process(reset_n, si_count)
	begin
		-- 復(fù)位
		if reset_n = '1' then
			send_si <= '1';
		else
			-- 將send_buf里面的數(shù)據(jù)送到send_si端口上
			send_si <= send_buf(si_count);
		end if;
	end process;

end uart_core;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡视频一二三区| 狠狠色综合色综合网络| 日韩一区二区视频| 国产精品一级片| 日韩在线播放一区二区| 国产片一区二区| 欧美日本视频在线| 成人激情黄色小说| 久久99精品国产麻豆婷婷洗澡| 国产欧美视频一区二区| 91精品国产综合久久小美女| 99国产欧美久久久精品| 国产美女一区二区| 日本怡春院一区二区| 亚洲免费观看高清完整版在线观看熊 | 日韩精品一区第一页| 中文字幕在线免费不卡| 久久免费国产精品| 91麻豆精品国产自产在线| 99久久婷婷国产精品综合| 国产在线国偷精品免费看| 青青青伊人色综合久久| 亚洲一二三区在线观看| 亚洲欧美激情插| 国产精品免费网站在线观看| 久久久精品国产免费观看同学| 91精品国产综合久久久久久| 精品1区2区3区| 在线亚洲+欧美+日本专区| www.综合网.com| 国产白丝网站精品污在线入口| 久久99精品久久只有精品| 日韩专区在线视频| 视频一区免费在线观看| 天天影视网天天综合色在线播放| 一区二区三区加勒比av| 一区二区在线观看免费| 亚洲另类春色校园小说| 亚洲三级视频在线观看| 中文字幕一区二区三区在线观看| 国产精品视频一二| 日韩美女视频一区二区| 专区另类欧美日韩| 看片的网站亚洲| 天堂久久久久va久久久久| 午夜视黄欧洲亚洲| 五月开心婷婷久久| 免费欧美日韩国产三级电影| 奇米四色…亚洲| 国内精品免费在线观看| 国产成人高清视频| 成人黄色国产精品网站大全在线免费观看 | 亚洲一区二区免费视频| 亚洲主播在线播放| 午夜欧美电影在线观看| 秋霞成人午夜伦在线观看| 麻豆精品视频在线观看免费| 国产一区二区久久| 成人sese在线| 色一情一伦一子一伦一区| 色一情一乱一乱一91av| 6080国产精品一区二区| 日韩精品中文字幕一区| 国产人伦精品一区二区| 亚洲免费av观看| 日日骚欧美日韩| 国产精品一级黄| 欧美亚洲动漫精品| 欧美不卡一二三| 亚洲欧洲日产国产综合网| 亚洲一区二区在线观看视频| 欧美aⅴ一区二区三区视频| 国产乱人伦偷精品视频不卡 | 精品三级av在线| 国产精品视频在线看| 亚洲国产中文字幕在线视频综合| 欧美96一区二区免费视频| 风间由美中文字幕在线看视频国产欧美 | 欧美aa在线视频| 成人丝袜高跟foot| 欧美精品久久99久久在免费线| 欧美精品一区二区在线播放 | 亚洲欧洲综合另类| 日韩电影在线看| 成人午夜电影久久影院| 欧美日韩电影在线| 亚洲国产精品高清| 婷婷亚洲久悠悠色悠在线播放| 国内精品写真在线观看| 欧洲激情一区二区| 国产日韩欧美电影| 免费观看一级特黄欧美大片| 99国产精品一区| 26uuu亚洲综合色| 亚洲国产视频在线| eeuss鲁片一区二区三区在线观看| 欧美日韩高清影院| 亚洲欧美日韩精品久久久久| 精品一区二区三区在线播放| 色综合网站在线| 国产亚洲一二三区| 日本vs亚洲vs韩国一区三区二区| 成人app在线观看| 欧美白人最猛性xxxxx69交| 综合久久给合久久狠狠狠97色| 美女任你摸久久 | 欧美大白屁股肥臀xxxxxx| 亚洲日本在线天堂| 国产suv精品一区二区6| 日韩一区二区三区在线| 亚洲一区二区黄色| 色综合天天综合在线视频| 久久婷婷国产综合精品青草| 视频一区在线播放| 在线亚洲精品福利网址导航| 国产女人18毛片水真多成人如厕| 麻豆一区二区99久久久久| 欧美日韩成人综合在线一区二区| 国产精品免费网站在线观看| 国产寡妇亲子伦一区二区| 精品久久久三级丝袜| 日韩国产高清影视| 91.com视频| 视频一区二区中文字幕| 欧美日韩一区二区三区四区 | 国产九色精品成人porny| 欧美一区二区三区日韩| 无吗不卡中文字幕| 欧美亚洲自拍偷拍| 一级中文字幕一区二区| 欧美最猛黑人xxxxx猛交| 亚洲色图清纯唯美| 91极品视觉盛宴| 亚洲综合在线五月| 欧美日韩综合在线免费观看| 亚洲综合图片区| 欧美色视频在线| 五月开心婷婷久久| 日韩一区二区三区视频在线| 日韩精品福利网| 精品日韩欧美一区二区| 九九九精品视频| 国产色产综合产在线视频| 国产成人在线看| 中文字幕一区二区5566日韩| 不卡av在线免费观看| 中文字幕亚洲不卡| 欧美这里有精品| 午夜精品久久久久久久99樱桃| 欧美精品视频www在线观看| 免费国产亚洲视频| 国产日韩欧美精品在线| 97se亚洲国产综合自在线不卡| 日韩理论电影院| 欧美老年两性高潮| 久久国产精品72免费观看| 久久日韩粉嫩一区二区三区 | 91精品国产一区二区三区蜜臀| 青青草国产成人99久久| 久久天天做天天爱综合色| 成人av综合一区| 一区二区激情小说| 日韩欧美亚洲另类制服综合在线| 九九九久久久精品| 国产精品久久久久aaaa樱花| 91视频一区二区| 日韩国产一二三区| 久久久精品综合| 91香蕉视频污在线| 日本aⅴ亚洲精品中文乱码| 国产网站一区二区三区| 在线免费观看视频一区| 九色|91porny| 亚洲图片另类小说| 欧美一区二区三区男人的天堂| 国产成人免费av在线| 一区二区三区在线看| 精品国产区一区| 在线看国产日韩| 国产精品一区二区免费不卡| 亚洲综合精品久久| 国产亚洲欧美在线| 欧美日韩国产天堂| 成人激情文学综合网| 视频一区二区三区在线| 国产精品人妖ts系列视频| 7777精品久久久大香线蕉| 成人高清免费在线播放| 免费一区二区视频| 亚洲欧美一区二区久久| 亚洲精品在线观看网站| 在线观看一区二区精品视频| 国产精品123| 五月激情六月综合| 亚洲女人小视频在线观看| 精品国产电影一区二区| 欧美日韩精品欧美日韩精品一| 成人在线综合网| 久久av中文字幕片| 日韩影视精彩在线|