Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Звіт
з лабораторної роботи № 4
з дисципліни: “Проектування вбудованих комп’ютерних систем”
На тему: «Проектування та дослідження регістрових схем»
Львів 2014
«Проектування та дослідження регістрових схем»
Метою роботи є Проектування і перевірка роботи регістрових схем:
паралельного регістра;
лічильника.
Варіант роботи (початковий стан лічильника) задає викладач.
Хід роботи.
Запускаю програму:
/
Створюю нове робоче середовище:
/
Створюю порожній проект:
/
Визначаю додаткові параметри проекту:
/
Задаю ім’я проекту:
/
Закінчую введення даних про проект:
/
Відкриваю новий аркуш графічного редактора:
/
За допомогою генератора ядер згенеровую 4-розрядний регістр з тригерів, що спрацьовують по фронту синхроімпульсів:
/
Проводжу компіляцію створеного ядра:
/
Розміщую символ ядра на аркуші, під’єднюю вхідні та вихідні сигнали та контакти, даю їм імена і зберігаю створену схему:
/
Відкомпільовую файл із схемою, встановлюю схему як схему найвищого рівня (яка буде моделюватися)
переходжу до режиму моделювання.
Створити командний файл 4.do:
/
view wave
restart
wave GRS_CLK GRS_CLR GRS_LOAD GRS_DATA GRS_Q GRS_U GRS_CT GRS_CL GRS_CM
force GRS_CLR 1 0 ns, 0 55 ns, 1 205 ns, 0 215 ns
force GRS_LOAD 0 0 ns, 1 105 ns, 0 185 ns
force GRS_DATA 16#1 65 ns, 16#3 95ns, 16#5 125 ns, 16#a 155 ns
force -r 10 ns GRS_CLK 1 0 ns, 0 5 ns
run 400 ns
Проводжу моделювання схеми:
Створюю регістр, використовуючи його VHDL-опис:
Клацаю правою клавіщею мишки на полі схеми, обраю режим роботи з VHDL-процесами:
/
Встановлюю схему заготовку вузла, який може виконувати процеси, під’єдную до нього вхідні та вихідні сигнали, під’єднюю контакти і даю їм імена:
/
Редагую властивості заготовка:
Даю ім’я, яке нагадує моє прізвище:
/
Зберігаю новоутворену схему:
Копіюю VHDL-опис процеса регістра, утвореного за допомогою генератора ядер:
/
Встановлюю цей опис у заготовку, виправляю в описі назви сигналів, так щоб вони збігалися з сигналами, які підведені до заготовка на схемі:
/
Зберігаю схему, проводжу її компіляцію, перезапускаю режим моделювання, додаю нові сигнали до командного файлу:
view wave
restart
wave GRS_CLK GRS_CLR GRS_LOAD GRS_DATA GRS_Q GRS_U GRS_CT GRS_CL GRS_CM
force GRS_CLR 1 0 ns, 0 55 ns, 1 205 ns, 0 215 ns
force GRS_LOAD 0 0 ns, 1 105 ns, 0 185 ns
force GRS_DATA 16#1 65 ns, 16#3 95ns, 16#5 125 ns, 16#a 155 ns
force -r 10 ns GRS_CLK 1 0 ns, 0 5 ns
run 400 ns
Проводжу моделювання, пересвідчуюсь, що результати роботи двох вузлів збігаються:
За попередньою методикою створюю за допомогою генаратора ядер і VHDL-опису 4-розрядний лічильник.
/
Додатково під’єднюю до проекта посилання на бібіотеку IEEE.std_logic_unsigned.all:
/
Зберігаю новоутворену схему:
/
Приклад VHDL-опису лічильника:
/
Промодельовую схему і пересвідчуюсь, що обидва лічильники працюють аналогічно:
Створюю 4-розрядний лічильник на основі мікропрограмного автомату.
За допомогою генератора ядер згенеровую ПЗП з організацією 4х4:
/
Відкореговую VHDL-опис ПЗП так, щоб код на виході ПЗП був на 1 більшим за код на вході ПЗП.
Створюю схему мікропрограмного автомату:
/
/
Зберігаю новоутворену схему:
/
Промодельовую схему і пересвідчуюся, що лічильники на основі мікропрограмного автомату збільшує свій стан при наявності сигналу Load:
/
Висновки: на цій лабораторній роботі я навчився проектувати і перевіряти роботи регістрові схеми:
- паралельні регістри;
- лічильники.