Игорь Фомин
@neerps
Разработчик систем на базе FPGA и МК
Информация
- В рейтинге
- 4 321-й
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Разработчик систем на базе FPGA и МК
Ваш аккаунт
В случае с Chisel авторы уже 2 раза ломали совместимость кодовой базы. Первый раз — когда перешли от Chisel 2 к Chisel 3, второй — когда заменили компилятор FIRTTL на CIRCT. Работа с несколькими таковыми доменами по-прежнему выглядит криво после удобств SpinalConfig. Поэтому SpinalHDL выглядит куда краше, если брать Scala based HCL.
Я подумал, что несбалансированное дерево частот - это как раз следствие того, что паразитики не извлеклись так, как нужно для OpenSTA.
В любом случае, ситуация серьезная. Да, конечно, будем надеяться, что последующие тейпауты избегут этой участи.
Но от них нет большой практической пользы. Что-то работает только при определённом сочетании температуры и напряжения. В остальном - поведение непредсказуемо.
Я всё-таки верю в то, что разработчики стараются, как могут, учесть эти эффекты. Понятно, что бывает цейтнот, и вылезают ошибки. Но всё же best practice в ходу, разве нет?
Много ли свободного места остаётся, если взять, для примера, что-нибудь продвинутое типа СнК для телефона?
-- Почему вы пьёте чай?
-- Оно симулируется.
-- А, ну тогда продолжайте.
Но ведь, наверное, бывают случаи, когда разработчик может ждать?
Иногда ощущение свободы из-за того, что почти любой контакт можно настроить на вход или выход, приводит к удивительным вещам. :D
Боюсь, что все сувениры достаточно быстро раскупили. Причем уже тогда, когда комментарий с ней разместили сюда. Поэтому, увы, но размещать эту новость уже было бессмысленно.
Вот потому и не все MPW оказались удачными. :)
Интересно, к слову, что намёки на проблемы были в отчётах. Как я понял, какую-то величину движок STA принял за 0, и потому анализ был далёк от реальной ситуации в PnR.
Хорошо помню, как попадавшиеся мне руководства обращали внимание на SSN - Simultaneous Switching Noise. Как я понимаю, разработчики как раз стараются этого не допустить, по крайней мере, в существенных объемах. Т. е. в теории такой вариант получить можно, получается? Например, напортачить с проектом ПЛИС и сделать пачку выходов, которые переключаются вместе. Кажется, что это будет существенной нагрузкой на питание.
В любом случае, рад, что моё понимание, для чего нужны декапы, оказывается хоть как-то верным. Про локальные "батарейки" понял, когда разбирался с импедансом PDN (Power Delivery Network).
Ковровая бомбардировка конденсаторами? :)
Припоминаю из одного подкаста, что со спайсом есть варианты считать относительно точные модели маленьких узлов, а потом считать обобщенные сферические модели узлов побольше. Хоть какой-то выход, получается.
А что именно не хватает методике Timing+V-Drop, чтобы стать рабочей?
Если не ошибаюсь, эти частоты связаны с переходными токами?
Но есть ведь некоторые условия, при которых "больше" не добавляет практически ничего? Или нет?
Не совсем понял, что именно бывает по-другому?
Рад увидеть статью по SkyWater 130 и OpenLane!
Несколько фраз, которые я хочу прокомментировать.
Всё же, MPW-1 оказался не совсем успешным. Временной анализ показывал успех, когда по факту это было не так. Поэтому проекты MPW-1 потенциально страдают от нарушений времени установки (aka 'hold violations'). См., например, эту публикацию в их Google группе:
https://groups.google.com/g/skywater-pdk-announce/c/TTJ28FF9qCA
Я думал, что Magic был доступен ранее. Например, был и есть такой набор как Qflow, где Magic также используется на определённом этапе. Несомненно, OpenLane примечателен набором скриптов и иным составом софта в маршруте. Но изначальная формулировка, на мой взгляд, не совсем точна. Я бы сказал, что KLayout и Magic VLSI стали доступнее.
Мне казалось, что RTL - это всё-таки способ описывать аппаратуру. RTL можно писать на VHDL, Verilog, System Verilog. Возможно, что даже генераторы типа SpinalHDL/Chisel всё-таки тоже позволяют писать на уровне RTL? В общем и целом, под синтез можно писать на разных языках. Проблема лишь в том, что Yosys пока поддерживает только Verilog, поэтому конкретно в случае OpenLane остаётся один вариант. В то же время, есть разные проекты, которые пытаются сделать транслятор SystemVerilog в Verilog. Например,
https://github.com/zachjs/sv2v
https://github.com/chipsalliance/Surelog
Также у меня появился один вопрос. В случае PCB разработчик сталкивается с такой проблемой, когда на определённой частоте конденсаторы-компоненты перестают быть эффективными. Есть ли порог частоты, на которой с on-chip decap случается та же ситуация?
Спасибо за статью! Информацию действительно приходится собирать по разным источникам, и порой не хватает каких-то частей. Мне, как человеку далёкому от бэк-энда, понравилась секция про физический дизайн.
Ждём, когда интеловская версия Questa, облегчённая, выйдет из беты в народ. Там все 64 бита сразу, поэтому танцы с библиотеками не будут нужны.
Есть варианты, как поколдовать
https://vhdlwhiz.com/modelsim-quartus-prime-lite-ubuntu-20-04/
Успешно запустил Modelsim на Ubuntu 20.04.
UPD: не заметил, что в комментарии уже есть ссылка. -_-
Мне кажется, что тема синхронизации в ПЛИС крайне важна. Действительно, не обязательно писать подробности здесь. Но можно хотя бы упомянуть слово-два.
Я помню, как однажды на отладочной плате завёл сигнал с кнопки на вход автомата. Благодаря этому я узнал, какова метастабильность на практике, и что бывает, когда автомат попадает в неизвестное состояние. Тем более, что в случае с one-hot таких состояний много. Это потенциальный сбой, и стоит заранее знать, как таких сбоев можно избежать. По крайней мере, снизить вероятность.