Вернёмся к условию задачи:
Валидные значения: 'b01, 'b10 и 'b11
Блок case, также, как и if/else, выполняет только
одну ветку из всех условий, находящихся в блоке.
Чтоб сделать наглядней абсурдность ситуации, заменим <operators> на установку и сброс триггера.
блок
Код:
case (in)
2'b10 : reg <= 1'b1;
2'b01 : reg <= 1'b0;
обработает одно из двух валидных состояний, пропущено значение 'b11
блок
Код:
if(in1) reg <= 1'b1;
elseif(in2) reg <= 1'b0;
обработает один из 3х доступных вариантов
а что сделает это?
Цитата:
Сообщение от HardWareMan
// Общий блок внутри begin/end
if (in1 & ~in2) begin ... end
if (~in1 & in2) begin ... end
// Конец общего блока