Работа с графическим редактором Quartus II
Графический ввод схемы и симуляция в Quartus II. Основные логические элементы. Описание логических схем при помощи языка AHDL, его элементы. Зарезервированные ключевые слова. Моделирование цифровых схем с использованием параметрических элементов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.06.2015 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- Задание № 1. Графический ввод схемы и симуляция в Quartus II
- Алгебра логики и основные логические элементы
- Задание № 2. Описание логических схем при помощи языка AHDL
- Элементы языка AHDL. Зарезервированные ключевые слова
- Символы
- Имена в кавычках и без кавычек
- Числа в языке AHDL
- Логические операторы
- Задание № 3. Моделирование цифровых схем с использованием параметрических элементов
- Задание № 4
- Вывод
- Список литературы
Введение
Широкое внедрение автоматики во все сферы человеческой деятельности, наблюдаемое в настоящее время, предъявляет жесткие требования к изделиям электронной техники. Это связано, с одной стороны, с возрастанием важности и сложности решаемых задач, а с другой стороны, необходимостью улучшения качественных характеристик, таких как: быстродействие, надежность, потребляемая мощность, габариты, стоимость и др. Одним из путей решения данной проблемы является использование новой элементной базы - программируемых логических интегральных схем (ПЛИС - Programmable Logic Device - PLD).
ПЛИС представляют собой интегральные схемы, обладающие гибкостью заказных БИС (больших интегральных схем) и доступностью традиционной "жесткой" логики. Современные ПЛИС характеризуются низкой стоимостью, высоким быстродействием, значительными функциональными возможностями, многократностью перепрограммирования, низкой потребляемой мощностью и др. Главным отличительным свойством ПЛИС является возможность их настройки на выполнение заданных функций самим пользователем, таким образом реализовывать даже достаточно сложные проекты в сжатые сроки в виде конкурентоспособных устройств и систем. По существу, разработка устройств на основе ПЛИС представляет собой новую технологию проектирования электронных схем, включая их изготовление и сопровождение.
Одним из доказательств перспективности рассматриваемой элементной базы служит ежегодное появление новых, имеющих более совершенную архитектуру, поколений ПЛИС, а также постоянно растущий объем выпуска ПЛИС такими производителями как ALTERA, Atmel, Xilinx, LATTICE и др., среди которых наиболее распространенными в нашей стране являются ПЛИС американской фирмы ALTERA.
Задание № 1. Графический ввод схемы и симуляция в Quartus II
Цель задания:
Спроектировать логическую схему при помощи графического редактора Quartus II. Исследовать работу схемы с использованием сигнального редактора Quartus II.
Основные теоретические сведения:
Алгебра логики и основные логические элементы
Математической основой цифровой электроники и вычислительной техники является алгебра логики или булева алгебра (по имени английского математика Джона Буля). В булевой алгебре независимые переменные или аргументы (Х) принимают только два значения: "0" или "1". Зависимые переменные или функции (Y) также могут принимать только два значения: "0" или "1". Функция алгебры логики (ФАЛ) представляется в виде:
Данная форма задания ФАЛ называется алгебраической.
Основными логическими функциями являются:
- логическое отрицание (инверсия):
- логическое сложение (дизъюнкция):
- логическое умножение (конъюнкция):
К более сложным функциям алгебры логики относятся:
- функция равнозначности (эквивалентности):
- функция неравнозначности (сложение по модулю два):
- функция Пирса (логическое сложение с отрицанием):
- функция Шеффера (логическое умножение с отрицанием):
Для булевой алгебры справедливы следующие законы и правила:
- распределительный закон:
,
- правило повторения:
- правило отрицания:
- теорема де Моргана:
- тождественности:
Схемы, реализующие логические функции, называются логическими элементами. Основные логические элементы имеют, как правило, один выход (Y) и несколько входов, число которых равно числу аргументов . На электрических схемах логические элементы рисуют в виде прямоугольников с выводами для входных (слева) и выходных (справа) переменных. В средине прямоугольника изображается символ, обозначающий функциональное назначение элемента.
На рисунках 2.1 - 2.7 показаны логические элементы, реализующие рассмотренные ранее функции. Там же приведены так называемые таблицы состояний или таблицы истинности, которые описывают соответствующие логические функции в двоичном коде в виде состояний входных и выходных переменных. Таблица истинности является также табличным способом задания ФАЛ.
графический редактор quartus симуляция
На рисунке 2.1 показан элемент "НЕ", который реализует функцию логического отрицания .
Рис.2.1 Элемент "НЕ"
X |
Y |
|
0 |
1 |
|
1 |
0 |
Элемент "ИЛИ" (рисунок 2.2) и элемент "И" (рисунок 2.3) реализуют функции логического сложения и логического умножения соответственно.
Рис. 2.2 Элемент "ИЛИ"
X1 |
X2 |
Y |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
1 |
Рис. 2.3 Элемент "И"
X1 |
X2 |
Y |
|
0 |
0 |
0 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
Функции Пирса и функции Шеффера реализуются при помощи элементов "ИЛИ-НЕ" и "И-НЕ", приведенных на рисунках 4 и 5 соответственно.
Рис. 2.4 Элемент "ИЛИ-НЕ"
X1 |
X2 |
Y |
|
0 |
0 |
1 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
0 |
Рис. 2.5 Элемент "И-НЕ"
X1 |
X2 |
Y |
|
0 |
0 |
1 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
Элемент Пирса можно получить последовательным соединением логических элементов "ИЛИ" и элемента "НЕ", а элемент Шеффера - в виде последовательного соединения логических элементов "И" и элемента "НЕ". На рисунках 2.6 и 2.7 показаны элементы "отрицающее ИЛИ" та "отрицающее ИЛИ-НЕ", которые реализуют функции неравнозначности и неравнозначности с отрицанием соответственно.
Рис. 2.6 Элемент "отрицающее ИЛИ"
X1 |
X2 |
Y |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
Рис. 2.7 элемент "отрицающее ИЛИ-НЕ"
X1 |
X2 |
Y |
|
0 |
0 |
1 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
Логические элементы, которые реализуют операции конъюнкции, дизъюнкции, функции Пирса и Шеффера, могут быть, в общем случае, n-входовыми. В таблице истинности такого элемента количество возможных комбинаций входных переменных N, в общем случае равняется: N = 2 n, где n - число входных переменных.
Логические элементы используются для построения интегральных микросхем, которые выполняют разнообразные логические и арифметические операции.
ФАЛ любой сложности можно реализовать при помощи обозначенных логических элементов. В качестве примера рассмотрим ФАЛ, заданную в алгебраической форме, в виде:
Для реализации заданной функции на элементах "И-НЕ" используют двойную инверсию функции (теорему де Моргана):
Реализация проекта цифровой схемы в Quartus II.
Рассмотрим работу с графическим редактором Quartus II на примере реализации булевой функции: .
Шаг 1.
Запускаем Quartus II. Создаем новый проект. Для этого выбираем пункт меню File\New Project Wizard.
Шаг 2.
Появляется диалоговое окно мастера-помошника создания проекта. Нажимаем кнопку Next.
Шаг 3.
Выбираем папку, где будет размещен проект, например: c: \altera\marsohod\flipflop_sim. И указываем название проекта flipflop.
Шаг 4.
Quartus II спрашивает, нужно ли создать папку которая еще не существует. Отвечаем "Да". Чтобы создать новый файл, принадлежащий проекту, выбираем пункт меню File\New, или нажимаем кнопку New на панели инструментов.
Шаг 5.
Нужно создать файл, описывающий устройство. Это Design File. Выбираем создание схемы Block Diagram\Schematic File.
Шаг 6.
Сохраняем наш новый файл под именем flipflop. bdf.
Шаг 7.
В поле графического редактора схем нажимаем правую кнопку мыши и в выпадающем меню выбираем пункты Insert\Symbol - вставить элемент. Или на панели инструментов выбираем кнопку Symbol Tool.
Шаг 8.
Из библиотек Quartus II выбираем элементы примитивов \primitives\logic\. Нужно два элемента "И" на 2 входа - это \primitives\logic\and2, один элемент "И" на 3 входа - \primitives\logic\and3, один элемент "И-НЕ" на 2 входа - \primitives\logic\nand2, один элемент "ИЛИ" на 4 входа - \primitives\logic\or4, три элемента "Инверсия" - \primitives\logic\not.
Шаг 9.
Точно так же выбираем нужные нам входы и выходы \ primitives\pin\input и \primitives\pin\output.
Шаг 10.
Вот все элементы, которые будут нужны для схемы. В графическом редакторе можно кликать на элементы и выделять их. Обычные Ctrl+C и Ctrl+V позволяют копировать и вставлять выделенные участки схемы или отдельные элементы.
Шаг 11.
Выбирая на панели инструментов Orthogonal Node Tool, можно соединять элементы между собой. Добавим еще входы и выходы. Назовем их - клик правой кнопки мыши на элементе и выбираем пункт меню свойства Properties.
Создание проекта практически завершено - можно симулировать его.
Шаг 12.
Прежде чем делать симуляцию нужно откомпилировать проект. Выбираем пункты меню Processing\Start Compilation (или выбрать на панели инструментов кнопку Start Compilation).
Шаг 13.
Создадим файл для симуляции. В нем можно будет описывать входные сигналы и задавать выходные сигналы. Выбираем пункт меню File\New и затем в появившемся диалоге Verification\Debugging Files\ University Program VWF (Vector Waveform File).
Шаг 14.
Сигнальный редактор Quartus II.
Шаг 15.
Сохраним файл симуляции под именем, например, flipflop. vwf.
Шаг 16.
Надо выбрать элементы, которые будем смотреть и которые будем определять. Клик правой клавиши мыши на левой панели Names и в выпадающем меню выбираем пукнт Insert\Insert Node or Bus.
Шаг 17.
Появилось диалоговое окно. В нем можно набрать имя выхода какого-нибудь сигнала или элемента. Полное имя сигнала может быть очень длинным и не всегда понятным. Поэтому лучше воспользоваться поиском сигнала в проекте. Нажимаем кнопку Node Finder.
Шаг 18.
Появляется диалоговое окно для поиска сигналов в проекте Node Finder. В поле Look указано имя нашего проекта - в нем будет поиск сигнала. Здесь ничего менять не нужно. В поле Named можно задать часть имени сигнала или провода.
Например, надо найти выход модуля с именем data, но в проекте несколько модулей с выходами/входами с таким именем. Тогда для поиска в этом поле Named нужно указать *data*.
Потом нажать кнопку List (произвести поиск) и в таблице Nodes Found будет показан список всех модулей содержащих такой сигнал. Если указать просто *, то это значит, что будут отображены вообще все сигналы, не зависимо от имени.
Еще важное поле - Filter. Здесь из списка можно выбрать тип сигналов для поиска. Выбираем сейчас Pins: All - то есть физические входы и выходы микросхемы.
Нажимаем кнопку List и видим список входов и выходов.
Шаг 19.
Выбираем все нужные сигналы слева в таблице найденных сигналов Nodes Found и переносим их вправо в таблицу выбранных сигналов Selected Nodes. Нажимаем кнопку "OK".
Шаг 20.
Прежде чем редактировать сами сигналы нужно задать временную сетку (для удобства кратную 2). Для этого надо зайти в пункт меню Edit\Grid Size или нажать на панели инструментов кнопку Count Value.
Шаг 21.
Запускаем симулятор из пункта меню Processing\Run Functional Simulation (или на панели инструментов выбрать кнопку Run Functional Simulation).
Шаг 22.
Результат моделирования работы схемы в сигнальном редакторе.
Задание № 2. Описание логических схем при помощи языка AHDL
Цель работы:
Приобретение основных навыков описания цифровых схем с помощью языка описания аппаратуры AHDL. Смоделировать логическую схему при помощи текстового редактора Quartus II.
Основные теоретические сведения:
Язык описания аппаратуры AHDL разработан фирмой Altera и предназначен для описания комбинационных и последовательностных логических устройств, групповых операций, цифровых автоматов (state machine) и таблиц истинности с учетом архитектурных особенностей ПЛИС фирмы Altera. Файлы описания аппаратуры, написанные на языке AHDL, имеют расширение *. TDF (Text design file).
Операторы и элементы языка AHDL являются достаточно мощным и универсальным средством описания алгоритмов функционирования цифровых устройств, удобным в использовании. Язык описания аппаратуры AHDL дает возможность создавать иерархические проекты в рамках одного этого языка или же в иерархическом проекте использовать как TDF-файлы, разработанные на языке AHDL, так и другие типы файлов.
При распределении ресурсов устройств разработчик может пользоваться командами текстового редактора или операторами языка AHDL для того, чтобы сделать назначения ресурсов и устройств. Кроме того, разработчик может только проверить синтаксис или выполнить полную компиляцию для отладки и запуска проекта. Любые ошибки автоматически обнаруживаются обработчиком сообщений и высвечиваются в окне текстового редактора.
Элементы языка AHDL. Зарезервированные ключевые слова
Зарезервированные ключевые слова используются для следующих целей:
Ш для обозначения начала, конца и переходов в объявлениях языка AHDL;
Ш для обозначения предопределенных констант, т.е. GND и VCC.
Ключевые слова можно использовать, как символические имена, только если они заключены в символы одинарных кавычках ('). Их можно также использовать в комментариях.
Для того чтобы получить контекстовую помощь по ключевому слову, необходимо убедиться, что файл сохранен с расширением. tdf, затем нажать одновременно две кнопки Shift+F1 в окне текстового редактора Text Editor и щелкнуть кнопкой мыши Button 1 на ключевом слове.
Altera рекомендует все ключевые слова набирать прописными буквами.
Список всех зарезервированных ключевых слов (Keywords) и идентификаторов (Identifires) языка AHDL приведен в табл.1 и табл.2 соответственно:
Таблица 1.
AND |
ELSE |
MOD |
STATES |
|
ASSERT |
ELSIF |
NAND |
SUBDESIGN |
|
BEGIN |
END |
NODE |
TABLE |
|
BIDIR |
FOR |
NOR |
THEN |
|
BITS |
FUNCTION |
NOT |
TITLE |
|
BURIED |
GENERATE |
OF |
TO |
|
CASE |
GND |
OPTIONS |
TRI_STATE_NODE |
|
CLIQUE |
HELP_ID |
OR |
VARIABLE |
|
CONNECTED_PINS |
IF |
OTHERS |
VCC |
|
CONSTANT |
INCLUDE |
OUTPUT |
WHEN |
|
DEFAULTS |
INPUT |
PARAMETERS |
WITH |
|
DEFINE |
IS |
REPORT |
XNOR |
|
DESIGN |
LOG2 |
RETURNS |
XOR |
|
DEVICE |
MACHINE |
SEGMENTS |
||
DIV |
MACRO |
SEVERITY |
Таблица 2.
CARRY |
FLOOR |
MCELL |
TFFE |
|
CASCADE |
GLOBAL |
MEMORY |
TFF |
|
CEIL |
JKFFE |
OPENDRN |
TRI |
|
DFFE |
JKFF |
SOFT |
USED |
|
DFF |
LATCH |
SRFFE |
WIRE |
|
EXP |
LCELL |
SRFF |
X |
Символы
Ниже в таблице 3 приведены символы, имеющие определенное значение в языке AHDL. В этот перечень не включены символы, используемые в булевых выражениях как операторы и для операций сравнения.
Таблица 3.
Символ |
Функция |
|
_ (подчеркивание) |
Используемые пользователем идентификаторы |
|
- (тире) |
символы в символических именах |
|
-- (два тире) |
Начинает комментарий в стиле VHDL, который продолжается до конца строки |
|
% (процент) |
Заключает с двух сторон комментарий стиля AHDL |
|
() (круглые скобки) |
Заключают и определяют последовательные имена групп. Заключают имена выводов в секции подпроекта (Subdesign Section) и в прототипах функций. Заключают (необязательно) входы и выходы таблиц в объявлении Truth Table. Заключают состояния в объявлении цифрового автомата State Machine. Заключают более приоритетные операции в булевых выражениях. Заключают необязательные варианты в секции проекта Design Section (внутри объявления назначения ресурсов Assignment). |
|
[] (квадратные скобки) |
Заключают диапазон значений в десятичном имени группы |
|
'. ' (одинарные кавычки) |
Заключают символические имена. |
|
". " (двойные кавычки) |
Заключают строку в объявлении названия Title Заключают цифры в не десятичных номерах Заключают путь в объявлении Include. Могут (необязательно) заключать имя проекта и устройства в секции проекта Design Section. Могут (необязательно) заключать имя в объявлении назначения клики графа Clique Assignment. |
|
. (точка) |
Отделяет символические имена переменных в макрофункции или примитиве от имен портов. Отделяет имя файла от расширения |
|
. (многоточие) |
Разделяет наименьшее и наибольшее значение в диапазонах |
|
; (точка с запятой) |
Заканчивает объявления и секции в языке AHDL |
|
, (запятая) |
Разделяет элементы последовательных групп и списков |
|
: (двоеточие) |
Отделяет символические имена от типов в объявлениях и назначениях ресурсов. |
|
@ "собака” |
Присваивает символические узлы выводам устройства и логическим ячейкам в объявлениях назначения ресурсов Resource Assignment |
|
= (равенство) |
Присваивает значения по умолчанию GND и VCC входам в секции подпроекта Subdesign. Присваивает установочные значения в вариантах. Присваивает значения состояниям в машине состояний. Присваивает значения в булевых уравнениях. |
|
=> (стрелка) |
Отделяет входы от выходов в объявлениях таблицы истинности Truth Table. Отделяет предложения с WHEN от булевых выражений в операторе Case. |
Имена в кавычках и без кавычек
В языке AHDL есть три типа имен:
Символические имена - это определяемые пользователем идентификаторы. Они используются для обозначения следующих частей TDF:
- внутренних и внешних узлов (вершин);
- констант;
- переменных цифрового автомата, битов состояний, имен состояний;
- примеров (Instance).
Имена подпроекта (модуля) - это определяемые пользователем имена для файлов проекта более низкого уровня. Имя подпроекта должно быть таким же, как имя файла TDF.
Имена портов - это символические имена, идентифицирующие вход или выход примитива или макрофункции.
В файле. fit проекта могут появиться генерируемые компилятором имена выводов, с символом "тильда” (~). Этот символ зарезервирован для имен, генерируемых компилятором, пользователю запрещается его использовать для обозначения имен выводов, узлов (вершин), групп (шин). Существуют две формы записи для всех трех типов имен (символических, подпроекта и портов): в кавычках (') и без кавычек.
Если разработчик создает символ по умолчанию для файла TDF, который включает в себя имена портов в кавычках, собственно кавычки не входят в имена выводов.
Числа в языке AHDL
В языке AHDL можно использовать десятичные, двоичные, восьмеричные и шестнадцатеричные числа в любой комбинации. В таблице 4 приведен синтаксис записи чисел в языке AHDL для каждой системы счисления.
Таблица 4.
Система счисления |
Значения |
|
Десятичная |
<последовательность цифр 0-9> |
|
Двоичная |
B"<последовательность из 0, 1, X>", где символ Х обозначает безразличное значение |
|
Восьмеричная |
O"< последовательность цифр 0-7>" или Q"< последовательность цифр 0-7>" |
|
Шестнадцатеричная |
X"< последовательность цифр 0-9, букв A-F>" или H"< последовательность цифр 0-9, букв A-F>" |
Логические операторы
В таблице 5 приведены логические операторы для булевых выражений.
Таблица 5.
Оператор: |
Пример: |
Описание: |
|
! |
! х |
Инверсия (префиксное обращение) |
|
NOT |
NOT х |
||
& |
х1 & х2 |
Логическое И |
|
AND |
х1 AND х2 |
||
! & |
a [3.1]! & b [5.3] |
И-НЕ |
|
NAND |
a [3.1] NAND b [5.3] |
||
# |
х1 # х2 |
Логическое ИЛИ |
|
OR |
х1 OR х2 |
||
! # |
c [8.5]! # d [7.4] |
ИЛИ-НЕ |
|
NOR |
c [8.5] NORd [7.4] |
||
$ |
х1 $ х2 |
Исключающее ИЛИ |
|
XOR |
х1 XOR х2 |
||
! $ |
x2! $ x4 |
Инверсия исключающего ИЛИ |
|
XNOR |
x2 XNOR x4 |
Каждый оператор представляет собой логический вентиль с двумя входами; исключение составляет оператор NOT, являющийся префиксным инвертором. Для записи логического оператора можно использовать его имя или символ.
Выражения, в которых используются эти операторы, интерпретируются по-разному в зависимости оттого, что представляют собой операнды: одиночные узлы (вершины), группы или числа. Кроме того, выражения с оператором NOT интерпретируются не так как другие логические операторы.
Реализация проекта цифровой схемы в текстовом редакторе Quartus II.
Рассмотрим работу с текстовым редактором Quartus II на примере реализации булевой функции: .
Шаг 1.
Создаем проект как в Задании №1, выбирая при этом другое имя проекта, например: lab21. qpf. Чтобы создать новый файл, принадлежащий проекту, выбираем пункт меню File\New.
Шаг 2.
Нужно создать файл, описывающий устройство в текстовом редакторе. Выбираем Design File\AHDL File.
Шаг 3.
Сохраняем новый файл под именем lab21. bdf.
Шаг 4.
Описание булевой функции на языке AHDL.
Шаг 5.
Прежде чем делать симуляцию нужно откомпилировать проект. Выбираем пункты меню Processing\Start Compilation (или выбрать на панели инструментов кнопку Start Compilation).
Шаг 6.
Создадим файл для симуляции. В нем можно будет описывать входные сигналы и задавать выходные сигналы. Выбираем пункт меню File\New и затем в появившемся диалоге Verification\Debugging Files\ University Program VWF (Vector Waveform File).
Шаг 7.
Надо выбрать элементы, которые будем смотреть и которые будем определять. Клик правой клавиши мыши на левой панели Names и в выпадающем меню выбираем пукнт Insert\Insert Node or Bus.
Шаг 8.
Появилось диалоговое окно. В нем можно набрать имя выхода какого-нибудь сигнала или элемента. Полное имя сигнала может быть очень длинным и не всегда понятным. Поэтому лучше воспользоваться поиском сигнала в проекте. Нажимаем кнопку Node Finder.
Шаг 9.
Появляется диалоговое окно для поиска сигналов в проекте Node Finder. В поле Look указано имя нашего проекта - в нем будет поиск сигнала. Здесь ничего менять не нужно. В поле Named можно задать часть имени сигнала или провода. Например, надо найти выход модуля с именем data, но в проекте несколько модулей с выходами/входами с таким именем. Тогда для поиска в этом поле Named нужно указать *data*. Потом нажать кнопку List (произвести поиск) и в таблице Nodes Found будет показан список всех модулей содержащих такой сигнал. Если указать просто *, то это значит, что будут отображены вообще все сигналы, не зависимо от имени. Еще важное поле - Filter. Здесь из списка можно выбрать тип сигналов для поиска. Выбираем сейчас Pins: All - то есть физические входы и выходы микросхемы. Нажимаем кнопку List и видим список входов и выходов.
Шаг 10.
Выбираем все нужные сигналы слева в таблице найденных сигналов Nodes Found и переносим их вправо в таблицу выбранных сигналов Selected Nodes. Нажимаем кнопку "OK".
Шаг 11.
Прежде чем редактировать сами сигналы нужно задать временную сетку (для удобства кратную 2). Для этого надо зайти в пункт меню Edit\Grid Size или нажать на панели инструментов кнопку Count Value.
Шаг 12.
Запускаем симулятор из пункта меню Processing\Run Functional Simulation (или на панели инструментов выбрать кнопку Run Functional Simulation).
Шаг 13.
Результат моделирования работы схемы в сигнальном редакторе.
Задание № 3. Моделирование цифровых схем с использованием параметрических элементов
Цель работы:
Приобретение навыков использования параметрических элементов (LPM function) в Quartus II, экспериментальное исследование счетчиков и регистров, построенных на их основе.
Основные теоретические сведения:
Счетчики и регистры Регистры и счетчики относятся к разряду цифровых устройств и являются одним из наиболее распространенных элементов вычислительной техники. Они широко используются для построения устройств ввода, вывода и хранения информации, а также для выполнения некоторых арифметических и логических операций.
Для построения счетчиков и регистров используются синхронные триггеры, переключение которых происходит только при наличии синхронизирующего сигнала (синхроимпульса) на входе С. Наиболее часто для построения регистров и счетчиков используется D-триггер, имеющий специальный информационный вход D, и динамический вход С (рис. 1.1).
Рис. 1.1 D - триггер
Устройство, называемое счетчиком, предназначено для подсчета числа поступающих на вход сигналов (импульсов) в произвольной системе счисления. Двоичные счетчики строятся на основе триггеров, работающих в счетном режиме (Т - триггер или счетный триггер).
Счетный триггер может быть получен из универсального D - триггера путем соединения его инверсного выхода Q со входом D.
Счетный триггер и эпюры сигналов, поясняющие его работу, представлены на рис. 1.2.
Рис. 1.2 Счетный триггер и его работа
У счетного триггера состояние выхода изменяется на противоположное при поступлении на вход С каждого очередного счетного импульса.
Функциональная схема и условное графическое обозначение двоичного счетчика с коэффициентом пересчета 23 представлена на рис. 1.3.
Рис. 1.3 Двоичный счетчик
Рис. 1.4 Диаграммы работы двоичного счетчика
Каждый поступающий на вход счетчика импульс перебрасывает первый триггер в противоположное состояние (рис. 1.4). Сигнал с инверсного выхода предыдущего триггера является входным сигналом для последующего и, таким образом, комбинация сигналов на выходах Q1, Q2, Q3 будет соответствовать числу поступивших на вход счетчика импульсов, представленному в двоичном коде. Счетчик данного типа называется асинхронным счетчиком.
Если на счетный вход каждого последующего триггера счетчика подавать сигнал с прямого выхода предыдущего триггера, то счетчик будет производить операцию вычитания. Счетчики, способные выполнять функции сложения и вычитания, называются реверсивными.
Для построения счетчика с требуемым коэффициентом пересчета Кс, отличным от величины 2N (N - число двоичных разрядов счетчика), используется принудительный сброс счетчика в исходное состояние при достижении счетчиком числа Кс.
Устройство, называемое регистром, служит в основном для хранения чисел в двоичном коде при выполнении над ними различных арифметических и логических операций. С помощью регистров выполняются такие действия над числами, как передача их из одного устройства в другое, арифметический и логический сдвиг в сторону младших или старших разрядов, преобразование кода из последовательного в параллельный и наоборот и т.д.
Рис. 1.5 Регистр сдвига
Функциональная схема и условно-графическое обозначение регистра сдвига представлены на рис. 1.5.
Последовательный информационный код поступит на вход D регистра. Импульс команды сдвига С подается одновременно на синхронизирующие входы всех триггеров регистра и переводит каждый триггер в состояние, в котором находился триггер предыдущего разряда. Таким образом, каждый импульс команды сдвига "продвигает" записываемое число на один разряд вправо.
При введении обратной связи в регистр сдвига, последний превращается в замкнутое кольцо, в котором под воздействием тактовых импульсов циркулирует введенная в регистр информация. Такие регистры называют кольцевыми счетчиками. Кодовая единица, введенная в первый триггер, циркулирует в течении всего времени существования тактовых импульсов, подаваемых на входы С всех триггеров счетчика. Приходящий тактовый импульс перебрасывает триггер, который был в состоянии 1, в состояние 0. Поскольку выход Q этого триггера связан с входом D следующего триггера, то последний устанавливается в состояние 1 и т.д. Количество состояний такого счетчика равно числу триггеров.
Реализация проекта на параметрических элементах
Применение параметрических элементов Quartus II в разработке проектов цифровых схем рассмотрим на примере реализации дешифратора на 3 входа.
Шаг 1.
Создаем проект как в Задании №1, выбирая при этом другое имя проекта, например: lab3. qpf. Чтобы создать новый файл, принадлежащий проекту, выбираем пункт меню File\New.
Шаг 2.
Нужно создать файл, описывающий устройство. Это Design File. Выбираем создание схемы Block Diagram\Schematic File.
Шаг 3.
Сохраняем наш новый файл под именем lab3. bdf.
Шаг 4.
В поле графического редактора схем нажимаем правую кнопку мыши и в выпадающем меню выбираем пункты Insert\Symbol - вставить элемент. Или на панели инструментов выбираем кнопку Symbol Tool.
Шаг 5.
Из библиотек Quartus II выбираем нужный параметрический элемент \megafunctions\gates\lpm_decode (дешифратор). Нажимаем "ОК".
Шаг 6.
Далее появится окно менеджера, нажимаем кнопку "Next".
Шаг 7.
На этом шаге надо выбрать количество входов и выходов. Выбираем 3 входа, при этом автоматически высвечиваются выходы. Добавляем их все, нажимая кнопку Add all. Так как в задании дополнительных параметров задавать не надо, то нажимаем Finish.
Шаг 8.
Параметрический элемент - дешифратор на 3 входа готов. Осталось вывести входы и выходы.
Шаг 9.
Выбираем нужные нам входы и выходы \ primitives\pin\input и \primitives\pin\output.
Шаг 10.
Выбирая на панели инструментов Orthogonal Node Tool, соединяем элементы между собой. Назовем входы и выходы - клик правой кнопки мыши на элементе и выбираем пункт меню свойства Properties.
Шаг 11.
Прежде чем делать симуляцию нужно откомпилировать проект. Выбираем пункты меню Processing\Start Compilation (или выбрать на панели инструментов кнопку Start Compilation).
Шаг 12.
Создадим файл для симуляции. В нем можно будет описывать входные сигналы и задавать выходные сигналы. Выбираем пункт меню File\New и затем в появившемся диалоге Verification\Debugging Files\ University Program VWF (Vector Waveform File).
Шаг 13.
Надо выбрать элементы, которые будем смотреть и которые будем определять. Клик правой клавиши мыши на левой панели Names и в выпадающем меню выбираем пукнт Insert\Insert Node or Bus.
Шаг 14.
Появилось диалоговое окно. В нем можно набрать имя выхода какого-нибудь сигнала или элемента. Полное имя сигнала может быть очень длинным и не всегда понятным. Поэтому лучше воспользоваться поиском сигнала в проекте. Нажимаем кнопку Node Finder.
Шаг 15.
Появляется диалоговое окно для поиска сигналов в проекте Node Finder. В поле Look указано имя нашего проекта - в нем будет поиск сигнала. Здесь ничего менять не нужно. В поле Named можно задать часть имени сигнала или провода. Например, надо найти выход модуля с именем data, но в проекте несколько модулей с выходами/входами с таким именем. Тогда для поиска в этом поле Named нужно указать *data*. Потом нажать кнопку List (произвести поиск) и в таблице Nodes Found будет показан список всех модулей содержащих такой сигнал. Если указать просто *, то это значит, что будут отображены вообще все сигналы, не зависимо от имени. Еще важное поле - Filter. Здесь из списка можно выбрать тип сигналов для поиска. Выбираем сейчас Pins: All - то есть физические входы и выходы микросхемы. Нажимаем кнопку List и видим список входов и выходов.
Шаг 16.
Выбираем все нужные сигналы слева в таблице найденных сигналов Nodes Found и переносим их вправо в таблицу выбранных сигналов Selected Nodes. В данном задании достаточно добавить шину входящих сигналов, то есть Input Group, и все выходы. Нажимаем кнопку "OK".
Шаг 17.
Запускаем симулятор из пункта меню Processing\Run Functional Simulation (или на панели инструментов выбрать кнопку Run Functional Simulation).
Шаг 18.
Результат моделирования работы схемы в сигнальном редакторе.
Задание № 4
Цель работы:
Ознакомиться с САПР Quartus II фирмы Altera, получить практические навыки создания проектов по схемотехнике ЭВМ в САПР (ввод схем, компиляция и моделирование).
Реализация проекта
Шаг 1.
№ состояния |
№ состояния из варианта |
Двоичный код q3,q2,q1,q0 |
|
0 |
6 |
0110 |
|
1 |
4 |
0100 |
|
2 |
13 |
1011 |
|
3 |
10 |
1010 |
|
4 |
15 |
1111 |
|
5 |
5 |
0101 |
|
6 |
0 |
0000 |
|
7 |
3 |
0011 |
|
8 |
11 |
1011 |
|
9 |
12 |
1100 |
|
10 |
1 |
0001 |
|
11 |
9 |
1001 |
|
12 |
2 |
0010 |
|
13 |
14 |
1110 |
|
14 |
8 |
1000 |
|
15 |
7 |
0111 |
Составим таблицу перекодировки состояний автомата и их двоичный код.
Шаг 2.
Изобразим граф состояния с учетом таблицы перекодировки.
Шаг 3.
старое состояние |
условие |
новое состояние |
|||
№ |
код |
№ |
Код |
||
6 |
0110 |
- |
4 |
0100 |
|
4 |
0100 |
A=0 |
11 |
1011 |
|
4 |
0100 |
A=1 |
13 |
1101 |
|
11 |
1011 |
- |
12 |
1100 |
|
12 |
1100 |
- |
1 |
0001 |
|
1 |
0001 |
B=0 |
2 |
0010 |
|
1 |
0001 |
B=1 |
9 |
1001 |
|
2 |
0010 |
- |
3 |
0011 |
|
3 |
0011 |
- |
14 |
1110 |
|
14 |
1110 |
- |
8 |
1000 |
|
8 |
1000 |
- |
7 |
0111 |
|
7 |
0111 |
- |
6 |
0110 |
|
13 |
1101 |
- |
10 |
1010 |
|
10 |
1010 |
B=0 |
15 |
1111 |
|
10 |
1010 |
B=1 |
5 |
0101 |
|
15 |
1111 |
- |
0 |
0000 |
|
0 |
0000 |
- |
3 |
0011 |
|
9 |
1001 |
- |
3 |
0011 |
|
5 |
0101 |
- |
0 |
0000 |
Составим таблицу истинности автомата с учетом представленного графа.
Шаг 4.
Создаем проект как в Задании №1, выбирая при этом другое имя проекта, например: lab4. qpf. Чтобы создать новый файл, принадлежащий проекту, выбираем пункт меню File\New.
Шаг 5.
Нужно создать файл, описывающий устройство. Это Design File. Выбираем создание схемы Block Diagram\Schematic File.
Шаг 6.
Сохраняем наш новый файл под именем lab4. bdf.
Шаг 7.
В поле графического редактора схем нажимаем правую кнопку мыши и в выпадающем меню выбираем пункты Insert\Symbol - вставить элемент. Или на панели инструментов выбираем кнопку Symbol Tool.
Шаг 8.
С помощью примитивов, входов, выходов проектируем функциональную схему в редакторе Quartus II без минимизации. Расставляем значения состояний в зависимости от логики таблицы истинности.
Шаг 9.
Прежде чем делать симуляцию нужно откомпилировать проект. Выбираем пункты меню Processing\Start Compilation (или выбрать на панели инструментов кнопку Start Compilation).
Шаг 10.
Создадим файл для симуляции. В нем можно будет описывать входные сигналы и задавать выходные сигналы. Выбираем пункт меню File\New и затем в появившемся диалоге Verification\Debugging Files\ University Program VWF (Vector Waveform File).
Шаг 11.
Надо выбрать элементы, которые будем смотреть и которые будем определять. Клик правой клавиши мыши на левой панели Names и в выпадающем меню выбираем пукнт Insert\Insert Node or Bus.
Шаг 12.
Появилось диалоговое окно. В нем можно набрать имя выхода какого-нибудь сигнала или элемента. Полное имя сигнала может быть очень длинным и не всегда понятным. Поэтому лучше воспользоваться поиском сигнала в проекте. Нажимаем кнопку Node Finder. Появляется диалоговое окно для поиска сигналов в проекте Node Finder. Нажимаем кнопку List и видим список входов и выходов. Выбираем все нужные сигналы слева в таблице найденных сигналов Nodes Found и переносим их вправо в таблицу выбранных сигналов Selected Nodes. В данном задании достаточно добавить шину входящих сигналов, то есть Input Group, и все выходы. Нажимаем кнопку "OK".
Шаг 13.
Запускаем симулятор из пункта меню Processing\Run Functional Simulation (или на панели инструментов выбрать кнопку Run Functional Simulation). С помощью кнопок Forcing Low (0) и Forcing High (1) на панели инструментов ставим определенные значения "0" и "1" для а и b.
Шаг 14.
Результат моделирования работы схемы в сигнальном редакторе.
Значение параметров сигналов в редакторе подробнее:
При значениях а=0 и b=0 сигнал идет по ветке (рис.1.1): 6-4-11-12-1-2-3-14-8-7, что соответствует графу.
При значениях а=0 и b=1 сигнал идет по ветке (рис.1.2): 6-4-11-12-1-9-3-14-8-7, что соответствует графу.
Рис. 1.2
При значениях а=1 и b= сигнал идет по ветке (рис.1.3): 6-4-13-10-5-0-3-14-8-7, что соответствует графу.
Рис. 1.3
При значениях а=0 и b=0 сигнал идет по ветке (рис.1.4): 6-4-13-10-15-0-3-14-8-7, что соответствует графу.
Рис. 1.4
Вывод
Какой бы ни делать проект для CPLD или FPGA: сложный или простой, всегда полезно произвести его симуляцию. Симуляция - это программное тестирование проекта, всегда делается до его проверки в железе. Микросхема имеет входы и выходы. Если задать, например, последовательность и длительность входных импульсов, то система проектирования сможет просчитать результирующие сигналы на всех выходах. И не только на выходах. С помощью симуляции можно заглянуть внутрь всех модулей проекта и посмотреть на процессы, происходящие внутри чипа. Так, еще до тестирования в реальном чипе можно понять правильно работает проект или нет. Таким образом, работа в Quartus II компании Altera позволяет быстро и надежно создать проект, сэкономив при этом и время, и средства.
Список литературы
1. Методические указания по выполнению лабораторных работ для студентов вечернего и заочного отделений специальности 230101. Составители: О.Е. Добронравов, Л.В. Казанцева, М.И. Антик.
2. Информация с сайта http://marsohod.org/index. php/ourblog/11/86-quartussim.
3. Соловьев В.В. Проектирование цифровых систем на основе программируемых логических интегральных схем. - М.: Горячая линия - Телеком, 2001. - 636 с.
4. Стешенко В. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов - М.: Додека, 2000. - 128 с.
5. Стешенко В. ПЛИС фирмы ALTERA: элементная база, система проектирования и языки описания аппаратуры - М.: Додека, 2002. - 576 с.
6. А.П. Язык описания цифровых устройств AlteraHDL: Практический курс. - М.: ИП "Радиософт", 2001. - 224 с.
7. Пухальский Г.И., Новосельцева Т.Я. Цифровые устройства: учебное пособие для втузов. СПб.: "Политехника", 1996.885 с.
Размещено на Allbest.ru
Подобные документы
Описание комбинационных и последовательностных логических устройств, групповых операций, цифровых таблиц истинности с учетом архитектурных особенностей. Особенности языка AHDL. Зарезервированные ключевые слова. Реализация иерархического проекта.
реферат [2,2 M], добавлен 23.01.2014Изучение логических операций и правил их преобразований. Моделирование цифровых схем, состоящих из логических вентилей. Способы описания работы логического устройства - таблицы истинности, временные диаграммы, аналитические функции, цифровые схемы.
лабораторная работа [2,1 M], добавлен 02.03.2011Генератор для входных параметров логических элементов. Ключевые понятия и принципы конструирования функциональных схем электронных устройств. Схемы некоторых устройств компьютера. Творческая мастерская Excel-графики, вентильные сказки братьев Гейтс.
методичка [2,1 M], добавлен 16.03.2014Применение математических методов для решения логических задач и построения логических схем. Определение и реализация булевых функций. Основные схемы функциональных элементов. Программируемые логические матрицы. Правила составления таблицы истинности.
курсовая работа [821,6 K], добавлен 19.03.2012Оценка риска статического сбоя по всем выходным переменным. Анализ цифровых схем по методу простой итерации и событийному методу. Моделирование аналоговых схем: метод узловых потенциалов и переменных состояния. Анализ цифровых схем по методам Зейделя.
контрольная работа [382,1 K], добавлен 10.11.2010Типовые комбинационные схемы. Основы математического аппарата анализа и синтеза логических устройств. Функциональная полнота элементов Шеффера и Пирса. Логические элементы, образующие логический базис. Особенности синтеза схем с запрещенными комбинациями.
методичка [977,1 K], добавлен 28.04.2009Двоичная система исчисления. Характеристика понятий систем исчисления, значение позиции. Десятичные числа и их двоичные и шестнадцатеричные эквиваленты. Двоичные логические элементы, обработка цифровых сигналов. Построение комбинационных логических схем.
учебное пособие [68,7 K], добавлен 09.02.2009Моделирование схем с резистивным нелинейным элементом. Исследование характеристик транзистора. Графический ввод, редактирование и анализ принципиальных схем в режимах анализа переходных процессов, частотного анализа и анализа в режиме постоянного тока.
контрольная работа [676,7 K], добавлен 12.03.2011Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.
курсовая работа [671,3 K], добавлен 04.11.2014Теоретические аспекты среды программирования Delphi. Сущность понятия жизненного цикла, характеристика спиральной модели. Назначение программы "Графический редактор", ее основные функции. Работа с графическим редактором, документирование программы.
курсовая работа [695,6 K], добавлен 16.12.2011