Вот проблемный код:
function automatic [31:0] W;
input [6:0] param;
W = (param<16) ? 32'b0 : W(param-7);
endfunction
По сути, iverilog (Icarus Verilog) просто выдает ошибку Segmentation fault: 11 vvp svsim
.
Я попробовал немного отладить, и мне кажется, что рекурсия мне не нравится, хотя у меня есть якорь рекурсии.
Вызов функции изнутри сам по себе недопустим. хотя это не проблема. Это тоже проверено.
Любая помощь приветствуется!
EDIT:
Здесь у меня есть фрагмент кода, который безуспешно вызывает эту функцию:
always @(negedge clk) begin
t1 <= W(j);
end
W(5)
илиW(55)
. Обратите внимание, что функция всегда будет возвращать0
. - person sharvil111   schedule 04.02.2018j
неизвестен (x
). Было бы полезно проверить, является лиj
x
илиz
при вызове функции. Управлениеj
в текущем коде неясно. - person sharvil111   schedule 04.02.2018