Перейти к содержанию
    

О проблеме инициализации 2D массива Verilog

Я пытаюсь инициализировать нулями:

reg             [ 1 : 0 ]    bc_fifo[0:15];

Я написал :

integer z; 

initial begin  

      for(z = 0; z < 16; z++)

   begin

         bc_fifo[1:0][z] = 2'b00;

    end

 

Simulator Vivado выдает ошибку [VRFC 10-395] cannot assign an unpacked type to a packed type.

Вы можете объяснить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

20 minutes ago, mirobest said:

Вы можете объяснить?

Мы можем! :wink2:

Если вы объявили  массив  с packed и unpacked диапазонами:

reg [packed_dimension_A]  array_name [unpacked_dimension_B];

То  порядок следования  индексов для доступа должен быть правильный 

array_name [unpacked_dimension_B_index][packed_dimension_A_index | packed_dimension_A_range] = ...

Кроме того unpacked_dimension не допускается задания диапазона доступа - допустим только индекс элемента.

Поэтому в вашем случае надо бы написать так 

bc_fifo [z] = 2'b00;

Удачи! Rob.

Изменено пользователем RobFPGA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/9/2019 at 6:13 PM, mirobest said:

reg             [ 1 : 0 ]    bc_fifo[0:15];

         bc_fifo[1:0][z] = 2'b00;
Вы можете объяснить?

bc_fifo[z][1:0] = 2'b00; в таком случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...