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

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

?? uart_top.vhd

?? FPGA數字電子系統設計與開發實例導航(源程序)
?? VHD
字號:
library IEEE;
use IEEE.std_logic_1164.all;
use WORK.UART_PACKAGE.all;

entity uart_top is

  generic(
     -- 數據位個數
	DATA_BIT : integer := 8;
	-- 總數據個數
	TOTAL_BIT : integer := 10;
	-- 奇偶校驗規則
	PARITY_RULE : PARITY := NONE;
	--完整波特率時鐘對應的計數
	FULL_PULSE_COUNT : BD_COUNT := BD9600_FPC;
	--波特率時鐘上升沿對應的計數
	RISE_PULSE_COUNT : BD_COUNT := BD9600_HPC 
  );
  port(
	  -- 時鐘信號
       clk : in STD_LOGIC;
	  -- 復位信號
       reset_n : in STD_LOGIC;
	  -- 發送控制信號
       send : in STD_LOGIC;
	  -- 數據發送總線
       send_bus : in STD_LOGIC_VECTOR(DATA_BIT-1 downto 0);
	  -- 發送完成信號
       send_over : out STD_LOGIC;
	  -- 錯誤提示信號
       error : out STD_LOGIC;
	  -- 接收提示信號
       recv : out STD_LOGIC;
	  -- 數據接收總線
       recv_bus : out STD_LOGIC_VECTOR(DATA_BIT-1 downto 0);
	  -- RS-232數據接收端口
       RxD : in STD_LOGIC;
	  -- RS-232數據發送端口
       TxD : out STD_LOGIC );
end uart_top;

architecture uart_top of uart_top is

-- 波特率發生器組件聲明
component baudrate_generator
  generic(
       FULL_PULSE_COUNT : BD_COUNT := BD9600_FPC;
       RISE_PULSE_COUNT : BD_COUNT := BD9600_HPC
  );
  port (
       ce : in STD_LOGIC;
       clk : in STD_LOGIC;
       reset_n : in STD_LOGIC;
       bg_out : out STD_LOGIC;
       indicator : out STD_LOGIC
  );
end component;
-- 計數器組件聲明
component counter
  generic(
       MAX_COUNT : INTEGER := 10
  );
  port (
       ce : in STD_LOGIC;
       clk : in STD_LOGIC;
       reset_n : in STD_LOGIC;
       overflow : out STD_LOGIC
  );
end component;
-- 信號監測器
component detector
  port (
       RxD : in STD_LOGIC;
       clk : in STD_LOGIC;
       reset_n : in STD_LOGIC;
       new_data : out STD_LOGIC
  );
end component;
-- 奇偶校驗器
component parity_verifier
  generic(
       DATA_LENGTH : INTEGER := DATA_BIT;
       PARITY_RULE : PARITY := PARITY_RULE
  );
  port (
       source : in STD_LOGIC_VECTOR(DATA_LENGTH-1 downto 0);
       parity : out STD_LOGIC
  );
end component;
-- 移位寄存器
component shift_register
  generic(
       TOTAL_BIT : INTEGER := TOTAL_BIT
  );
  port (
       clk : in STD_LOGIC;
       din : in STD_LOGIC;
       reset_n : in STD_LOGIC;
       dout : out STD_LOGIC;
       regs : out STD_LOGIC_VECTOR(TOTAL_BIT-1 downto 0)
  );
end component;
-- 二選一選擇器
component switch
  port (
       din1 : in STD_LOGIC;
       din2 : in STD_LOGIC;
       sel : in STD_LOGIC;
       dout : out STD_LOGIC
  );
end component;
-- 總線選擇器
component switch_bus
  generic(
       BUS_WIDTH : INTEGER := DATA_BIT
  );
  port (
       din1 : in STD_LOGIC_VECTOR(BUS_WIDTH-1 downto 0);
       din2 : in STD_LOGIC_VECTOR(BUS_WIDTH-1 downto 0);
       sel : in STD_LOGIC;
       dout : out STD_LOGIC_VECTOR(BUS_WIDTH-1 downto 0)
  );
