⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart_core.vhd

📁 异步串口通信VHDL源代码
💻 VHD
字号:
-- 库声明library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.UART_PACKAGE.all;entity uart_core is	generic (	-- 数据位个数	DATA_BIT : integer := 8;	-- 总数据个数	TOTAL_BIT : integer := 10;	-- 奇偶校验规则	PARITY_RULE : PARITY := NONE );	port (	-- 时钟和复位信号	clk : in std_logic;	reset_n : in std_logic;	-- 和信号监测器的接口信号	new_data : in std_logic;	reset_dt : out std_logic;	-- 复位、使能子模块的信号	reset_parts : out std_logic;	ce_parts : out std_logic;	-- 和移位寄存器的接口信号	send_si : out std_logic;	sel_si : out std_logic;	regs : in std_logic_vector(TOTAL_BIT-1 downto 0);	-- 计数器时钟选择信号和计数器计数到达上阈的指示信号	sel_clk : out std_logic;	overflow : in std_logic;	-- 和奇偶校验器的接口信号	sel_pv : out std_logic;	parity : in std_logic;	-- 输出选择信号	sel_out : out std_logic;	-- 提供给CPU的接口信号	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;		send_buf : inout std_logic_vector(TOTAL_BIT-1 downto 0)	);	end uart_core;architecture uart_core of uart_core is-- 诓啃藕?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			-- 信号监测器复位信号			reset_dt <= '1';			-- 其他模块的复位和使能信号			reset_parts <= '0';			ce_parts <= '0';			-- 移位寄存器输入			sel_si <= '0';			-- 波特率发生器和计数器的时钟选择信号			sel_clk <= '0';			-- 奇偶校验器的输入			sel_pv <= '0';			-- 选择TxD涑?						sel_out <= '0';			-- 与CPU之间的接口信号			send_over <= '0';			recv <= '0';			error <= '0';	 			recv_bus <= (others => '0');						-- 状态机			state <= UART_IDLE;						-- 串行加载的计数			si_count <= 0;		elsif rising_edge(clk) then			case state is				-- 空闲状态				when UART_IDLE =>				-- 当信号监测器监测到数据时,new_data变为'1'				if new_data = '1' then					-- 复位子模块					reset_parts <= '0';					-- 子模块使能无效					ce_parts <= '0';					-- 选择移位寄存器串行输入为RxD					sel_si <= '1';					-- 选择移位寄存器的时钟为波特率始终					-- 选择数的敝游

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -