VL4 移位运算与乘法

image.png

image.png

输入描述:

输入信号 d, clk, rst

类型 wire

在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述:

输出信号 input_grant out

类型 reg

这里有一点需要了解下:就是>>1 相当于乘2,那么就是乘3的话就是相当于>>2-1[即乘4-1]

image.png

实现代码:

`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] din;
    always@(posedge clk or negedge rst) begin
        if(!rst) begin
            cnt <= 0;
            out <= 0;
            input_grant <= 0;
            din <= 0;
        end
        else begin
            cnt <= cnt +1;
            case(cnt)
                0: begin
                    din <= d;
                    input_grant <= 1;
                    out <= d;
                end
                1: begin
                    input_grant <= 0;
                    out <= (din<<2) -din;
                end
                2: begin
                    input_grant <= 0;
                    out <= (din<<3)-din;
                end
                 3: begin
                    input_grant <= 0;
                    out <= (din<<3);
                end
            endcase
        end
    end
                       
endmodule

你可能感兴趣的:(VL4 移位运算与乘法)