Как правильно нарезать массив вещественных чисел в SystemVerilog? - PullRequest
0 голосов
/ 24 сентября 2018

Quartus возвращает эту ошибку: «и индексирование x возвращает совокупное значение».Код:

module splineInterp(x, y);
input real x [64:0][0:4];
output real y;
y = x[1] - x[0];
endmodule

1 Ответ

0 голосов
/ 24 сентября 2018

У вас есть двумерный (неупакованный) массив веществ:

input real x [64:0][0:4];

В Verilog запрещается не индексировать все неупакованные измерения (если вы индексируете какое-либо из них).Добавляя отсутствующий оператор assign, это все еще недопустимо:

assign y = x[1] - x[0];

, потому что вы проиндексировали только первое измерение.Вам нужно будет сказать что-то вроде

assign y = x[1][4] - x[0][4];

По сути, сообщение об ошибке говорит вам, что x[0] является агрегированным значением - то есть это массив вещественных значений, а не действительное число.

...