МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
/
КУРСОВА РОБОТА
з курсу
“Комп’ютерна схемотехніка” і
“Моделювання комп’ютерних систем”
На тему:
«Розробка спецобчислювача»
Варіант: 5
Львів – 2016
Зміст
Теоретична частина 2
Завдання…………………………………………………………….2
Опис автомата Мілі 2
Блок схема алгоритму 4
Побудова таблиці переходів 4
Синтез керуючого автомату 4
Лічильник 6
ОЗП 8
Двійковий суматор 12
Регістр зсуву 13
ПЗП 15
Шинний формувач 17
Інвертор 19
Практична частина 20
Мікропрограма 21
Принципова схема 21
Таблиця прошиття ПЗП керуючого автомату 22
Перевірка правильності роботи обчислювача 23
Результати моделювання у вигляді часових діаграм 24
Список використаної літератури 25
Додатки 26
Теоретична частина
ЗАВДАННЯ:
Розробити спеціалізований обчислювач, що має відповідати наступним вимогам :
структурна схема обчислювача : мікропрограмний автомат Мілі;
робоча формула : див. таблицю 1 (варіант задається керівником проекту);
формат даних : 8 бітний доповняльний код
інформаційний обмін здійснюється через паралельну 8-ти розрядну двонаправлену шину даних за допомогою додаткових сигналів синхронізації ( рівні сигналів сумісні з ТТЛ );
керуючий автомат реалізувати на основі ПЗП та регістра;
напруга живлення та тактові імпульси надходять від зовнішнього джерела а сигнал початкового скидання також формується ззовні.
Таблиця 1.
Згідно варіанту 5 формула: Yi = (–3∙Xi + Xi+1 ) / 4
К-сть введених значень: 13
1.1Опис Автомата Мілі
Автомат Мілі - скінченний автомат чиї вихідні символи якого визначаються його станом, та символами на вході (на відміну від автомату Мура вихідні символи якого визначаються тільки його станом). На ребрах в діаграмі станів позначають вхідні та вихідні символи .
Автомат Мілі може бути примітивною математичною моделлю шифрувальної машини. Якщо взяти за вхідний та вихідний алфавіти наприклад символилатинки, то можна сконструювати автомат Мілі, який буде для кожного вхідного рядка давати на виході зашифровану послідовність. Структура автомата Мілі
/
Рис.1 Загальна структурна схема автомата Мілі
Таблиця - Двійкового кодування станів автомата
№
Стан автомата
Позначення
Код
ai
Q3
Q2
Q1
Q0
0
a0
0
0
0
0
1
a1
0
1
0
1
2
a2
1
0
1
0
…
…
…
…
8
a8
1
0
0
0
9
a9
1
0
0
1
За способом формування функції виходів виділяють три типи абстрактних автоматів: автомат Мілі, автомат Мура та С-автомат.
В абстрактному автоматі Мілі значення функції виходу в момент t залежить не лише від стану автомата, але і від набору значень вхідних сигналів.
Довільний абстрактний автомат Мілі має один вхідний і один вихідний канали.
Автомат Мілі характеризується системою рівнянь:
(2.1)
де – множина вхідних сигналів автомата (вхідний алфавіт);
– множина станів автомата (алфавіт станів);
– множина вихідних сигналів (вихідний алфавіт).
λ – функція виходів автомата;
φ – функція переходів автомата.
Іншими словами, функція виходів λ задає відображення (XS)→Y, тобто ставить у відповідність будь-якій парі елементів декартового добутку множин (XS) елемент множини S.
1.2 Блок-схема алгоритму
1.4 Синтез керуючого автомату
Керуючі пристрої складаються із окремих логічних схем елементів, які виробляють керуючі сигнали в заданій послідовності. Такий керуючий пристрій можна розглядати як керуючий автомат типу Мура чи Мілі.
Для автомату Мілі вихідний сигнал залежить не лише від внутрішнього стану, а й від зовнішнього стану схеми. Можна побудувати граф переходів автомата Мура, де вершинами являються стани автомата, а дугами - умови переходу з одного стану в інший.
В залежності від способу визначення вихідного сигналу в синхронних автоматах існує два способи:
вихідний сигнал y(t) однозначно визначається вхідним сигналом x(t) і станом а(t-1) автомата в наступний момент часу;
вихідний сигнал y(t) однозначно визначається вхідним сигналом x(t) і станом а в даний момент часу.
Автомати можна задати також у вигляді графів, таблиць виходів та переходів, суміщеної таблиці переходів і виходів. Управляючий пристрій складається із окремих логічних схем, що виробляють управляючі сигнали в заданій послідовності. Такий управляючий пристрій можна розглядати як керуючий автомат типу Мура чи Мілі.
Після побудови автомата Мілі функціонування керуючого автомата представляють у вигляді таблиць переходів і виходів. Для цього спочатку виробляють кодування станів автомата двійковими кодами, визначають тип та кількість тригерів. Потім по таблиці переходів встановлюють значення сигналів на входах тригерів, при яких відбуваються переходи; визначають функції збудження тригерів і виконують їх мінімізацію (спрощення). По знайдених виразах будується схема управляючого автомата на вибраних елементах.
1.5 Лічильник
Лічильником називають послідовнісний цифровий пристрій, призначений для підрахунку та запам’ятовування числа імпульсів, поданих на його лічильний вхід.
До синхронних лічильників відносяться лічильники, в яких переключення розрядів відбувається одночасно, незалежно від віддаленості розряду від лічильного входу. Це досягається подаванням на всі тригери синхронізуючих імпульсів, які додатнім або від’ємним перепадом викликають переключення тригерів у відповідності із логікою роботи лічильника. Завдяки такій синхронізації досягається мінімальний час встановлення лічильника, який не перевищує час встановлення одного тригера, чим забезпечується максимальна частота зміни станів лічильника.
Мікросхема SN74LS163 – це 4-розрядний двійковий синхронний реверсивний лічильник. В якому вхід CLR використовується для скидання лічильника в 0, а вхід LD – для попереднього запису в лічильник інформації, що надходить з входів D0, D1, D2 і D3.
Скидання лічильника в 0 відбувається при подаванні лог.1 на вхід CLR, при цьому на вході LD повинна бути лог.1. Максимальний коефіцієнт перерахунку SN74S163складає 16.
/
Рис.2 Умовне графічне позначення лічильника SN74S163
/
Рис. 3 Часові діаграми вхідних та вихідних сигналів лічильника
Таблиця істинності лічильника
Режими
Входи
Виходи
R
+1
-1
D3
D2
D1
D0
Q3
Q2
Q1
Q0
Скидання
1
1
x
x
x
X
X
x
0
0
0
0
1
1
Паралельне
завантаження
0
0
x
0
0
0
0
0
0
0
0
0
1
0
0
0
x
1
0
0
0
0
0
0
0
0
1
1
0
0
0
x
1
1
1
1
1
1
1
1
0
1
0
0
1
x
1
1
1
1
1
1
1
1
1
1
Прямерахування
0
1
(
1
x
x
x
x
Прямерахування
1
1
1.6Оперативно запам’ятовуючий пристрій
Запам’ятовуючі пристрої (ЗП) складають самостійний, широко розвинений клас мікросхем середнього, великого і надвеликого ступеня інтеграції.
Напівпровідникові ЗП за режимом занесення інформації поділяються на оперативні і постійні, за принципом вибірки інформації – на пристрої з довільною та з послідовною вибіркою, за технологією виготовлення – на біполярні та уніполярні.
Оперативні запам’ятовуючі пристрої (ОЗП) поділяються на дві великі групи: статичні і динамічні. В накопичувачах статичних ОЗП застосовуються тригерні елементи пам’яті. В ОЗП динамічного типу запам’ятовуючим елементом служить конденсатор, в якому інформація зберігається в формі наявності або відсутності заряду.
Перевагою статичних ОЗП перед динамічними є відсутність схеми регенерації інформації, що значно спрощує керування. Крім того, швидкодія статичних ОЗП суттєво перевищує швидкодію динамічних ОЗП. З іншого боку, ємність мікросхем динамічних ОЗП набагато вища, ніж статичних.
На рис. 4 наведено типову структурну схему напівпровідникового ОЗП, яка складається з наступних типових вузлів: матриці запам’ятовуючих елементів (ЗЕ), дешифраторів рядків і стовбців (DCX, DCY) пристрою запису (ПЗ), пристрою читання (ПЧ) і пристрою керування (ПК).
При об’єднанні ЗП в систему пам’яті використовуються типові елементи, пов’язані з вхідними та вихідними схемами. Вхідні схеми являють собою логічні елементи, через які інформаційні, керуючі і адресні сигнали надходять в ЗП. Вхідні інформаційні сигнали DI надходять в пристрій запису ПЗ, який служить для записування інформації в елементи пам’яті, об’єднані в матриці ЗЕ. Вихідні інформаційні сигнали DO зчитуються із ЗП через пристрій читання ПЧ.
Керуючі сигнали і надходять в пристрій керування ПК і пристрій запису ПЗ і визначають режим роботи ЗП (запис, збереження, зчитування інформації).
/
Рис.4Структурна схему напівпровідникового ОЗП
В даній роботі у якості запам’ятовуючих елементів використовується мікросхема моделі CY7C128A(RAM). Для запису шістнадцяти розрядних слів використовується дві мікросхеми. В яких використовуються такі входи:
А10…А0 – адресні входи,
WE – Вхід дозволу запису та зчитування
OE – вхід управління станом вхідного буфера
СE - Вхід вибору кристала
/
Рис. 5 Умовне графічне позначення ОЗП CY7C128A
Рис. 6 Цикл читання 1
Рис. 7 Цикл читання 2
Рис. 8 Цикл запису WE
Рис. 9 Цикл запису CE
1.7 Двійковий суматор
Суматори – це комбінаційні пристрої, що здійснюють основну арифметичну операцію – додавання чисел в двійковому коді. Найбільш поширені двійкові повні суматори.
Кожний розряд двійкового повного суматора має три входи (A і B – для доданків, P0 – сигнал переносу від попереднього розряду) і два виходи (S – суми і P – сигналу переносу в наступний розряд). Входи A, B і P0 в загальному рівноправні. Сигнал суми S приймає значення лог.1 при непарній кількості одиниць на входах A, B і P0, і лог.0 при парній. Сигнал переносу P рівень лог.1 при кількості одиниць на входах, рівній 2 або 3. Логічні функції виходів повного одно-розрядного суматора:
Мікросхема SN74S283 – це швидкодіючий повний 4-розрядний двійковий суматор. В якому використовуються такі входи та виходи :
А0…А4 - входи даних
В0…В4 –входи даних
Р0 – вхід переносу
Р4 – вихід сигналу переносу
S1…S4 – виходи на яких появляються суми вхідних слів
/
Рис. 10 Умовне графічне позначення суматора SN74S283
1.8 Регістр зсуву
Регістри – це послідовні пристрої, призначені для прийому, збереження, простих перетворень та передачі двійкових кодів. Під простими перетвореннями розуміють зсув кодів на задану кількість розрядів, а також перетворення послідовного двійкового коду в паралельний і паралельного в послідовний. Базовими елементами регістрів є тригери, які доповнюються комбінаційними логічними елементами для реалізації певних зв’язків між розрядами регістра і для керування прийомом та передачею операндів. Одне з функціональних призначень регістрів – оперативна пам’ять для багато розрядних двійкових кодів.
Мікросхема SN74198 - це 8-розрядний регістр зсуву з можливістю асинхронного паралельного запису і послідовним зчитуванням. Мікросхема має вхід SI для подавання інформації при послідовному записуванні, вісім входів D0..D7 для подавання інформації при паралельному записуванні, вхід C для подавання тактових імпульсів, включених по АБО, вхід – для скидання.
/
Рис. 11Умовне графічне позначення регістра зсуву SN74198
/
Рис. 12 Часові діаграм вхідних та вихідних сигналів регістра зсуву SN74198
1.9 Постійний запам’ятовуючий пристрій
Постійні запам'ятовуючі пристрої призначені для зберігання одноразово записаної інформації, яка має зберігатися навіть за умов знеструмлення комп'ютеру. Такою інформацією є, наприклад, дані і програми, потрібні для завантаження операційної системи та керування роботою зовнішніх пристроїв комп'ютеру (BIOS). Таким чином, постійний запам'ятовуючий пристрій – це комбінаційна багато входова схема з одним або кількома виходами Q0,...,Qk- ПЗП призначені для зберігання інформації, яка залишається незмінною протягом всього часу роботи пристрою. Ця інформація не зникає при відключенні напруги живлення. Тому в ПЗП можливий лише режим зчитування інформації, причому зчитування інформації не супроводжується її порушенням.
/
Рис.13 Умовне графічне позначення постійного запам’ятовуючого пристрою 6116LA70TDB
Рис.14 Внутрішня схема постійного запам’ятовуючого пристрою
1.10 Шинний формувач
Шинний формувач представляє 8 - розрядний паралельний передатчик з три стабільними виходами і використовується як буферний пристрій шини даних в мікропроцесорних системах.
Пристрій передає данні з шини А в шину В або з B шини у А шину , в залежності від логіки рівня в напрямку контролю (DIR - вхід керування напрямком передачі). OUT-Enable (OE) вхід може бути використаний для відключення пристрою, щоб шина буланадійноізольована.
/
Рис.15 Умовне графічне позначення шинного формувача SN74LV245
/
Рис.16 Часові діаграми тривалості імпульсу формувача SN74LV245
/
Рис.17 Графік часової затримки сигналів SN74LV245
1.11 Інвертор
Інвертор представляє собою пристрій для інверсії двійкових розрядів.
Для нашого спеціалізованого обчислювача ми вибрали мікросхему SN74HC14, яка містить в собі 6 незалежних інверторів і працює за логічною формулою Y=/A.
Рис.18 Умовне графічне позначення інвертора SN74HC14
Таблиця істинності інвертора
2.Практична Частина
2.1 Мікропрограма у відповідності із заданим варіантом
№
N
Формула
5
13
Yi = (–3∙Xi + Xi+1 ) / 4
Умови переходу по мікропрограмі від одного стану до іншого задають функцію переходів автомата.
Таблиця переходів (виходів) являє собою таблицю з подвійним входом, рядки якого пронумеровані вхідними буквами, а стовпці – станами. На перетині вказується стан, у який переходить автомат (в таблиці переходів) або вихідний сигнал, що видається ним (у таблиці виходів).
В даному випадку:
А0-А7– стани мікро програмного автомата;
S0 – S7 – дія, яка виконується при переході по мікропрограмі з одного стану в інший;
C0 – C1 – умови переходу з одного стану в інший.
Мікропрограма обчислювального автомата
А0:
CLR
йти до А1
А1:
якщо WR_RDY
йти до А1, інакше йти до А2
А2:
RAM_WE, IO_OE1, /CLR, WR_ACK,ENT
йти до А3
А3:
/CLR, /ENT, /RAM_WE, IO_OE1, /WR_ACKякщоWR_RDY
йти до А2, інакше йти до А4
А4:
CLR, /ENT,/IO_OE, /WR_ACK
йти до А5
А5:
CLR,ENT,RAM_OE, S1_S0_1
йтидо А6
А6:
/S1_S0_1,S1_S0_2,/ENT,RD_RDY,
якщо/RD_ACK
йти до А6, інакше йти до А7
А7:
/RAM_OE,/S1_S0_2,IO_OE,IO_DIR,REZ_OE, якщо RD_ACK
йти до А4, інакше йти до А0
2.2 Принципова схема
2.3 Формування прошивки ПЗП керуючого автомату
Для занесення інформації в ПЗП необхідно скласти таблицю прошиття, яка встановлює відповідність між адресами і даними. Занесення інформації в ПЗП здійснюється користувачем за допомогою програматора. В моєму випадку таблиця прошиття має такий вигляд
Таблиця прошиття ПЗП керуючого автомату
2.4Перевірка правильності роботи обчислювача
Результати моделювання у вигляді часових діаграм
///
Рис.20. Часова діаграма роботи VHDL моделі
Список використаної літератури
Павлов В.Н., Ногин В.Н. Схемотехника аналогових электронных устройств: Учебник для вузов.- М.: ГорячаяЛиния, Телеком, 2001;
Хоровиц П., Хилл У. Искусство схемотехники.- М.: Мир,2001;
Бойко В.И. Схемотехника электронных систем. Цифровые устройства.- СПб.: БХВ-Петербург, 2004;
Угрюмов Е.П. Цифровая схемотехника. — СПб.: БХВ — Санкт – Петербург, 2000;
Титце У., Шенк К. Полупроводниковаясхемотехника. 12-е изд. Том II: Пер. с нем.- М.: ДМК Пресс, 2007.
Додатки
VHDL-код:
counter.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity SN74LS163 is
port(
CLK : in STD_LOGIC;
ENT : in STD_LOGIC;
ENP : in STD_LOGIC;
CLR : in STD_LOGIC;
LOAD : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(3 downto 0);
RC0 : inout STD_LOGIC;
Q : out STD_LOGIC_VECTOR(3 downto 0)
);
end SN74LS163;
architecture SN74LS163 of SN74LS163 is
signalCNT_VAL:std_logic_vector(3 downto 0);
begin
Q<=CNT_VAL;
RC0 <='1' when (ENT='1' and ENP='1' and CNT_VAL=15) else '0';
process(CLK,LOAD)
begin
ifrising_edge(CLK)
then
if CLR='0'
then
CNT_VAL<=(others=>'0');
elseif LOAD='0' then CNT_VAL<=D;
elseif ENT='1' then CNT_VAL<=CNT_VAL+1;
endif;
endif;
endif;
endif;
endprocess;
end SN74LS163;
reg.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity SN74198 is
port(
CLK : in STD_LOGIC;
CLR: in STD_LOGIC;
DSL : in STD_LOGIC;
DSR : in STD_LOGIC;
S1 : in STD_LOGIC;
S0 : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(7 downto 0);
Q : out STD_LOGIC_VECTOR(7 downto 0)
);
end SN74198;
architecture SN74198 of SN74198 is
signalTEMP:std_logic_vector(7 downto 0);
signal S1_S0:std_logic_vector(1 downto 0);
begin
Q<=TEMP;
S1_S0<=S1&S0;
A:process(CLK,CLR)
begin
if CLR='0' then
TEMP<=(others=>'0');
elsif
rising_edge(CLK) then
case S1_S0 is
when"01" =>TEMP<=TEMP(6 downto 0)&DSR;
when"10" =>TEMP<=DSL&TEMP(7 downto 1);
when"11" =>TEMP<=D;
whenothers =>
endcase;
endif;
endprocess A;
end SN74198;
ram.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity CY1 is
port(
CLK:IN STd_logic;
CE : in STD_LOGIC;
WE : in STD_LOGIC;
OE : in STD_LOGIC;
AB : in STD_LOGIC_VECTOR(3 downto 0);
DB : inout STD_LOGIC_VECTOR(7 downto 0)
);
end CY1;
architecture CY1 of CY1 is
type Mem_2k4 isarray (0 to 31) ofstd_logic_vector(7 downto 0);
signal RAMM:Mem_2k4;
begin
DB<=RAMM(conv_integer(AB)) when (CE='0' and OE='0' and WE='1') else (others=>'Z');
process(CE,WE,OE,AB,DB,CLK)
begin
if CE='0' and WE='0' and OE='1' then RAMM(conv_integer(AB))<=DB;
endif;
endprocess;
end CY1;
bd.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity SN74LV245 is
port(
A : inout STD_LOGIC_VECTOR(7 downto 0);
B : inout STD_LOGIC_VECTOR(7 downto 0);
DIR : in STD_LOGIC;
a_OE : in STD_LOGIC
);
end SN74LV245;
architecture SN74LV245 of SN74LV245 is
begin
A<=B when (a_OE='0' and DIR='0')
else (others=>'Z');
B<=A when (a_OE='0' and DIR='1')
else (others=>'Z');
end SN74LV245;
sum.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity SN74LS283 is
port(
A : inSTD_LOGIC_vector(11 downto 0);
B : inSTD_LOGIC_Vector(11 downto 0);
C0 : in STD_LOGIC;
C4 : out STD_LOGIC;
S : outSTD_LOGIC_Vector(11 downto 0)
);
end SN74LS283;
architecture SN74LS283 of SN74LS283 is
signalINT_SUM:std_logic_vector(12 downto 0);
begin
INT_SUM <=('0' & A)+('0'& B)+("0000000000"& C0);
S<=INT_SUM(11 downto 0);
C4<=INT_SUM(12);
end SN74LS283;
inv.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entityInvertis
port(
I : inSTD_LOGIC_vector(11 downto 0);
O : outSTD_LOGIC_vector(11 downto 0)
);
endInvert;
architectureInvertofInvertis
begin
O<=not I;
endInvert;
rom.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity ROM is
port(
STATE : in STD_LOGIC_VECTOR(5 downto 0);
COMB : inout STD_LOGIC_VECTOR(14 downto 0)
);
end ROM;
architecture ROM of ROM is
begin
with STATE select
COMB <= "000001000000000" when "000011",
"110010010000011" when "000111",
"010010111000001" when "001001",
"110011000000011" when "001011",
"110100110110111" when "001111",
"110101100101111" when "010011",
"100011100000110" when "010110",
"000000000000000" whenothers;
end ROM;
SN74198AVT.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity SN7419 is
port(
CLK : in STD_LOGIC;
CLR: in STD_LOGIC;
DSL : in STD_LOGIC;
DSR : in STD_LOGIC;
S1 : in STD_LOGIC;
S0 : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(14 downto 0);
Q : out STD_LOGIC_VECTOR(14 downto 0)
);
end SN7419;
architecture SN7419 of SN7419 is
signalTEMP:std_logic_vector(14 downto 0);
signal S1_S0:std_logic_vector(1 downto 0);
begin
Q<=TEMP;
S1_S0<=S1&S0;
A:process(CLK,CLR)
begin
if CLR='0' then
TEMP<=(others=>'0');
elsif
rising_edge(CLK) then
case S1_S0 is
when"01" =>TEMP<=TEMP(13 downto 0)&DSR;
when"10" =>TEMP<=DSL&TEMP(14 downto 1);
when"11" =>TEMP<=D;
whenothers =>
endcase;
endif;
endprocess A;
end SN7419;
avt.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entityavtis
port(
CLK:instd_logic;
WR_RDY:instd_logic;
RD_ACK:instd_logic;
WR_ACK:outstd_logic;
RD_RDY:outstd_logic;
k_CLK : in STD_LOGIC;
kod :inout STD_LOGIC_VECTOR(14 downto 0)
);
endavt;
architectureavtofavtis
---- Componentdeclarations -----
component ROM
port(
STATE : in STD_LOGIC_VECTOR(5 downto 0);
COMB : inout STD_LOGIC_VECTOR(14 downto 0)
);
endcomponent;
component SN7419
port(
CLK : in STD_LOGIC;
CLR: in STD_LOGIC;
DSL : in STD_LOGIC;
DSR : in STD_LOGIC;
S1 : in STD_LOGIC;
S0 : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(14 downto 0);
Q : out STD_LOGIC_VECTOR(14 downto 0)
);
endcomponent;
---- Constants -----
constant VCC_CONSTANT : STD_LOGIC := '1';
constant GND_CONSTANT : STD_LOGIC := '0';
---- Signaldeclarationsusedonthediagram ----
signal GND : STD_LOGIC;
signal VCC : STD_LOGIC;
signal ROMREGISTR:STD_LOGIC_VECTOR(14 downto 0);
---- DeclarationsforDanglingoutputs ----
begin
---- Componentinstantiations ----
U10:ROM
portmap(
STATE(0)=>RD_ACK,
STATE(1)=>WR_RDY,
STATE(2)=>kod(9),
STATE(3)=>kod(10),
STATE(4)=>kod(11),
STATE(5)=>kod(12),
COMB=>ROMREGISTR
);
U11:SN7419
portmap(
CLK=>CLK,
CLR=>VCC,
DSL=>GND,
DSR=>GND,
S1=>VCC,
S0=>VCC,
D=>ROMREGISTR,
Q=>kod
);
-- Power , groundassignment ----
GND <= GND_CONSTANT;
VCC <= VCC_CONSTANT;
WR_ACK<=kod(14);
RD_RDY<=kod(13);
endavt;
main.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entity KURSAK is
port(
CLK : in STD_LOGIC;
D:inout std_logic_vector(7 downto 0);
WR_RDY:instd_logic;
RD_ACK:instd_logic;
WR_ACK:inoutstd_logic;
RD_RDY:inoutstd_logic;
k_CLK : in STD_LOGIC
);
end KURSAK;
--}} Endofautomaticallymaintainedsection
architecture KURSAK of KURSAK is
---- Componentdeclarations -----
componentavt
port(
CLK:instd_logic;
WR_RDY:instd_logic;
RD_ACK:instd_logic;
WR_ACK:outstd_logic;
RD_RDY:outstd_logic;
k_CLK : in STD_LOGIC;
kod :inout STD_LOGIC_VECTOR(14 downto 0)
);
endcomponent;
component SN74LV245
port(
A : inout STD_LOGIC_VECTOR(7 downto 0);
B : inout STD_LOGIC_VECTOR(7 downto 0);
DIR : in STD_LOGIC;
a_OE : in STD_LOGIC
);
endcomponent;
component SN74LS163
port(
CLK : in STD_LOGIC;
ENT : in STD_LOGIC;
ENP : in STD_LOGIC;
CLR : in STD_LOGIC;
LOAD : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(3 downto 0);
RC0 : inout STD_LOGIC;
Q : out STD_LOGIC_VECTOR(3 downto 0)
);
endcomponent;
component CY1
port (
CLK : in STD_LOGIC;
CE : in STD_LOGIC;
WE : in STD_LOGIC;
OE : in STD_LOGIC;
AB : in STD_LOGIC_VECTOR(3 downto 0);
DB : inout STD_LOGIC_VECTOR(7 downto 0)
);
endcomponent;
component SN74198
port(
CLK : in STD_LOGIC;
CLR: in STD_LOGIC;
DSL : in STD_LOGIC;
DSR : in STD_LOGIC;
S1 : in STD_LOGIC;
S0 : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(7 downto 0);
Q : out STD_LOGIC_VECTOR(7 downto 0)
);
endcomponent;
component SN74LS283
port(