Введение
Цифровые устройства лежат в основе практически всех современных систем — от бытовой техники до сложнейших промышленных комплексов и систем связи. Особое место среди них занимают генераторы последовательностей, которые являются ключевыми компонентами в задачах тестирования оборудования, криптографии и управления. Их способность формировать предопределенные или псевдослучайные цифровые сигналы делает их незаменимыми. Фундаментальной основой для их проектирования служит теория дискретных устройств, которая предоставляет математический аппарат для формализации и синтеза таких систем.
Целью данной курсовой работы является проектирование логического генератора заданной цифровой последовательности. Для достижения этой цели необходимо решить следующие ключевые задачи:
- Провести анализ существующих математических моделей конечных автоматов и выбрать наиболее подходящую для решения поставленной задачи.
- Выполнить синтез абстрактного автомата, формально описывающего логику работы генератора.
- Осуществить структурный синтез, то есть разработать принципиальную логическую схему устройства на конкретной элементной базе.
- Проверить работоспособность спроектированного генератора путем анализа его временных диаграмм.
Раздел 1. Формулировка технического задания на проектирование
Любое проектирование начинается с четкого определения требований, которые служат основой для всех последующих этапов. Этот раздел формулирует техническое задание (ТЗ), которое является своего рода «контрактом» на разработку. Все дальнейшие шаги и принимаемые решения должны строго соответствовать изложенным здесь условиям.
Основные требования к проектируемому генератору:
- Генерируемая последовательность: Устройство должно циклически генерировать на своем выходе следующую битовую последовательность: 101101.
- Элементная база: Схема должна быть реализована с использованием D-триггеров в качестве элементов памяти и базовых логических элементов И-НЕ для построения комбинационной части.
- Синхронизация: Генератор должен быть синхронным, то есть смена его состояний должна происходить по фронту тактового сигнала.
- Параметры для анализа: В ходе работы необходимо получить и проанализировать следующие характеристики:
- Принципиальную логическую схему устройства.
- Временные диаграммы, подтверждающие корректность генерации заданной последовательности.
- Оценку сложности схемы, выраженную в количестве использованных триггеров и логических элементов.
Эти исходные данные полностью определяют рамки проекта и позволяют перейти к выбору теоретической основы для его реализации.
Раздел 2. Анализ и выбор математической модели конечного автомата
В основе любого цифрового устройства с памятью лежит концепция конечного автомата — математической абстракции, описывающей систему с конечным числом состояний. Существует две классические модели автоматов, различающиеся способом формирования выходного сигнала: автомат Мура и автомат Мили.
Автомат Мили формирует выходной сигнал (Y), который зависит как от текущего состояния (A) автомата, так и от входного сигнала (X) в данный момент времени. Это можно описать функцией Y = f(A, X). Такая модель очень гибкая, но может приводить к кратковременным ложным сигналам на выходе при смене входных данных, так как выход является асинхронной комбинаторной функцией.
Автомат Мура, в свою очередь, формирует выходной сигнал, который зависит только от текущего состояния автомата: Y = f(A). Выходной сигнал жестко привязан к состоянию и изменяется только в момент перехода автомата в новое состояние, синхронно с тактовым сигналом. Это делает его более предсказуемым и устойчивым к «гонкам» сигналов.
Для задачи проектирования генератора последовательности, где выходной сигнал должен быть стабилен в течение всего такта и однозначно определяться текущим шагом генерации (состоянием), модель автомата Мура является предпочтительной. Она обеспечивает большую надежность и простоту синтеза, так как функция выходов не зависит от внешних входных сигналов (которых у автономного генератора и нет), что исключает риск появления ложных импульсов.
Таким образом, для дальнейшего проектирования мы выбираем модель автомата Мура как математический фундамент нашего устройства.
Раздел 3. Синтез абстрактного автомата для заданной последовательности
Абстрактный синтез — это процесс перехода от словесного описания задачи к ее формальной математической модели. Для автомата Мура эта модель представляется в виде размеченного графа состояний и соответствующей ему таблицы переходов-выходов. На этом этапе мы определяем «что» должен делать автомат, не задумываясь о том, «как» он будет это делать на уровне электронных компонентов.
Для генерации последовательности 101101 нам потребуется 6 уникальных состояний. Каждому состоянию (от A0 до A5) мы поставим в соответствие один бит из последовательности. Граф состояний будет представлять собой цикл, где из каждого состояния есть только один переход в следующее по тактовому сигналу.
На основе графа составляется каноническая таблица переходов-выходов — основной документ для дальнейшего проектирования. В ней для каждого текущего состояния указывается соответствующий выходной сигнал и следующее состояние.
Текущее состояние (A(t)) | Выход (Y) | Следующее состояние (A(t+1)) |
---|---|---|
A0 | 1 | A1 |
A1 | 0 | A2 |
A2 | 1 | A3 |
A3 | 1 | A4 |
A4 | 0 | A5 |
A5 | 1 | A0 |
Поскольку все состояния в цикле генерируют уникальную последовательность переходов, минимизация числа состояний не требуется. Данная таблица является полным и достаточным абстрактным описанием нашего будущего генератора.
Раздел 4. Как происходит структурный синтез схемы на триггерах
Структурный синтез — это самый сложный и ответственный этап, на котором абстрактная модель автомата преобразуется в конкретную логическую схему. Задача этого этапа — получить логические уравнения, описывающие комбинационную часть схемы, которая будет управлять триггерами.
Первый шаг — кодирование состояний. Нам нужно 6 состояний, для их кодирования потребуется 3 триггера (2^3 = 8 комбинаций). Присвоим каждому состоянию (A0-A5) уникальный трехбитный код (Q2, Q1, Q0).
Далее, согласно ТЗ, мы используем D-триггеры. Их главное преимущество — простота управления: сигнал на информационном входе D в момент тактового импульса просто записывается на выход Q. То есть, чтобы на выходе триггера в следующий момент времени (Q(t+1)) появился нужный сигнал, на его D-вход нужно подать этот же сигнал в текущий момент времени (D = Q(t+1)). Это значительно упрощает составление функций возбуждения.
На основе кодированной таблицы переходов составляются таблицы истинности для функций возбуждения каждого триггера (D2, D1, D0) и для функции выхода (Y). В этих таблицах входами являются текущие состояния триггеров (Q2, Q1, Q0), а выходами — значения, которые должны быть поданы на D-входы и на выход Y.
Затем для каждой из четырех функций (D2, D1, D0, Y) производится минимизация. Этот процесс позволяет найти наиболее простое логическое выражение, реализующее требуемую функцию, что ведет к уменьшению числа логических элементов в итоговой схеме. Минимизацию удобно проводить с помощью карт Карно. В результате мы получаем итоговые, минимизированные логические уравнения, например, в виде:
D2 = f(Q2, Q1, Q0)
D1 = f(Q2, Q1, Q0)
D0 = f(Q2, Q1, Q0)
Y = f(Q2, Q1, Q0)
Эти уравнения являются финальным результатом структурного синтеза и прямым руководством для построения принципиальной схемы.
Раздел 5. Разработка и описание принципиальной логической схемы
Имея на руках минимизированные логические уравнения для функций возбуждения и функции выхода, мы можем визуализировать их в виде принципиальной логической схемы. Эта схема является чертежом будущего устройства и показывает, как именно электронные компоненты должны быть соединены между собой.
Схема генератора состоит из двух основных частей:
- Память автомата: Реализуется на трех D-триггерах, которые хранят код текущего состояния (Q2, Q1, Q0). Все тактовые входы (C) триггеров объединены и подключены к единому источнику тактового сигнала CLK, что обеспечивает синхронную работу.
- Комбинационная схема: Реализуется на логических элементах И-НЕ (согласно ТЗ). Она выполняет роль «мозга» устройства. На ее входы поступают сигналы с выходов триггеров (сигналы обратной связи), а ее выходы подключены к D-входам триггеров и к внешнему выходу Y.
Принцип работы схемы: По приходу активного фронта тактового сигнала CLK, триггеры запоминают те логические уровни, которые в этот момент времени сформированы комбинационной схемой на их D-входах. Состояние триггеров меняется, что приводит к изменению сигналов на их выходах. Эти новые сигналы поступают на входы комбинационной схемы, которая, в свою очередь, вычисляет новое значение для выхода Y и новые значения для D-входов, подготавливая автомат к следующему такту. Этот процесс циклически повторяется, формируя на выходе Y заданную последовательность.
Раздел 6. Пример реализации генератора на языке описания аппаратуры VHDL
Ручной структурный синтез, хотя и является фундаментальным знанием, в современной индустрии практически вытеснен системами автоматизированного проектирования (САПР), такими как Xilinx Vivado или Intel Quartus Prime. Основой для работы в таких системах служат языки описания аппаратуры (HDL), из которых наиболее популярны VHDL и Verilog.
HDL позволяет описывать не то, как схема нарисована, а то, как она себя ведет. Это поведенческое описание гораздо ближе к абстрактной модели автомата. Процесс проектирования сводится к написанию текстового файла (кода), который затем специальная программа-синтезатор автоматически преобразует в сложнейшую схему из тысяч логических элементов.
Ниже представлен пример кода на VHDL, реализующего наш генератор:
— Объявление сущности с портами: тактовый сигнал и выход
entity sequence_generator is
port (
CLK : in std_logic;
Y : out std_logic
);
end sequence_generator;— Описание архитектуры (поведения)
architecture Behavioral of sequence_generator is
— Определяем тип для состояний и сигнал текущего состояния
type state_type is (A0, A1, A2, A3, A4, A5);
signal current_state : state_type := A0;
begin
— Описываем процесс, чувствительный к тактовому сигналу
process(CLK)
begin
if rising_edge(CLK) then
— Оператор выбора для описания переходов состояний
case current_state is
when A0 => current_state <= A1;
when A1 => current_state <= A2;
when A2 => current_state <= A3;
when A3 => current_state <= A4;
when A4 => current_state <= A5;
when A5 => current_state <= A0;
end case;
end if;
end process;— Формирование выходного сигнала в зависимости от состояния (модель Мура)
Y <= ‘1’ when current_state = A0 or current_state = A2 or current_state = A3 or current_state = A5 else ‘0’;
end Behavioral;
Как видно, трудоемкость HDL-описания несопоставимо ниже ручного синтеза. Это позволяет инженерам сосредоточиться на архитектуре устройства, а не на рутинной минимизации функций, доверяя эту работу САПР.
Раздел 7. Анализ временных диаграмм и проверка работоспособности
Финальным и важнейшим этапом проектирования является проверка — доказательство того, что созданное устройство работает корректно и полностью соответствует техническому заданию. Независимо от способа реализации (принципиальная схема или HDL-код), наиболее наглядным инструментом для проверки служит временная диаграмма.
Временная диаграмма — это график, который показывает изменение логических сигналов в схеме с течением времени. Для нашего генератора ключевыми сигналами для анализа являются:
- CLK: Тактовый сигнал, задающий ритм работы всей схемы.
- Q[2:0]: Состояния выходов триггеров, показывающие, в каком закодированном состоянии находится автомат в каждый момент времени.
- Y: Выходной сигнал генератора.
Анализ диаграммы заключается в пошаговом отслеживании сигналов. Мы должны убедиться, что по каждому нарастающему фронту сигнала CLK состояние триггеров (Q[2:0]) меняется в строгом соответствии с нашей таблицей переходов. Одновременно мы проверяем, что в каждом состоянии сигнал на выходе Y соответствует значению, заданному в той же таблице. Пройдя по полному циклу из шести тактов, мы должны увидеть на выходе Y последовательность 1, 0, 1, 1, 0, 1. Если полученная на диаграмме последовательность совпадает с указанной в ТЗ, это является неопровержимым доказательством корректности проделанной работы.
Заключение
В ходе выполнения данной курсовой работы был пройден полный цикл проектирования цифрового устройства — синхронного логического генератора последовательностей. Были успешно решены все поставленные задачи и достигнуты конкретные результаты.
Ключевые итоги работы:
- Проведен сравнительный анализ моделей конечных автоматов, по результатам которого для решения задачи была обоснованно выбрана модель автомата Мура как наиболее надежная и предсказуемая.
- Выполнен абстрактный синтез, результатом которого стала формальная модель устройства в виде графа и таблицы переходов-выходов.
- Произведен структурный синтез на базе D-триггеров и элементов И-НЕ, который завершился получением минимизированных логических функций и итоговой принципиальной схемы.
- Рассмотрен современный подход к проектированию с использованием языка описания аппаратуры VHDL, демонстрирующий высокую эффективность и уровень абстракции.
- Подтверждена работоспособность проекта путем анализа временных диаграмм, доказавшего полное соответствие генерируемой последовательности техническому заданию.
В качестве дальнейшего развития проекта можно рассмотреть его физическую реализацию на программируемой логической интегральной схеме (ПЛИС), усложнение генерируемой последовательности или добавление внешних входов для управления режимами работы. Также интересным направлением является сравнение аппаратной реализации с программной на базе современных микроконтроллеров.
Список использованной литературы
- Теоретическое введение для курсовой работы «Разработка генератора логической последовательности заданной формы»: Методические указания для курсовых работ по дисциплине «Информатика»: Воронежский институт высоких технологий – АНОО ВПО – 9 c.
- Чулков В.А. Схемотехника ЭВМ. Учебник в 6 ч. – Ч.3. Комбинационные узлы. – Пенза, Изд-во Пенз. гос. технол. академии, 2009. — 54 с.
- Угрюмов Е.П. Цифровая схемотехника. Учебное пособие. – СПб, БХВ-СПб, 2004, — 820 с.
- Основы информатики: Учеб. пособие /И.Я. Львович, Ю.П. Преображенский, В.В.Ермолова. ВИВТ, Воронеж, 2014, 253 с.
- Савельев А. Я. Прикладная теория цифровых автоматов: Учеб. для вузов по спец, ЭВМ. – М.: Высш. шк., 1987. – 272 c.
- Голдсуорт Б. Проектирование цифровых логических устройств / Пер. с англ. М. В. Сергиевского; Под ред. Ю. И. Топчеева. – М.: Машиностроение, 1985. – 288 c