Проработка примеров
практического использования среды Matlab для подготовки прошивки FPGA на основе
практического примера.
Создание модели нахождения модуля суммы в
MATLAB-Simulink.
Для создания проекта любой модели Simulink для ПЛИС необходимо присутствие элемента
System Generator (Рис. 1), который является связующим звеном между программными
средами Simulink и Xilinx, а также позволяет генерировать проект
для Xilinx и работать с отладочными устройствами.
Добавляем в модель элемент System Generator, для чего необходимо открыть раздел
библиотеки элементов Simulink (Xilinx Blockset -> Basik Elements) и
разместить необходимый элемент в окне модели.

Рис. 1. библиотека элементов.
Также в модель нужно добавить остальные элементы для реализации проекта (Рис. 2).

Рис. 2. Элементы необходимые для
проекта.
В связи с тем, что в составе стандартных библиотечных элементов Xilinx
отсутствует элемент вычисления модуля числа (поэтому и была выбрана именно эта
элементарная функция), для конфигурации этой части функции можно использовать
элемент MCode. Для конфигурации элемента MCode, необходимо в папке содержащей
файл модели
создать М-файл с текстом:
function
y = abs_xil(x)
out_type = {xlUnsigned, 17, 14} %Формат выходных данных
%(с фиксированной точкой: xlUnsigned - без знака, xlSigned - со знаком)
if x >= 0
y = xfix(out_type, x);
else
y = xfix(out_type, -x);
end
Далее в настройках элемента MCode (Рис. 3) необходимо нажать Brows, выбрать
созданный М-Файл и нажать «ОК».

Рис. 3. Окно настроек блока MCode
После чего элемент MCode примет вид согласно Рис. 4.

Рис. 4. Вид элемента MCode после
преобразования.
Измененный элемент MCode теперь выполняет функцию вычисления модуля числа,
М-Файл, используемый в данном блоке можно изменять и редактировать (например,
формат выходных данных).
Теперь необходимо соединить все элементы модели указанным на Рис. 5 способом.

Рис. 5. Модель сумматора.
Для просмотра действия модели необходимо добавить входные данные и возможность
просмотра результатов.
Настроим модель согласно Рис. 6.

Рис. 6. Модель сумматора с входными
данными и блоком просмотра результата.
После запуска симуляции проекта, на экране осциллографа можно посмотреть
входные сигналы, промежуточный и выходной результаты (Рис. 7).

Рис. 7. Два входных, промежуточный и
выходной сигналы.
Во время построения модели использование стандартных библиотечных элементов
Simulink совместно с библиотечными элементами Xilinx невозможно (при генерации
проекта, элементом System Generator стандартные элементы игнорируются),
стандартные библиотечные элементы Simulink используются в модели для
симулирования внешних устройств. Для замены отсутствующих в библиотеке Xilinx
элементов, реализующих необходимые для задачи моделирования функции,
используются полностью конфигурируемые элементы Black Box, MCode, EDK
Processor, имеющие различные возможности для реализации необходимых функций
(Рис. 8).

Рис. 8. Внешнийвид блоков
Black Box,
MCode, EDK Processor.
Элементы Gateway In и Gateway Out
необходимы для моделирования портов ввода/вывода ПЛИС, а также для связи со
стандартными библиотечными элементами Simulink (симулирующими внешние
устройства) (Рис. 9).
Рис. 9. Элементы Gateway In и
Gateway Out.
Элементы Gateway In и Gateway Out
позволяют назначить конкретные выводы микросхемы ПЛИС для использования в
качестве портов ввода/вывода в формате {‘MSB’, … ,’LSB’}, (Рис. 10)
Рис. 10. Поле IOB pad
location.
где MSB – номер вывода старшего
бита, LSB – номер вывода младшего бита. То есть перечисляются номера контактов
микросхемы ПЛИС, начиная со старшего бита в одинарных кавычках (контактные
выводы называются по координатам их расположения, к примеру: ‘A11’, ‘D12’, что
берется из даташита на конкретную ПЛИС).
Назначать контакты для выводов
следует только в том случае, если их расположение критично для дальнейшей
привязки в конкретном устройстве. Также преобразуют типы данных, используемых
средой Simulink в тип данных, используемых в ПЛИС (с фиксированной точкой).
Также во всех библиотечных элементах Xilinx присутствует возможность жестко
задать количество и вид используемых внутренних элементов ПЛИС (Рис. 11).

Рис. 11. Поле FPGAArea Estimation
.
(элементы могут задаваться как в ручную, так и предварительно рассчитываться с
помощью элемента Resource Estimator) (Рис. 12).

Рис. 12. Внешнийвид блока
Resource Estimator.
После создания симуляционной модели
из библиотечных элементов необходимо сгенерировать проект для Xilinx.Для генерации проекта Xilinx с
помощью System Generator производим настройки генерации проекта (Рис. 13).
а) Установить опции компилятора, директорию в которую будет производиться запись
сгенерированного проекта Xilinx (Target
directory), язык в котором будет генерироваться проект ;
б) Установить тип используемой ПЛИС (поле – Part);
в) Установить параметры тактирующего сигнала: (FPGA clock period);
г) Установить период симуляции 1 (определяет количество шагов симуляции модели
за один цикл тактирующего сигнала).

Рис. 13. Окносвойств блока
System Generator.
По нажатию кнопки Generate
происходит генерация проекта в указанную директорию, формируются: файл проекта
(*.xise) файлы кодов на языке Verilog
(*.v) и другие.Литература:
1. Ссылка.