📄 tx.v
字号:
module tx(clk,tx,data,txok,txready);
input clk;
output tx,txready;
input[7:0] data;
input txok;
reg tx,txclk;
reg txready;
reg[3:0] bitpos;
reg[1:0] state;
reg[3:0] cnt;
reg[10:0] count;
wire[10:0] databuf;
parameter idle=1,txrun=2;
assign databuf={1,1,data,0};
always @(posedge clk)
begin
if(count==325) begin
count<=0;
txclk<=1;
end
else begin
count<=count+1;
txclk<=0;
end
end
always @(posedge txclk) //发送
begin
case(state)
idle: begin
txready<=1;
if(txok==0) begin
cnt<=0;
state<=idle;
tx<=1; end
else begin
state<=txrun;
bitpos<=0; end
end
txrun: begin
txready<=0;
if(cnt==15) begin
cnt<=0;
tx<=databuf[bitpos];
bitpos<=bitpos+1;
if(bitpos==10) begin
bitpos<=0;
state<=idle;
end
end
else cnt<=cnt+1;
end
default: state<=idle;
endcase
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -