1) Общее правило. Один модуль == Один файл == Одинаковое название.
2) Топ всегда единственен. ИДЕ (если включено автоматическое обновление иерархии - обычно по умолчанию включено) сам выбирает ТОП. если есть варианты - то предлагает выбрать. Можно ручками указать. ПКМ на файле с нужным модулем и "set as top".
3) reg [7:0] reg1 = 8'h0 оное подразумевает исходное однократное инициализация триггеров. Должно работать в реальной плисе.
initial - это в общем случае я использую только для симуляции. Более точнее область применения надо читать ГОСТ на язык.
initial "выполняется" с "нулевого времени симуляции". initial может быть больше одного. Выполняются в параллель.
4) эстетику можно посмотреть где-то здесь
C:\Xilinx\Vivado\2024.1\data\ip\xilinx\axi_tft_v2_ 0\hdl\axi_tft_v2_0_rfs.v
ПС: я больше "топлю" за systemverilog. Повторюсь: это работа "над ошибками" в реализации verilog. Плюс добавлено куча всего для тестирования (это вообще заоблачный экспириенс).
из явного и простого:
1) можно "забыть" про wire и reg ибо всё есть logic
2) многомерные массивы
3) можно явно указывать где схема просто логическая, а где с триггерами
4) зачётное понятие интерфейсы. это чтото типа
struct {
wire [15:0] adr;
wire [7:0] data;
wire rd;
wire wr;
} bus;
а потом использовать bus.rd или bus.data




Ответить с цитированием