В чем разница между -> и => в утверждениях системы verilog?
Я хотел знать, когда использовать ->
а также =>
в SVA? Есть ли различия между
sequence A;
req |-> ##1 gnt;
endsequence
а также
sequence B;
req |=> ##1 gnt;
endsequence
Пожалуйста, дайте мне знать.. Спасибо.
3 ответа
|=>
эквивалентно |-> ##1
Следовательно, req |=> ##1 gnt;
эквивалентно req |-> ##2 gnt;
См. IEEE Std 1800-2012 § 16.12.6. Значение
Разница заключается в том, что, когда антецедент (выражение слева) преуспевает, запускается ли последующее (выражение справа) в одном и том же тактовом цикле |->
(перекрытие) или следующий тактовый цикл |=>
(Неперекрывающийся).
Удобный способ запомнить это, есть только один бар в -
так, что перекрывается. И есть два бара в =
, так что это не перекрытие.
- Этот и тот или иной тип использования импликации использует методологию, приведенную ниже.
- Я думаю, у вас есть базовое представление о том, где использовать |->(перекрытие) и |=>(не перекрытие)
property name();
Enabling sequence (|-> or |=>) Consequent sequence
endproperty
Результат:
когда разрешающая последовательность 'true (1'b1)', тогда она проверяет последовательную последовательность.. если последовательный seq 'true, чем утверждение проходит, и если последовательный seq равен' false, то утверждение не выполняется..
При включении seq `false, чем оно проходит, но отображает как"viscus success", и вы не сможете увидеть зеленую стрелку в форме волны
в то время как...
property name();
sequence1 (## delay) sequence2
endproperty
- В этом случае, если seq1 имеет значение "истина", то после некоторой задержки он проверяет seq2, если "seq2" имеет значение "истина, чем проход подтверждения" и если seq2 имеет значение "ложь", то утверждение не выполняется..
- Если seq1 имеет значение `false, то утверждение не выполняется напрямую..
В этом главное отличие.. Я думаю, что это может помочь