名稱:QuartusRS232串口UART發(fā)送接收verilog代碼青創(chuàng)QC-FPGA開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
RS232串口UART發(fā)送接收
1、設(shè)計(jì)UART串口代碼,波特率可以通過代碼參數(shù)修改。
2、1bit起始位,8bit數(shù)據(jù),1bit結(jié)束位。
3、支持串口發(fā)送和接收,可以將接收自電腦的數(shù)據(jù)發(fā)送回電腦。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在青創(chuàng)QC-FPGA開發(fā)板驗(yàn)證,青創(chuàng)QC-FPGA開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
波特率模塊
發(fā)送模塊
部分代碼展示:
module?my_uart_top(clk,rst_n,rs232_rx,rs232_tx); input?clk;//?50MHz主時(shí)鐘 input?rst_n;//低電平復(fù)位信號(hào) input?rs232_rx;//?RS232接收數(shù)據(jù)信號(hào) output?rs232_tx;//RS232發(fā)送數(shù)據(jù)信號(hào) wire?bps_start;//接收到數(shù)據(jù)后,波特率時(shí)鐘啟動(dòng)信號(hào)置位 wire?clk_bps;//?clk_bps的高電平為接收或者發(fā)送數(shù)據(jù)位的中間采樣點(diǎn)? wire[7:0]?rx_data;//接收數(shù)據(jù)寄存器,保存直至下一個(gè)數(shù)據(jù)來到 wire?rx_int;//接收數(shù)據(jù)中斷信號(hào),接收到數(shù)據(jù)期間始終為高電平 //---------------------------------------------------- //波特率選擇模塊 speed_selectspeed_select(.clk(clk), .rst_n(rst_n), .bps_start(1), .clk_bps(clk_bps) ); //接收數(shù)據(jù)模塊 my_uart_rxmy_uart_rx(.clk(clk),//接收數(shù)據(jù)模塊 .rst_n(rst_n), .rs232_rx(rs232_rx), .clk_bps(clk_bps), .bps_start(), .rx_data(rx_data), .rx_int(rx_int) ); //發(fā)送數(shù)據(jù)模塊 my_uart_txmy_uart_tx(.clk(clk),//發(fā)送數(shù)據(jù)模塊 .rst_n(rst_n), .clk_bps(clk_bps), .rx_data(rx_data), .rx_int(rx_int), .rs232_tx(rs232_tx), .bps_start() ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=382