题解 | 移位运算与乘法

移位运算与乘法

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
);

reg [1:0] grant_cnt;
reg [10:0] din;

// grant_cnt计数
always @(posedge clk or negedge rst) begin
    if (!rst) begin
        grant_cnt <= 0;
    end else if (grant_cnt == 2'd3) begin
        grant_cnt <= 0;
    end else begin
        grant_cnt <= grant_cnt + 1'b1;
    end
end

// input_grant 控制
always @(posedge clk or negedge rst) begin
    if (!rst) begin
        input_grant <= 1'b0;
    end else if (grant_cnt == 2'd0) begin
        input_grant <= 1'b1;
    end else begin
        input_grant <= 1'b0;
    end
end

// 数据处理逻辑
always @(posedge clk or negedge rst) begin
    if (!rst) begin
        out <= 11'd0;
        din <= 11'd0;
    end else begin
        case (grant_cnt)

            2'd0: begin
                din <= d;
                out <= d;
            end
            2'd1: begin
                out <= (din << 2) - din;  // din * 3
            end
            2'd2: begin
                out <= (din << 3) - din;  // din * 7
            end
            2'd3: begin
                out <= (din << 3);        // din * 8
            end
        endcase
    end
end

endmodule

全部评论

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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