Московский Государственный Университет Приборостроения и Информатики
Кафедра ИТ-6 “Управление и моделирование систем”
“Система автоматизированного проектирования Quartus”
по курсу 1629 “Современные информационные технологии”
2011г.
Цель работы: изучение среды разработки и инструментальных средств САПР Quartus II Web Edition 11.1 Service Pack 1, изучение отладочной аппаратной платформы Cyclone II FPGA Starter Development Kit.
Аппаратное обеспечение: отладочная плата Cyclone II FPGA Starter Development Kit.
Порядок выполнения работы:
Запустите САПР Quartus II
Создайте новый проект.
Укажите любое имя проекта, укажите также имя top level entity.
Выберите тип устройства EP2C20F484C7:
Создайте новый VHDL файл
Сохраните новый файл под тем именем которое вы указали для “top level entity”.
Введите следующий код:
library ieee ; use ieee.std_logic_1164.all ;
entity lab1 is port ( a: in std_logic ; b: in std_logic ; c: out std_logic ) ; end lab1 ;
architecture a_lab1 of lab1 is begin c <= a and b ; end a_lab1 ;
|
Запустите процесс синтеза выбрав пунтк RTL Viewer из списка исполняемых задач.
Результаты синтеза:
Внесите изменения в исходный текст:
library ieee ; use ieee.std_logic_1164.all ;
entity lab1 is port ( a: in std_logic ; b: in std_logic ; c: out std_logic ) ; end lab1 ;
architecture a_lab1 of lab1 is begin process(a,b) begin c <= a and b ; end process ; end a_lab1 ; |
Результаты синтеза не должны измениться.
Внесите следующие изменения:
library ieee ; use ieee.std_logic_1164.all ;
entity lab1 is port ( clk: in std_logic ; a: in std_logic ; b: in std_logic ; c: out std_logic ) ; end lab1 ;
architecture a_lab1 of lab1 is begin process(clk) begin if rising_edge(clk) then c <= a and b ; end if ; end process ; end a_lab1 ; |
Изучите результаты синтеза и сделайте выводы:
Объясните, добавление каких операторов VHDL привело к появлению триггера? Если этот вопрос вызывает затруднения обратитесь к [Ikr1].
Добавьте асинхронный сигнал “сброс”. Теоретические и практические аспекты организации цепей сброса подробно освещены в статье Иосифа Каршенбойма [Ikr2].
library ieee ; use ieee.std_logic_1164.all ;
entity lab1 is port ( clk: in std_logic ; reset: in std_logic ; a: in std_logic ; b: in std_logic ; c: out std_logic ) ; end lab1 ;
architecture a_lab1 of lab1 is begin process(reset,clk) begin if reset='1' then c <= '0' ; elsif rising_edge(clk) then c <= a and b ; end if ; end process ; end a_lab1 ;
|
Результаты синтеза приведены ниже:
Напишите код на VHDL для синтеза аналогичной схемы с синхронным сбросом, который синтезируется в следующую схему:
Введите следующий код, реализующий делитель частоты в виде счетчика:
library ieee ; use ieee.std_logic_1164.all ; use ieee.std_logic_signed.all ; use ieee.std_logic_arith.all ;
entity lab1 is port ( clk: in std_logic ; led: out std_logic ) ; end lab1 ;
architecture a_lab1 of lab1 is signal counter: std_logic_vector(23 downto 0) := b"0000_0000_0000_0000_0000_0000" ; begin led <= counter(23) ; process(clk) begin if rising_edge(clk) then counter <= counter + 1 ; end if ; end process ; end a_lab1 ;
|
Изучите результаты синтеза, объясните, как функционирует эта схема.
Добавьте код для реализации асинхронного или синхронного сброса.
Для размещения прошивки в микросхеме FPGA необходимо задать соответствия между логическими названиями сигналов на языке VHDL и физическими контактами микросхемы. В приведенной ниже таблице указаны входы микросхемы соединенные с четырьмя источниками синхронизации на плате.
Таблица 1. Сигналы синхронизации Cyclone II FPGA Starter Development Kit.
Присоедините сигнал CLOCK_50 к логическому входу clk с помощью утилиты Pin Planner. Аналогичным образом присоедините логический вывод led к одному из контактов микросхемы, указанных в следующей таблице.
Таблица 2. Светодиодные индикаторы.
Для вызова утилиты PinPlanner можно воспользоваться иконкой:
Внешний вид утилиты PinPlanner после указания всех соединений представлен ниже:
Закройте окно утилиты PinPlanner.
Запустите процесс компиляции файла-образа прошивки. Этот файл будет содержать информацию для конфигурирования вашего устройства (файл прошивки).
По окончании процесса компиляции, соедините плату Cyclone II FPGA Starter Development Kit c компьютером при помощи кабеля USB, запустите утилиту Programmer. При необходимости укажите в качестве целевого устройства USB-Blaster [USB-0] и нажмите кнопку Start. Если в списке устройств не найдено ни одного элемента - проверьте подключен ли кабель USB и включена ли плата. Возможно вам необходимо установить драйвера из папки Disk:\altera\11.0sp1\quartus\drivers\.
Заключение и выводы
Block Design File (.bdf) - файл со схемотехническим описанием, созданный в Quartus II Block Editor.
Block Symbol File (.bsf) - символьный файл, представляющий в схемотехническом дизайне мегафунцию, другой файл и т.п.
Pin-Out File (.pin) - текстовый файл содержащий назначения контактов микросхемы.
Programmer Object File (.pof) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство.
SRAM Object File (.sof) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство на основе SRAM.
Raw Binary File (.rbf) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство. Предназначен для использования вне Quartus II.
Quartus II Project File (.qpf) - файл проекта Quartus II, содержащий информацию о версии Quartus II.
Quartus II Settings File (.qsf) - файл содержит настройки проекта, относящиеся к данной ревизии (revision). Синтаксис файла основан на Tcl.
Quartus II Workspace File (.qwf) - файл с настройками среды Quartus (расположение окон и т.п.)
Ссылки
[Ikr1]. Иосиф Каршенбойм. Написание кода, независимого от аппаратной платформы.
[Ikr2]. Иосиф Каршенбойм. Краткий курс HDL. Часть 10. Несколько слов о «сбросе».
[DE1.1]. DE1 Development and Education Board. Altera Corporation.
[DE1.2]. Altera DE1 Board. Terasic Corporation.