end component;
-- UART內核
component uart_core
  generic(
       DATA_BIT : INTEGER := DATA_BIT;
       PARITY_RULE : PARITY := PARITY_RULE;
       TOTAL_BIT : INTEGER := TOTAL_BIT
  );
  port (
       clk : in STD_LOGIC;
       new_data : in STD_LOGIC;
       overflow : in STD_LOGIC;
       parity : in STD_LOGIC;
       regs : in STD_LOGIC_VECTOR(TOTAL_BIT-1 downto 0);
       reset_n : in STD_LOGIC;
       send : in STD_LOGIC;
       send_bus : in STD_LOGIC_VECTOR(DATA_BIT-1 downto 0);
       ce_parts : out STD_LOGIC;
       error : out STD_LOGIC;
       recv : out STD_LOGIC;
       recv_bus : out STD_LOGIC_VECTOR(DATA_BIT-1 downto 0);
       reset_dt : out STD_LOGIC;
       reset_parts : out STD_LOGIC;
       sel_clk : out STD_LOGIC;
       sel_out : out STD_LOGIC;
       sel_pv : out STD_LOGIC;
       sel_si : out STD_LOGIC;
       send_over : out STD_LOGIC;
       send_si : out STD_LOGIC
  );
end component;

----     常數     -----
constant VCC_CONSTANT   : STD_LOGIC := '1';
---- 內部信號聲明 ----
signal bg_clk : STD_LOGIC;
signal bg_out : STD_LOGIC;
signal ce_parts : STD_LOGIC;
signal clk_inv : STD_LOGIC;
signal counter_clk : STD_LOGIC;
signal indicator : STD_LOGIC;
signal new_data : STD_LOGIC;
signal overflow : STD_LOGIC;
signal parity : STD_LOGIC;
signal reset_dt : STD_LOGIC;
signal reset_parts : STD_LOGIC;
signal sel_clk : STD_LOGIC;
signal sel_out : STD_LOGIC;
signal sel_pv : STD_LOGIC;
signal sel_si : STD_LOGIC;
signal send_si : STD_LOGIC;
signal sr_in : STD_LOGIC;
signal sr_out : STD_LOGIC;
signal VCC : STD_LOGIC;
signal pv_source : STD_LOGIC_VECTOR (DATA_BIT-1 downto 0);
signal recv_parity_source : STD_LOGIC_VECTOR (DATA_BIT-1 downto 0);
signal regs : STD_LOGIC_VECTOR (TOTAL_BIT-1 downto 0);
signal send_parity_source : STD_LOGIC_VECTOR (DATA_BIT-1 downto 0);

