Магистрант ММФ БГУ Колб А. И. Научный руководитель: к. т. н., доцент, доцент кафедры УМФ Степанец Владимир Яковлевич, Научный руководитель: к. т. н., доцент, доцент кафедры УМФ Степанец Владимир Яковлевич,
При разработке сложных электронных систем, как, например, SoC, возникает необходимость разработки программной и аппаратной части. При этом, как правило, в начале разрабатывается модель системы, которая описывает поведение системы на верхнем структурном уровне. В настоящее время из - за своей популярности и универсальности для программного моделирования широко используется язык С ++
После завершения моделирования система разбивается на аппаратную и программную составляющие и разработка ведется по двум направлениям. Для описания аппаратной части проекта используются языки описания « железа » (HDL): Verilog или VHDL ( также могут использоваться низкоуровневые языки HDL и схематический ввод ).
Возникает необходимость в универсальном языке программирования, пригодном как для описания поведенческих моделей системы, так и для описания « железа » и программ, работающих на этом « железе ». Таким образом, « программа максимум » заключается в использовании программного средства, объединяющего все этапы разработки от модели верхнего уровня до готового продукта.
Основное внимание направлено на исследование возможности использования С / С ++ в качестве языка HDL, но также рассматривается возможность построения единой системы разработки от модели до продукта с использованием единого универсального языка. наиболее заслуживающим внимания направлением является SystemC.
Изначально библиотека разрабатывалась для реализации полного цикла разработки, начиная от модели системы и физических объектов и заканчивая моделью RTOS и аппаратной части. Синтезируемые подмножества Verilog, VHDL и SystemC совпадают по смыслу и отличаются только синтаксисом описания.
l В дополнение к стандартным объектам класса С++ добавлены описания портов, сигналов и процессов. Эти объекты воспринимаются средством синтеза и являются основными элементами RTL-описания. Для битовых переменных может использоваться bool, sc_bit, sc_logic. Для численных или векторных типов могут использоваться signed и unsigned char, int, long Также могут применяться определяемые пользователем структуры struct, перечисления enum поддерживаются синтезом так же, как и компилятором С++ и используются для задания именованных констант. Для взаимодействия процессов внутри модуля следует использовать сигналы Основные отличия
Внутри модуля могут использоваться переменные, не являющиеся сигналами или портами. Описание переменных не отличается от описания в С ++. Разница между сигналами и переменными состоит в том, что значения сигналам присваиваются в конце временного шага исполнения модели ( дельта - цикла ), а присвоения переменным происходят мгновенно.
Целью данной работы является разработка VHDL – описания специализированного микропроцессора и описания тестирующего модуля для него на языке System C
Построение и разработка тестирующих модулей Контроль функциональной целостности Проверка полноты выполненных тестов Создание кроссплатформенных описаний аппаратуры