用SV语言书写7位数据位,1位偶校验,115200bps的串行发送端
时间: 2024-05-27 10:14:06 浏览: 76
Verilog实现uart串口逻辑特率可选9600、19200、38400、115200 8位数据1位校验1位停止.zip
5星 · 资源好评率100%
module SerialTx (
input clk,
input reset,
input [6:0] data,
output reg tx
);
reg [7:0] txReg; // 8位寄存器,最高位是偶校验位
always @(posedge clk) begin
if (reset) begin
txReg <= 8'b11111110; // 初始状态为全1,即偶校验位为0
end else begin
if (txReg[0]) begin // 当前为1,发送开始位 0
tx <= 1'b0;
txReg <= {txReg[6:0], 1'b0};
end else begin // 当前为0,发送数据位和校验位
tx <= txReg[7];
txReg <= {txReg[6:0], ^txReg[6:0]};
end
end
end
endmodule
阅读全文