Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНІЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ „ХПІ"
Кафедра „Обчислювальна техніка та програмування”
Синтез мікропрограмних автоматів
Альбом документів курсового проекту по дисципліні
"Спеціалізовані компютерні системи"
КІТ32.02198.022 ДКП
Керівник проекту:
___________
Виконав:
студент групи
____________________
„ __” ___________________ 2007 р.
Харків
Зміст
Вступ
1. Технічне завдання
1.1 Синтезувати мікропрограмний автомат за схемою Уілкса-Стрінжера у вигляді автомата Мілі
1.2 Синтезувати мікропрограмний автомат за схемою Уілкса-Стрінжера у вигляді автомата Мура
2. Базові теоретичні дані
2.1 Основні дані про автомати
2.2 Класифікація атоматів
3. Методика вирішення
3.1 Синтез мікропрограмного автомата за схемою Уілкса-Стрінжера у вигляді автомата Мілі
3.1.1 Змістовна схема алгоритму
3.1.2 Змістовна таблиця кодування операційних та умовних верхівок
3.1.3 Закодована мікроопераційна схема алгоритму
3.1.4 Таблиця кодування мікрокоманд
3.1.5 Закодована мікрокомандна схема алгоритма
3.1.6 Основна таблиця автомата (СІ - синхроімпульс)
3.1.7 Граф-схема переходів
3.1.8 Система рівнянь переходів
3.1 9. Система рівнянь виходів
3.1.10 Кодування внутрішніх станів автомата
3.1.11 Побудова схеми операційного автомата
3.1.12 Схема операційного автомата
3.2 Синтез мікропрограмного автомата за схемою Уілкса-Стрінжера у вигляді автомата Мура
3.2.1 Змістовна схема алгоритму
3.2.2 Змістовна таблиця кодування операційних та умовних верхівок
3.2.3 Закодована мікроопераційна схема алгоритма
3.2.4 Таблиця кодування мікрокоманд
3.2.5 Закодована мікрокомандна схема алгоритма
3.2.6 Основна таблиця автомата (СІ - синхроимпульс)
3.2.7 Граф-схема переходів
3.2.8 Система рівнянь переходів
3.2.9 Кодування внутрішніх станів автомата
3.2.10 Побудова схеми операційного автомата
3.2.11 Схема операційного автомата
Висновки
Список літератури
Поряд з теорією формальних мов і заснованих на ній методів побудови компіляторів кінцеві автомати активно використовуються в комп'ютерних іграх, у реалізації мережних протоколів, системах стиску інформації. Іншими словами, там, де потрібна велика надійність і де логіка поводження надто складна, щоб програміст зміг реалізувати її на одному лише рівні здорового глузду.
З появою структурного програмування стало очевидним, що з трьох головних конструкторів керування: проходження, циклу і розгалуження останній є найважчим у сприйнятті програміста, оскільки при безлічі альтернатив перетворює лінеаризовану структуру алгоритму в деревоподібну. При цьому складність навіть послідовних програм росте стрімко і часом може перевершувати дерево варіантів у настільки непростий для автоматичного аналізу моделі, як традиційні шахи. Розбивка програми на процеси й об'єкти з заміною багатоступінчастого розгалуження засобами обробки повідомлень (подій) заміняє одну проблему на іншу: вкладеність зменшується, зате кількість взаємодіючих компонентів помітно зростає. Логіка "розмивається" і в підсумку ми одержуємо погано контрольовану ситуацію, коли через хаотичність "ручного" синтезу і неможливості побудувати вичерпний набір тестів немає ніякої впевненості в коректності побудованої системи. Ключ до рішення складається в застосуванні формальних методів, у створенні зручної абстракції, здатної "вичавити" з алгоритму квінтесенцію логіки його роботи і дати можливість проводити весь необхідний аналіз. Однією з таких зручних абстракцій можуть служити кінцеві автомати, серед різновидів яких варто виділити автомати Мілі і Мура. Близькість до булевої алгебри і теорії графів, наочність графічного представлення і детермінованість поводження є помітними достоїнствами цієї абстракції.
Побудувати операційний автомат, що обчислює кількість парних елементів у двох одномірних масивах (A [n], B [m]).
Мікропроцесорний автомат необхідно реалізувати за схемою Уілкса-Стрінжера у вигляді автомата Мілі.
Оптимальну функціональну схему керуючих частин автомата синтезувати на елементах системи І, АБО, НЕ, RS-, D - тригерах, доповнюючи її необхідними по алгоритму функціональними автоматами.
Побудувати операційний автомат, який знаходить максимальний парний елемент в кожному рядку масива (A [n,n]).
Мікропрограмний автомат необхідно реалізувати за схемою Уілкса-Стрінжера у вигляді автомата Мура.
Оптимальну функціональну схему керуючих частин автомата синтезувати на елементах І, НЕ, RS-, D - тригерах.
Автомат - модель пристрою з кінцевою пам'яттю, призначена для обробки інформації.
В абстрактному змісті автомат - зовсім не чорний ящик, що переробляє послідовність вхідних дискретних сигналів у послідовність вихідних сигналів. У загальному випадку, автомат представляється схемою, основними частинами якої є логічний перетворювач і память. Логічний перетворювач складається з логічних елементів, з'єднаних один з одним у необхідну схему. У правильно спроектованому автоматі логічні елементи і весь логічний перетворювач можуть вважатися безінерційними, притаманні елементам запізнювання в зміні сигналів використовуються для створення памяті. В автоматі виділяються чотири види сигналів: вхідні, вихідні, проміжні і синхронізуючі. Якщо число вхідних і вихідних сигналів кінцеве, то схема представляє кінцевий автомат.
Кінцевий автомат - це схема, що має обмежений набір станів. Роль кінцевих автоматів складається в тому, що будь-яка система (наприклад, програма), що володіє обмеженим набором можливостей, що можуть бути позначені окремими станами (чи навіть їх комбінаціями), може бути представлена кінцевим автоматом. Кінцеві автомати природні для програми керування (операційних систем) на комп'ютері та для трансляторів. Кінцевий автомат є моделлю, яка широко використовується при створенні різних пристроїв обробки інформації.
Розрізняють два класи кінцевих автоматів. Синхронний автомат характеризується тим, що генератор тактових імпульсів синхронізації впливає через вхід S на автомат, поділяючи час на такти. Інтервали часу між тактовими імпульсами повинні бути більше будь-якої затримки. Вихідні сигнали в синхронному автоматі зчитуються тільки під час видачі цих імпульсів, коли під впливом вхідних і проміжних сигналів автомат перейшов вже в новий стан. В асинхронному автоматі вихідні сигнали зчитуються в будь-який час, а перехід у новий стан визначається лише часом спрацьовування всіх логічних елементів, що входять у логічний перетворювач. На вхід S не подається ніякий сигнал (цей вхід відсутній).
Пристрої, які створені на основі асинхронного автомата, характеризуються високою швидкодією. Однак, синхронні автомати розробляються в більш короткий термін, легко налагоджуються і модифікуються. Синхронні автомати легко стикуються з комп'ютерами, що також є синхронними пристроями.
Кінцеві автомати створюються на базі Інтегральних Схем (ІС). Особливо зручна їх реалізація на основі програмувальних логічних матриць (ПЛМ). Часто логічний перетворювач виконується у виді однієї інтегральної схеми.
Побудувати операційний автомат, що обчислює кількість парних елементів у двох одномірних масивах (A [n], B [m]).
Мікропроцесорний автомат необхідно реалізувати за схемою Уілкса-Стрінжера у вигляді автомата Мілі.
Оптимальну функціональну схему керуючих частин автомата синтезувати на елементах системи І, АБО, НЕ, RS-, D - тригерах, доповнюючи її необхідними по алгоритму функціональними автоматами.
До складу змістовної схеми алгоритму (Рис.1) входять операційні та умовні верхівки. Наш алгоритм виконує знаходження кількості парних елементів у двох одномірних масивах розмірністю [n] та [m], використовуючи при цьому чотири (4) умовні верхівки і десять (10) операційних верхівок. Позначення операційних верхівок показано на Рис.2. Позначення умовних верхівок на Рис.3. Перевірка елементів масивів виконується від стовпчика до стовпчика.
Кожна верхівка, чи то операційна чи умовна, кодується. При чому, якщо, мікро операції повторюються і умовні верхівки повторюються, вони кодуються однаково. У даному прикладі мікрооперації повторюються двічі, тому, однакові верхівки ми можемо кодувати одним кодом. Таблиця кодування верхівок зображена у Таблиці1.
Таблиця1
Код |
Зміст |
Примітка |
mY1 |
i = 1 |
|
mY2 |
kol = 0 |
|
mY3 |
A [i] |
Ввід А [і] |
mY4 |
kol = kol + 1 |
|
mY5 |
i = i + 1 |
|
mY6 |
B [i] |
|
mY7 |
kol |
Вивід kol |
X1 |
A [i] mod 2 = 0 |
так - 1, ні - 0 |
X2 |
i n |
так - 1, ні - 0 |
X3 |
B [i] mod 2 = 0 |
так - 1, ні - 0 |
X4 |
i ≤ m |
так - 1, ні - 0 |
Закодована мікроопераційна схема алгоритму будується на основі змістовної схеми алгоритму (Рис.1) і таблиці кодування операційних та умовних верхівок (Таблиця 1), шляхом заміни відповідних блоків. Схема алгоритму зображена на Рис.4.
Складаємо таблицю кодування мікрокоманд. Кожна мікрооперація кодується своєю мікрокомандою. Мікрооперації, які виконуються одна за одною послідовно на протязі одного такту часу, поєднуються до однієї мікрокоманди. У даному прикладі дві мікрооперації (mY1, mY2) виконуються одна за одною послідовно. Тому ми поєднуємо їх в одну мікрокоманду. Таблиця кодування зображена в Таблиці 2.
Таблиця 2
Мікрокоманда |
Мікрооперація |
Y1 |
mY1, mY2 |
Y2 |
mY3 |
Y3 |
mY4 |
Y4 |
mY5 |
Y5 |
mY1 |
Y6 |
mY6 |
Y7 |
mY7 |
Складаємо закодовану мікрокомандну схему алгоритму (Рис.5). Проставляємо мітки внутрішніх станів автомата Мілі таким чином:
мітки ставляться після кожної мікрокоманди (перед блоком після операційного);
початок та кінець мікрокомандної схеми алгоритму відмічається міткою а0;
мітки проставляються згідно з порядковим номером;
Будуємо основну таблицю автомата (Таблиця 3). Ця таблиця складається на основі закодованої мікрокомандної схеми алгоритму (Рис.5) В першому стовпчику таблиці записуються усі стани, в яких може знаходитися наш автомат. В першому рядку таблиці записуються способи переходу автомата з одного стану в інший (вхідні сигнали), тобто, чи то буде СІ (той перехід, в процесі якого на шляху не зустрілась жодна верхівка), чи то при переході автомату буде поставлена умова. В клітинках таблиці фіксується, перехід до якого стану здійснюється, і що буде на виході. Наприклад, із стану а0 автомат може здійснити перехід до стану а1 і в результаті цього переходу на виході автомата буде Y1, тобто, автомат виконає ті мікрооперації, які виконуються на протязі одного такту часу (mY1 і mY2 закодовані мікрокомандою Y1), при чому, цей перехід станеться під синхроімпульсним сигналом.
Таблиця 3
СІ=1 |
X1 |
X2 |
X3 |
X4 |
|||||
a0 |
a1/Y1 |
||||||||
a1 |
a2/Y2 |
||||||||
a2 |
a3/Y3 |
a3/__ |
|||||||
a3 |
a4/Y4 |
||||||||
a4 |
a1/__ |
a5/Y5 |
|||||||
a5 |
a6/Y6 |
||||||||
a6 |
a7/Y3 |
a7/__ |
|||||||
a7 |
a8/Y4 |
||||||||
a8 |
a5/__ |
a0/Y7 |
Будуємо граф-схему переходів (Рис.7). Граф-схема будується на основі Рис.5. і Таблиці 3. Кружочками позначаються можливі стани автомата. Стрілки указують на перехід із стану i до стану j. Над стрілкою указується, під яким вхідним сигналом станеться перехід, і, що при цьому буде на виході автомата.
Складаємо систему рівнянь переходів. Ця система складається на основі граф-схеми переходів (Рис.7) або основної таблиці абстрактного автомата (Таблиця 3). Сигнал СІ опущений.
Складаємо систему рівнянь виходів. Ця система складається на основі закодованої мікрокомандної схеми алгоритму (Рис.5), де Х - вхід,
Y - вихід.
Для того, щоб закодувати внутрішні стани автомата, визначаємо кількість необхідних для цього тригерів (n). Кількість тригерів розраховується із співвідношення: log2 A ≤ n, де
n - кількість необхідних тригерів;
А - кількість станів аi (a0 - a8)
А = 9log2 9 ≤ nn = 4,Нам необхідні 4 тригери, значить внутрішні стани автомата будемо кодувати чотирьох-розрядним двійковим кодом. Процес кодування зображений у Таблиці 4.
Таблиця 4
S1 |
S2 |
S3 |
S4 |
|
a0 |
||||
a1 |
0 |
|||
a2 |
0 |
|||
a3 |
0 |
|||
a4 |
0 |
|||
a5 |
0 |
|||
a6 |
||||
a7 |
0 |
|||
a8 |
1 |
Операційний автомат складається з пяти (5) частин (Рис.5).
У вхідній частині розташовані чотири (4) RS-тригери, чотири (4) логічних елементи АБО, на які подається вхідний сигнал, декодер та дві шини, одна з яких необхідна для передачі сигналів, які надходять з декодера, а інша - для сигналів з виходів компаратора.
У перехідній частині автомата виконується перетворення сигнала на протязі одного такту часу. Пройшовши через логічні елементи І та (або) АБО, чи того не роблячи, сигнал змінюється і результат надходить на шину (at), відкіля продовжує передаватися до програмованої логічної матриці (ПЛМ). Перехідна частина будується на основі системи рівнянь переходів.
Вихідна частина. Ця частина будується на основі системи рівнянь виходів. Тут виконується той самий процес, що й у перехідній частині, тільки сигнали подаються на вихідну шину Yt, з якої сигнал надходить до вихідної матриці.
3.1.12 Схема операційного автомата
3.2 Синтез мікропрограмного автомата за схемою Уілкса-Стрінжера у вигляді автомата Мура
Побудувати операційний автомат, який знаходить максимальний парний елемент в кожному рядку масива (A [n,n]).
Мікропрограмний автомат необхідно реалізувати за схемою Уілкса-Стрінжера у вигляді автомата Мура.
Оптимальну функціональну схему керуючих частин автомата синтезувати на елементах І, НЕ, RS-, D - тригерах.
До складу змістовної схеми алгоритму (Рис.1) входять операційні та умовні верхівки. Наш алгоритм виконує знаходження максимального парного елементу кожному рядку масива, використовуючи при цьому чотири (4) умовні верхівки і вісім (8) операційних верхівок. Позначення операційних верхівок показано на Рис.2. Позначення умовних верхівок на Рис.3.
Кожна верхівка, чи то операційна чи умовна, кодується. При чому, якщо, мікрооперації повторюються і умовні верхівки повторюються, вони кодуються однаково. В даному прикладі три мікрооперації повторюються двічі, тому, однакові верхівки ми можемо кодувати одним кодом. Таблиця кодування верхівок зображена у Таблиці1.
Таблиця 1
Код |
Зміст |
Примітки |
mY1 |
j = 1 |
|
mY2 |
i = 1 |
|
mY3 |
max = 0 |
|
mY4 |
A [i,j] |
Ввід A [i,j] |
mY5 |
max = A [i,j] |
|
mY6 |
i = i + 1 |
|
mY7 |
max |
Вивід max |
mY8 |
j = j + 1 |
|
X1 |
A [i,j]% 2 |
так - 1, ні - 0 |
X2 |
A [i,j] > max |
так - 1, ні - 0 |
X3 |
i < n |
так - 1, ні - 0 |
X4 |
j < m |
так - 1, ні - 0 |
Закодована мікроопераційна схема алгоритму будується на основі змістовної схеми алгоритму (Рис.1) і таблиці кодування операційних та умовних верхівок (Таблиця 1), шляхом заміни відповідних блоків. Схема алгоритму зображена на Рис.4.
Складаємо таблицю кодування мікрокоманд. Кожна операція кодується своєю мікрокомандою. Мікрооперації, які виконуються одна за одною послідовно на протязі одного такта часу, обєднуються в одну мікрокоманду. В даному прикладі двічі по дві мікрооперації ( (mY2, mY3) и (mY7, mY8)) виконуються послідовно. Тому ми обєднуємо їх в одну мікрокоманду. Таблиця кодування зображена в Таблиці 2.
Таблиця 2
Мікрокоманда |
Мікрооперація |
Y1 |
mY1 |
Y2 |
mY2,mY3 |
Y3 |
mY4 |
Y4 |
mY5 |
Y5 |
mY6 |
Y6 |
mY7, mY8 |
Складаємо закодовану мікрокомандну схему алгоритма (Рис.5). Проставляємо мітки внутрішніх станів автомата Мура таким чином:
мітки ставляться біля кожної мікрокоманди;
початок і кінець мікрокомандної схеми алгоритма відмічається міткою а0;
перехід з одного стану в інший повинен проходити через умовну або операційну верхівки автомата;
- біля кожної мікрокоманди мітки проставляються відповідно порядковому номеру;
Будуємо основну таблицю автомата Мура (Таблиця 3). Ця таблиця складається на основі закодованої мікрокомандної схеми алгоритму
(Рис.5) У першому стовпчику таблиці записуються стани, в яких може збути наш автомат. В першому рядку таблиці записуються способи переходу автомата з одного стану в інший (вхідні сигнали), тобто, чи то буде СІ (той перехід, в процесі якого на шляху не зустрілася жодна вершина), чи при переході автомату буде поставлена умова. В клітинках таблиці фіксується, перехід в який стан виконується та, що буде на виході. Наприклад, із стану а0 автомат може здійснити перехід у стан а1 і в результаті цього переходу на виході автомата буде Y1, тобто, автомат виконає ті мікрооперації, які виконуються на протязі одного такту часу (mY1 закодована мікрокомандою Y1), при чому, цей перехід станеться під синхроімпульс ним сигналом.
Таблиця 3
СІ=1 |
X1, X2 |
X1, |
X3 |
X4 |
||||
a0 |
a1/Y1 |
|||||||
a1 |
a2/Y2 |
|||||||
a2 |
a3/Y3 |
|||||||
a3 |
a5/Y5 |
a4/Y4 |
a5/Y5 |
|||||
a4 |
a5/Y5 |
|||||||
a5 |
a3/Y3 |
a6/Y6 |
||||||
a6 |
a2/Y2 |
a0/ __ |
Будуємо граф-схему переходів (Рис.7). Граф-схема будується на основі Рис.5. і Таблиці 3. Кружочками позначаються можливі стани автомата. Стрілки указують на перехід із стану i до стану j. Над стрілкою указується, під яким вхідним сигналом станеться перехід і, що при цьому буде на виході автомата.
Складаємо систему рівнянь переходів. Ця система складається на основі граф-схеми переходів (Рис.7) або основної таблиці абстрактного автомата (Таблиця 3).
Для того, щоб закодувати внутрішні стани автомата, визначаємо кількість необхідних для цього тригерів (n). Кількість тригерів розраховується із співвідношення: log2 A ≤ n, де
n - кількість необхідних тригерів;
А - кількість міток аi (a0 - a6)
А = 7log2 7 ≤ nn = 3,Оскільки, нам необхідно 3 тригера, то внутрішні стани автомата будемо кодувати трьох розрядним війковим кодом. Процес кодування зображений в Таблиці 4.
Таблиця 4
S1 |
S2 |
S3 |
|
a0 |
|||
a1 |
0 |
||
a2 |
0 |
||
a3 |
0 |
||
a4 |
1 |
||
a5 |
1 |
||
a6 |
Операційний автомат складається з трьох (3) частин (Рис.5).
У вхідній частині розташовані три (3) D-тригери, три (3) логічних елементи АБО, на які подається вхідний сигнал, декодер та дві шини, одна з яких необхідна для передачі сигналів, які надходять з декодера, а інша - для сигналів з виходів компаратора.
У перехідній частині автомата виконується перетворення сигнала на протязі одного такту часу. Пройшовши через логічні елементи І та (або) АБО, чи того не роблячи, сигнал змінюється і результат надходить на шину (at), відкіля продовжує передаватися до програмованої логічної матриці. Перехідна частина будується на основі системи рівнянь переходів.
Вихідна частина. Ця частина будується на основі системи рівнянь виходів. Тут виконується той самий процес, що й у перехідній частині, тільки сигнали подаються на вихідну шину Yt, з якої сигнал надходить до вихідної матриці.
3.2.11 Схема операційного автомата
8
7
Висновки
В результаті виконання курсового проекту повністю виконане індивідуальне завдання. Синтезовано мікропрограмний автомат за схемою Уілкса-Стрінжера у вигляді автомата Мілі, та автомат за схемою Уілкса-Стрінжера у вигляді автомата Мура.
Сформульовано докладні алгоритми виводу автоматів, та отримано кінцеві структурні схеми на І, АБО, НЕ, RS, D - тригерах і граф схеми переходів автоматів.