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

移位运算与乘法

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***********//

    wire [10:0] d3, d7, d8;
    reg [1:0] counter;
    reg [10:0] d1;
    
    always @ (posedge clk, negedge rst) begin
        if (!rst) begin 
            counter <= 2'b0;
            out <= 11'b0;
            input_grant <= 1'b0;
        end
        else begin
            counter <= counter + 1;
            
            case (counter) 
                0: begin
                    d1 <= d;
                    out <= d;
                    input_grant <= 1'b1;
                end
                1: begin
                    out <= (d1 << 2) - d1;
                    input_grant <= 1'b0;
                end
                2: begin
                    out <= (d1 << 3) - d1;
                    input_grant <= 1'b0;
                end
                3: begin
                    out <= (d1 << 3);
                    input_grant <= 1'b0;
                end 
            endcase
        end
    end


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

全部评论

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务