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

SV: enumerated types assignment

Всем привет

 

Возник тонкий вопрос. Пользуюсь перечисляемым типом с предустановленными значениями и хочу этот тип переключать

 

enum logic [1:0] {ALPHA = 0, BETA = 1, GAMMA = 2} muxer;

always @(posedge clk)
    muxer <= cfg_wdata[1:0];
end

 

Cadence Incisive при симуляции высыпает варнгинг

This assignment is a violation of SystemVerilog strong typing rules for enumeration datatypes.

 

Как правильно присваивать значение, чтобы избежать этого нарушения?

 

 

 

 

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


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

Как правильно присваивать значение, чтобы избежать этого нарушения?

 

Попробуйте добавить еще одно значение в енум

enum logic [1:0] {ALPHA = 0, BETA = 1, GAMMA = 2, ERR=3} muxer;

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


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

Всем привет

 

Возник тонкий вопрос. Пользуюсь перечисляемым типом с предустановленными значениями и хочу этот тип переключать

 

enum logic [1:0] {ALPHA = 0, BETA = 1, GAMMA = 2} muxer;

always @(posedge clk)
    muxer <= cfg_wdata[1:0];
end

 

Cadence Incisive при симуляции высыпает варнгинг

This assignment is a violation of SystemVerilog strong typing rules for enumeration datatypes.

 

Как правильно присваивать значение, чтобы избежать этого нарушения?

 

Можно либо сделать дешифратор, либо привести тип к enum:

  typedef enum logic [1:0] {ALPHA = 0, BETA = 1, GAMMA = 2} muxer_t;
  muxer_t muxer;

  always @(posedge clk)
    muxer <= muxer_t'(cfg_wdata[1:0]);

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


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

Всем привет

 

Возник тонкий вопрос...

Как правильно присваивать значение, чтобы избежать этого нарушения?

Объявить тип и сделать приведение типов. В стандарте примеры есть

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


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

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

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

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

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

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

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

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

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

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