Оценка операторов присваивания SystemVerilog в моделировании RTL

Я пытаюсь понять, почему покрытие операторов двумя операторами присваивания SystemVerilog может отличаться друг от друга, если выражение условия одинаково для обоих операторов.

Учтите следующее:

введите описание изображения здесь

Как показано, выражение условия одинаково для этих двух операторов, то есть _T_6.

Однако количество совпадений (т. Е. Охват операторов) для операторов различается (обратите внимание на числа в крайнем левом углу).

Я ожидал, что симулятор RTL должен оценивать оба оператора одинаковое количество раз при изменении значения _T_6. Как симулятор RTL обрабатывает эти операторы во время симуляции?


person yildizabdullah    schedule 09.09.2020    source источник


Ответы (1)


Оператор непрерывного присваивания оценивается каждый раз, когда изменяется сигнал с правой стороны. Таким образом, даже когда _T_6 не изменяется, изменения в неактивной ветви условного выражения все равно вызывают оценку.

Если _T_6 был параметром, а не сигналом, есть некоторые оптимизации, которые могут уменьшить условное выражение и исключить некоторые оценки.

person dave_59    schedule 09.09.2020