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

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

?? uart_core.vhd

?? UART接口的源碼測(cè)試程序、Verilog語(yǔ)言編寫
?? 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;
	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 = '0' 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';
			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 <= '0';
					-- 使得輸出保持為'1'
					sel_out <= '0';
					-- 設(shè)置奇偶校驗(yàn)的數(shù)據(jù)源為數(shù)據(jù)發(fā)送總線
					sel_pv <= '0';
					
					-- 初始化串行加載序列的索引變量
					si_count <= TOTAL_BIT-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 <= '0';
					-- 使得輸出保持為'1'
					sel_out <= '0';
					-- 設(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';
				-- 如果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';
				
				-- 改變狀態(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);
		-- 存儲(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 = '0' 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精品国产综合久久精品| 五月婷婷久久丁香| 日韩免费性生活视频播放| 国内成人精品2018免费看| 国产午夜精品久久| 99精品国产热久久91蜜凸| 成人欧美一区二区三区1314| 日本精品一级二级| 天天色图综合网| 精品久久99ma| 波多野结衣在线aⅴ中文字幕不卡| 亚洲区小说区图片区qvod| 欧美日韩一级片在线观看| 美女视频黄 久久| 国产在线视频不卡二| 91国产福利在线| 亚洲动漫第一页| 精品成人一区二区三区| 波多野结衣在线一区| 亚洲精品视频自拍| 欧美成人女星排行榜| 丁香六月综合激情| 亚洲一区二区欧美日韩| 欧美大片顶级少妇| 91丨九色丨黑人外教| 日韩高清在线不卡| 国产精品成人免费| 欧美年轻男男videosbes| 国产精品1区2区| 亚洲成人久久影院| 日本一区二区三区高清不卡 | 欧美国产精品v| 色香蕉成人二区免费| 另类小说欧美激情| 亚洲免费毛片网站| 欧美日韩极品在线观看一区| 国产精品国产三级国产专播品爱网| 成人av免费在线观看| 日韩精品每日更新| 国产精品久久久久久久久快鸭| 91精品久久久久久久99蜜桃| 成人动漫在线一区| 韩国一区二区视频| 亚洲国产精品欧美一二99| 中文字幕第一区综合| 日韩一区二区三免费高清| 色哟哟在线观看一区二区三区| 精品一区二区影视| 亚洲国产毛片aaaaa无费看| 国产精品网友自拍| ww亚洲ww在线观看国产| 91精品免费观看| 在线观看网站黄不卡| proumb性欧美在线观看| 国产久卡久卡久卡久卡视频精品| 日韩综合在线视频| 亚洲va欧美va人人爽午夜| 亚洲精品久久嫩草网站秘色| 91九色最新地址| 国产伦精品一区二区三区免费迷| 日本在线播放一区二区三区| 夜色激情一区二区| 亚洲精品日韩一| 国产精品午夜春色av| 国产精品五月天| 国产人成一区二区三区影院| 久久综合狠狠综合| 精品国产乱码91久久久久久网站| 欧美一级一级性生活免费录像| 欧美三级欧美一级| 欧美日韩卡一卡二| 欧美老女人在线| 在线综合视频播放| 欧美一区二区精品在线| 91精品国产手机| 91麻豆精品久久久久蜜臀| 欧美一区二区三区四区视频| 91精品福利在线一区二区三区| 欧美一区二区在线看| 亚洲一区二区三区不卡国产欧美| 26uuu久久综合| ww久久中文字幕| 国产亚洲综合在线| 国产精品毛片大码女人| 国产精品女同互慰在线看| 中文字幕在线观看一区二区| 亚洲欧美另类综合偷拍| 亚洲国产三级在线| 日本强好片久久久久久aaa| 九九精品视频在线看| 国产一区二区三区黄视频 | 日韩一区二区在线观看视频播放| 在线成人免费视频| 日韩欧美成人激情| 国产日韩欧美在线一区| 亚洲欧美综合色| 香蕉成人伊视频在线观看| 免费视频最近日韩| 国产精品一区二区无线| 99精品久久免费看蜜臀剧情介绍| 在线一区二区三区四区五区| 欧美日韩国产中文| 久久久另类综合| 亚洲天堂福利av| 免费人成精品欧美精品| 国产成人在线视频免费播放| 色综合久久久久综合体| 日韩一级片网站| 国产精品久久三| 日韩黄色免费电影| 成人听书哪个软件好| 欧美综合在线视频| 久久奇米777| 亚洲一区二区欧美| 国产一区高清在线| 在线观看av一区| www精品美女久久久tv| 亚洲精品乱码久久久久久黑人| 青椒成人免费视频| www..com久久爱| 欧美一区二区视频在线观看2022 | 中文字幕制服丝袜一区二区三区 | 亚洲男人的天堂一区二区| 男人的天堂久久精品| 不卡一二三区首页| 日韩欧美亚洲国产另类| 亚洲欧洲精品天堂一级| 麻豆精品视频在线观看免费| 色哟哟日韩精品| 久久久久久久性| 日日摸夜夜添夜夜添亚洲女人| 成人高清免费在线播放| 精品国内片67194| 亚洲成人一区二区在线观看| 99久久国产综合精品女不卡| 精品久久久久久久久久久院品网| 亚洲一区二区三区四区五区黄| 国产成人在线看| 日韩一区二区三区在线视频| 亚洲一区二区三区四区五区中文| www.av精品| 亚洲国产精品二十页| 国产一区二区三区四区在线观看| 欧美日韩国产中文| 亚洲国产综合人成综合网站| 99久久精品一区二区| 国产视频一区在线播放| 国产在线精品视频| 欧美一级日韩一级| 日本伊人午夜精品| 欧美日韩专区在线| 亚洲一线二线三线久久久| 色综合久久综合网欧美综合网| 欧美高清一级片在线观看| 国产精品一卡二卡在线观看| 日韩美女视频一区二区在线观看| 天天综合网 天天综合色| 91国内精品野花午夜精品| 亚洲女人的天堂| 91蝌蚪porny| 亚洲黄色片在线观看| 一本大道久久a久久精品综合| 中文字幕一区二区三区av| 99久久国产综合色|国产精品| 中文字幕日韩一区| 99国产一区二区三精品乱码| 国产精品久久久久国产精品日日| 懂色av一区二区三区免费观看 | 青草av.久久免费一区| 欧美一区二区三区小说| 裸体健美xxxx欧美裸体表演| 日韩欧美国产综合一区 | 久久久久久99精品| 国产不卡视频一区| 国产精品女同一区二区三区| av在线综合网| 一个色妞综合视频在线观看| 欧美少妇bbb| 蜜臀av在线播放一区二区三区 | 一本到一区二区三区| 中文成人综合网| www.日本不卡| 亚洲成人综合网站| 678五月天丁香亚洲综合网| 免费欧美高清视频| 欧美精品一区二区精品网| 国产精品69久久久久水密桃| 国产精品伦一区| 在线亚洲精品福利网址导航| 日本视频一区二区三区| 久久综合精品国产一区二区三区 | 一区二区中文视频| 欧美日韩中文字幕一区二区| 蜜芽一区二区三区| 日本一区二区高清| 欧美日韩一区二区在线观看|