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

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

http://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]cnt;
reg[11:0]data_cache;

always @(posedge clk or negedge rst_n)begin
    if(~rst_n)
        cnt <= 0;
    else if(valid_in && cnt == 2)
        cnt <= 0;
    else if(valid_in)
        cnt <= cnt + 1'b1;
end

always @(posedge clk or negedge rst_n)begin
    if(~rst_n)
        data_cache <= 0;
    else if(valid_in)
        data_cache <= {data_cache[3:0],data_in};
end

always @(posedge clk or negedge rst_n)begin
    if(~rst_n)begin
        valid_out <= 0;
        data_out <= 0;
    end else if(valid_in && cnt == 2'd1)begin
       valid_out <= 1'b1;
        data_out <= {data_cache[7:0],data_in[7:4]};
    end else if(valid_in && cnt == 2'd2)begin
       valid_out <= 1'b1;
        data_out <= {data_cache[3:0],data_in};
    end else begin
       valid_out <= 0; 
    end
end

endmodule

全部评论

相关推荐

03-11 21:46
西北大学 Java
河和静子:这只是实习工资,我学长北大通班博一的,他同学被这家天天发邮件让他去实习,一个月10w
点赞 评论 收藏
分享
3.21&nbsp;一面自我介绍有一个新的业务,你会怎么做?(数仓建模方式)数仓分层有什么好处介绍一下Spark的join方式(broadcast&nbsp;join,&nbsp;shuffle&nbsp;hash&nbsp;join,sort-merge&nbsp;join)shuffle&nbsp;hash&nbsp;join&nbsp;和&nbsp;sort-merge&nbsp;join&nbsp;Spark常用的join是哪个?介绍一下MapReduce的执行过程Hive&nbsp;SQL优化星型模型、雪花模型的区别及应用场景介绍项目,项目分层是如何实现的项目的ods层数据是如何得到的,dws层是如何设计的sql&nbsp;:&nbsp;1、求在线店铺的月累积销售金额&nbsp;2、求相邻在线店铺的月累积销售金额的差额sum()&nbsp;ove...
OceanRivers:感觉现在的企业是真抽象,找实习生要求要有实习经历(我要是有实习经历还要来找实习吗),这和校招招应届生的要求有啥区别,按这逻辑以后是不是毕业找工作直接要求一年以上工作经验,也不知道是现在行业卷到这地步了还是企业单纯不想花更多资源培养新人,就想着招有工作经验的牛马,入职直接酷酷工作,然后给他发实习生水平的薪资当廉价劳动力
查看18道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务