TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Записки CPU designer'a

4 Sep, 14:50

Открыть в Telegram Поделиться Пожаловаться

--x-initial-edge в Verilator: зачем он нужен

В Verilator есть флаг --x-initial-edge. Он решает давнюю проблему разницы в поведении между Verilator и big3 симуляторами (VCS, Questa, Xcelium).

В чём суть проблемы?
В стандарте IEEE 1800 SystemVerilog (см. Table 6-7 default values) в момент времени T = 0 4-state переменные имеют значение 'X'. Согласно стандарту system verilog переход из 'X' в '0' расценивается как negedge, а из 'X' в '1' - как posedge (см. Table 9-2).
В Verilator по умолчанию начальное значение сигналов для такой edge-детекции считается равным 0. Из-за этого установка сигнала в 0 в момент T=0 выглядит как 0 -> 0 и не генерирует negedge.

Почему это критично?
Это казалось бы незначительное отличие особенно заметно при отладке схем с Clock Gate контроллерами. Если clock подмодуля во время reset загейчен (clock отсутсвует), асинхронный reset может быть единственным событием, которое переводит внутреннее состояние блока в reset state.
Но код на скриншоте в Verilator не срабатывал, поскольку Verilator по умолчанию не моделировал начальный переход X -> 0 как negedge.

Без использования этого флага момент можно было обкостылить. Например, чтобы заставить пример на скриншоте работать корректно, можно было искусственно сформировать дополнительный переход сигнала сброса:

1) 0 (T0) -> 1 -> 0 // создаём настоящий negedge
2) 0 -> 1 // снимаем reset

Теперь такие костыли городить не нужно, подробности:

https://veripool.org/guide/latest/exe_verilator.html#cmdoption-x-initial-edge

2.4k 0 7 17
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot