UART串口发送设计Verilog代码VIVADO仿真
名称:UART串口发送设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
UART串口发送
1、设计串口发送电路,实现UART协议
2、输入8位并行数据,启动发送后开始串行输出
3、发送完成输出标志信号
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. Testbench


2. 仿真图





部分代码展示:
//Listing 8.3 module uart_tx #( parameter DBIT = 8, // # data bits SB_TICK = 16 // # ticks for stop bits ) ( input wire clk, reset, input wire tx_start, s_tick, input wire [7:0] din, output reg tx_done_tick, output wire tx ); // symbolic state declaration localparam [1:0] idle = 2'b00, start = 2'b01, data = 2'b10, stop = 2'b11; // signal declaration reg [1:0] state_reg, state_next; reg [3:0] s_reg, s_next; reg [2:0] n_reg, n_next; reg [7:0] b_reg, b_next; reg tx_reg, tx_next; // body // FSMD state & data registers always @(posedge clk, posedge reset) if (reset) begin state_reg <= idle; s_reg <= 0; n_reg <= 0; b_reg <= 0; tx_reg <= 1'b1; end else begin state_reg <= state_next; s_reg <= s_next; n_reg <= n_next; b_reg <= b_next; tx_reg <= tx_next; end // FSMD next-state logic & functional units always @* begin state_next = state_reg; tx_done_tick = 1'b0; s_next = s_reg; n_next = n_reg; b_next = b_reg; tx_next = tx_reg ; case (state_reg) idle: begin tx_next = 1'b1; if (tx_start) begin state_next = start; s_next = 0; b_next = din; end end start: begin tx_next = 1'b0; if (s_tick) if (s_reg==15) begin state_next = data; s_next = 0; n_next = 0; end else s_next = s_reg + 1; end data: begin tx_next = b_reg[0]; if (s_tick)
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » UART串口发送设计Verilog代码VIVADO仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » UART串口发送设计Verilog代码VIVADO仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm