Использование BRAM в модуле Verilog - PullRequest
0 голосов
/ 18 марта 2020

Я хочу использовать BRAM для модели и сохранить выходные данные в другом блоке этой BRAM. Но при моделировании я получаю следующую ошибку:

[VRFC 10-3236] concurrent assignment to a non-net 'roundreg' is not permitted ["C:/Users/.../keccak_new2/keccak.v":58]

код:

56    reg [23:0] roundreg [1599:0];
57
58    ROUNDFUNC  RF1(.clk(clk), .in(roundreg[0]), .out(roundreg[1]));

1 Ответ

0 голосов
/ 18 марта 2020

Выходы модуля могут быть подключены только к типам net в Verilog, и roundreg[1] не является net. Если возможно, вы можете вместо этого объявить roundreg как wire [23:0] roundreg [1599:0], хотя это может повлиять на работу остальной части кода. Обратите внимание, что если вы можете использовать SystemVerilog, вы можете избежать этих сложностей и использовать вместо этого тип logic.

Вы также можете посмотреть на этот вопрос, чтобы узнать, как вывести ОЗУ блока для конструкций ПЛИС: Как инициализировать содержимое логического блока RAM (BRAM) в Verilog

...