Я хочу синтезировать код SystemVerilog, который имеет задержку, записанную как ## 1, но синтезатор дает синтаксические ошибки, поскольку задержка не может быть синтезирована. Я хочу знать, есть ли способ дать задержку, которая будет синтезирована? Например, это утверждение SystemVerilog в коде с задержкамиСинтезируемая задержка в Verilog
assert property ((req1 == 0) ## 1 (req1 == 1) ## 1! (Req2 == 1) || (gnt1 == 0));
Как я могу синтезировать это без потери его поведения?
Да, вы правы, свойства в коде указаны с использованием утверждений SystemVerilog. Я на самом деле пытаюсь преобразовать код описания оборудования в формально проверяемый код. Вот почему я использую утверждения для указания свойств и передачи их на синтезатор, который нужно преобразовать для проверки. Синтезатор просто не принимает синтаксис задержки, используемый i.e ## 1 в свойствах. Вышеупомянутый единственный способ моделировать задержку для синтезатора? – mii9
Вы не можете синтезировать свойства, и я подозреваю, что это не так, как работает ваш официальный верификатор. В моем (ограниченном) опыте с формальной проверкой формальный инструмент берет вашу реализацию как один входной и HDL-свойства в качестве другого. Таким образом, свойства не синтезируются и могут быть записаны обычным способом. Возможно, вы должны задать другой вопрос, где вы предоставляете больше информации о том, какой инструмент вы используете, и о том, как вы пытаетесь его использовать. – Hida