Синтез конфигураций программируемых логических интегральных схем без использования проектов интегрированных сред разработки | Статья в журнале «Техника. Технологии. Инженерия»

Отправьте статью сегодня! Журнал выйдет 26 октября, печатный экземпляр отправим 30 октября.

Опубликовать статью в журнале

Автор:

Рубрика: Электроника, радиотехника и связь

Опубликовано в Техника. Технологии. Инженерия №2 (8) апрель 2018 г.

Дата публикации: 05.03.2018

Статья просмотрена: 61 раз

Библиографическое описание:

Калистру И. И. Синтез конфигураций программируемых логических интегральных схем без использования проектов интегрированных сред разработки // Техника. Технологии. Инженерия. — 2018. — №2. — С. 28-31. — URL https://moluch.ru/th/8/archive/85/3208/ (дата обращения: 17.10.2019).



В работе описаны некоторые проблемы с синтезом цифровых схем с которыми приходится сталкиваться разработчику использующему традиционные проекты интегрированных сред разработки (ИСР). Предложен процесс разработки, не имеющий описанных недостатков. Для демонстрации предлагаемого процесса приведено описание программы для синтеза конфигурации ПЛИС с описанием возможностей, возникающих при её использовании.

Ключевые слова: ИСР, ПЛИС, система управления версиями, автоматизация проектирования

Широко используемый подход к разработке конфигураций программируемых логических интегральных схем (ПЛИС) с использованием проектов интегрированных сред разработки (ИСР) [1] имеет ряд недостатков [2]. Среди этих недостатков — сложности в использовании систем управления версиями, в создании и запуске множества тестов разрабатываемого устройства. Затруднительным оказывается создание нескольких конфигураций с помощью замены отдельных реализаций модулей альтернативными реализациями, поскольку для каждой конфигурации нужно использовать либо другой проект, в который включено альтернативная реализация модуля, либо нужно модифицировать само описание модуля. В первом случае возникает дублирование информации, вызывающее проблемы с поддержанием нескольких проектов в актуальном состоянии во время разработки, а во втором случае модификация описания модуля приводит к потере информации об изначальной реализации. Те же сложности возникают с созданием нескольких конфигураций ПЛИС, отличающихся настройками синтезатора схем. Сложности с необходимостью дублировать описание модулей или необходимостью менять проект возникают также если разработчик с целью оценки потребления ресурсов одним из модулей устройства желает сделать конфигурацию, содержащую только этот модуль. При использовании процесса разработки конфигураций ПЛИС без использования проектов ИСР данных проблем не возникает [3].

Рассмотрим для демонстрации преимуществ беспроектного режима пример программы на Tcl для запуска синтеза конфигурации ПЛИС. Для работы такой программы не нужно создавать проект ИСР. Дальнейшее описание производится на примере ИСР Vivado фирмы Xilinx, хотя похожие возможности есть и в других ИСР.

Программа для запуска синтеза файла конфигурации ПЛИС

В начале программы определим рабочую директорию, название модуля верхнего уровня иерархии, наименование целевой микросхемы, список файлов с описанием устройства. Такие константы обычно меняются наиболее часто и их удобно иметь в начале программы.

Для начала определим имя рабочей директории. Имена рабочих директорий для тестов удобно начинать с synth_, чтобы отличать их от рабочих директорий для тестирования модулей. Мы также определяем имя верхнего уровня иерархии модулей и список RTL файлов описания устройства.

set synthdir ./Synth_OurDesign

set topmodule TopVCU118Module

set part xcvu9p-flga2104-2L-e

set VHDL_sources [list \

./src/I2C/I2C.vhd \

./src/TopVCU118Module.vhd \

]

Поскольку файлы будут обрабатываться в том порядке, в котором они перечислены в списке, следует убедиться, что файлы с пакетами (package) перечислены перед файлами, в которых эти пакеты используются.

Возможность задавать директорию, в которой создаются результаты синтеза конфигурации, позволяет просто не включать данную директорию в систему управления версиями, что облегчает поддержание порядка в рабочем окружении. Кроме того, это позволяет создавать множество программ для синтеза конфигураций, каждая из которых использует один и тот же набор файлов описания устройства, но при этом создаёт результаты своей работы в отдельной директории, и запускать их одновременно [4]. Таким образом достигается возможность создания различных конфигураций ПЛИС без возникновения характерных для проектного подхода проблем с дублированием информации.

set ips [list \

./src/ip/ip1/ip1.xci \

./src/ip/ip2/ip2.xci \

./src/ip/clk_0/clk_0.xci \

]

set constraints [list \

./src/VCU118TopClocks.xdc \

./src/VCU118TopPins.xdc \

./src/VCU118Conf.xdc \

./src/I2C.xdc \

]

Сделаем программу многопоточной

set_param general.maxThreads 8

