Курсовая работа: Синтез схеми ПЛІС для інвертора
cear_c00000000IR <=(PC) , PC <= PC +1 C <= 0
set_c00000001IR <=(PC) , PC <= PC +1 C <= 1
skip_c00000010IR <=(PC) , PC <= PC +1 PC <= PC + C
skip_z00000011IR <=(PC) , PC <= PC +1 PC <= PC + Z
jump #a1 a6a5a4a3a2a1a0IR <=(PC) , PC <= PC +1 PC <= [IR6..IR0]
Пояснення:
1.IR –регістр інструкції, [IR3..IR0] – бінарний код, що зберігає його молодша тетрада.
2.([IR3..IR0]) – вмістиме комірки пам’яті даних за адресою, що містить молодша тетрада регістра інструкцій.
3.Виконання будь-якої інструкції розкладено на три фази (стадії):
-FETCH : вибирання нової інструкції з пам’яті інструкцій на регістр інструкцій, обчислення адреси наступної інструкції програми за правилом “поточна адреса + 1”;
-DECODE : декодування поточної інструкції (в нас – це читання операнду з пам’яті даних до молодшої тетради регістру інструкцій);
-EXECUTE : виконання поточної інструкції за її алгоритмом, що може вимагати корекції вмістимого програмного лічильника РС.
4.d3, d2, d1, d0, a6, a5, a4, a3, a2, a1, a0 – позначки окремих бітів формату машинної інструкції.
Зазначимо, що процесор не є конвеєрним. Отже, доки виконуються всі три стадії поточної інструкції, обробка наступної інструкції не розпочинається. Тут відсутні відомі негативні ефекти конвеєра інструкцій, а саме, наявність і необхідність скасування залежностей даних, керування і структур. Питання, на яке потрібно подати письмову відповідь в пояснювальній записці, є наступним: чи можна цю систему інструкцій конвеєризувати? Коли так, то як це зробити?
Розробка тестової програми
Призначення тестової програми – верифікувати розроблений і імплементований до ПЛІС комп’ютер як єдність апаратних і програмних засобів. Маючи тестову програму, верифікацію можна провести двома способами.
1.Здійснити віртуальне часове моделювання функціонування комп’ютера, що керується тестовою програмою (засобами програмного симулятора ModelSim).
2.Завантажити отриманий проектуванням файл конфігурування цільової ПЛІС до фізичного емулятора (прототипної плати) і за допомогою генератора сигналу і осцилографа (або їх спрощених аналогів) переконатися в тому, що поведінка імплементованого до ПЛІС комп’ютера визначена тестовою програмою. Маємо реальну верифікацію.
Обидва способи не гарантують виявлення усіх можливих помилок в результатах проектування. Проте імовірність наявності помилок вони зменшують. Гарантоване виявлення всіх помилок методом верифікації можна досягти лише в спосіб перебору всіх варіантів, що не завжди неможливе. При цьому залишається невідомим метод математичного доведення коректності функціонування машини з програмою, що зберігається в пам’яті.
Пропонуємо наступну тестову програму для тетрадної машини, що додає дворозрядні гексадецимальні числа, виконуючи операцію поцифрово, в два прийоми.
Таблиця 3 – Асемблерна тестова програма і її машинні коди
Адреса Машинний код Асемблер Коментар
000018Load #8
Iніціалізувати регістри числами, що додаються, а саме:
0x29 + 0x48 = 0x71.
Обнулити перенос.
Знайти суму молодших цифр і зберігти в R4.
Додати старші цифри + перенос. Зберігти суму старших цифр в R5.
000130Store R0