У меня есть следующий код:
typedef enum logic [1:0] {
CMD1 = 2'b1?,
CMD2 = 2'b01,
CMD3 = 2'b00
} cmd_t;
По сути, если MSB равен 1, это CMD1 (я буду использовать LSB для части индекса). И если MSB равен 0, то декодировать остальные биты для команды.
Затем я пытаюсь декодировать с помощью always_comb:
cmd_t myCmd;
always_comb begin
casez(myCmd)
CMD1: isCmd1 = 1'b1;
CMD2: isCmd1 = 1'b0;
default: isCmd1 = 1'b0;
endcase
end
К сожалению, я получаю это сообщение от Spyglass:
[12EE] W467 Based number 2'b1? contains a don't-care (?) - might lead to simulation/synthesis mismatch
Этот код должен быть синтезируемым, не так ли? Можно ли безопасно отказаться от этого предупреждения Spyglass?
enum
. это должно бытьCMD = 2``b1?
,=
, а не:
. Это может вызвать вашу ошибку. - person Serge   schedule 28.06.2019