列表

详情


VL71. 乘法与位运算

描述


 

 

题目描述:    

 

进行一个运算单元的电路设计,A[7:0]*11111011,尽量用最少的资源实现,写出对应的 RTL 代码。

 

 

 

信号示意:

 

A信号输入

B 信号输出

 

 

 

波形示意图:




输入描述

A信号输入

输出描述

B 信号输出

原站题解

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

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

//*************code***********//
    wire [15:0] C;
    wire [15:0] D;
    assign C = A << 8;
    assign D = A << 3;
    assign B = C - D + A + A + A;

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

endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

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

//*************code***********//
    assign B=({A,{8'b0}})-({{6'b0},A,{2'b0}})-{{8'b0},A};

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

endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

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

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

    assign B = (A<<8) - (A<<2) - A;

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

endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-05

`timescale 1ns/1ns

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

//*************code***********//
    assign B = (A << 8) - (A << 2) - A;

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

endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-05

`timescale 1ns/1ns

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

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

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

endmodule

上一题