Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР / Основы разработки систем на кристалле (метода)

.pdf
Скачиваний:
456
Добавлен:
29.12.2023
Размер:
2.76 Mб
Скачать

4.7.Для проверки правильности конфигурации проекта нажмите Tools Validate Design или клавишу F6. Если ошибок не обнаружено, то повторно сохраните проект.

4.8.Итоговый вид блочного проекта показан на рис. 12.

Рис. 12. Итоговый вид проекта

снастроенной процессорной системой

5.Создание HDL-wrapper.

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

5.2.Активируйте кнопку Project Manager и найдите в окне Source файл с разрешением BD.

5.3.Кликните правой кнопкой мыши на названии файла с расширением BD и в выпавшем списке выберите пункт Create HDL-wrapper.

5.4.В появившемся окне установите переключатель на Let Vivado Manage Wrapper and Auto-update и нажмите ОK. Обратите внимание на то, что иерархия проекта изменилась: сгенерированная обертка должна появиться в верхней части дерева проекта (рис. 13).

Рис. 13. Структура проекта после генерации HDL-wrapper

6. Синтез, размещение и генерирование битового потока проекта.

6.1.На панели Flow Navigator запустите синтез проекта (Run Synthesis). После завершения синтеза в появившемся окне выберите Open Synthesis Design и нажмите OK. В этой лабораторной работе не требуется назначение пинов ввода-вывода.

6.2.Только после завершения синтеза проекта возможно запустить размещение синтезированного проекта на кристалле ПЛИС. Нажмите Run Implementation.

10

6.3.После завершения этапа размещения выберите Open Implemented

Design.

6.4.Статус текущих задач в среде Vivado отмечается в виде анимированного индикатора в правом верхнем углу. После завершения процесса размещения запустите генерирование Bitstream, для этого на панели Flow Navigator нажмите Generate Bitstream. Дождитесь завершения генерации. Важно понимать, что Bitstream является конфигурационным файлом для чипа ПЛИС. Данный файл является результатом синтеза и размещения кода, написанного на языке поведенческого описания (HDL-языке).

7.Экспорт конфигурационных файлов в Xilinx SDK.

7.1.Нажмите File Export Export Hardware.

7.2.В появившемся окне установите галочку напротив Include Bitstream

инажмите ОK.

7.3.Откройте папку проекта и отыщите в ней директорию с названием

имя проекта.sdk, откройте ее.

7.4.Проконтролируйте наличие файла-архива с разрешением hdf.

7.5.В среде Vivado 2016.4 нажмите File Launch SDK и в появив-

шемся окне нажмите ОK. Дождитесь запуска среды Xilinx SDK (рис. 14).

Рис. 14. Окно Xilinx SDK

11

7.6.Из рис. 14 видно, что содержимое hdf-архива распаковано в рабочее окружение проекта.

7.7.Нажмите File New Board Support Package. Убедитесь, что выбран пункт Standalone, нажмите ОK. Данное действие позволит автоматически собрать пакет поддержки платы, подтянув необходимые файлы.

8. Создание приложения.

8.1.Нажмите File New Application project. В открывшемся окне введите имя приложения hello SUT и установите переключатель Board Support Package в положение Use existing, нажмите Next. В списке предлагаемых шаблонов приложения выберите Hello World, нажмите Finish.

8.2.Найдите в дереве проекта файл helloworld.c и измените его содержимое согласно листингу ниже:

#include <stdio.h> #include "platform.h" #include "xil_printf.h" #include <math.h>

int main(){ init_platform(); int year;

int century;

printf("Enter year = \n\r"); scanf("%d", &year); century = year/100;

printf("Hello SUT in %d century\n\r", century + 1); cleanup_platform();

return 0;

}

8.3.Подключите в компилятор библиотеку math.h через настройки сборки, для этого нажмите правкой кнопкой мыши на имени приложения

вменеджере проектов, в выпавшем меню нажмите C/C++ Build Settings, далее Libraries, добавьте директиву m в список.

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

9. Проверка приложения на плате.

9.1. Убедитесь, что jtag-отладчик и UART от платы подключены к компьютеру, включите питание платы.

9.2. Нажмите правой кнопкой мыши на названии приложения и далее в выпадающих списках: Run As Run Configuration.

12

9.3. В открывшемся окне нажмите Xilinx C/C++ application (GDB).

Сверьте вид конфигурационного окна (рис. 15).

Рис. 15. Окно Run Configuration

