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 |