Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт1.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Результат выполнения задания №3

Задание:

Ознакомление с устройством, характеристиками отладочной платы mini- DiLaB (Cyclone 3).

На рисунке 3.1 представлен внешний вид отладочной платы mini- DiLaB.

Рисунок 3.1 – Внешний вид mini- DiLaB (Cyclone 3)

Как видно из рисунка 4.1 по функциональному набору периферийных компонентов, данный стенд уступает DiLabII, за кажущейся простотой скрывается достаточно, мощное устройство, не обременяющее разработчикаи злишній обвязкой периферийных устройств. Данный стенд позволяет сосредоточится на решении конкретных задач. Необходимый набор устройств и компонентов подключается посредством портов расширения.

На рисунке 3.2 представлена структурная схема устройства.

Рисунок 3.2 – Структурная схема стенда

В состав комплекса входят:

СБИС Программируемой Логики (Cyclone III)

Конфигурационная память СБИС Cyclone III

Переключатели

Кнопки ввода данных

Светодиоды (8 доступных программисту)

Микросхема статической памяти (объемом 256k*16 бит)

Кварцевый генератор

USB интерфейс, включающий:

- Разъем miniB

- Микросхему FTDI - FT245R

JTAG интерфейс, включающий:

- Микросхему MAX3064

- Набор джамперов для выбора режима работы

- Разъем JTAG

Разъемы расширения

Модуль питания платы.

Центральным элементом стенда является микросхема EP3C5E144C8N. Данная ПЛИС имеет следующие характеристики:

Число выводов СБИС – 144;

- Число пользовательских выводов (входов/выходов) – 94;

- Число логических элементов – 5136;

- Объем встроенной памяти – 414 кбит;

- Число встроенных умножителей ( разрядностью 9*9) – 46;

- Число встроенных умножителей тактовых сигналов (PLL) – 2;

- Объем файла конфигурации (без сжатия) – 3 Мбит;

Примечание: на плате присутствует кнопка RESET, позволяющая сбросить текущую конфигурацию СБИС.

Плата miniDiLaB-CIII содержит 8 переключателей. В положении «1» переключатель коммутирует логическую единицу, а в положении «0» - логический нуль. Верхнее положение – лог. «1», в нижнем- «0».

На рисунке 3.3 представлены переключатели платы miniDiLaB-CIII.

Р исунок 3.3– Переключатели платы miniDiLaB-CIII

Плата miniDiLaB-CIII содержит 2 кнопки: при нажатой кнопке передается логический «0», при отжатой – логическая «1».

На рисунке 3.4 представлены кнопки платы miniDiLaB-CIII.

.

Рисунок 3.4–Кнопки платы miniDiLaB-CIII

Плата miniDiLaB-CIII содержит 8 светодиодов.

На рисунке 3.5 представлены светодиоды для индикации платы miniDiLaB-CIII.

Рисунок 3.5– 8 светодиодов для индикации

Проектирование цифровых устройств в системе QuartusIi №4

Цель: самостоятельно пройти процесс проектирования от постановки задачи, до реализации работающего устройства.

Задача: спроектировать цифровое устройство выполняющее, поочередное включение/выключение светодиодов.

Дать ответ на вопросы:

  1. Назначение выводов Carry –out, Set, Load у счетчиков

  2. Как изменить код описания счетчика-дешифратора, чтобы «бегущий огонь» начинался с led 7 и шел до led 0 (ответ в виде части кода в отчете)

Алгоритм работы

- деление на счетчике частоты 25Mhz на 2**23;

- поочередное включение (активный уровень – логическийнуль)/выключение светодиодов при помощи счетчика –дешифратора (0-7).

В САПР QuartusII создать новый проект.

В таблице 4.1 приведены параметры мастера

Таблица 4.1–Параметры мастера

Параметр мастера

Наименоваение

What is the working directory for this project?

Рабочая папка ( с помощью браузера найти рабочую папку проекта)

…\ begushiy

What is the name of this project?

Имя проекта

begushiy

What is the name of the top-level design entity for this project?

Имя модуля верхнего уровня в иерархии проекта.

begushiy

В окне Family & Device Setting выбрать:

- в разделе Family задать CycloneIII;

- тип корпуса в графе Package задать – TQFP;

- в графе Pin count задать - 144,

- в разделе Available devices выбрать СБИС EP3C5E144C8.

Во вновь созданном проекте, именуемом «begushiy» необходимо создать новый файл «File –New – BlockDiagram/SchematicFile».

Сохранить файл под тем же именем что и проект.

Вызвать мастер MegaWizardPlug-inManager, через менюTools – MegaWizardPlug-inManager.

В окне 1 выбрать «Create a new custom megafunction variatrion»