begin

	-- 信號連接
	clk_inv <= not clk;	 
	VCC <= VCC_CONSTANT;   
	send_parity_source <= send_bus;
	recv_bus <= recv_parity_source;

	-- 波特率發生器實例
	U_BG : baudrate_generator
	  port map(
	       bg_out => bg_out,
	       ce => ce_parts,
	       clk => clk,
	       indicator => indicator,
	       reset_n => reset_parts
	  );
	-- 總線選擇器實例
	U_BusSwitch : switch_bus
	  port map(
	       din1 => send_parity_source( DATA_BIT-1 downto 0 ),
	       din2 => recv_parity_source( DATA_BIT-1 downto 0 ),
	       dout => pv_source( DATA_BIT-1 downto 0 ),
	       sel => sel_pv
	  );
	-- UART內核實例
	U_Core : uart_core
	  port map(
	       ce_parts => ce_parts,
	       clk => clk,
	       error => error,
	       new_data => new_data,
	       overflow => overflow,
	       parity => parity,
	       recv => recv,
	       recv_bus => recv_parity_source( DATA_BIT-1 downto 0 ),
	       regs => regs( TOTAL_BIT-1 downto 0 ),
	       reset_dt => reset_dt,
	       reset_n => reset_n,
	       reset_parts => reset_parts,
	       sel_clk => sel_clk,
	       sel_out => sel_out,
	       sel_pv => sel_pv,
	       sel_si => sel_si,
	       send => send,
	       send_bus => send_parity_source( DATA_BIT-1 downto 0 ),
	       send_over => send_over,
	       send_si => send_si
	  );
	-- 計數器實例
	U_Counter : counter
	  port map(
	       ce => ce_parts,
	       clk => counter_clk,
	       overflow => overflow,
	       reset_n => reset_parts
	  );
	-- 計數器時鐘源選擇器
	U_CounterClkSwitch : switch
	  port map(
	       din1 => indicator,
	       din2 => clk_inv,
	       dout => counter_clk,
	       sel => sel_clk
	  );
	-- 信號監測器
	U_Detector : detector
	  port map(
	       RxD => RxD,
	       clk => clk,
	       new_data => new_data,
	       reset_n => reset_dt
	  );
	-- 奇偶校驗器
	U_ParityVerifier : parity_verifier
	  port map(
	       parity => parity,
	       source => pv_source( DATA_BIT-1 downto 0 )
	  );
	-- 移位寄存器輸入源選擇器實例
	U_SISwitch : switch
	  port map(
	       din1 => send_si,
	       din2 => RxD,
	       dout => sr_in,
	       sel => sel_si
	  );
	-- 移位寄存器實例
	U_SR : shift_register
	  port map(
	       clk => bg_clk,
	       din => sr_in,
	       dout => sr_out,
	       regs => regs( TOTAL_BIT-1 downto 0 ),
	       reset_n => reset_parts
	  );
	-- 移位寄存器時鐘源選擇器實例
	U_SRClkSwitch : switch
	  port map(
	       din1 => bg_out,
	       din2 => clk_inv,
	       dout => bg_clk,
	       sel => sel_clk
	  );
	-- 輸出選擇器實例
	U_TXDSwitch : switch
	  port map(
	       din1 => VCC,
	       din2 => sr_out,
	       dout => TxD,
	       sel => sel_out
	  );