9.4. Далее перейдите во вкладку Application и убедитесь, что проект ссылается на нужное приложение (рис. 16). В диспетчере устройств ОС Windows найдите номер COM-порта отладчика и UART-преобразователя.

Рис. 16. Окно конфигурации запуска приложения

13

9.5. Перейдите во вкладку STDIO Connection и установите вместо JTAG UART COM-порт для вывода значений в консоль. Установите скорость соединения для UART, равную 115200 бод (рис. 17).

COM-порт

Скорость соединения

Рис. 17. Окно выбора UART-порта

9.6.Нажмите Save, а затем Run. Дождитесь компиляции проекта и прошивки платы.

9.7.В окне консоли введите год и нажмите Enter.

9.8.Сверьте результат работы программы с результатом, показанным на рис. 18.

.

Рис. 18. Окно консоли с результатом работы программы

9.9. Измените программу согласно индивидуальному заданию. Предоставьте выполненное задание.

Содержание отчета

1.Задача и цели лабораторной работы.

2.Чертеж блок-схемы проекта.

3.Блок-схема алгоритма работы программы индивидуального задания.

14

4.Листинг исходного кода из индивидуального задания с поясняющими комментариями каждой строки.

5.Заметки из протокола.

Задание к лабораторной работе

Для выполнения самостоятельной работы создайте отдельное приложение внутри проекта: File New Application project. Впишите имя приложения и установите переключатель в положение Use existing, указав на созданный ранее BSP.

1.Считайте из консоли четыре целочисленных значения с записью

впеременные num0, num1, num2, num3 соответственно. Программа должна попарно сложить каждое значение с каждым, вывести промежуточные вычисления и наименьшее число из получившихся.

2.Считайте из консоли четыре целочисленных значения с записью

впеременные num4, num5, num6, num7 соответственно. Программа должна попарно вычесть каждое значение с каждым, вывести промежуточные вычисления и наибольшее число из получившихся.

3.Считайте из консоли четыре целочисленных значения с записью

впеременные num8, num9, num10, num11 соответственно. Программа должна попарно перемножить каждое значение с каждым, вывести промежуточные вычисления и среднее арифметическое значение из получившихся.

4.Считайте из консоли четыре целочисленных значения с записью

впеременные num12, num13, num14, num15 соответственно. Программа должна попарно поделить каждое значение с каждым, вывести промежуточные вычисления и минимальное значение из получившихся.

5.Считайте из консоли четыре целочисленных значения с записью

впеременные num20, num21, num22, num23 соответственно. Программа должна попарно перемножить каждое значение с каждым, вывести промежуточные вычисления и наименьшее число из получившихся.

6.Считайте из консоли четыре целочисленных значения с записью

впеременные num24, num25, num26, num27 соответственно. Программа должна попарно сложить каждое значение с каждым, вывести промежуточные вычисления и наибольшее число из получившихся.

7.Считайте из консоли четыре целочисленных значения с записью

впеременные num28, num29, num30, num31 соответственно. Программа должна попарно поделить каждое значение с каждым, вывести промежуточные вычисления и среднее арифметическое значение из получившихся.

8.Считайте из консоли четыре целочисленных значения с записью в переменные num32, num33, num34, num35 соответственно. Программа должна попарно вычесть каждое значение с каждым, вывести промежуточные вычисления и минимальное значение из получившихся.

15

Лабораторная работа 2

СОЗДАНИЕ ПРОЕКТА ПРОЦЕССОРНОЙ СИСТЕМЫ ДЛЯ РАБОТЫ С ПОРТАМИ MIO И EMIO

Цель работы

Создание проекта с использованием IP-интегратора. Настройка аппаратной процессорной системы на работу MIO (Multiplexed I/O) и EMIO (Extended Multiplexed I/O). Проверка проекта на отладочной плате

ZedBoad.

Основные вопросы, изучаемые перед выполнением работы

1.Архитектура системы на кристалле Xilinx Zynq7000.

2.Структура лабораторного макета ZedBoard.

3.Настройка MIO и EMIO для процессорной системы Zynq7 Processing System.

Содержание работы

1. Создать новую отдельную директорию для лабораторной работы по аналогии с лабораторной работой 1. Например, полный путь к директории для данной лабораторный работы:

D:/(Год)/(Фамилия) (группа)/soc-lab-2

2. Создание проекта в Vivado 2016.4.

2.1. Создайте проект с именем Zynq emio_lab_variant_(номер вари-

анта) по аналогии с лабораторной работой 1 (рис. 19).

