在简单的线路上获得IP核功能的结果

时间:2015-02-22 14:28:31

标签: verilog fpga xilinx fpu spartan

我使用以下代码简单地乘法,然后使用IP-Cores添加FPU编号。

module main(
    input clk,
     output [63:0] tempO
    );

    `define     ltra 6000   

    reg     [63:0]  dy =64'h4059000000000000;
    reg     [63:0]  x  =64'h3fe0000000000000;

    wire    [63:0]  tempO;                      //real,float
    wire    [63:0]  temp;                       //real,float
    reg [31:0]  i;

    //Arrays
    reg [63:0]  tra[0:`ltra-1];                 //real,float

    float_multiply M1 (
      .a(x),       
      .b(dy),     
      .clk(clk), 
      .result(temp) 
    );

    float_AddSub AS1 (
      .a(tra[i]), 
      .b(temp), 
      .operation(5'b00000), 
      .clk(clk),
      .result(tempO)
    );

endmodule

问题是,当我将结果变量作为连线传递给IP-Core功能时,我没有得到输出。当结果变量在模块原型中声明为Output时,此代码工作正常。

但我无法为每个实例化执行此操作,因为我对3000 * 2 FPU数组的每个值执行了近15次操作。

如何在线上获取IP核功能输出,而不将Result变量作为输出变量传递?

编辑: - 我已经找到了问题。我将值分配给TestBench.v模块中的输入变量。所以,它显示了ZZZZZZ'在线输出。当我在main.v中分配值并在Isim中的uut选项卡中查看信号时,答案被传递给wire并且可见。我使用的是ISE 14.

0 个答案:

没有答案