1、确定题目要求
本题考查的是简单的位运算。首先,考虑11111011是什么,其值为251,在乘法运算中可以将其分解为256 -4 -1,那么为什么是减去4和1呢 因为它们分别对应8‘b100和8’b1。
在位运算中,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
如果关于此次题单有问题或者反馈意见,欢迎加入牛客用户反馈群沟通~