Получить результат функции 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.

0 ответов

Другие вопросы по тегам