题解 | #非整数倍数据位宽转换8to12#

非整数倍数据位宽转换8to12

https://www.nowcoder.com/practice/11dfedff55fd4c24b7f696bed86190b1

`timescale 1ns/1ns

module width_8to12(
	input 				   clk 		,   
	input 			      rst_n		,
	input				      valid_in	,
	input	[7:0]			   data_in	,
 
 	output  reg			   valid_out,
	output  reg [11:0]   data_out
);

reg     [1:0]   bit_cnt;
reg     [7:0]   data_reg;

always@(posedge clk or negedge rst_n)
    if(!rst_n)
        bit_cnt <=  2'd0;
    else    if(valid_in && bit_cnt==2'd2)
        bit_cnt <=  2'd0;
    else    if(valid_in)
        bit_cnt <=  bit_cnt + 1'b1;



always@(posedge clk or negedge rst_n)
    if(!rst_n)
        valid_out   <=  1'b0;
    else    if(bit_cnt!=2'd0 && valid_in)
        valid_out   <=  1'b1;
    else
        valid_out   <=  1'b0;

always@(posedge clk or negedge rst_n)
    if(!rst_n)
        data_reg    <=  8'd0;
    else 
        data_reg    <=  data_in;

always@(posedge clk or negedge rst_n)
    if(!rst_n)
        data_out    <=  12'd0;
    else    if(bit_cnt==2'd1 && valid_in)
        data_out    <=  {data_reg,data_in[7:4]};
    else    if(bit_cnt==2'd2 && valid_in)
        data_out    <=  {data_reg[3:0],data_in};




endmodule

全部评论

相关推荐

02-22 21:16
已编辑
门头沟学院 运营
点赞 评论 收藏
分享
菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务