Получить результат функции IP-Core на простом проводе
Я использую следующий код, чтобы просто умножить и затем добавить числа FPU, используя IP-ядра.
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 в прототипе модуля, тогда этот код работает нормально.
Но я не могу сделать это для каждого экземпляра, потому что у меня есть почти 15 операций для каждого значения массива FPU 3000*2.
Как получить вывод функции IP-Core по проводам, не передав переменную Result в качестве выходной переменной?
РЕДАКТИРОВАТЬ:- Я понял вопрос. Я присваивал значения входным переменным в модуле TestBench.v. Таким образом, он показал "ZZZZZZ" на выходе провода. Когда я присвоил значения в main.v и просмотрел сигналы на вкладке uut в Isim, ответ был передан по проводам и был виден. Я использую ISE 14.