Выпуск #5/2017
А.Строгонов, П.Городков
Реализация VERILOG-проектов в базисе заказных БИС и ПЛИС с использованием инструмента синтеза Yosys
Реализация VERILOG-проектов в базисе заказных БИС и ПЛИС с использованием инструмента синтеза Yosys
Просмотры: 3532
Инструмент синтеза Yosys (Yosys Open SYnthesis Suite) широко используется при проектировании заказных БИС и ПЛИС в университетских центрах. Этот программный пакет с открытым исходным кодом обрабатывает практически любой проект на языке Verilog-2005, преобразуя его в форматы BLIF, EDIF, BTOR, SMT-LIB и др. Рассмотрены особенности применения Yosys при реализации Verilog-проектов в базисе заказных БИС и ПЛИС.
УДК 621.3.049
ВАК 05.27.00
DOI: 10.22184/1992-4178.2017.165.5.98.109
УДК 621.3.049
ВАК 05.27.00
DOI: 10.22184/1992-4178.2017.165.5.98.109
Теги: design flow digital custom lsi fpga rtl representation rtl-представление synthesis technological mapping verilog code verilog-код маршрут проектирования плис синтез технологическое отображение цифровые заказные бис
При создании цифровых БИС и ПЛИС выделяют следующие уровни проектирования: системный, алгоритмический, поведенческий, уровень регистровых передач (RTL), уровень логических вентилей, физический (библиотеки логических элементов заказных БИС и LUT ПЛИС включая триггеры) и транзисторный (схемотехнический). Программный инструмент Yosys охватывает три уровня синтеза проекта: поведенческий, синтез на уровне регистровых передач и логический (рис.1) .***
РЕАЛИЗАЦИЯ VERILOG-ПРОЕКТОВ В БАЗИСЕ ЗАКАЗНЫХ БИС
В отличие от инструмента синтеза Odin II [1–3], который используется в академическом САПР ПЛИС VTR7, Yosys может синтезировать крупные Verilog-проекты с сайта Open Cores (например, микропроцессорные ядра OpenRISC1200, OpenMSP430, K68 и др.). Yosys содержит встроенные формальные методы проверки свойств и эквивалентности [4]. Он позволяет отображать Verilog-проекты в базисе как библиотечных ячеек заказных БИС (в формате liberty), так и ПЛИС Xilinx седьмой серии и Lattice iCE40 [5]. Для логической оптимизации и отображения в базисе заказных БИС и ПЛИС используется программный инструмент ABC.
Каждая задача синтеза с использованием программного пакета Yosys выполняется с помощью скриптов. Рассмотрим примеры скриптов для синтеза и последующего отображения в базисе библиотеки заказных БИС и в базисе ПЛИС Xilinx серии Virtex 7 для Verilog-проекта счетчика (рис.2). По команде read_verilog counter выполняется построение по Verilog-коду счетчика абстрактного синтаксического дерева с последующим RTL-представлением. По команде techmap крупнозернистые RTL-ячейки (например, сумматоры или умножители) преобразуются в мелкозернистые (например, в вентили 2И-НЕ, 2ИЛИ-НЕ, триггеры и др.). Далее мелкозернистые ячейки в два приема отображаются в аппаратные комбинационные элементы и триггеры, соответствующие какой-либо библиотеке (например, asic_cells). В библиотеке asic_cells определены как вентили, так и триггеры. Для заказных БИС триггеры отображаются с помощью команды dfflibmap в формате liberty с использованием библиотеки asic_cells. Логика проекта отображается с помощью программного инструмента ABC и библиотеки asic_cells (см. рис.2а). Для ПЛИС (более подробно в следующем разделе) логика отображается непосредственно в 4-входовые LUT (см. рис.2б).
На рис.3–6 показаны этапы преобразования Verilog-кода 3-разрядного суммирующего счетчика в мультиплексоры и триггеры с последующим представлением в базисе комбинационных логических элементов и регистров библиотеки asic_cells.
В настоящее время многие компании, в частности efabless (efabless.com), сотрудничают с разработчиками в области проектирования и создания БИС c использованием программных продуктов с открытым кодом. Рассмотрим маршрут проектирования заказных БИС Qflow, который представляет собой полный набор инструментов с открытым кодом для синтеза цифровых схем, начиная с Verilog-кода и заканчивая физической топологией для конкретного технологического процесса изготовления. Qflow предполагает использование следующих программных инструментов: Yosys / ABC (синтез и оптимизация), Graywolf (глобальное размещение), Qrouter (детальная трассировка), Magic (топологический редактор) (рис.7).
Qflow поддерживает основные промышленные форматы САПР БИС: LEF (Library Exchange Format, формат библиотечного обмена), DEF (Design Exchange Format, формат конструктивного обмена), GDSII (для топологии) и др. LEF-файл условно делится на библиотечную и технологическую части. Библиотечная часть содержит описание внешней геометрии ячеек (границы ячеек, положение), информацию о расположении входов и выходов и другие обструкции (препятствия) для трассировки. Данная абстракция используется на этапах размещения и разводки элементов на кристалле, а информация о внутренней структуре ячеек для этих стадий не важна. Технологическая часть содержит разнообразные правила проектирования, необходимые для размещения и разводки. Она включает требования к размерам металла, направлениям, спейсингам (расстояниям между соседними блоками, межслойными переходами (via), металлами, ячейками и т. д.) и множество другой технологической информации, которая используется для правильного размещения и разводки в соответствии с технологическими нормами.
Применение инструментов из маршрута Qflow с открытым кодом подобно применению коммерческих САПР при разработке заказных БИС, таких как Cadence, Synopsys, Tanner. По умолчанию основными средствами Verilog-синтеза в Qflow выбраны Yosys / ABC, а Odin-II / ABC могут быть указаны в качестве альтернативного интерфейса.
После стадии отображения логических элементов на библиотеку стандартных ячеек выполняются их размещение и трассировка на кристалле. Этап размещения определяет грубую оценку маршрутизации. Ячейки (логические элементы) распределяются в блоке таким способом, чтобы минимизировать суммарную длину проводников, соединяющих все контакты ячеек. Инструмент размещения Graywolf, разработанный в Йельском университете, распространялся как ПО с открытым исходным кодом в течение длительного времени, пока не перешел в разряд коммерческих продуктов. Последняя версия Graywolf с открытым исходным кодом не обеспечивает детальную трассировку, но является инструментом размещения профессионального уровня.
Для детальной трассировки ячеек на кристалле БИС используется программный продукт Qrouter (http://opencircuitdesign.com/qrouter/). Qrouter представляет собой инструмент для физического соединения топологических ячеек логических элементов внутри блока согласно списку соединений с помощью сгенерированных металлических слоев и межслойных контактов. Он базируется на использовании модифицированного волнового алгоритма трассировки Ли и представляет собой двухстадийный многослойный трассировщик, который прокладывает трассы поверх топологических ячеек (по принципу "бесканальное море вентилей"). Qrouter считывает входные форматы LEF и DEF и формирует на выходе аннотируемый DEF-файл.
Библиотеки стандартных ячеек цифровых БИС – основной компонент маршрута проектирования. Инструменты высокоуровневого синтеза коммерческих САПР БИС используют патентованные библиотеки, предоставляемые различными кремниевыми фабриками. Проблема с патентованными библиотеками заключается в том, что они не могут быть использованы в качестве примеров проектирования цифровых устройств и размещены на общедоступных веб-сайтах. Однако все же существует несколько комплектов библиотек стандартных ячеек с открытым исходным кодом для популярных технологических процессов. Некоторые из них, основанные на единых правилах проектирования масштабируемой КМОП-технологии от MOSIS (MOSIS Scalable CMOS design rules) (см. www.mosis.com, www.isi.edu), имеются в открытом доступе. Набор правил проектирования от MOSIS не столь специфичен, как правила кремниевых фабрик.
Многие кремниевые фабрики, такие как TSMC, IBM, AMI, Orbit, выпускают по правилам проектирования MOSIS Scalable CMOS design rules субмикронные БИС. Единые правила проектирования, поддерживаемые разработчиками САПР БИС, позволяют дизайн-центрам, не имеющим собственных производств, решить задачу вывода на рынок изделий и обеспечить переносимость проектов между ведущими производителями.
В качестве основной единицы измерения расстояния по правилам проектирования выбрана масштабная величина (лямбда). В масштабируемой технологии КМОП (SCMOS) топология схемы создается в соответствии с лямбда-методологией, согласно которой единица измерения масштабируется в соответствии с изменением технологии в сторону уменьшения размеров, что позволяет избежать повторного проектирования топологии кристалла.
Топологический редактор Magic в маршруте Qflow использует библиотеки стандартных ячеек цифровых БИС, реализованные по масштабируемой КМОП-технологии, совместимые с топологическими библиотеками коммерческих кремниевых фабрик, преимущественно TSMC и AMI 0,18, 0,35 и 0,5 мкм. По умолчанию предлагается библиотека с открытым исходным кодом OSU0.35 (разработана в государственном университете Оклахомы, США) с топологическими проектными нормами 0,35 мкм, не требующая лицензионного соглашения, как, например, в случае применения библиотек кремниевых фабрик (MOSIS AMI, HP и др.). Набор библиотек для проектирования по методу стандартных ячеек доступен для скачивания на сайте www.vlsiarch.ecen.okstate.edu. Библиотека OSU0.35 содержит набор файлов, включая файлы в форматах LEF и GDSII.
На рис.8 показано окно программного инструмента Graywolf в процессе размещения логических элементов 3-разрядного суммирующего счетчика на кристалле. В состав GrayWolf входит дополнительная утилита place2def, которая преобразует выходные результаты в формат DEF, содержит информацию о списках цепей и размещенных элементах. Она также записывает дополнительную информацию о количестве используемых слоев металлизации в cfg-файл, что необходимо для маршрутизации.
На рис.9 представлена абстрактная топология счетчика в топологическом редакторе Magic с учетом размещения и детальной трассировки. На рис.10 показана топология счетчика, созданная в соответствии с масштабируемой КМОП-технологией OSU0.35 (модификация технологического процесса кремниевой фабрики TSMC, SCN4M_SUB.20, масштабируемая КМОП-технология по правилам MOSIS, N-карман, четыре слоя металлизации, слой поликремния, субмикронные проектные нормы, лямбда 0.2, https://www.mosis.com/vendors/view/tsmc/035).
Для построения физической абстракции нужно загрузить LEF-файл в консоле редактора Magic с помощью команды lef read /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef. Для перехода от абстрактного описания к полному описанию топологии (gds), определенной технологическим процессом OSU0.35, необходимо загрузить технологический файл в формате gds2 в консоле редактора Magic с помощью команды gds read osu035_stdcells.gds2.
РЕАЛИЗАЦИЯ VERILOG-ПРОЕКТОВ
В БАЗИСЕ ИНДУСТРИАЛЬНЫХ ПЛИС XILINX
В качестве примера рассмотрим Verilog-проект "Бегущие огоньки", в котором светодиоды загораются с разной частотой в зависимости от сигнала ctrl. Verilog-код проекта представляет собой 32-разрядный счетчик на базе сумматора и регистра с обратной связью, к разрядам которого (24–31) подключены восемь светодиодов led_0–led_7 (рис.11). На рис.12 представлен маршрут проектирования цифровых схем в виде Verilog-кода в базисе ПЛИС с использованием синтезатора Yosys и САПР Xilinx ISE. На рис.13 показано RTL-представление проекта в САПР ISE ver 14.2.
Yosys, преобразующий Verilog-проекты в формат EDIF, позволяет их отображать в базисе ПЛИС Xilinx серий Spartan-6 и Virtex-7. Реализуем проект в ПЛИС серии Spartan-6 XC6SLX9–2-TQG144. Для логической оптимизации и отображения в базисе ПЛИС в Yosys интегрирован программный инструмент ABC.
На рис.14 показан скрипт для синтеза рассматриваемого Verilog-проекта и отображения в базисе ПЛИС Xilinx серии Spartan 6, а на рис.15 – файл временных ограничений (ucf-файл) для этого проекта. Рассмотрим основные команды скрипта. Более подробную информацию о командах для синтеза в базисе ПЛИС Xilinx можно найти на сайте Yosys в разделе Synt_xilinx (http://www.clifford.at/yosys/cmd_synth_xilinx.html).
По команде read_verilog example.v выполняется построение абстрактного синтаксического дерева с последующим RTL-представлением, которое отличается большей детальностью, чем в ISE (рис.16). Видна особенность использования сигнала ctrl, который подключается к адресному входу мультиплексора 2 в 1. По команде techmap крупнозернистые RTL-ячейки (сумматоры, регистры) преобразуются в мелкозернистые (вентили, триггеры) (рис.17). Логика проекта с помощью команды abc -lut 6 отображается непосредственно в 6-входовые LUT (рис.18). Команда techmap -map +/xilinx/cells_map.v отображает 6-входовые LUT и триггеры в технологическом базисе ПЛИС Xilinx Spartan-6 (рис.19). Инструмент Yosys позволяет также синтезировать в MAC-блоки (DSP48) ПЛИС Xilinx.
На рис.20 показаны проект, представленный edif-файлом и файлом временных ограничений, а также сведения об используемых логических ресурсах ПЛИС XC6SLX9-2-TQG144, а на рис.21 – задействованные логические и трассировочные ресурсы ПЛИС. Отображенные на рис.20 и 21 результаты подтверждают, что edif-файл, сформированный синтезатором Yosys по Verilog-коду, успешно обрабатывается утилитами ngdbuild, map (упаковка элементарных логических элементов в секции КЛБ, но секции еще не получают реальных мест в ПЛИС) и par (для секций, сформированных на этапе map, определены места в матрице конфигурируемых логических блоков (place) с последующей трассировкой связей между сигналами секций (route)) САПР Xilinx ISE.
Yosys применяется и для реализации проектов в базисе ПЛИС от Lattice Semiconductor. Для отладки проектов на базе ПЛИС iCE40 создана открытая аппаратная платформа icoBoard 1.0. Отличительная особенность данной платформы – использование для программирования ПЛИС открытого и свободного программного обеспечения icoTC, основными компонентами которого являются инструмент синтеза Yosys, средство размещения и трассировки Arachne-pnr, программные инструменты для формирования битового потока, документация на ПЛИС iCE40 Lattice IceStorm и загрузчик битового потока (программатор) iceprog.
ЛИТЕРАТУРА
Строгонов А., Городков П. Реализация Verilog-проектов в базисе академических ПЛИС с применением САПР VTR7.0 // Компоненты и технологии. 2017. № 5. C. 12–17.
Строгонов А., Городков П. Программные средства с открытым исходным кодом для проектирования цифровых устройств в базисах БИС и ПЛИС // Компоненты и технологии. 2017. № 3. C. 88–97.
Строгонов А., Цыбин С., Городков П. САПР VTR7 для проектирования академических ПЛИС // Компоненты и технологии. 2016. № 3. C. 65–73.
Yosys: свободный софт для Verilog-синтеза. – http://ramlamyammambam.livejournal.com/tag/fpga
https://github.com/cliffordwolf/yosys
РЕАЛИЗАЦИЯ VERILOG-ПРОЕКТОВ В БАЗИСЕ ЗАКАЗНЫХ БИС
В отличие от инструмента синтеза Odin II [1–3], который используется в академическом САПР ПЛИС VTR7, Yosys может синтезировать крупные Verilog-проекты с сайта Open Cores (например, микропроцессорные ядра OpenRISC1200, OpenMSP430, K68 и др.). Yosys содержит встроенные формальные методы проверки свойств и эквивалентности [4]. Он позволяет отображать Verilog-проекты в базисе как библиотечных ячеек заказных БИС (в формате liberty), так и ПЛИС Xilinx седьмой серии и Lattice iCE40 [5]. Для логической оптимизации и отображения в базисе заказных БИС и ПЛИС используется программный инструмент ABC.
Каждая задача синтеза с использованием программного пакета Yosys выполняется с помощью скриптов. Рассмотрим примеры скриптов для синтеза и последующего отображения в базисе библиотеки заказных БИС и в базисе ПЛИС Xilinx серии Virtex 7 для Verilog-проекта счетчика (рис.2). По команде read_verilog counter выполняется построение по Verilog-коду счетчика абстрактного синтаксического дерева с последующим RTL-представлением. По команде techmap крупнозернистые RTL-ячейки (например, сумматоры или умножители) преобразуются в мелкозернистые (например, в вентили 2И-НЕ, 2ИЛИ-НЕ, триггеры и др.). Далее мелкозернистые ячейки в два приема отображаются в аппаратные комбинационные элементы и триггеры, соответствующие какой-либо библиотеке (например, asic_cells). В библиотеке asic_cells определены как вентили, так и триггеры. Для заказных БИС триггеры отображаются с помощью команды dfflibmap в формате liberty с использованием библиотеки asic_cells. Логика проекта отображается с помощью программного инструмента ABC и библиотеки asic_cells (см. рис.2а). Для ПЛИС (более подробно в следующем разделе) логика отображается непосредственно в 4-входовые LUT (см. рис.2б).
На рис.3–6 показаны этапы преобразования Verilog-кода 3-разрядного суммирующего счетчика в мультиплексоры и триггеры с последующим представлением в базисе комбинационных логических элементов и регистров библиотеки asic_cells.
В настоящее время многие компании, в частности efabless (efabless.com), сотрудничают с разработчиками в области проектирования и создания БИС c использованием программных продуктов с открытым кодом. Рассмотрим маршрут проектирования заказных БИС Qflow, который представляет собой полный набор инструментов с открытым кодом для синтеза цифровых схем, начиная с Verilog-кода и заканчивая физической топологией для конкретного технологического процесса изготовления. Qflow предполагает использование следующих программных инструментов: Yosys / ABC (синтез и оптимизация), Graywolf (глобальное размещение), Qrouter (детальная трассировка), Magic (топологический редактор) (рис.7).
Qflow поддерживает основные промышленные форматы САПР БИС: LEF (Library Exchange Format, формат библиотечного обмена), DEF (Design Exchange Format, формат конструктивного обмена), GDSII (для топологии) и др. LEF-файл условно делится на библиотечную и технологическую части. Библиотечная часть содержит описание внешней геометрии ячеек (границы ячеек, положение), информацию о расположении входов и выходов и другие обструкции (препятствия) для трассировки. Данная абстракция используется на этапах размещения и разводки элементов на кристалле, а информация о внутренней структуре ячеек для этих стадий не важна. Технологическая часть содержит разнообразные правила проектирования, необходимые для размещения и разводки. Она включает требования к размерам металла, направлениям, спейсингам (расстояниям между соседними блоками, межслойными переходами (via), металлами, ячейками и т. д.) и множество другой технологической информации, которая используется для правильного размещения и разводки в соответствии с технологическими нормами.
Применение инструментов из маршрута Qflow с открытым кодом подобно применению коммерческих САПР при разработке заказных БИС, таких как Cadence, Synopsys, Tanner. По умолчанию основными средствами Verilog-синтеза в Qflow выбраны Yosys / ABC, а Odin-II / ABC могут быть указаны в качестве альтернативного интерфейса.
После стадии отображения логических элементов на библиотеку стандартных ячеек выполняются их размещение и трассировка на кристалле. Этап размещения определяет грубую оценку маршрутизации. Ячейки (логические элементы) распределяются в блоке таким способом, чтобы минимизировать суммарную длину проводников, соединяющих все контакты ячеек. Инструмент размещения Graywolf, разработанный в Йельском университете, распространялся как ПО с открытым исходным кодом в течение длительного времени, пока не перешел в разряд коммерческих продуктов. Последняя версия Graywolf с открытым исходным кодом не обеспечивает детальную трассировку, но является инструментом размещения профессионального уровня.
Для детальной трассировки ячеек на кристалле БИС используется программный продукт Qrouter (http://opencircuitdesign.com/qrouter/). Qrouter представляет собой инструмент для физического соединения топологических ячеек логических элементов внутри блока согласно списку соединений с помощью сгенерированных металлических слоев и межслойных контактов. Он базируется на использовании модифицированного волнового алгоритма трассировки Ли и представляет собой двухстадийный многослойный трассировщик, который прокладывает трассы поверх топологических ячеек (по принципу "бесканальное море вентилей"). Qrouter считывает входные форматы LEF и DEF и формирует на выходе аннотируемый DEF-файл.
Библиотеки стандартных ячеек цифровых БИС – основной компонент маршрута проектирования. Инструменты высокоуровневого синтеза коммерческих САПР БИС используют патентованные библиотеки, предоставляемые различными кремниевыми фабриками. Проблема с патентованными библиотеками заключается в том, что они не могут быть использованы в качестве примеров проектирования цифровых устройств и размещены на общедоступных веб-сайтах. Однако все же существует несколько комплектов библиотек стандартных ячеек с открытым исходным кодом для популярных технологических процессов. Некоторые из них, основанные на единых правилах проектирования масштабируемой КМОП-технологии от MOSIS (MOSIS Scalable CMOS design rules) (см. www.mosis.com, www.isi.edu), имеются в открытом доступе. Набор правил проектирования от MOSIS не столь специфичен, как правила кремниевых фабрик.
Многие кремниевые фабрики, такие как TSMC, IBM, AMI, Orbit, выпускают по правилам проектирования MOSIS Scalable CMOS design rules субмикронные БИС. Единые правила проектирования, поддерживаемые разработчиками САПР БИС, позволяют дизайн-центрам, не имеющим собственных производств, решить задачу вывода на рынок изделий и обеспечить переносимость проектов между ведущими производителями.
В качестве основной единицы измерения расстояния по правилам проектирования выбрана масштабная величина (лямбда). В масштабируемой технологии КМОП (SCMOS) топология схемы создается в соответствии с лямбда-методологией, согласно которой единица измерения масштабируется в соответствии с изменением технологии в сторону уменьшения размеров, что позволяет избежать повторного проектирования топологии кристалла.
Топологический редактор Magic в маршруте Qflow использует библиотеки стандартных ячеек цифровых БИС, реализованные по масштабируемой КМОП-технологии, совместимые с топологическими библиотеками коммерческих кремниевых фабрик, преимущественно TSMC и AMI 0,18, 0,35 и 0,5 мкм. По умолчанию предлагается библиотека с открытым исходным кодом OSU0.35 (разработана в государственном университете Оклахомы, США) с топологическими проектными нормами 0,35 мкм, не требующая лицензионного соглашения, как, например, в случае применения библиотек кремниевых фабрик (MOSIS AMI, HP и др.). Набор библиотек для проектирования по методу стандартных ячеек доступен для скачивания на сайте www.vlsiarch.ecen.okstate.edu. Библиотека OSU0.35 содержит набор файлов, включая файлы в форматах LEF и GDSII.
На рис.8 показано окно программного инструмента Graywolf в процессе размещения логических элементов 3-разрядного суммирующего счетчика на кристалле. В состав GrayWolf входит дополнительная утилита place2def, которая преобразует выходные результаты в формат DEF, содержит информацию о списках цепей и размещенных элементах. Она также записывает дополнительную информацию о количестве используемых слоев металлизации в cfg-файл, что необходимо для маршрутизации.
На рис.9 представлена абстрактная топология счетчика в топологическом редакторе Magic с учетом размещения и детальной трассировки. На рис.10 показана топология счетчика, созданная в соответствии с масштабируемой КМОП-технологией OSU0.35 (модификация технологического процесса кремниевой фабрики TSMC, SCN4M_SUB.20, масштабируемая КМОП-технология по правилам MOSIS, N-карман, четыре слоя металлизации, слой поликремния, субмикронные проектные нормы, лямбда 0.2, https://www.mosis.com/vendors/view/tsmc/035).
Для построения физической абстракции нужно загрузить LEF-файл в консоле редактора Magic с помощью команды lef read /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef. Для перехода от абстрактного описания к полному описанию топологии (gds), определенной технологическим процессом OSU0.35, необходимо загрузить технологический файл в формате gds2 в консоле редактора Magic с помощью команды gds read osu035_stdcells.gds2.
РЕАЛИЗАЦИЯ VERILOG-ПРОЕКТОВ
В БАЗИСЕ ИНДУСТРИАЛЬНЫХ ПЛИС XILINX
В качестве примера рассмотрим Verilog-проект "Бегущие огоньки", в котором светодиоды загораются с разной частотой в зависимости от сигнала ctrl. Verilog-код проекта представляет собой 32-разрядный счетчик на базе сумматора и регистра с обратной связью, к разрядам которого (24–31) подключены восемь светодиодов led_0–led_7 (рис.11). На рис.12 представлен маршрут проектирования цифровых схем в виде Verilog-кода в базисе ПЛИС с использованием синтезатора Yosys и САПР Xilinx ISE. На рис.13 показано RTL-представление проекта в САПР ISE ver 14.2.
Yosys, преобразующий Verilog-проекты в формат EDIF, позволяет их отображать в базисе ПЛИС Xilinx серий Spartan-6 и Virtex-7. Реализуем проект в ПЛИС серии Spartan-6 XC6SLX9–2-TQG144. Для логической оптимизации и отображения в базисе ПЛИС в Yosys интегрирован программный инструмент ABC.
На рис.14 показан скрипт для синтеза рассматриваемого Verilog-проекта и отображения в базисе ПЛИС Xilinx серии Spartan 6, а на рис.15 – файл временных ограничений (ucf-файл) для этого проекта. Рассмотрим основные команды скрипта. Более подробную информацию о командах для синтеза в базисе ПЛИС Xilinx можно найти на сайте Yosys в разделе Synt_xilinx (http://www.clifford.at/yosys/cmd_synth_xilinx.html).
По команде read_verilog example.v выполняется построение абстрактного синтаксического дерева с последующим RTL-представлением, которое отличается большей детальностью, чем в ISE (рис.16). Видна особенность использования сигнала ctrl, который подключается к адресному входу мультиплексора 2 в 1. По команде techmap крупнозернистые RTL-ячейки (сумматоры, регистры) преобразуются в мелкозернистые (вентили, триггеры) (рис.17). Логика проекта с помощью команды abc -lut 6 отображается непосредственно в 6-входовые LUT (рис.18). Команда techmap -map +/xilinx/cells_map.v отображает 6-входовые LUT и триггеры в технологическом базисе ПЛИС Xilinx Spartan-6 (рис.19). Инструмент Yosys позволяет также синтезировать в MAC-блоки (DSP48) ПЛИС Xilinx.
На рис.20 показаны проект, представленный edif-файлом и файлом временных ограничений, а также сведения об используемых логических ресурсах ПЛИС XC6SLX9-2-TQG144, а на рис.21 – задействованные логические и трассировочные ресурсы ПЛИС. Отображенные на рис.20 и 21 результаты подтверждают, что edif-файл, сформированный синтезатором Yosys по Verilog-коду, успешно обрабатывается утилитами ngdbuild, map (упаковка элементарных логических элементов в секции КЛБ, но секции еще не получают реальных мест в ПЛИС) и par (для секций, сформированных на этапе map, определены места в матрице конфигурируемых логических блоков (place) с последующей трассировкой связей между сигналами секций (route)) САПР Xilinx ISE.
Yosys применяется и для реализации проектов в базисе ПЛИС от Lattice Semiconductor. Для отладки проектов на базе ПЛИС iCE40 создана открытая аппаратная платформа icoBoard 1.0. Отличительная особенность данной платформы – использование для программирования ПЛИС открытого и свободного программного обеспечения icoTC, основными компонентами которого являются инструмент синтеза Yosys, средство размещения и трассировки Arachne-pnr, программные инструменты для формирования битового потока, документация на ПЛИС iCE40 Lattice IceStorm и загрузчик битового потока (программатор) iceprog.
ЛИТЕРАТУРА
Строгонов А., Городков П. Реализация Verilog-проектов в базисе академических ПЛИС с применением САПР VTR7.0 // Компоненты и технологии. 2017. № 5. C. 12–17.
Строгонов А., Городков П. Программные средства с открытым исходным кодом для проектирования цифровых устройств в базисах БИС и ПЛИС // Компоненты и технологии. 2017. № 3. C. 88–97.
Строгонов А., Цыбин С., Городков П. САПР VTR7 для проектирования академических ПЛИС // Компоненты и технологии. 2016. № 3. C. 65–73.
Yosys: свободный софт для Verilog-синтеза. – http://ramlamyammambam.livejournal.com/tag/fpga
https://github.com/cliffordwolf/yosys
Отзывы читателей