原创 verilog 8位串/并口相互转换

2009-8-11 20:53 5864 7 7 分类: FPGA/CPLD
//串口转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


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条