end uart_top;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频在线| 亚洲综合另类小说| 国产欧美一区二区三区网站| 欧美日韩国产成人在线免费| 久久久久9999亚洲精品| 欧美激情一二三区| 欧美一区二区视频网站| 99re这里只有精品6| 大白屁股一区二区视频| 成人a区在线观看| av激情成人网| 欧美在线制服丝袜| 欧美日韩mp4| 久久精品一二三| 性做久久久久久免费观看| 国产精品久久久久久久久久免费看| 亚洲视频综合在线| 日韩综合在线视频| 国产精品美女久久久久久久久| 久久国产精品免费| 国产成人av电影在线观看| 欧美电影免费观看高清完整版在线| 久久久久久久久久久久电影 | 国产又黄又大久久| 91久久精品网| 国产精品国产三级国产a| 久久99精品国产.久久久久久| 亚洲一区二区不卡免费| 日韩美女啊v在线免费观看| 久久91精品久久久久久秒播| 欧美日韩国产高清一区二区三区| 婷婷开心激情综合| 经典三级在线一区| 欧美日韩免费一区二区三区视频| 成人短视频下载| 99热99精品| 中文一区二区完整视频在线观看| 韩国v欧美v日本v亚洲v| 欧美一区二区三区在线| 亚洲国产中文字幕在线视频综合| 99精品久久99久久久久| 成人av免费观看| 91麻豆视频网站| 亚洲国产一区二区三区| 日韩午夜激情av| 日韩一卡二卡三卡| 午夜久久电影网| 欧美精品 国产精品| 久久国产精品露脸对白| 久久久精品免费网站| jizzjizzjizz欧美| 亚洲成人av一区| 久久嫩草精品久久久精品| 成人a区在线观看| 日本不卡在线视频| 国产精品护士白丝一区av| 色嗨嗨av一区二区三区| 青青草97国产精品免费观看无弹窗版 | 一区二区三区免费观看| 欧美乱妇15p| av中文字幕一区| 麻豆精品久久久| 亚洲综合免费观看高清在线观看| 精品国产一区二区三区忘忧草| 91麻豆国产福利在线观看| 九九在线精品视频| 婷婷久久综合九色综合伊人色| www.色精品| 成人在线视频一区二区| 欧美日韩不卡在线| 99久久免费视频.com| 青椒成人免费视频| 日韩av在线发布| 亚洲精品一二三四区| 日本一区免费视频| 国产亚洲欧美在线| 日韩欧美国产成人一区二区| 欧美放荡的少妇| 欧美伦理视频网站| 欧美高清激情brazzers| 欧美亚洲日本一区| 91国在线观看| 亚洲综合在线免费观看| 国产精品久久久一本精品 | 欧美日韩在线免费视频| av在线播放不卡| 成人av网址在线| 在线观看日韩国产| 欧美日韩中文字幕一区| 在线观看日韩精品| 99久久综合国产精品| 91最新地址在线播放| 色婷婷综合久久久中文字幕| 欧美伊人精品成人久久综合97| 欧美精品成人一区二区三区四区| 蜜臀久久久99精品久久久久久| 久久精品国产秦先生| 成人午夜在线播放| 欧美日韩综合不卡| 国产尤物一区二区在线| 午夜精品久久久久久不卡8050| 奇米精品一区二区三区在线观看| 韩国毛片一区二区三区| 99久久综合色| 欧美精品一区二| 亚洲一区视频在线观看视频| 日本高清无吗v一区| 久久精品一区二区三区不卡| 午夜精品免费在线| 欧美亚洲日本国产| 欧洲一区在线电影| 色诱视频网站一区| 日韩精品中文字幕在线不卡尤物| 中文字幕在线观看不卡| 黑人巨大精品欧美黑白配亚洲| 在线精品视频一区二区三四| 国产精品大尺度| 国产在线精品一区二区不卡了| 欧美日韩一二区| 亚洲图片欧美色图| 色婷婷综合久久久中文一区二区| 久久久91精品国产一区二区精品| 日韩电影免费在线看| 欧美日韩二区三区| 亚洲成va人在线观看| 欧美日韩一区二区在线观看 | 欧洲一区在线观看| 日韩avvvv在线播放| 欧美一卡二卡在线| 秋霞电影网一区二区| 日韩一区二区三区观看| 91毛片在线观看| 久久综合色之久久综合| 精品系列免费在线观看| 欧美不卡一区二区三区四区| 国产精选一区二区三区| 亚洲国产精品99久久久久久久久| 国产成人免费视频精品含羞草妖精| 久久精品欧美一区二区三区不卡 | 97aⅴ精品视频一二三区| 亚洲女与黑人做爰| 51精品秘密在线观看| 国产成人av自拍| 亚洲视频一二三区| 4438x亚洲最大成人网| 日韩理论片在线| 欧美一区二区三区人| 国产成人精品www牛牛影视| 亚洲欧美欧美一区二区三区| 日韩一区二区免费视频| www.在线欧美| 九九九久久久精品| 亚洲国产美国国产综合一区二区| 国产精品国产三级国产普通话99 | 成人黄色免费短视频| 成人av网在线| 制服丝袜亚洲色图| 日日骚欧美日韩| 日韩欧美你懂的| 在线播放91灌醉迷j高跟美女| 成人性生交大片免费看视频在线 | 国产欧美一区二区三区在线看蜜臀 | 色天使久久综合网天天| 精品一区二区三区免费| 精品在线亚洲视频| 亚洲一区二区三区三| 亚洲二区在线视频| 久久综合九色综合97_久久久| 欧美丰满高潮xxxx喷水动漫| 欧美天堂一区二区三区| 日本韩国欧美在线| 色婷婷一区二区三区四区| 成人精品国产一区二区4080| 国产麻豆视频精品| 国产精品亚洲视频| 国产精品影音先锋| 国产成人精品免费网站| 99久久综合狠狠综合久久| 91免费观看国产| 欧美日本不卡视频| 日韩欧美一区在线观看| 国产色综合一区| 亚洲一卡二卡三卡四卡五卡| 日本成人超碰在线观看| 国产精品萝li| 亚洲精品国久久99热| 欧美电影在哪看比较好| 久久综合五月天婷婷伊人| 一色屋精品亚洲香蕉网站| 一区二区免费视频| 国内精品国产成人| 一本到一区二区三区| 欧美一区二区三区日韩| 国产精品视频在线看| 国产精品第五页| 国产综合色产在线精品| 欧美性猛交xxxxxx富婆| 久久综合国产精品| 亚洲自拍偷拍欧美| 成人在线综合网站|