题解 | #并串转换#

并串转换

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
	);
reg [3:0] temp;
reg [2:0] count;
reg out;
always @(posedge clk or negedge rst)
begin
if(!rst)
begin
count<=0;
end
else 
begin
count<= count==3'd4 ? 3'd1 : count+3'd1;
end
end 
assign valid_in= count==3'd4;

always @(posedge clk or negedge rst)
begin
if(!rst)
begin
temp=4'd0;
out<=0;
end
else
begin
temp<=  count==3  ? d : temp;
end
end
always @(*)
begin
case (count)
1 : out=temp[2];
2 : out=temp[1];
3 : out=temp[0];
4 : out=temp[3];
default : out=0;
endcase 
end
assign dout=out;
endmodule

`timescale 1ns/1ns
module textbench();
reg clk,rst;
reg[3:0] d;
wire  valid_in,dout;
huawei5 u0 (
	clk  ,
	rst  ,
	d ,
	valid_in ,
    dout
	);

always #5clk=~clk;

 initial begin
rst=0; clk=0;d=0;
#10 rst=1;
#20 d=4'b1010;
#20 d=4'b0110;
#20 d=4'b1110;
#150
$finish;
end

endmodule

仿真结果如下:

全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务