题解 | #非整数倍数据位宽转换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
全部评论
跟我思路一样
点赞 回复 分享
发布于 2023-01-25 20:12 河北
好兄弟,一样!
点赞 回复 分享
发布于 2022-05-07 19:12

相关推荐

点赞 评论 收藏
分享
渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
10-20 15:26
门头沟学院 Java
桥头牛油火锅:这个比例不正常,简历的话项目经历放中间,项目功能分点可以再明确点,前面加“·”或者“1 2 3”,另外简历上的照片可以去外面摄影店拍一下,以后也会用到的,hr筛人也是多少会看的,毕竟世界是一个巨大的卡颜局嘛,还有有些hr由于消息太多可能没看到,后面可能会回来找你,要简历的还会多一点,我也是普2本,比例大致是600:90:15:3,当然我实力不太够,拿的offer比较少,慢慢来吧
点赞 评论 收藏
分享
评论
7
1
分享

创作者周榜

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