题解 | #位拆分与运算#

位拆分与运算

https://www.nowcoder.com/practice/1649582a755a4fabb9763d07e62a9752

本题目的知识点很明确,位操作和未拆分,拼接语法没用到哈,还是一个多路选择器,用case就能完成,注意的是输出的信号的类型reg

`timescale 1ns/1ns

module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,

output [4:0]out,
output validout
);
reg out;
reg validout;
//*************code***********//
reg [15:0] r_d;
always @ (posedge clk or negedge rst)
    if (!rst)begin

        out <= 5'd0;
        validout  <= 1'b0;
    end
    else  begin
        case(sel)
        2'b00: begin    
            validout <= 1'b0;
            r_d <= d;
            out <= 5'd0;
        end
        2'b01: begin    
            validout <= 1'b1;
            out <=r_d[3:0]+ r_d[7:4];
        end
        2'b10: begin    
            validout <= 1'b1;
            out <=r_d[3:0]+ r_d[11:8];
        end
        2'b11: begin    
            validout <= 1'b1;
            out <=r_d[3:0]+ r_d[15:2];
        end
        endcase
    end


//*************code***********//
endmodule

#刷题##23届找工作求助阵地#
全部评论

相关推荐

牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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