Рис. 19. Окно с примером создания проекта

2.2. Создайте Block Design и добавьте IP процессорной системы Zynq7 по аналогии с лабораторной работой 1.

3. Конфигурация портов.

3.1. Настройте процессорную систему согласно п. 4 лабораторной работы 1.

16

3.2. Нажмите Peripheral I/O Pins на панели Page Navigator. Активи-

руйте галочку напротив GPIO MIO и GPIO EMIO (рис. 20). Напишите принципиальные различия MIO и EMIO в протокол.

Рис. 20. Окно включения MIO и EMIO

3.3. Нажмите MIO Configuration на панели Page Navigator. Развер-

ните все пункты и активируйте галочку напротив GPIO MIO, установите разрядность GPIO EMIO в 8 бит (рис. 21).

Рис. 21. Окно конфигурирования EMIO

3.4.На данном этапе процессорная система сконфигурирована. Нажмите ОK для выхода из окна настройки блока Zynq7 и сохраните проект.

3.5.Нажмите правой кнопкой мыши на порт GPIO_0 блока Zynq7

ив выпадающем меню выберите пункт Make External.

17

3.6.Для проверки правильности конфигурации проекта нажмите Tools

Validate Design или клавишу F6. Если ошибок не обнаружено, то повторно сохраните проект. Зарисуйте блок-схему в протокол.

3.7.Итоговый вид блочного проекта показан на рис. 22.

Рис. 22. Итоговый вид проекта

снастроенной процессорной системой

3.8.Создайте HDL-wrapper, нажав правой кнопкой мыши на файл

срасширением BD и выбрав пункт Create HDL-wrapper. Опции при создании обертки укажите по аналогии с лабораторной работой 1.

4. Синтез, настройка ограничений и размещение проекта.

4.1.Запустите синтез и размещение проекта на кристалле ПЛИС.

4.2.После того как процесс синтеза проекта завершится, в появившемся окне выберите пункт Open Synthesis Design, нажмите OK. Убедитесь, что никаких ошибок не появилось.

4.3.После того как окно Synthesis Design откроется, выберите на панели инструментов слой I/O Planing (рис. 23).

Рис. 23. Окно выбора слоя в Synthesized Design

18

4.4. Свяжите выходы модуля с выводами микросхемы, к которым подключены светодиоды.

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

 

Таблица 1

Соответствие сигналов светодиодов и контактов микросхемы

 

 

 

Имя сигнала

Пин кристалла Zynq7000

 

LD0

T22

 

LD1

T21

 

LD2

U22

 

LD3

U21

 

LD4

V22

 

LD5

W22

 

LD6

U19

 

LD7

U14

 

ZedBoard имеет восемь пользовательских светодиодов LD0–LD7. Они подключены к выводам микросхемы ПЛИС с напряжением питания 3,3 В.

4.5.Выберите вкладку I/O Ports (рис. 23) для того, чтобы назначить входам и выходам модели соответствующие выводы микросхемы.

4.6.Назначьте 8 сигналов светодиодов: gpio_0_tri_io[0] – gpio_0_tri_io[7],

присвойте соответствующие пины: LD[0]–LD[7]. Установите стандарт напряжения ввода-вывода 3.3 В на всех светодиодах.

4.7.Нажмите сочетание клавиш Ctrl + S или кнопку сохранения на па-

нели инструментов. Если появится окно предупреждения, нажмите ОK.

4.8.В появившемся окне выберите пункт Create a New File и в поле File Name введите название файла. Нажмите OK. Обратите внимание, что структура проекта изменилась: появилась отдельная директория с сохраненным файлом ограничений.

4.9.Откройте файл ограничений и зафиксируйте в протокол строки, устанавливающие напряжение и связь для сигнала gpio_o_tri_io[0], а также роль файла ограничений.

Примечание. Данный файл можно создать и заполнить вручную, воспользовав-

шись кнопкой Add source Add or Create Constrains на панели Flow Navigator.

4.10.Только после успешного синтеза и задания правильных ограничений возможно запустить размещение проекта внутри виртуального кри-

сталла ПЛИС. Нажмите Run Implementation на панели Flow Navigator.

Если появится окно, предлагающее параметры сохранения результатов размещения, то оставьте параметры без изменений и нажмите ОK.

4.11.Статус текущих задач в среде Vivado отмечается в виде анимированного индикатора в правом верхнем углу. После завершения процесса размещения запустите генерирование Bitstream.

19

Соседние файлы в папке ЛР