串并转换

实现并转串,8输入1输出

1
module transform_ser(
2
	input clk, rstn,
3
    input enable,
4
    input [7:0] data_in, //并行8位数据输入
5
    output data_out
6
);
7
    
8
    always @(posedge clk or negedge rstn) begin
9
        if(!rstn) begin
10
            if(!rstn) begin
11
               data_out <= 1'b0; 
12
            end
13
            else if(enable) begin
14
                data <= data_in[7]; //输出第8位
15
            end
16
            else begin
17
                data_in <= {data_in[6:0], 1'b0}; 
18
            end
19
        end
20
    end
21
endmodule

实现串转并,1位输入,8位输出

1
module transform_par(
2
	input clk, rstn,
3
    input enable,
4
    input data_in,
5
    output [7:0] data_out
6
);
7
    always @(posedge clk or negedge) begin
8
        if(!rstn) begin
9
           data_out <= 'b0; 
10
        end
11
        else if(enable) begin
12
            data_out <= {data_out[7:1], data_in}; 
13
        end
14
        else begin
15
           data_out <= data_out; 
16
        end
17
    end
18
endmodule