顶层文件:
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