题解 | #数据串转并电路#

数据串转并电路

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 [2:0] cnt_in;
reg [5:0] data_out;

always  @(posedge clk or negedge rst_n)
	begin
		if(!rst_n)
			cnt_in <= 0;
		else if(ready_a && valid_a)
			cnt_in <= cnt_in == 3'd5? 3'd0 : cnt_in + 1'b1;  
	end

always @(posedge clk or negedge rst_n)
	begin
		if(!rst_n)
			data_out <= 0;
		else if(ready_a && valid_a)
			data_out <= {data_a , data_out[5:1]}; 
	end

always @(posedge clk or negedge rst_n)
	begin
		if(!rst_n)	begin
			valid_b <= 1'b0;
			data_b  <= 0;
		end	else if(ready_a && valid_a)	begin 
			valid_b <= cnt_in == 3'd5? 1'b1 : 1'b0; 
			data_b	<= cnt_in == 3'd5? {data_a , data_out[5:1]} : data_b;
		end else 
			valid_b <= 1'b0;
	end


always @(posedge clk or negedge rst_n)
	begin
		if(!rst_n)
			ready_a <= 1'b0;
		else 
			ready_a <= 1'b1;
	end
  

endmodule

全部评论

相关推荐

01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务