0


vivado 乘加器与累加器的ip仿真

在使用乘法器和乘加器中遇到了一些问题,解决后仍有疑问,以此记录

乘法器

乘法器是指只有数据中只有乘法运算,运算时p=a*b

进行如下图所示设置

借用一张描

仿真代码

always #5 clk=~clk;
    initial
    begin
        clk = 1;
        a = 0;
        b = 0;
        ce = 0;
        sclr = 1;
        #100;
        sclr = 0;
        ce = 1;
        a = 10;
        b = 10;
        #100;
        ce = 0;   
    end
    
  
mult_gen_0  uut  (
  .CLK(clk),    // input wire CLK
  .A(a),        // input wire [15 : 0] A
  .B(b),        // input wire [15 : 0] B
  .CE(ce),      // input wire CE
  .SCLR(sclr),  // input wire SCLR
  .P(s)        // output wire [31 : 0] P
);
endmodule

成功得到仿真结果100

乘加器

乘加器的运算时p=ab+c,在此不进行+c的运算,只运行ab的运算,并不进行级联运算

以下为端口定义
A[N:0] Input A输入(乘法操作数1)
B[M:0] Input B输入(乘法操作数2)
C[L:0] Input C输入(加减操作数)
PCIN Input 级联输入
SUBTRACT Input 控制加/减操作(1=减法,0=加法)
CE Input 时钟使能 (高有效)
CLK Input 时钟信号,上升沿有效
SCLR Input 同步复位,高有效
PCOUT Output 输出级联
P[Q:0] Output 输出端口

原文链接:https://blog.csdn.net/weixin_41445387/article/details/119777736

仿真代码

module tb_mult_gen_0;

    // Inputs
    reg clk;
    reg ce;
    reg sclr;
    reg [31:0] a;
    reg [31:0] b;

    // Outputs
    wire [63:0] s;

    // Instantiate the Unit Under Test (UUT)

always #5 clk=~clk;
    initial
    begin
        clk = 1;
        a = 0;
        b = 0;
        ce = 0;
        sclr = 1;
        #100;
        sclr = 0;
        ce = 1;
        a = 10;
        b = 10;
        #100;
        ce = 0;   
    end

multiply_add uut (
  .CLK(clk),            // input wire CLK
  .CE(ce),              // input wire CE
  .SCLR(sclr),          // input wire SCLR
  .A(a),                // input wire [15 : 0] A
  .B(b),                // input wire [15 : 0] B
  .C(0),                // input wire [47 : 0] C
  .SUBTRACT(0),  // input wire SUBTRACT
  .P(s)               // output wire [40 : 0] P

);
endmodule

得到正确仿真结果100

但当

SUBTRACT(0)改为 SUBTRACT(1)时

输出结果为-100

将例化中c改为1

得到结果为-99

总结

所以乘加器在此次仿真时SUBTRACT 端口为0,乘出的结果为负,为1乘出的结果为正,再去加上c

标签: fpga开发

本文转载自: https://blog.csdn.net/qq_51026443/article/details/131239984
版权归原作者 qq_51026443 所有, 如有侵权,请联系我们删除。

“vivado 乘加器与累加器的ip仿真”的评论:

还没有评论