Создадим рабочую директорию и загрузим исходные файлы в память:

file mkdir $synthdir

cd $synthdir

set srcdir ./..

set outdir ./results

file mkdir $outdir

set_part -quiet $part

foreach a $VHDL_sources {

read_vhdl $srcdir/$a

}

foreach a $ips {

read_ip $srcdir/$a

}

foreach a $constraints {

read_xdc $srcdir/$a

}

Имеется возможность установить параметры синтеза перед его началом [5].

set_param synth.elaboration.rodinMoreOptions "rt::set_parameter synRetiming true"

synth_design -top $topmodule -part $part

После синтеза схемы можно сохранить его результаты, создав точку восстановления. Их можно загрузить в память, если по какой-либо причине понадобиться перезапустить дальнейшие стадии синтеза конфигурации. Это позволит сэкономить время и не выполнять повторно уже проведённый синтез схемы.

write_checkpoint -force $outdir/post_synth

Также после окончания синтеза схемы полезно сохранить некоторые отчёты ИСР, используя команды report_clocks, report_clock_interaction, report_timing_summary.

После запуска оптимизации полученной цифровой схемы запускают программы расположения элементов на ПЛИС и подключения их друг к другу. На разных стадиях этого процесса также возможен запуск различных оптимизационных программ. Создание точек восстановления после каждого шага не является обязательным, но может оказаться полезным.

opt_design

place_design

phys_opt_design -retime

write_checkpoint -force $outdir/post_place

route_design

write_checkpoint -force $outdir/post_route

report_timing_summary -file $outdir/post_route_timing_summary_unc -report_unconstrained

report_drc -file $outdir/post_route_drc

report_utilization -file $outdir/utilization

Если в проектируемом устройстве установлен отладочный модуль ChipScope, то следующая команда может оказаться полезной.

write_debug_probes -force $outdir/probes.ltx

С этим файлом программа ChipScope сможет автоматически сгруппировать сигналы в шины и присвоить им корректные имена, соответствующие описанию устройства в исходных файлах.

Наконец, создаём файл конфигурации ПЛИС для загрузки непосредственно в ПЛИС и загрузочный образ .msc для записи в микросхему флэш-памяти.

write_bitstream -force $outdir/$topmodule.bit

file copy -force $outdir/$topmodule.bit ./

write_cfgmem -force -format MCS -size 128 -interface BPIx16 -loadbit "up 0x00000000 $topmodule.bit" $outdir/$topmodule.mcs

exit

Описанная программа может запускаться с использованием файла synth_OurDesign.bat со следующим содержимым:

TITLE %~n0

vivado -mode tcl -tempDir tmp_synth_OurDesign -source synth_OurDesign.tcl -log vivado_synth_OurDesign.log

При этом имеется возможность запустить графический интерфейс командой start_gui для визуальной оценки полученных результатов.

Заключение

Процесс разработки конфигураций ПЛИС без использования проектов ИСР позволяет значительно упростить разработку сложных устройств. Он совместим с системами управления версиями и позволяет одновременно создавать различные конфигурации ПЛИС из одних и тех же файлов описания устройства, устраняя тем самым необходимость создавать копии проектов ИСР и синхронизировать копии для поддержания их в актуальном состоянии. Используя этот процесс можно одновременно запускать синтез различных частей устройства для быстрой оценки потребления аппаратных ресурсов. Также возможно запускать множество процессов синтеза конфигурации ПЛИС отличающихся настройками синтезатора для выбора лучшего варианта. Данный процесс позволяет пользоваться удобствами графического интерфейса и при этом имеет широкие возможности тонкой настройки процесса синтеза конфигурации ПЛИС.

Литература:

  1. Зотов В. Ю. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы XILINX. — M.: Горячая линия — Телеком, 2006. — 520 с. ил.
  2. Калистру И. И. Несовместимость проектов САПР для ПЛИС и систем управления версиями // Современные наукоёмкие инновационные технологии: сборник статей Международной научно-практической конференции (3 февраля 2018 г, г. Уфа). В 2 ч. Ч.1/ — Уфа: ОМЕГА САЙНС, 2018. — C. 33-36
  3. Калистру И. И. Процесс разработки конфигураций ПЛИС в беспроектном режиме // Современные наукоёмкие инновационные технологии: сборник статей Международной научно-практической конференции (3 февраля 2018 г, г. Уфа). В 2 ч. Ч.1/ — Уфа: ОМЕГА САЙНС, 2018. — C. 38-40
  4. Vivado Design Suite TCL Reference Guide UG835. — Xilinx, Inc., 2012. URL: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2012_2/ug835-vivado-tcl-commands.pdf (дата обращения: 30.12.2017).
  5. Vivado Design Suite User Guide: Design Flows Overview UG892. — Xilinx, Inc., 2012. URL: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_1/ug892-vivado-design-flows-overview.pdf (дата обращения: 30.12.2017).