В окне 2 перейти в раздел Arithmetic, выбрать пункт LPM_COUNTER, задать имя выходного файла, count, в качестве языка описания выбрать VHDL, нажать кнопку Next

Проектируется суммирующий счетчик с максимальным количеством перебора 33 554 432.

Параметры счетчика:

- ширина шины q = 25 бит;

- счетчик суммирующий «uponly»

По окончании нажать Next

В появившемся окне «OptionalInputs»осуществляется назначение синхронных/ асинхронных входов загрузки, сброса, установки в максимальное значение. Все эти опции оставить пустыми. Нажать Nextдважды.

Нажать Finish. В рабочей библиотеке появился компонент count.

На рисунке 4.1 представлен синтезированный компонент.

Рисунок 4.1– Синтезированный компонент

Далее не обходимо создать второй счетчик со встроенным дешифратором от 0 до 7, к которому будут подключены светодиоды [led 0-7].Данный элемент следует описать на языке VHDL, для этого необходимо в меню File-New выбрать VHDLFile. В открывшемся окне набрать следующий код, реализующий функцию дешифратора согласно заданию. Имя модуля - led.vhd.

В листинге 1 представлен описываемый компонент.

Листинг 1- led.vhd

LIBRARY.IEEE; --Подключение используемых библиотек

use IEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

useIEEE.numeric_std.ALL;

entity led is port --Декларация имени объекта проекта

(clk: in std_logic; --Декларация входного порта

led: out std_logic_vector(7 downto 0)); --Декларация выходного порта

end led;

architectureled_arch of led is --Функциональное описание

signalcnt: integer range 0 to 7 :=0; --Декларация внутреннего сигнала

begin

process (clk)

begin

ifrising_edge(clk) then --Описание функции объекта

ifcnt=7 then

cnt<=0;

else

cnt<=cnt+1;

end if;

end if;

end process;

led(0)<= '1' when cnt=0 else '0'; --Формирование выходных сигналов

led(1)<= '1' when cnt=1 else '0';

led(2)<= '1' when cnt=2 else '0';

led(3)<= '1' when cnt=3 else '0';

led(4)<= '1' when cnt=4 else '0';

led(5)<= '1' when cnt=5 else '0';

led(6)<= '1' when cnt=6 else '0';

led(7)<= '1' when cnt=7 else '0';

endled_arch;

Выполнить команд меню File- Create/Update – CreateSymbolFilesforCurrentFile. В библиотеке появится новый компонент с именем led.

На рисунке 4.2 представлен синтезированный элемент.

Рисунок 4.2–Синтезированный элемент- led

Н а рисунке 4.3 представлена синтезированная схем, реализуемая при помощи схемного проектирования.

Рисунок 4.3 – Синтезированная схема

Далее не обходимо осуществить проверку синтаксиса схемы. Для этого в меню Processing выполнить командуStart=>StartAnalysis&Elaboration.

Перейти в инструмент Assignments- PinPlanner и выполнить назначение выводов на СБИС (ПЛИС) выводам схемы, как показано на рисунке 4.4.

Рисунок 4.4–Назначение выводов на СБИС

С помощью команды Processing =>StartCompilationосуществить полную компиляцию проекта.

Конфигурирование платы:

- На плате miniDiLaB-CIII установить джамперы следующим образом (рисунок 4.5):

a. Соединить выводы разъема “TYPE”

b. Соединить выводы 1-2 разъема “MODE”

Рисунок 4.5– Установка джамперов

Подсоединить, входящий в комплект поставки USB кабель A-miniB к USB 2.0 порту компьютера (должен обеспечивать ток до 500мА), а затем к плате miniDiLaB-CIII.

Выполнить команду Tools=>Programmerили кликнуть по значку главного меню.

Откроется окно управления конфигурированием СБИС.

Для установки интегрированного на плату miniDiLaB-CIII средства конфигурирования СБИС нажать кнопку HardwareSetup, откроется окно настроек в нем выбрать USB- Blaster.

Светодиод led[7..0], для котрого разрешена работа (счетчик содержит значение данного светодиода) будет светится и гаснуть, следующим загорится светодиод номер которого будет следующим.

Изменение кода описания счетчика-дешифратора, чтобы «бегущий огонь» начинался с led7 и шел до led0:

led(0)<= '1' when cnt=7 else '0';

led(1)<= '1' when cnt=6 else '0';

led(2)<= '1' when cnt=5 else '0';

led(3)<= '1' when cnt=4 else '0';

led(4)<= '1' when cnt=3 else '0';

led(5)<= '1' when cnt=2 else '0';

led(6)<= '1' when cnt=1 else '0';

led(7)<= '1' when cnt=0 else '0'