Есть case. Декодер команд.
casex (cmdcode)
64'h5245534554xxxxxx :
begin
rst <= 1;
repver <= 0;
end
64'h474554564552xxxx :
begin
rst <= 0;
repver <= 1;
end
default :
begin
rst <= 0;
repver <= 0;
end
endcase
Квартус на него ворчит:
Warning (10762): Verilog HDL Case Statement warning at comdec1.v(103): can't check case statement for completeness because the case expression has too many possible states
В хелпе написано, что это потому, что:
Quartus II Integrated Synthesis checks only the completeness of case statement with fewer than 2^32 states
Предлагают поставить
full_case synthesis attribute
Пробовал, но тогда Квартус уже ворчит на этот атрибут.
При этом в Моделсиме все работает. В железе не пробовал пока.
Может есть какие-то более цивилизованные способы работы с 64 битными числами в casex?
if использовать похоже никак, потому что хххххх есть.
Можно укоротить команду до 32 бит, тогда вроде все пучком, но академический интерес остается :-)