//串口转8bits并口
module ser_paral(din,clk_ser,data);
input din,clk_ser;
output[7:0] data;
reg[7:0] Q;
reg[7:0] data_buf;
reg[2:0] shift_N;
assign data=data_buf;
always@(posedge clk_ser)
begin
Q<=Q<<1; //信号左移一位
Q[0]<=din;//输入信号补充到输出信号的最低位
shift_N<=shift_N+1;
if(shift_N==3'b111)
begin
data_buf<=Q;
end
end
endmodule
//以下是8bits并口转串口
module paral_ser(dout,clk_ser,din);
input [7:0] din;
input clk_ser;
output dout;
reg [7:0] buff;
reg [2:0] SHIFT_N=3'b000;
assign dout=buff[7];
always @(posedge clk_ser)
begin
if(SHIFT_N==3'b000)
begin buff=din; end
else
begin
buff[7:0]=buff[7:0]<<1;end
SHIFT_N=SHIFT_N+1'b1;
endmodule
文章评论(0条评论)
登录后参与讨论