Порядок виконання роботи

 

1. Скласти опис схеми (рис. 2.1) на мові VHDL трьома типами опису: структурному, потоковому та поведінковому.

2. Провести компіляцію написаних програм та їх моделювання.

3. Порівняти результати моделювання і зробити висновки.

 

2.3 Зміст звіту

 

1. Мета роботи.

2. Рисунок схеми та її опис.

3. Тексти написаних програм.

4. Результати моделювання.

5. Висновки.

2.4 Контрольні запитання

 

1. Історія розвитку мови VHDL. Стандарти мови. Призначення кожного стандарту.

2. Цифрові системи. Зв'язок між описом поведінки і структури ЦС. Наведіть приклад.

3. Організація VHDL-проекту цифрової системи в САПР Active-HDL.

4. Три методи опису ЦС мовою VHDL (потоку даних, поведінковий, структурний). Наведіть приклади.

5. Текстовий редактор HDE САПР Active-HDL. Функціональне призначення і основні елементи управління.

6. Редактор логічних схем BDE САПР Active-HDL. Функціональне призначення і основні елементи управління.

7. Використовування бібліотек і пакетів в мові VHDL.

8. Модуль entity VHDL-проекту САПР Active-HDL. Загальний опис і функціональне призначення декларативної частини VHDL-програми.

9. Модуль architecture VHDL-проекту САПР Active-HDL. Загальний опис і функціональне призначення виконавчої частини VHDL-програми.

10. Базові типи даних VHDL (логічні, числові, фізичні).

11. Багаторівнева логіка (стандарт IEEE Std. 1164).

12. Складені типи даних (масиви, записи тощо).

13. Атрибути мови VHDL.

14. Оператори мови VHDL. Наведіть приклади використання.

15. Послідовні і паралельні інструкції мови VHDL.

16. Використання підпрограм у мові VHDL. Наведіть приклади.


3 ІНДИВІДУАЛЬНІ ЗАВДАННЯ

3.1 Семисегментний індикатор

 

Семисегментний індикатор (рис. 3.1) часто використовується в недорогих пристроях відображення цифрової інформації. Приводиться в дію 7-розрядним позиційним кодом, кожний біт якого відповідає стану певного сегменту ('1' - включений, '0' - вимкнений).

 

 

Рисунок 3.1 – Семисегментний індикатор

 

Завдання 1. Розробити VHDL-модель формувача позиційного коду семисегментного індикатора (7 виходів). На вхід формувача повинен поступати 4-розрядний двійковий код.

 

3.2 Клавіатурні прапори

 

Натиснення і відпуски клавіш клавіатури IBM PC/AT- сумісного комп'ютера обробляє BIOS INT 9h. Кожний прийнятий скан-код обробляється з урахуванням стану клавіатурних прапорів. Прапори клавіатури постійно відображаються в пам'яті 0:0417h і 0:0418h усередині області даних BIOS (BIOS Data Area). В таблиці вказані призначення розрядів цих двох байтів.

 

Таблиця 3.1 – Байт 0:0417h

 

Розряд Призначення Розряд Призначення
натиснута клавіша Shift (права); включений індикатор Scroll Lock;
натиснута клавіша Shift (ліва); включений індикатор Num Lock;
натиснута клавіша Ctrl; включений індикатор Caps Lock;
натиснута клавіша Alt; включений режим Insert;

Таблиця 3.2 – Байт 0:0418h

 

Розряд Призначення Розряд Призначення
натиснута клавіша Ctrl (ліва); натиснута клавіша Scroll Lock;
натиснута клавіша Alt (ліва); натиснута клавіша Num Lock;
натиснута клавіша SysReq; натиснута клавіша Caps Lock;
включений режим Pause; натиснута клавіша Insert;

 

З таблиць 3.1 та 3.2 видно, що біти 4..7 обох байтів стану клавіатури встановлюються одним сигналом.

Завдання 2. Розробити шифратор, що формує 16-розрядний код стану клавіатури залежно від сигналів, що поступають від 12 джерел:

- ліва клавіша Shift (сигнал LEFT_SHIFT);

- права клавіша Shift (сигнал RIGHT_SHIFT);

- ліва клавіша Ctrl (сигнал LEFT_CTRL);

- права клавіша Ctrl (сигнал RIGHT_CTRL);

