Синтез конфигураций программируемых логических интегральных схем без использования проектов интегрированных сред разработки
Автор: Калистру Илья Иванович
Рубрика: Электроника, радиотехника и связь
Опубликовано в Техника. Технологии. Инженерия №2 (8) апрель 2018 г.
Дата публикации: 05.03.2018
Статья просмотрена: 116 раз
Библиографическое описание:
Калистру, И. И. Синтез конфигураций программируемых логических интегральных схем без использования проектов интегрированных сред разработки / И. И. Калистру. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2018. — № 2 (8). — С. 28-31. — URL: https://moluch.ru/th/8/archive/85/3208/ (дата обращения: 16.11.2024).
В работе описаны некоторые проблемы с синтезом цифровых схем с которыми приходится сталкиваться разработчику использующему традиционные проекты интегрированных сред разработки (ИСР). Предложен процесс разработки, не имеющий описанных недостатков. Для демонстрации предлагаемого процесса приведено описание программы для синтеза конфигурации ПЛИС с описанием возможностей, возникающих при её использовании.
Ключевые слова: ИСР, ПЛИС, система управления версиями, автоматизация проектирования
Широко используемый подход к разработке конфигураций программируемых логических интегральных схем (ПЛИС) с использованием проектов интегрированных сред разработки (ИСР) [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 для визуальной оценки полученных результатов.
Заключение
Процесс разработки конфигураций ПЛИС без использования проектов ИСР позволяет значительно упростить разработку сложных устройств. Он совместим с системами управления версиями и позволяет одновременно создавать различные конфигурации ПЛИС из одних и тех же файлов описания устройства, устраняя тем самым необходимость создавать копии проектов ИСР и синхронизировать копии для поддержания их в актуальном состоянии. Используя этот процесс можно одновременно запускать синтез различных частей устройства для быстрой оценки потребления аппаратных ресурсов. Также возможно запускать множество процессов синтеза конфигурации ПЛИС отличающихся настройками синтезатора для выбора лучшего варианта. Данный процесс позволяет пользоваться удобствами графического интерфейса и при этом имеет широкие возможности тонкой настройки процесса синтеза конфигурации ПЛИС.
Литература:
- Зотов В. Ю. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы XILINX. — M.: Горячая линия — Телеком, 2006. — 520 с. ил.
- Калистру И. И. Несовместимость проектов САПР для ПЛИС и систем управления версиями // Современные наукоёмкие инновационные технологии: сборник статей Международной научно-практической конференции (3 февраля 2018 г, г. Уфа). В 2 ч. Ч.1/ — Уфа: ОМЕГА САЙНС, 2018. — C. 33-36
- Калистру И. И. Процесс разработки конфигураций ПЛИС в беспроектном режиме // Современные наукоёмкие инновационные технологии: сборник статей Международной научно-практической конференции (3 февраля 2018 г, г. Уфа). В 2 ч. Ч.1/ — Уфа: ОМЕГА САЙНС, 2018. — C. 38-40
- 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).
- 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).
Похожие статьи
Разработка методологических основ программной оптимизации систем нейрокомпьютерной обработки информации
Рассматриваются вопросы оптимизации кода для многопроцессорных систем на базе концептуально нового поколения вычислительной техники — нейрокомпьютеров, принцип функционирования которых основан на принципах мышления человека. Показана методология разб...
Проектирование баз знаний интеллектуальных обучающих систем, построенных на технологии OSTIS
Статья описывает проектирование баз знаний интеллектуальных обучающих систем с использованием технологии OSTIS. Обсуждаются преимущества и проблемы создания качественной базы знаний, а также предлагаются подходы и этапы разработки баз знаний. Автор о...
Микроконтроллеры интеллектуальных систем управления
В статье представлен сравнительный анализ микроконтроллеров и программируемых логических интегральных схем с целью оценки потенциальной возможности их использования в интеллектуальных системах управления промышленными объектами.
Разработка информационной системы корпоративного тестирования сотрудников со встроенным блоком графоаналитического представления результатов
В данной статье автор пытается создать прототип информационной системы тестирования корпоративных работников. Рассматриваются технологии для разработки и отладки информационных систем, а также способы построения архитектуры программного обеспечения.
Даталогическое моделирование задачи формирования алгоритмических структур инфологических моделей предметных задач
На кафедре «Информационные технологии и вычислительные системы» Московского государственного технологического университета «СТАНКИН» была разработана методология автоматизации интеллектуального труда (МАИТ). Методология автоматизации интеллектуальног...
Языки проектирования программируемых интегральных логических схем и их особенности, упрощающие процесс обучения
В данной работе рассматриваются языки проектирования ПЛИС и их особенности.
Применение программного комплекса ANSYS в компьютерном моделировании
В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...
Формализация требований для средств разработки и обучения нейронных сетей
Статья посвящена описанию требований для разработки программных средств проектирования нейронных сетей, рекомендуемые функциональные и общие системные решения, основанные на опыте использования различных библиотек моделирования для программ машинного...
Моделирование задачи формирования инфологических моделей при создании программных средств поддержки проектирования прикладных автоматизированных систем
Работа посвящена снижению трудоемкости проектирования прикладных автоматизированных систем (ПАС) с использованием программных инструментов для инфологического моделирования задач в рамках методологии автоматизации интеллектуального труда (МАИТ). Инфо...
Повышение эффективности размещения элементов БИС на основе алгоритмов машинного обучения
В данной статье рассматривается целесообразность применения возможностей современного искусственного интеллекта в сфере проектирования микросхем, представлен метод размещения элементов БИС с использованием глубокого обучения с подкреплением на графов...
Похожие статьи
Разработка методологических основ программной оптимизации систем нейрокомпьютерной обработки информации
Рассматриваются вопросы оптимизации кода для многопроцессорных систем на базе концептуально нового поколения вычислительной техники — нейрокомпьютеров, принцип функционирования которых основан на принципах мышления человека. Показана методология разб...
Проектирование баз знаний интеллектуальных обучающих систем, построенных на технологии OSTIS
Статья описывает проектирование баз знаний интеллектуальных обучающих систем с использованием технологии OSTIS. Обсуждаются преимущества и проблемы создания качественной базы знаний, а также предлагаются подходы и этапы разработки баз знаний. Автор о...
Микроконтроллеры интеллектуальных систем управления
В статье представлен сравнительный анализ микроконтроллеров и программируемых логических интегральных схем с целью оценки потенциальной возможности их использования в интеллектуальных системах управления промышленными объектами.
Разработка информационной системы корпоративного тестирования сотрудников со встроенным блоком графоаналитического представления результатов
В данной статье автор пытается создать прототип информационной системы тестирования корпоративных работников. Рассматриваются технологии для разработки и отладки информационных систем, а также способы построения архитектуры программного обеспечения.
Даталогическое моделирование задачи формирования алгоритмических структур инфологических моделей предметных задач
На кафедре «Информационные технологии и вычислительные системы» Московского государственного технологического университета «СТАНКИН» была разработана методология автоматизации интеллектуального труда (МАИТ). Методология автоматизации интеллектуальног...
Языки проектирования программируемых интегральных логических схем и их особенности, упрощающие процесс обучения
В данной работе рассматриваются языки проектирования ПЛИС и их особенности.
Применение программного комплекса ANSYS в компьютерном моделировании
В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...
Формализация требований для средств разработки и обучения нейронных сетей
Статья посвящена описанию требований для разработки программных средств проектирования нейронных сетей, рекомендуемые функциональные и общие системные решения, основанные на опыте использования различных библиотек моделирования для программ машинного...
Моделирование задачи формирования инфологических моделей при создании программных средств поддержки проектирования прикладных автоматизированных систем
Работа посвящена снижению трудоемкости проектирования прикладных автоматизированных систем (ПАС) с использованием программных инструментов для инфологического моделирования задач в рамках методологии автоматизации интеллектуального труда (МАИТ). Инфо...
Повышение эффективности размещения элементов БИС на основе алгоритмов машинного обучения
В данной статье рассматривается целесообразность применения возможностей современного искусственного интеллекта в сфере проектирования микросхем, представлен метод размещения элементов БИС с использованием глубокого обучения с подкреплением на графов...