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

Основы проектирования ПЛИС и БМК. Практикум

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
11. Тестировать память EEPROM, для чего передвинуть движковый переключатель
D5 в верхнее положение. При этом на ЖКИ в нижней строке появится название теста «Test 6: EEPROM». Если память функционирует правильно, то после нажатия кнопки CONTROL на нижней строке ЖКИ появится надпись «ОК», в противном случае – «FAILED» и значение, считанное из EEPROM. Для выхода из теста нажать кнопку CONTROL или передвинуть соответствующий движковый переключатель в нижнее положение.
Тесты 2, 4, 7, 8 недоступны, при их выборе появится соответствующее сообщение,
например: «Test 7: Empty».
Тестирование модуля SDX-09
12. Переключить стенд SDK-6.1/E в режим загрузки конфигурационных файлов по последовательному каналу. Для загрузки по интерфейсу RS-232C выполнить п.5, не выключая адаптеры питания, и нажать кнопку RESET. Для загрузки по интерфейсу USB дополнительно нажать кнопку CONTROL, после чего на ЖКИ стенда появится сообщение «SDK6.1 USB Flash Writer». Вернуться к предыдущему режиму загрузки можно повторным нажатием кнопки CONTROL и т.д.
13. Загрузить в стенд конфигурационный файл test_for_sdx09.rbf, содержащий прошивку для тестирования модуля SDX-09, с помощью утилиты-программатора
sdk61fw.exe. Оба файла расположены в папке FPGA_loading, как и пакетный файл load_to_page.bat, управляющий запуском утилиты, а также определяющий номер
страницы загрузки (например, page4) во FLASH-памяти стенда и имя последовательного порта (например, com1). Имя порта, в т.ч. виртуального при загрузке через USB, следует определить с помощью Диспетчера устройств компьютера. Номер страницы записи и режим (RS-232 или USB) задаются преподавателем. Перед запуском пакетного файла необходимо произвести его корректировку в соответствии с заданием, воспользовавшись утилитой FAR Manager.
14. Запустить программу тестирования модуля SDX-09, для чего установить на переключателях PAGE номер конфигурации ПЛИС (в двоичном четырехразрядном коде), соответствующий заданному в п.13 номеру страницы загрузки FLASH-памяти, и нажать кнопку RESET для рестарта системы. При этом на модуле зажгутся светодиоды DOUT0 – DOUT7. Все остальные светодиоды, кроме индикаторов питания стенда и модуля, будут погашены.
15. Тестировать дискретные выходы модуля SDX-09 при помощи 8 движковых переключателей стенда SDK-6.1/E, перемещение которых в верхнее положение должно сопровождаться выключением соответствующих светодиодов выходов из линейки DOUT0 – DOUT7.
16. Тестировать дискретные входы модуля SDX-09 поочередным подключением к разъемам этих входов внешнего источника напряжения 24В. В результате должны зажигаться соответствующие входам светодиоды DIN0 – DIN7 модуля SDX-09 и D0 – D7 стенда SDK-6.1/E. В связи с особенностями соединений стенда и модуля при подаче 24В на входы DIN0 – DIN5 светодиоды зажигаются попарно.
17. Тестировать релейные выходы модуля SDX-09, для чего нажать и удерживать кнопку CONTROL. При этом зажжется светодиод CARRY на стенде SDK-6.1/E. Перемещением четырех правых движковых переключателей стенда SDK-6.1/E в верхнее
11
положение удостовериться в срабатывании реле модуля SDX-09 по характерному щелчку и зажиганию соответствующих им светодиодов из линейки REL0 – REL3.
18. Из-за отсутствия на стенде SDK-6.1/E АЦП и ЦАП, тестирование при помощи него аналоговых входов и выходов модуля SDX-09 невозможно.
19. Оформить протокол и ознакомиться с контрольными вопросами.
3. Содержание отчета
1. Название и цель занятия.
2. Структурные схемы стенда SDK-6.1/E и модуля SDX-09.
3. Скриншот содержания пакетного файла load_to_page.bat, соответствующего заданию.
4. Основные выводы по выполненному заданию.
4. Контрольные вопросы
1 . Какие устройства входят в состав лабораторного комплекса? 2 . Перечислите основные технические характеристики стенда SDK-6.1/E. 3 . Перечислите основные технические характеристики модуля SDX-09. 4 . Какой программатор используется для загрузки во FLASH-память стенда? 5 . Какой тип конфигурационного файла необходим для программирования FLASH-
памяти?
6 . Можно ли загружать ПЛИС стенда непосредственно из среды Quartus II? 7 . Какие интерфейсы стенда используются для программирования ПЛИС? 8 . Как определяется имя последовательного порта компьютера? 9 . Как на стенде задается номер конфигурации ПЛИС?
10. Для чего предназначен и как редактируется пакетный файл load_to_page.bat?
Практическое занятие №2
ОСНОВЫ ПРОЕКТИРОВАНИЯ ПЛИС В СРЕДЕ QUARTUS II
Цель занятия: Изучение основ проектирования ПЛИС, приобретение навыков
работы с графическим редактором пакета Quartus II.
1. Краткие сведения о САПР Quartus II
Одним из мировых лидеров по разработке ПЛИС является фирма Altera (США), основанная в 1983г. [3,4] и в 2015г. приобретенная корпорацией Intel. Как fabless предприятие Altera концентрируется в первую очередь на разработке ИМС и модулей на основе языков описания аппаратуры VHDL и Verilog. Для создания цифровых устройств на основе своих изделий Altera разработала собственный язык AHDL и специальную программную среду Quartus II. Наряду с текстовым вводом Quartus II позволяет с помощью графического редактора ввести в память компьютера электрическую схему и
12
использовать мегаблоки (или мегафункции), конфигурируемые пользователем для заданного функционирования.
Создание проекта
Перед запуском программы необходимо создать папку (в директории
C:\altera\Projects) для хранения файлов проекта, в имени которой и пути отсутствуют символы кириллицы и пробелы. Открыв Quartus II (пиктограмма ), следует выбрать
мастер создания новых проектов File/New Project Wizard. После нажатия в появившемся окне кнопки Next открывается страница, в которой необходимо указать путь к папке проекта и дважды его имя. Из пяти шагов, предлагаемых мастером, 2-й можно пропустить, в 3-м окне выбрать семейство ПЛИС – Cyclone и конкретную ИМС – EP1C6T144C8, используемую в стенде SDK-6.1/E, в 4-м окне для инструмента Simulation в столбце Tool Name выбрать ModelSim-Altera, а в столбце Format(s) – Verilog HDL. На последнем шаге появляется сводка сделанных установок. Нажатием кнопки Finish завершается работа мастера и процесс создания проекта. Далее в него добавляются файлы, описывающие логику проекта. Чтобы создать файл, содержащий описание схемы, достаточно выбрать File/New/Design Files, а в таблице – Block Diagram/Schematic File и нажать ОК. В результате откроется окно графического редактора с загруженным в него файлом Block1.bdf. Для включения файла в проект следует выполнить File/Save As и задать имя, установив при этом флажок Add file to current project.
Создание схемы
В Quartus II электрическая схема состоит из символов элементов и соединяющих их линий. Наиболее простым способом ввода символа является двойной щелчок мыши в окне графического редактора, но можно воспользоваться и кнопкой Symbol Tool, расположенной в панели инструментов. В результате открывшегося диалогового окна Symbol, в поле Libraries появятся библиотеки примитивов, макрофункций и мегафункций фирмы Altera.
Библиотека примитивов содержит простейшие элементы – входы и выходы
(primitives/pin), триггеры (primitives/storage), логические элементы И, ИЛИ, НЕ (primitives/logic), константы «0» - gnd и «1» - vcc (primitives/other) и т.д.
В библиотеке макрофункций (others) содержатся более сложные элементы, в т.ч. имитирующие стандартные ИМС серии 74ххх.
Элементы библиотеки мегафункций (megafunctions) представляют собой параметризируемые модули наиболее часто используемых цифровых устройств (счетчиков, дешифраторов, компараторов, регистров и т.д.).
После выбора необходимой библиотеки в поле Libraries появится список имен элементов, в котором мышью следует выделить требуемый. При этом в поле Name определится имя элемента, а в окне Symbol – его символ. Нажатием ОК символ элемента вводится в окно графического редактора.
Все входы и выходы по умолчанию обозначаются как pin_name, поэтому в случае необходимости им можно присвоить другие имена, для чего достаточно дважды щелкнуть на слове pin_name и ввести новое имя входа или выхода.
После того как все необходимые элементы установлены их соединяют с помощью линий инструмента Orthogonal Node Tool. Для проведения каждой линии требуется
13
подвести курсор к выводу элемента, нажать левую кнопку мыши и, удерживая ее, подвести курсор к нужному месту, после чего отпустить кнопку. Соединение возможно и без линий связи, если присвоить одинаковые имена фрагментам линий, подключенным к соединяемым элементам. Для этого необходимо выделить линию щелчком мыши и ввести латинскими буквами название.
Некоторые соединения могут производиться с помощью шин инструмента Orthogonal Bus Tool. Также как и одиночной цепи, шине можно присвоить имя, состоящее из идентификатора и индексных пределов, например bus_name[24..0]. Каждый проводник, входящий в шину, получает имя шины и индекс: bus_name[24].
В качестве примера на рисунке показана схема получения «медленного» синхросигнала из сигнала высокой частоты 40 МГц [5] и ниже результат ее ввода в окне графического редактора Quartus II. Обозначения выводов и значение частоты
соответствуют параметрам стенда SDK-
6.1/E. Роль генератора G сигнала 40 МГц выполняет встроенный генератор стенда. D-триггер (dff), элементы НЕ (not), а также элементы входов (input) и выходов (output) выбраны из библиотеки primitives. Делитель частоты реализуется
с помощью мегафункции счетчика lpm_counter из библиотеки megafunctions/arithmetic. При ее выборе в окне Symbol после нажатия ОК начинает работать программа-мастер MegaWizard для конфигурации счетчика. Конфигурация выполняется в ряде страниц, в которых задаются HDL-язык описания элемента (Verilog HDL), разрядность счетчика (24 bits), режим сложения (up only) и наличие входа асинхронного сброса (aclr). Другие опции, предлагаемые мастером, игнорируются.
Компиляция проекта В ходе создания проекта выполняется его компиляция, целью которой является
поиск проектных ошибок и различного рода несовместимостей. Для запуска компиляции необходимо выбрать из меню Processing/Start Compilation или воспользоваться пиктограммой . После успешной компиляции проекта создается ряд вспомогательных файлов и появляется окно Compilation Report с сообщением о результатах компиляции, количестве ошибок и предупреждений.
14
2. Порядок выполнения задания
1. Ознакомиться с содержанием практического занятия и его программным
обеспечением.
2. Изучить основные возможности САПР Quartus II Web Edition [3].
3. Ввести в окне графического редактора Quartus II схему в соответствии с
практическим заданием, номер которого определяется преподавателем.
4. Провести компиляцию проекта.
5. Оформить протокол и ознакомиться с контрольными вопросами.
3. Задания практического занятия
В качестве регистров RG
использовать мегафункцию
lpm_shiftreg из библиотеки megafunctions/storage.
Для построения дешифратора DC использовать мегафункцию lpm_decode из
библиотеки
megafunctions/gates.
Язык описания всех
мегафункций – Verilog
HDL.
15
4. Содержание отчета
1. Название и цель занятия.
2. Исходная схема задания, подлежащая вводу в ПЛИС.
3. Скриншот созданной в графическом редакторе схемы, соответствующей заданию.
4. Скриншот окна Compilation Report.
5. Основные выводы по выполненному заданию.
5. Контрольные вопросы
1 . Назначение и основные возможности САПР Quartus II. 2 . Как создается новый проект в среде Quartus II? 3 . Как создается файл, содержащий описание схемы? 4 . Как осуществляется ввод символа в окне графического редактора Quartus II? 5 . Библиотеки каких элементов предлагаются пользователю фирмой Altera? 6 . Пояснить принцип работы схемы, соответствующей заданию. 7 . Что собой представляют параметризируемые модули библиотеки мегафункций? 8 . Как осуществляется переименование входов и выходов схемы в Quartus II? 9 . Как производится соединение элементов схемы в графическом редакторе?
10. Для чего выполняется компиляция проекта?
Практическое занятие №3
МОДЕЛИРОВАНИЕ ПРОЕКТА ПЛИС В СРЕДЕ MODELSIM - ALTERA
Цель занятия: Изучение подсистемы моделирования ModelSim пакета Quartus II,
приобретение навыков работы с программой ModelSim - Altera.
1. Основные положения
В состав ряда версий пакета Quartus II входит модуль ModelSim компании Mentor Graphics [3].
16
Среда моделирования ModelSim предназначена для проверки работоспособности проекта, описанного на одном из языков описания аппаратуры (HDL). Она включает в себя средства создания проекта, создания и редактирования исходных файлов проекта, компилятор, моделирующую программу и средства визуализации результатов моделирования (графический редактор и пр.). ModelSim поддерживает работу с тестовыми файлами на HDL (Test Bench) или на языке Tcl (командный язык для создания управляющих файлов).
Подсистема моделирования позволяет выполнить: функциональное моделирование (Functional Simulation), при котором проверяется правильность описания и логического функционирования проекта; временное моделирование (Timing Simulation), при котором учитываются все временные параметры (задержки сигналов) реальной ПЛИС. Для небольших проектов в большинстве случаев достаточно выполнить только функциональное моделирование.
Подготовка проекта
Так как программа ModelSim понимает только HDL - языки описания проекта, необходимо осуществить преобразование проекта, созданного в графическом редакторе Quartus II, в один из форматов языков описания аппаратуры. Для этого достаточно воспользоваться командой File/Create/Update/Create HDL Design file from Current file и в открывшемся окне выбрать требуемый тип файла (VHDL или Verilog HDL). После нажатия ОК новый файл будет добавлен в проект. Созданный ранее *.bdf – файл следует исключить из проекта, сохранив его в другой папке.
Создание тестового файла и привязка к проекту
Для генерации шаблона тестового файла на HDL необходимо выполнить команду Processing/Start/Start Test Bench Template Writer. После успешного завершения создания шаблона в окне Message можно увидеть присвоенное тестовому файлу имя и путь к нему.
Для привязки созданного Test Bench к проекту необходимо выполнить команду
Assignment/Settings/Simulation и в открывшемся окне в поле NativeLink settings отметить Compile test bench. С помощью активизирующейся справа кнопки Test Benches следует открыть одноименное окно и нажать кнопку New. В появляющемся окне настроек New Test Bench Settings необходимо указать имя шаблона тестового файла и путь к нему
(воспользовавшись кнопками с многоточием и Add) в поле Test bench files, а также имя модуля верхнего уровня (для определения которого достаточно открыть в Блокноте сгенерированный тестовый файл) в поле Top level module in test bench. Имя тестового файла в поле Test bench name может быть произвольным, но по умолчанию программа присвоит файлу имя, аналогичное имени модуля верхнего уровня. При выходе из окон перед нажатием очередной кнопки ОК в окне Simulation следует нажать кнопку Apply.
Для выполнения анализа и синтеза проекта в Quartus II следует воспользоваться командой Processing/Start/Start Analysis & Synthesis или соответствующей кнопкой .
Запуск симуляции осуществляется командой Tools/Run EDA Simulation Tool/EDA RTL Simulation. При этом запускается собственно инструмент ModelSim, который в ряде
своих окон представит пустой шаблон тестовых сигналов Test Bench в виде неопределенных состояний входов, выходов проекта и отсутствия графиков в окне Wave.
17
Редактирование тестового файла
Для заполнения шаблона достаточно открыть тестовый файл с помощью любого текстового редактора или щелчком правой кнопки мыши на одном из входов (выходов) проекта в поле Name выбрать View Declaration. Открывшийся в окне HDL – файл можно редактировать, если в главном меню Source убрать галочку напротив Read Only. По окончании редактирования файл необходимо сохранить. В качестве образца ниже приведен листинг тестового файла для примера генератора «медленного» синхросигнала, рассмотренного в предыдущей работе.
Хорошим стилем описания проектов на языке Verilog HDL является включение директивы timescale (масштаб времени) в каждый файл в качестве первого оператора. Модуль (module) – основная структура, используемая для описания аппаратных узлов и тестов. В заголовке модуля указывается его название. Далее объявляются переменные модуля с помощью служебного слова reg и выходные цепи с ключевым словом wire. Тестовый пример использует два блока initial и один блок always. Первый блок initial инициализирует переменные Clk_40MHz и SW9 значениями 0 и 1 соответственно. Следующий блок initial ожидает 109 временные единицы (наносекунд в соответствии с масштабом времени), а затем устанавливает переменную SW9 в 0 для разрешения функционирования счетчика и триггера схемы. Блок always производит периодические сигналы с частотой, приблизительно равной 40МГц, за счет ожидания определенного количества времени (полупериода 12нс) и последующего инвертирования переменной
Clk_40MHz. Инвертирование начинается с начального значения переменной Clk_40MHz,
18
которое было установлено в первом блоке initial. Завершается структура модуля теста ключевым словом endmodule.
Выполнение моделирования
Перед выполнением моделирования все файлы проекта должны быть откомпилированы. Для этого в окне Library программы ModelSim необходимо выделить все файлы папки rtl work и, вызвав щелчком правой кнопки мыши контекстное меню, выбрать Recompile. В связи с низкой частотой тактирования схем всех заданий в поле длительности симуляции Run Length следует установить время 4÷8с. Это, в свою очередь, вызовет существенное увеличение реального времени процесса моделирования, что является нормальным. Запуск процесса моделирования в ModelSim осуществляется
нажатием кнопки Restart и подтверждением этого действия ОК в одноименном окне с последующим нажатием кнопки Run .
В качестве примера на рисунках приведены отчеты о функциональном моделировании схемы «медленного» синхросигнала, рассмотренной в предыдущей лабораторной работе. В окне Objects отображаются все входы и выходы схемы, а в окне Wave – соответствующие им диаграммы сигналов. Не трудно заметить, что частота
сигнала на выходе D11_CARRY вдвое меньше частоты сигнала на выходе D3, что отвечает логике работы D-триггера в счетном режиме. Импульсы входной тактовой последовательности в 40·106 раз превышающие по частоте выходные сливаются в одну сплошную линию. При необходимости их можно увидеть, изменив масштаб времени.
В целом же временные диаграммы подтверждают правильность функционирования схемы после подачи разрешающего сигнала с движкового переключателя SW9.
2. Порядок выполнения задания
1. Ознакомиться с содержанием практического занятия и его программным обеспечением.
2. Изучить основные возможности модуля ModelSim компании Mentor Graphics.
3. Преобразовать проект, созданный в графическом редакторе Quartus II, в HDL­формат.
19
4. Создать тестовый файл Test Bench для моделирования схемы, разработанной в соответствии с практическим заданием предыдущей работы.
5. Выполнить функциональное моделирование проекта ПЛИС.
6. Оформить протокол и ознакомиться с контрольными вопросами.
3. Содержание отчета
1. Название и цель занятия.
2. Скриншот схемы, созданной в графическом редакторе Quartus II.
3. Скриншот листинга тестового файла Test Bench.
4. Скриншоты окон Objects и Wave результатов моделирования.
5. Основные выводы по выполненному заданию.
4. Контрольные вопросы
1. Назначение и основные возможности модуля ModelSim компании Mentor Graphics.
2. Как создается тестовый файл Test Bench?
3. Как добавляются входные переменные в тестовый файл?
4. Как осуществляется редактирование тестового файла?
5. Как задаются тактовые сигналы в тестовом файле?
6. В чем отличие между функциональным и временным моделированием ПЛИС?
7. Объяснить характер полученных временных диаграмм.
8. Файлы каких форматов поддерживает среда моделирования ModelSim?
9. Как осуществляется моделирование проекта ПЛИС в среде Quartus II?
10. Для чего выполняется моделирование проекта ПЛИС?
Практическое занятие №4
МОДЕЛИРОВАНИЕ ПРОЕКТА ПЛИС В СРЕДЕ QUARTUS II
Цель занятия: Изучение подсистемы моделирования пакета Quartus II,
приобретение навыков работы с модулем Simulator.
1. ОСНОВНЫЕ ПОЛОЖЕНИЯ
В состав пакета Quartus II входит модуль Simulator, предназначенный для
моделирования проекта [3].
Подсистема моделирования позволяет выполнить:
функциональное моделирование (Functional Simulation), при котором проверяется правильность описания и логического функционирования проекта; временное моделирование (Timing Simulation), при котором учитываются все временные параметры (задержки сигналов) реальной ПЛИС.
Для небольших проектов в большинстве случаев достаточно выполнить только
функциональное моделирование.
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]