
Сообщение от
Vslav
замкнутых петель в коде нет
Вот например, строки 1540-1541:
Код:
assign cpred = {c[14:0], cl};
assign c = (cpred & oxy) | (~cpred & axy & oxy);
Кстати, в alwaysе, начинающемся со строки 1014, с комментарием "ACLO edge detectors" нет ошибки? Там висящий блок begin end, который перебивает действие того, что было сделано ранее.

Сообщение от
Vslav
На HDL модуль скорее соответствует макросу на C
Это я понял, но я хочу сделать его именно функцией, это очень сильно упрощает программирование. Например модуль vm1_vgen у меня выродился в одну линейную функцию из простых присваиваний, alwaysы там оказались не нужны.
Предположим, что модуль - это такая микросхема с ножками, на вход подаётся ТЧ и входные сигналы, и в заданные моменты снимаются выходные сигналы. При этом, предполагаем, что наша модель идеальна (нет переходных состояний) и дискретна, меняет своё состояние только в моменты фронтов ТЧ. Субмоуль - точно также. При этом модулю, в котором вызывается субмодуль совершенно необязательно знать, что происходит внутри субмодуля, достаточно знать что на входе и что на выходе в заданные конкретные моменты времени, соответствующие его, модуля, дискретным состояниям. Поэтому наверняка субмодуль можно описать в виде триггера блоком(ами) always с условиями которые соответствуют условиям always внутри субмодуля.