У деяких випадках 2D-масиви можуть бути синтезовані як пам'ять. Залежно від інструментів і конкретного синтаксису, який ви використовуєте, ви можете отримати або розподілену, або блокову пам’ять на FPGA.
Масиви Verilog можна синтезувати щоб ми могли використовувати їх у синтезованому коді RTL. У C масиви індексуються від 0 цілими числами або перетворюються на покажчики. Але весь масив може бути ініціалізований, і кожен елемент має бути прочитаний або окремо записаний у процедурних операторах.
Таким чином ви можете ініціалізувати весь масив одним вкладишем:
- reg [7:0] [11:0] afe_value;
- завжди @( posedge clk )
- якщо (деяка_умова)
- afe_value <= 0;
- інше.
- почати.
- // вставте сюди призначення речення без скидання…
- кінець.
Примітка. Коли ви ініціалізуєте 2D-масив, ви завжди повинні вказувати перший розмір (ні. рядків), але надаючи другий вимір (№. стовпців) можна опустити. У наведеному нижче фрагменті коду ми не вказали кількість стовпців.
Синтезувані та несинтезувані конструкції Verilog
| Синтезується | |
|---|---|
| Базовий | Ідентифікатори, екрановані ідентифікатори, константи розміру (b, o, d, h), константи без розміру (2'b11, 3'07, 32'd123, 8'hff), константи зі знаком (s) 3'bs101, модуль, кінцевий модуль, макромодуль, модуль у стилі ANSI, списки портів завдань і функцій |