Что касается общего принципа, о котором вы спрашиваете: не имеет значения, по какому маршруту вы идете. Синтезатор будет достаточно умен, чтобы все равно с ним разобраться. Для моделирования возможно, что параметр, который сначала выполняет назначение по умолчанию, может выполняться медленнее (особенно, если это назначение неблокирующее), но я не стал бы беспокоиться об этом.
Лично я предпочитаю второе, потому что читателю причинно-следственных связей более очевидно, что вы рассмотрели свои основы с точки зрения генерации нежелательных защелок (другими словами, вы всегда назначаете var
).
Сказав все это, ваш пример (в принципе) очень прост, и в данном конкретном случае очевидно, что требуется мультиплексирование, и вам, вероятно, вообще не нужен всегда блок, и вам следует просто использовать assign
с троичным оператором.
Я говорю «в принципе», потому что ваша логика на самом деле не имеет смысла. Вы говорите, что ваши условия являются взаимоисключающими, но что происходит, если ни одно из условий не активно? Вам действительно нужен фиксатор для сохранения предыдущего вывода? Если нет, то почему у вас вообще два условия?