题解 | #数据串转并电路#
数据串转并电路
https://www.nowcoder.com/practice/6134dc3c8d0741d08eb522542913583d
`timescale 1ns/1ns module s_to_p( input clk , input rst_n , input valid_a , input data_a , output reg ready_a , output reg valid_b , output reg [5:0] data_b ); reg [5:0] data_reg; reg [2:0] data_cnt; always @ (posedge clk or negedge rst_n) begin if (!rst_n) ready_a<=1'd0; else ready_a<=1'd1; end always @ (posedge clk or negedge rst_n) begin if (!rst_n) data_cnt<=3'd0; else if (valid_a&&ready_a) data_cnt<=(data_cnt==3'd5)?3'd0:(data_cnt+1'd1); end always @ (posedge clk or negedge rst_n) begin if (!rst_n) data_reg<=6'd0; else if (valid_a&&ready_a) data_reg<={data_a,data_reg[5:1]}; end always @ (posedge clk or negedge rst_n) begin if (!rst_n) begin valid_b<=1'd0; data_b<=6'd0;end else if (data_cnt==3'd5) begin valid_b<=1'd1;data_b<={data_a,data_reg[5:1]}; end else valid_b<=1'd0; end endmodule