我使用以下代码简单地乘法,然后使用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.