首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iverilog帮助组合移位乘法器

Iverilog帮助组合移位乘法器
EN

Stack Overflow用户
提问于 2014-11-18 11:22:11
回答 1查看 279关注 0票数 0

我的代码编译但不转储gtkwave的任何dat文件。我正在尝试实现一个组合移位乘子对象。我不认为我的测试仪器是正确的。

代码语言:javascript
复制
module combinational_mult(product,multiplier,multiplicand);
   input [31:0] multiplier;
   input[63:0] multiplicand;
   output reg [63:0] product;
   reg           c;
   reg [31:0]    m;  
   integer       i;

   always @( multiplier or multiplicand )
     begin
//initialize
        product[63:32] = 16'b0000_0000_0000_0000;
        product[32:16] = multiplier;
        m = multiplicand;
        c = 1'b0;


//add,shift algorithm  for unsigned multiplication.        
//following the notes.
         for(i=0; i<32; i=i+1)
           begin

        if(product[0]) {c,product[63:32]} = product[63:32] + m ;

         product[63:0] = {c,product[63:1]};
          c = 0;
      end              


  end    
endmodule

module tester(output reg [31:0] multiplier, output reg [63:0] multiplicand, output reg [63:0] product, output reg c, output reg i);



initial begin
i = 0;

$dumpfile("USAMv1.dat");
$dumpvars;

#10 multiplier = 16'b1101_1001_1101_1001;
multiplicand = 16'b0110_1010_1101_1000;
#50 $finish;

end
endmodule

module testbench;
 wire[31:0] multiplier;
wire[63:0] multiplicand;
wire[63:0] product;
wire c, i;

tester sim( multiplier, multiplicand, product, c, i);
combinational_mult dut ( product, multiplier, multiplicand);
endmodule 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-18 12:20:44

我已经在EDA游乐场上创建了一个版本,它移除测试器,只在testbench中运行一个测试程序。

我已将dump.dat重命名为dump.vcd,以便与EDA游乐场一起工作。它在运行时会启动波形窗口。

除了将测试程序移动到testbench,并在测试向量中添加第二个数据点以便可以观察到之外,对代码没有真正的更改。否则,VCD将在它们更改的点结束。

代码语言:javascript
复制
module testbench;
 reg [31:0] multiplier;
 reg [63:0] multiplicand;

initial begin
  $dumpfile("dump.vcd");
  $dumpvars;

  #10ns;
  multiplier   = 16'b1101_1001_1101_1001;
  multiplicand = 16'b0110_1010_1101_1000;

  #50ns;
  multiplier   = 16'b0;
  multiplicand = 16'b0;

  $finish;
end

combinational_mult dut ( product, multiplier, multiplicand);
endmodule 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26993089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档