Jump to content

    

О проблеме инициализации 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.

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

Share this post


Link to post
Share on other sites

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

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.

Edited by RobFPGA

Share this post


Link to post
Share on other sites
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; в таком случае.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now