题解 | #移位运算与乘法#

移位运算与乘法

https://www.nowcoder.com/practice/1dd22852bcac42ce8f781737f84a3272

`timescale 1ns/1ns
module multi_sel(
input [7:0]d,
input clk,
input rst,
output reg input_grant,
output reg [10:0]out
);
//*************code***********//
reg [1:0] cnt;
reg [7:0] d_tmp;

initial begin
    input_grant = 1'b0;
    out = 10'b0;
end
always@(posedge clk)
begin
    if(!rst) begin
        cnt <= 1'b0;
    end
    else begin 
        cnt <= cnt + 1'b1;
    end
end

always@(posedge clk)
begin
    if(!rst) d_tmp <= 8'b0;
    else begin
        if(cnt == 2'b0)d_tmp <= d;
    end
end

always@(posedge clk)
begin
    if(!rst) input_grant <= 1'b0;
    else begin
        if((d != 0)&&(cnt == 2'd0))input_grant <= 1'b1;
        else input_grant <= 1'b0;
    end    
end

always@(posedge clk)
begin
    if(!rst) out <= 10'b0;
    else begin
        //if(cnt == 2'd3)
        //    out <= d<<cnt;
        ////elseif(cnt == 2'b0) 
        ////  out <= {3'd0,d};
        //else out <= (((d << cnt) + (d << cnt_last))&&cnt) + d;
        case(cnt)
            2'd0: out <= d;
            2'd1: out <= (d_tmp<<cnt) + d_tmp;
            2'd2: out <= (d_tmp<<cnt) + (d_tmp<<(cnt-1)) + d_tmp;
            2'd3: out <= d_tmp<<cnt;
        endcase
    end
end


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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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