Файл: Исследование модели модулей Разработка интерфейса и архитектуры модулей.rtf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.03.2024
Просмотров: 18
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Содержание
Введение
1. Теоретическая часть
2. Построение структурной схемы
3. Разработка и исследование модели модулей
-
Разработка интерфейса и архитектуры модулей-
Разработка модели дешифратора 4 х 16 х 1 бит -
Разработка модели двоичного счётчика со сбросом -
Разработка элемента обработки сигнала для жёлтого света -
Разработка элемента обработки сигнала для зелёного света -
Разработка элемента обработки сигнала для красного света пешеходу -
Разработка элемента обработки сигнала для красного света -
Разработка элемента превращения счётчика в делитель частоты на 5
-
-
Исследование работы моделей модулей
4. Исследование структурной модели устройства в целом с использованием моделей узлов
5. Анализ пригодности разработанных моделей для имплементации в PLD
Заключение
Введение
В нашей жизни нас сплошь окружают цифровые автоматы, хотя мы этого можем даже не замечать. Одним из таких автоматов является объект, с которым мы сталкиваемся каждый день – это дорожный светофор.
Светофор представляет собой практически идеальный объект для автоматизации, при программировании которого (аппаратном или программном) могут быть использованы автоматы. Для светофоров, как и для других объектов управления, документация является закрытой, но создание данного цифрового автомата является решаемой задачей, что и показано в данной курсовой работе.
При выполнении данного проекта при помощи графа состояний и триггеров, а затем в аппаратном виде - он может служить наглядным пособием по дисциплине «Прикладная Теория Цифровых Автоматов (ПТЦА)»!
Но так как задача разработчика состоит в том, чтобы выбрать наиболее оптимальное решение для данного проекта, то в этой курсовой работе предложено другое решение, основанное на программируемой логике.
-
-
Теоретическая часть
Рассмотрим дорожный светофор, один из четырёх светофоров обычно стоящих на переходе. Он двухсторонний, одна сторона обращена к водителям, а другая к пешеходам. Сторона обращённая к пешеходам имеет 2 света: красный и зелёный, а к водителям – три: красный, жёлтый и зелёный. Кроме того для водителя некоторое время перед сменой состояния мигает зелёный свет.
Следовательно автомат управления светофором имеет 5 состояний, определённых для водителя, и 2 состояния, определённых для пешехода.
Эти состояния можно наглядно представить в виде графов приведённых на рис. 1 и рис. 2.
Рис. 1. Граф состояний светофора для водителя
Рис. 2. Граф состояний светофора для пешехода
Также светофор можно перевести в мигание, то есть неработающее состояние – светофор мигает жёлтым светом и должен интерпретироваться участниками дорожного движения как неработающий
-
-
Построение структурной схемы
По техническому заданию светофор имеет как статические так и динамические состояния – мигание, поэтому воспользуемся генераторам сигналов. Затем для получения кратных интервалов времени для включения света используем делитель частоты, затем последовательно включаем счётчик для адресации дешифратора. А от дешифратора, после обработки, выходные сигналы вызывают зажигание необходимого света. Структурная схема приведена на рис 3.
Рис. 3. Структурная схема управления светофором.
Схема работает следующим образом. Генератор частоты создаёт прямоугольные импульсы с заданной частотой. Затем они используются в делителе, а также для мигания зелёного и жёлтого света.
Делитель на 5, основанный на счётчике типа К155ИЕ7 – выдаёт кратный сигнал на счётчик адресующий – перебирающий адреса на дешифраторе. Дешифратор поочерёдно подаёт “1” на каждый из выходов, объединив эти выводы в группы мы тем самым получили необходимую продолжительность горения каждого из цветов.
Также при подаче входного сигнала на ключ – светофор включается или выключается (нормальный режим или мигание жёлтого света).
Выводы схемы подсоединим к индикаторам (диоды или лампы).
3. Разработка и исследование модели модулей
-
Разработка интерфейса и архитектуры модулей
-
Разработка модели дешифратора 4 х 16 х 1 бит
entity DEC416 is
port (
A3,A2,A1,A0 : in std_logic ;
Z7,Z6,Z5,Z4,Z3,Z2,Z1,Z0 : out std_logic ;
Z15,Z14,Z13,Z12,Z11,Z10,Z9,Z8 : out std_logic
) ;
end DEC416 ;
architecture dc1 of DEC416 is
begin
process(A3,A2,A1,A0)
begin
Z15 <= A3 and A2 and A1 and A0 after 1 ns ;
Z14 <= A3 and A2 and A1 and (not A0) after 1 ns ;
Z13 <= A3 and A2 and (not A1) and A0 after 1 ns ;
Z12 <= A3 and A2 and (not A1) and (not A0) after 1 ns ;
Z11 <= A3 and (not A2) and A1 and A0 after 1 ns ;
Z10 <= A3 and (not A2) and A1 and (not A0) after 1 ns ;
Z9 <= A3 and (not A2) and (not A1) and A0 after 1 ns ;
Z8 <= A3 and (not A2) and (not A1) and (not A0) after 1 ns ;
Z7 <= (not A3) and A2 and A1 and A0 after 1 ns ;
Z6 <= (not A3) and A2 and A1 and (not A0) after 1 ns ;
Z5 <= (not A3) and A2 and (not A1) and A0 after 1 ns ;
Z4 <= (not A3) and A2 and (not A1) and (not A0) after 1 ns ;
Z3 <= (not A3) and (not A2) and A1 and A0 after 1 ns ;
Z2 <= (not A3) and (not A2) and A1 and (not A0) after 1 ns ;
Z1 <= (not A3) and (not A2) and (not A1) and A0 after 1 ns ;
Z0 <= (not A3) and (not A2) and (not A1) and (not A0) after 1 ns ;
end process ;
end dc1 ;
-
Разработка модели двоичного счётчика со сбросом
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
entity CNTB4UR is
port( CLK,RST : in std_logic;
Q3,Q2,Q1,Q0 : out std_logic
) ;
end CNTB4UR ;
architecture v1 of CNTB4UR is
signal count_i : unsigned (3 downto 0);
begin
process(CLK,RST,count_i)
begin
if (RST='1') then
count_i <= x"0" ;
elsif (CLK = '1' and CLK'event) then
count_i <= count_i + "1" ;
end if;
end process;
Q3 <= count_i(3) after 1 ns ;
Q2 <= count_i(2) after 1 ns ;
Q1 <= count_i(1) after 1 ns ;
Q0 <= count_i(0) after 1 ns ;
end v1;
-
Разработка элемента обработки сигнала для жёлтого света
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
entity Ylw is
port (In0, In8, K1: in std_logic;
OnYlw: out std_logic
);
end Ylw;
architecture ye1 of Ylw is
begin
process(In0,In8,K1)
begin
OnYlw<=(In0 or In8) and K1;
end process;
end ye1;
-
Разработка элемента обработки сигнала для зелёного света
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
entity Green is
port (In9, In10, In11, In12, In13, In14, In15, CLK: in std_logic;
OnGreen: out std_logic);
end green;
Architecture g1 of Green is
begin
process(In9, In10, In11, In12, In13, In14, In15, CLK)
begin
OnGreen<=In9 or In10 or In11 or In12 or In13 or In14 or (In15 and CLK);
end process;
end g1;
-
Разработка элемента обработки сигнала для красного света пешеходу
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
entity OR4 is
port (
IN0,IN8,green,IN15 : in std_logic ;
OnRedP : out std_logic
) ;
end OR4 ;
architecture v1 of OR4 is
begin
process(IN0,IN8,green,IN15)
begin
OnRedP <= IN0 or IN8 or IN15 or green;
end process;
end v1 ;
-
Разработка элемента обработки сигнала для красного света
library ieee ;
use ieee.std_logic_1164.all ;
entity OR7 is
port (
IN6,IN5,IN4,IN3,IN2,IN1,IN0 : in std_logic ;
Z : out std_logic
) ;
end OR7 ;
architecture v1 of OR7 is
begin
Z <= IN6 or IN5 or IN4 or IN3 or IN2 or IN1 or IN0 after 1 ns ;
end v1 ;
-
Разработка элемента превращения счётчика в делитель частоты на 5
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
entity AND3B1 is
port (
IN2,IN1,IN0 : in std_logic ;
del5 : out std_logic
) ;
end AND3B1 ;
architecture v1 of AND3B1 is
begin
del5 <= IN2 and IN0 and (not IN1);
end v1 ;
-
Исследование работы моделей модулей
Исследование работоспособности моделей проводилось с помощью анализа временных диаграмм сигналов. Задавая входное возмущение, производится анализ соответствующих ему выходных сигналов. По таблице соответствий выносится заключение о работоспособности модели. Ниже приведены временные диаграммы, полученные по каждому из модулей.
В идеальном случае при тестировании модели необходимо подать все возможные входные комбинации и проанализировать выходные возмущения. Однако не всегда это является возможным и оправданным, на практике выбирается множество тестовых комбинаций описывающих основные свойства разрабатываемой модели
Рис. 4. Временная диаграмма элемента обработки сигнала для жёлтого света.
Видно что имеются 2 состояния: рабочее и нерабочее, задаваемое KEY.
Рис. 5. Временная диаграмма счётчика
Используются 3 выхода, при этом мы обязательно должны произвести первоначальный сброс системы, т.к. первоначальное состояние счётчика- неопределённость. Видно что счётчик работоспособен и соответствует требованиям.
Рис. 6. Временная диаграмма деления на 5.
Рис. 7. Временная диаграмма адресующего счётчика от 0 до 15.
Рис. 8. Временная диаграмма дешифратора 4х16.
Рис. 9. Временная диаграмма, полученная при анализе модели устройства
Из полученных диаграмм можно сделать заключение о работоспособности отдельных модулей.
4. Исследование структурной модели устройства в целом с использованием моделей узлов
Для построения модели устройства в целом используется структурное описание. При этом модель представляется в виде совокупности отдельных модулей описанных ранее и связей между ними. Это позволяет применить принцип декомпозиции, значительно упрощающий процесс разработки модели.
В качестве внешних портов ввода-вывода устройства используются следующие:
-
Входной тактовый сигнал; -
вход сброса и переключения состояний (Key); -
выход на жёлтый цвет; -
выход на красный цвет; -
выход на зелёный цвет; -
выход на красный цвет пешеходу; -
выход на зелёный цвет пешеходу;
- Дополнительно при подготовке под прошивку добавлен выход адресации 7-сегментного индикатора “adres7”
entity svet is
port(
CLK:in std_logic;
Key: in std_logic;
ToRed,ToGreen,ToYellow,ToRedP,ToGreenP:out std_logic
);
end svet;
Ниже приведен листинг, описывающий работу устройства. Так же используются некоторые простейшие логические элементы (и, или), их описание не приводилось в виду очевидности.
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all;
-- 4 to 16-bit Decoder
-- Philips CPLD Applications
-- Aug 26, 1998
entity DEC416 is
port (
A3,A2,A1,A0 : in std_logic ;
Z7,Z6,Z5,Z4,Z3,Z2,Z1,Z0 : out std_logic ;
Z15,Z14,Z13,Z12,Z11,Z10,Z9,Z8 : out std_logic
) ;
end DEC416 ;
architecture dc1 of DEC416 is
begin
process(A3,A2,A1,A0)
begin
Z15 <= A3 and A2 and A1 and A0 after 1 ns ;
Z14 <= A3 and A2 and A1 and (not A0) after 1 ns ;
Z13 <= A3 and A2 and (not A1) and A0 after 1 ns ;
Z12 <= A3 and A2 and (not A1) and (not A0) after 1 ns ;