Jump to content

    
Sign in to follow this  
RobFPGA

QuestaSIm 10.4с, port типа packed struct array

Recommended Posts

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

 

Новогодние праздники утихли а в голове продолжает шуметь...

 

Понадобилось обновить относительно недавний проект на SystemVerilog.

Есть в нем pkg в котором объявлен тип структуры который в свою очередь потом используется в том числе и для задания типа портов в ряде модулей. Пару лет назад все было отсимулированно и собранно без проблем.

package type_pkg;
..
typedef struct packed {
  loagic [WHA-1:0] field_a;
  loagic [WHB-1:0] field_b;
  loagic           field_c;
} st_TYPE_t;
endpackage

import type_pkg::*;
module modA (
  ...
  output st_TYPE_t d_ou,
  ...
);
...
endmodule

import type_pkg::*;
module modB (
  ...
  input st_TYPE_t d_in [0:NN-1],
  ...
);
...
endmodule


import type_pkg::*;
module top;
...
st_TYPE_t d_w [0:NN-1];

generate for (genvar gi=0;g<NN;gi++) begin : g_for
  modA i_modA (
    ...
    .d_ou (d_w[gi])
  );
  end
endgenerate

modB i_modB (
  .d_in (d_w),
  ...
);
...

Сейчас же суть глюка в том что в версии QuestaSim с 10.4c при симуляции я вижу на входе d_in модуля i_modB Z!!! состояние на всех битах за исключением бита 0. А на шине d_w при этом все как надо. 8-(). Соответственно симуляция не проходит. При этом ни ошибок компиляции ни ошибок elaboration при запуске нет!.

Да и в Vivado тоже все собирается правильно.

 

Что это? (вот бы вспомнить что я пил на Новый Год, может в этом дело? :) )

 

Удачи! Rob.

 

 

 

Share this post


Link to post
Share on other sites
Сейчас же суть глюка в том что в версии QuestaSim с 10.4c при симуляции я вижу на входе d_in модуля i_modB Z!!! состояние на всех битах за исключением бита 0. А на шине d_w при этом все как надо. 8-(). Соответственно симуляция не проходит. При этом ни ошибок компиляции ни ошибок elaboration при запуске нет!.

А вы при компиляции используете один Multiple File Compilation Unit (-mfcu)?

Share this post


Link to post
Share on other sites

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

 

Нет, не использую. Файлы pkg и модули компилируются раздельно.

Попробовал изменить тип шины d_w и соответственно порта d_in на

st_TYPE_t [0:NN-1]  d_w,
... 
st_TYPE_t [0:NN-1]  d_in,

В таком виде симулируется все как надо.

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this