- ліва клавіша Alt (сигнал LEFT_ALT);

- права клавіша Alt (сигнал RIGHT_ALT);

- клавіша Caps Lock (сигнал CAPSLOCK);

- клавіша Num Lock (сигнал NUMLOCK);

- клавіша Scroll Lock (сигнал SCROLLOCK);

- клавіша Insert (сигнал INSERT);

- клавіша Pause (сигнал PAUSE);

- клавіша SysReq (сигнал SYSREQ).

 

3.3 Шифратор коду Хеммінга

 

Відстанню Хеммінга між двома n-розрядними двійковими рядками називається число розрядів, в яких ці рядки розрізняються. В геометричній інтерпретації - це мінімальна довжина шляху між двома відповідними вершинами. Наприклад, відстань Хеммінга між двома сусідніми вершинами дорівнює 1; відстань між вершинами 3-мірного куба 001 і 100 дорівнює 2 ( рис. 3.2).

 

 

Рисунок 3.2 – Геометрична інтерпретація відстані Хеммінга

Код Хеммінга є коректуючим кодом. В загальному випадку справедливо правило: якщо мінімальна відстань в коді рівно 2c+1, то з його допомогою можна виправляти до c помилок в бітах. Якщо мінімальна відстань коду рівно 2c+d+1, то він дозволяє виправляти до c помилок і знаходити до d помилок в інших бітах. Наприклад, коректуючий код з мінімальною відстанню 3 може виправляти одну помилку (c=1, d=0). Якщо мінімальна відстань коду 4, то можливі два випадки: c=1, d=1, або c=0, d=3.

В розрядах коду Хеммінга, що є ступенем двійки (1,2,4 і т.д.), розміщуються перевірочні біти, в решті розрядів - інформаційні біти. Кожний перевірочний біт разом з деякою підмножиною інформаційних бітів об'єднується в групу згідно наступному правилу. В групу, що відноситься до кожного перевірочного біта, потрапляють такі інформаційні біти, у яких номер позиції в двійковому записі містить 1 в тому ж розряді, що і номер позиції перевірочного біта. Наприклад, перевірочний біт з номером 2 (010) об'єднується в одну групу з інформаційними бітами з номерами 3 (011), 6 (110), 7 (111). Значення перевірочного біта повинне бути таким, щоб повне число одиниць в групі було парним.

 

Таблиця 3.3 – Код Хеммінга з мінімальною відстанню 3

 

Інф. біти Перев. біти

 

Завдання 3. Розробити VHDL-модель шифратора коду Хеммінга з мінімальною відстанню 3. Вхід - чотири інформаційні біти, вихід - 7-розрядний код Хеммінга.

3.4 Дешифратор адреси інтерфейсу IEEE 1284

 

Регістри паралельного порту (інтерфейс IEEE 1284) IBM PC/AT-сумісного комп'ютера адресуються відносно базової адреси BASE. В режимі ЕСP паралельний порт комп'ютера обслуговують 10 регістрів, доступ до яких забезпечується через розширений простір адрес уведення-виведення. Окрім адреси порту, при виборі регістра враховується режим роботи (кодується трьома бітами). В таблиці 3.4 приведена карта портів уведення-виведення паралельного інтерфейсу в режимі ЕСP.

 

Таблиця 3.4 – Регістри ЕСP

 

Адреса Режим Регістр Сигнал
BASE 000-001 Data Register DR
BASE ECP Address FIFO ECPAFIFO
BASE+1 000-111 Status Register SR
BASE+2 000-111 Control Register CR
BASE+400h Parallel Port Data FIFO SDFIFO
BASE+400h ECP Data FIFO ECPDFIFO
BASE+400h Test FIFO TFIFO
BASE+400h Configuration Register A CNFGA
BASE+401h Configuration Register B CNFGB
BASE+402h 000-111 Extended Control Register ECR

 

Завдання 4. BASE = 3BCh. Розробити VHDL-модель поведінки дешифратора адреси паралельного порту в режимі ЕСP. На вхід такого дешифратора повинні поступати дві шини: 11-розрядна шина ADDR адреси порту уведення-виведення і 3-розрядна шина MODE, що задає режим роботи порту. На виході повинен формуватися 10-розрядний позиційний код, що відповідає сигналу вибору того або іншого регістра контролера інтерфейсу IEEE 1284.