С точки зрения того, имеет ли это значение в HDL, я предполагаю, что вы спрашиваете, будет ли это иметь значение при синтезе. Короткий ответ, что это будет. Например, следующий код является синтезируемым SystemVerilog:
if(risingEdge && cnt++ == 3'b111)
begin
...
end
В Verilog (не SV) постинкремент можно заменить функцией verilog, которая имеет другие назначения для переменных модуля, чтобы показать то же самое. Так что да, это актуальный вопрос.
Пол Р. в целом прав, а ссылка на Сазерленд - отличная (много хороших вещей, подобных описанным в этих Гочах). Для справки, это изменилось с SystemVerilog, по крайней мере, что касается спецификации. В то время как Verilog указывает, что короткозамкнутые операции могут выполняться или не выполняться, SV устраняет неоднозначность, указывая, что реализации не должны оценивать короткозамкнутые операнды (аналогично C ++, Java и т. Д.). См. IEEE-1800-2009 раздел 11.3.5, если вы заинтересованы. Хотя это замечательно, послужной список для соблюдения спецификации SV не является звездным для всех поставщиков инструментов, поэтому будьте внимательны, полагаясь на него в SV.