Основные термины (генерируются автоматически): ПЛИС, рабочая директория, использование проектов, система управления, TITLE, RTL, MCS, графический интерфейс, актуальное состояние, дублирование информации.

Ключевые слова

автоматизация проектирования, ПЛИС, ИСР, система управления версиями

Похожие статьи

Тестирование графического интерфейса (GUI testing)

Полезная информация. Спецвыпуски.

Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения. Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки...

Организация автоматизированной системы управления...

Распределенный характер крупной корпоративной сети делает невозможным поддержание ее работы без централизованной системы управления, которая в автоматическом режиме собирает информацию о состоянии каждого концентратора, коммутатора...

Использование шаблона проектирования MVC в разработке...

1) Защита информации от несанкционированного доступа к данным; 2) Неверно спроектированные интерфейсы

Использование информационных технологий в повышении эффективности систем управления персоналом предприятия.

систем управления являются: программируемые логические...

Применение программируемых логических интегральных схем... ...систем управления являются: программируемые логические интегральные

Использование ПЛИС также требует меньшего количества... Структурные особенности программируемой платы Digilent...

Применение концепции модельно-ориентированного...

По умолчанию шина находится в состоянии логической 1.

Модули Crtch+hex_decoder+набор pinout — система выдачи информации на 7-сегментный дисплей.

Скомпилируем проект. Загружаем скомпилированный файл в ПЛИС.

Проектирование участка сети с использованием технологии SDH

Ключевые слова:SDH, мультиплексор, помехозащищенность, интерфейс, топология.

Кроме того, были выбраны схемы защиты, сети управления и тактовой синхронизации, проведено

При этом для передачи потоков в рабочем состоянии используются все волокна (как в...

Интеграция информационных систем на основе стандартов XML...

– обновление ранее отправленного проекта извещения на ООС

Для инициации процесса межсистемного обмена информацией пользователь с помощью графического интерфейса муниципальной системы добавляет новую запись в таблицу заданий информационного обмена.

Исследование влияния архитектуры приложений на...

Тема управления портфелем прикладных систем тесно переплетается с темой управления ИТ-проектами и ИТ-активами в целом.

Сравнительный анализ полностью заказных СБИС, ПЛИС и СБИС с программируемой архитектурой.

Использование SCADA-технологий в современных...

графические возможности. Для специалиста-разработчика системы автоматизации, так же как и для специалиста-технолога, чье рабочее место создается, очень важен графический пользовательский интерфейс.

Разработка системы диспетчерского управления...

Похожие статьи

Тестирование графического интерфейса (GUI testing)

Полезная информация. Спецвыпуски.

Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения. Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки...

Организация автоматизированной системы управления...

Распределенный характер крупной корпоративной сети делает невозможным поддержание ее работы без централизованной системы управления, которая в автоматическом режиме собирает информацию о состоянии каждого концентратора, коммутатора...

Использование шаблона проектирования MVC в разработке...

1) Защита информации от несанкционированного доступа к данным; 2) Неверно спроектированные интерфейсы

Использование информационных технологий в повышении эффективности систем управления персоналом предприятия.

систем управления являются: программируемые логические...

Применение программируемых логических интегральных схем... ...систем управления являются: программируемые логические интегральные

Использование ПЛИС также требует меньшего количества... Структурные особенности программируемой платы Digilent...

Применение концепции модельно-ориентированного...

По умолчанию шина находится в состоянии логической 1.

Модули Crtch+hex_decoder+набор pinout — система выдачи информации на 7-сегментный дисплей.

Скомпилируем проект. Загружаем скомпилированный файл в ПЛИС.

Проектирование участка сети с использованием технологии SDH

Ключевые слова:SDH, мультиплексор, помехозащищенность, интерфейс, топология.

Кроме того, были выбраны схемы защиты, сети управления и тактовой синхронизации, проведено

При этом для передачи потоков в рабочем состоянии используются все волокна (как в...

Интеграция информационных систем на основе стандартов XML...

– обновление ранее отправленного проекта извещения на ООС

Для инициации процесса межсистемного обмена информацией пользователь с помощью графического интерфейса муниципальной системы добавляет новую запись в таблицу заданий информационного обмена.

Исследование влияния архитектуры приложений на...

Тема управления портфелем прикладных систем тесно переплетается с темой управления ИТ-проектами и ИТ-активами в целом.

Сравнительный анализ полностью заказных СБИС, ПЛИС и СБИС с программируемой архитектурой.

Использование SCADA-технологий в современных...

графические возможности. Для специалиста-разработчика системы автоматизации, так же как и для специалиста-технолога, чье рабочее место создается, очень важен графический пользовательский интерфейс.

Разработка системы диспетчерского управления...

Задать вопрос