~ cd 1. что такое yosys
1.1 Что вы можете делать с помощью Yosys
- Читать и обрабатывать (большую часть) современного кода Verilog-2005
- Выполнять все виды операций над нетлистом (RTL, логика, вентили)
- Выполнять оптимизацию логики и отображение вентилей с помощью ABC.
1.1.1. Области применения Yosys
- Синтез окончательных производственных проектов
- Предпроизводственный синтез
- Преобразование полнофункционального Verilog в простой Verilog
- Преобразование Verilog в другие форматы (BLIF, BTOR и т.д.)
- Демонстрация алгоритмов синтеза (например, в образовательных целях)
- Фреймворк для экспериментов с новыми алгоритмами
- Фреймворк для создания пользовательских потоков (не только синтез, но и формальная верификация, реверсивного инжиниринга, … )
1.1.2 То, что вы не сможете делать
- Обрабатывать языки высокого уровня, такие как C/C++/SystemC
- Создавать физические макеты (place&route).
- Проверить nextpnr
1.2. Семейство Yosys
Как уже упоминалось выше, YosysHQ поддерживает не только Yosys, но и целое семейство инструментов, построенных вокруг него. Без особого порядка:
- SBY для формальной верификации
Yosys обеспечивает парсинг и преобразование входных данных в форматы, используемые движками исполнителя. Yosys также предоставляет унифицированный фреймворк для создания трассировки покрытий и предоставления примеров для движков, которые не поддерживают это нативно. Источник SBY | Документация SBY - EQY для проверки эквивалентности
В дополнение к парсингу и преобразовании входных данных, Yosys предоставляет поддержку плагинов, позволяющих EQY работать с конструкциями напрямую. Источник EQY | Документация EQY - MCY для контроля степени покрытия
Yosys используется для чтения исходного дизайна, создания списка возможных изменений для максимального покрытия дизайна, а затем выполнения выбранных изменений. Источник MCY | Документация MCY - SCY для низкоуровневой формальной трассировки
Поскольку SCY генерирует и запускает SBY, Yosys предоставляет для SCY те же утилиты, что и для SBY. Yosys дополнительно предоставляет конкатенацию трасс, необходимую для вывода низкоуровневой трасс. Источник SCY
1.3. Аннотация
Большая часть современного цифрового проектирования выполняется в HDL-коде (в основном Verilog или VHDL) и с помощью инструментов синтеза HDL.
В особых случаях, таких как синтез библиотек coarse-grain ячеек или тестирование новых алгоритмов синтеза, может потребоваться написание собственного инструмента синтеза HDL или добавление новых функций в существующий. В этих случаях будет полезно наличие инструмента синтеза с бесплатным и открытым исходным кодом (FOSS), который можно использовать в качестве основы для создания собственных инструментов.
В отсутствие такого инструмента был разработан Yosys Open SYnthesis Suite (Yosys). В данном документе рассматривается разработка и реализация этого инструмента. В настоящее время основной упор в Yosys сделан на высокоуровневые аспекты цифрового синтеза. Уже существующий инструмент логического синтеза FOSS ABC используется в Yosys для выполнения продвинутых оптимизаций на уровне вентилей.
Приведена оценка Yosys на основе реальных проектов. Показано, что Yosys можно использовать для синтеза таких конструкций как есть. Результаты, полученные Yosys в ходе тестирования, были успешно проверены с помощью формальной верификации и по качеству сопоставимы с результатами, полученными с помощью коммерческого инструмента синтеза.
Yosys — это инструмент синтеза Verilog HDL. Это означает, что он принимает на вход описание поведенческого дизайна и генерирует на выходе RTL, логическое описание уровня логических или физических вентилей. Основными достоинствами Yosys являются поведенческий и RTL-синтез. В Yosys существует широкий набор команд (synthesis passes), которые могут быть использованы для выполнения широкого спектра задач синтеза в области поведенческого, RTL и логического синтеза. Yosys спроектирован как расширяемый инструмент, поэтому является хорошей основой для реализации собственных инструментов синтеза для специализированных задач.
1.3.1. Преимущества синтеза HDL с открытым исходным кодом
- Стоимость (также относится к бесплатным решениям):
Сегодня стоимость набора микросхем по технологии 180 нм намного меньше стоимости инструментов проектирования, необходимых для создания макетов микросхем. Стоки ASIC с открытым исходным кодом являются важным фактором, способствующим созданию аппаратных средств с открытым исходным кодом на уровне ASIC. - Доступность и воспроизводимость:
Если вы исследователь, который публикуется, вы хотите использовать инструменты, которые могут использовать и все остальные. Даже если в большинстве университетов есть доступ ко всем основным коммерческим инструментам, у вас обычно нет легкого доступа к версии, которая использовалась в исследовательском проекте пару лет назад. С инструментами с открытым исходным кодом вы можете даже выпустить исходный код инструмента, который вы использовали, вместе с вашими данными. - Фреймворк:
Yosys — это не только инструмент. Это фреймворк, который может быть использован в качестве основы для других разработок, поэтому исследователям и хакерам не нужно изобретать базовую функциональность. Расширяемость была одной из целей разработки Yosys. - Удобность:
Благодаря фреймворковым характеристикам Yosys все большее количество функций становится доступным в одном инструменте. Yosys можно использовать не только для синтеза схем, но и для формальной проверки эквивалентности, решения SAT, анализа схем и т. д. и т. п. В случае с проприетарным ПО для каждого из этих приложений необходимо изучать новый инструмент. - Образовательный инструмент:
Проприетарные инструменты синтеза порой очень закрыты в отношении своей внутренней работы. Они часто представляют собой «черные ящики». Yosys очень открыто рассказывает о своей внутренней работе, и можно легко наблюдать за различными этапами синтеза.