Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы проектирования ПЛИС и БМК. Практикум
.pdf
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
