题解 | #非整数倍数据位宽转换24to128#

非整数倍数据位宽转换24to128

https://www.nowcoder.com/practice/6312169e30a645bba5d832c7313c64cc

//非整数倍拼接取最小公倍数 拼的时候一定注意高位与低位
`timescale 1ns/1ns

module width_24to128(
	input 				clk 		,   
	input 				rst_n		,
	input				valid_in	,
	input	[23:0]		data_in		,
 
 	output	reg			valid_out	,
	output  reg [127:0]	data_out
);
reg [3:0]cnt;
reg [127:0]	data;

always@(posedge clk or negedge rst_n)begin
if(!rst_n)
cnt<=0;
else if(valid_in)
cnt<=cnt+1;
else if(cnt>=16)
cnt<=0;
end
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
data<=0;
else if(valid_in)
data<={data[103:0],data_in};
else
data<=data;
end

always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
	valid_out<=0;
	else if(valid_in&&(cnt==5||cnt==10||cnt==15))
	valid_out<=1;
	 else
	 valid_out<=0;
end
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
data_out<=0;
else if(valid_in&cnt==5)
data_out<={data[119:0],data_in[23:16]};//注意 这里前面是低位后面是高位
else if(valid_in&cnt==10)
data_out<={data[112:0],data_in[23:8]};
else if(valid_in&cnt==15)
data_out<={data[119:0],data_in[23:0]};
else
data_out<=data_out;
end




endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-11 10:45
点赞 评论 收藏
分享
09-12 14:52
门头沟学院 Java
不利于团结的话不要说:真的假的? 昨天xhs hr要给我开奖,我说再等等。 给这么多,当时我就接了啊
点赞 评论 收藏
分享
08-19 19:57
石河子大学 C++
企鹅百度字节的孝子:为啥本科只有两年啊
校招求职吐槽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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