Проверки синхронизации на уровне шлюза в SVA

Мне нужно проверить значение сигнала после определенного периода времени, когда возникает фронт часов. Например, я хочу проверить, что, если сигнал b утверждается на высоком уровне 1 пс после того, как происходят часы posedge.

Предоставляет ли SVA синтаксис для этого?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

не предназначались для проверки синхронизации на уровне шлюза. Verilog уже предоставляет ряд встроенных и оптимизированных проверок времени, таких как $setuphold и $skew. См. раздел 31. Проверка времени в IEEE 1800-2017 SystemVerilog LRM.

Проверки синхронизации обычно выражаются в виде ограничений — либо утверждение происходит при наименее через 1 пс после фронта тактового сигнала, либо при самый через 1 пс после фронта тактового сигнала. Кроме того, долженb будет устанавливаться после каждого фронта тактового сигнала? Независимо от ответов на эти вопросы можно использовать SVA для моделирования проверки синхронизации, но вам придется вручную создавать уравнения на основе реальных требований. Например

property p;
  realtime timestamp;
  @(posedge c) ($rose(a), timestamp = $realtime) => 
       @(posedge b) $realtime - timestamp < 1ps;
endproperty

Если a высокое, то b должно утверждаться на высоком уровне 1 пс после того, как происходят часы posedge, это на самом деле то, что я хочу проверить.

yildizabdullah 06.04.2022 04:26

@yildizabdullah, я обновил код, чтобы отразить ваши дополнительные требования.

dave_59 06.04.2022 06:52

Разве оператор импликации не должен быть |=>, а не =>?

yildizabdullah 06.04.2022 09:18

Другие вопросы по теме