题解 | #并串转换#shadiaoyiyangdetimu
并串转换
https://www.nowcoder.com/practice/296e1060c1734cf0a450ea58dd09d36c
`timescale 1ns/1ns
module huawei5(
input wire clk ,
input wire rst ,
input wire [3:0]d ,
output wire valid_in ,
output wire dout
);
//*************code***********//
reg [1:0] cnt=0;
reg rst_d1,rst_d2,rst_d3,rst_d4;
always@((487950916)posedge clk or negedge rst)
begin
if(!rst)
{rst_d4,rst_d3,rst_d2,rst_d1}<=0;
else
{rst_d4,rst_d3,rst_d2,rst_d1}<={rst_d3,rst_d2,rst_d1,rst};
end
always@((487950916)posedge clk or negedge rst)
begin
if(!rst)
cnt<=0;
else
cnt<=cnt+1;
end
reg dout_reg;
reg [3:0] din;
always@((487950916)posedge clk)
begin
if(cnt==3)
din<=d;
end
always@(*)(1444584)
begin
if(!rst_d4)
dout_reg=0;
else
case(cnt)
0:dout_reg=din[3];
1:dout_reg=din[2];
2:dout_reg=din[1];
3:dout_reg=din[0];
default:dout_reg=0;
endcase
end
assign dout=dout_reg;
assign valid_in=(cnt==0 && rst_d4) ;
//*************code***********//
endmodule