1、确定题目要求


本题考查的是简单的位运算。首先,考虑11111011是什么,其值为251,在乘法运算中可以将其分解为256 -4 -1,那么为什么是减去41呢  因为它们分别对应8b1008b1

在位运算中,2的整数倍运算可以直接使用移位进行,这样可以极大的减少资源占用



2、写出v代码

module dajiang13(

    input  [7:0]    A,

    output [15:0]   B

       );

//*************code***********//

    wire [15:0] reg1;

    wire [15:0] reg2;

    wire [15:0] reg3;

 

    assign reg1 = { A, {8{1'b0}}};

    assign reg2 = { {6{1'b0}} , A ,{2{1'b0}}};

    assign reg3 = { {8{1'b0}} , A};

 

    assign B = reg1 - reg2 - reg3;

//*************code***********//

endmodule

仿真结果如下:



参考答案
`timescale 1ns/1ns

module dajiang13(
    input  [7:0]    A,
    output [15:0]   B
	);

//*************code***********//
    wire [15:0] reg1;
    wire [15:0] reg2;
    wire [15:0] reg3;
 
    assign reg1 = { A, {8{1'b0}}};
    assign reg2 = { {6{1'b0}} , A ,{2{1'b0}}};
    assign reg3 = { {8{1'b0}} , A};
 
    assign B = reg1 - reg2 - reg3;

//*************code***********//

endmodule


如果关于此次题单有问题或者反馈意见,欢迎加入牛客用户反馈群沟通~