资源描述:
《FPGA串口通信例程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、`timescale1ns/1ps//////////////////////////////////////////////////////////////////////////////////Company://Engineer:////CreateDate://DesignName://ModuleName:my_uart_top//ProjectName://TargetDevice://Toolversions://Description:////Dependencies:////Revision://Revision0.01-FileCreated//Additiona
2、lComments://////////////////////////////////////////////////////////////////////////////////modulemy_uart_top(clk,rst_n,rs232_rx,rs232_tx);inputclk;//25MHz主时钟inputrst_n;//低电平复位信号inputrs232_rx;//RS232接收数据信号outputrs232_tx;//RS232发送数据信号wirebps_start1,bps_start2;//接收到数据后,波特率时钟启动信号置位wireclk_bps1,clk
3、_bps2;//clk_bps_r高电平为接收数据位的中间采样点,同时也作为发送数据的数据改变点wire[7:0]rx_data;//接收数据寄存器,保存直至下一个数据来到wirerx_int;//接收数据中断信号,接收到数据期间始终为高电平//----------------------------------------------------//下面的四个模块中,speed_rx和speed_tx是两个完全独立的硬件模块,可称之为逻辑复制//(不是资源共享,和软件中的同一个子程序调用不能混为一谈)/////////////////////////////////////////
4、///speed_selectspeed_rx(.clk(clk),//波特率选择模块.rst_n(rst_n),.bps_start(bps_start1),.clk_bps(clk_bps1));my_uart_rxmy_uart_rx(.clk(clk),//接收数据模块.rst_n(rst_n),.rs232_rx(rs232_rx),.rx_data(rx_data),.rx_int(rx_int),.clk_bps(clk_bps1),.bps_start(bps_start1));///////////////////////////////////////////sp
5、eed_selectspeed_tx(.clk(clk),//波特率选择模块.rst_n(rst_n),.bps_start(bps_start2),.clk_bps(clk_bps2));my_uart_txmy_uart_tx(.clk(clk),//发送数据模块.rst_n(rst_n),.rx_data(rx_data),.rx_int(rx_int),.rs232_tx(rs232_tx),.clk_bps(clk_bps2),.bps_start(bps_start2));Endmodule`timescale1ns/1ps////////////////////////
6、//////////////////////////////////////////////////////////Company://Engineer:////CreateDate:17:11:3208/28/08//DesignName://ModuleName:my_uart_rx//ProjectName://TargetDevice://Toolversions://Description:////Dependencies:////Revision://Revision0.01-FileCreated//AdditionalComments:////////////////
7、//////////////////////////////////////////////////////////////////modulemy_uart_rx(clk,rst_n,rs232_rx,rx_data,rx_int,clk_bps,bps_start);inputclk;//25MHz主时钟inputrst_n;//低电平复位信号inputrs232_rx;//RS232接收数据信号inputclk_bps;//clk_bps的高电平为接