uart串口收发器设计VHDL代码Quartus仿真
名称:uart串口收发器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
uart串口收发器设计
1、输入的8位并行数据使用UART协议串行输出
2、可以接收UART协议信号,并将其并行输出(8位)
3、波特率为9600bit/s
4、带有奇偶校验位(奇校验或者偶检验)
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.仿真图
整体仿真图
波特率模块
发送模块
接收模块
部分代码展示:
--uart串口收发器设计 --1、输入的8位并行数据使用UART协议串行输出 --2、可以接收UART协议信号,并将其并行输出(8位) --3、波特率为9600bit/s --4、带有奇偶校验位(奇校验或者偶检验) LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; --接收模块 ENTITY uart_rx IS PORT ( clk : IN STD_LOGIC;--时钟 rst_n : IN STD_LOGIC;--复位 baud16_tick : IN STD_LOGIC;--波特率*16 uart_rx_buf_wr_en : OUT STD_LOGIC;--接收使能 uart_rx_buf_wr_data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--接收数据 uart_rx_err : OUT STD_LOGIC;--校验错误 uart_rxd : IN STD_LOGIC--接收串行数据 ); END uart_rx; ARCHITECTURE trans OF uart_rx IS SIGNAL data_len : STD_LOGIC_VECTOR(3 DOWNTO 0);--数据长度-- 5~8 SIGNAL stop_len : STD_LOGIC_VECTOR(1 DOWNTO 0);--停止位长度-- 1~2 SIGNAL check_len : STD_LOGIC;--校验位长度-- 0~1 SIGNAL check_mode : STD_LOGIC;--奇偶-- 0~1 SIGNAL uart_rxd_bit_inv : STD_LOGIC; SIGNAL Bau16_Tick_shift_r : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL Bau16_Tick_rising : STD_LOGIC; SIGNAL state : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL next_state : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL cnt_baud16_tick : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL cnt_rx_bit : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL rx_shift_reg : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL rx_check_sum : STD_LOGIC; SIGNAL local_check_sum : STD_LOGIC; SIGNAL uart_rx_buf_wr_data_buf : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN data_len<="1000";--8位数据位 stop_len<="01";--1位停止位 check_len<='1';--1位校验位 check_mode<='0';--奇校验 -- Drive referenced outputs uart_rx_buf_wr_data <= uart_rx_buf_wr_data_buf;--输出接收数据 PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN uart_rxd_bit_inv <= uart_rxd;--同步到时钟下 END IF; END PROCESS; PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN Bau16_Tick_shift_r <= (Bau16_Tick_shift_r(0) & baud16_tick); END IF; END PROCESS;
代码文件(付费下载):
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » uart串口收发器设计VHDL代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » uart串口收发器设计VHDL代码Quartus仿真
发表评论