- •До лабораторних робіт з дисципліни
- •Частина 2
- •1 Середовище сапр active–hdl
- •1.1 Загальні відомості про Active-hdl
- •1.2 Створення нового проекту
- •1.3 Створення нового документа (введення тексту програми)
- •1.4 Компіляція проекту
- •1.5 Моделювання
- •1.6 Порядок виконання роботи
- •1.8 Контрольні запитання
- •2 Мова програмування vhdl
- •2.1 Теоретична довідка
- •2.1.1 Опис об'єктів мовою vhdl
- •2.1.2 Типи даних і операції
- •2.1.3 Оператори мови vhdl
- •2.2 Порядок виконання роботи
- •2.4 Контрольні запитання
- •3 Індивідуальні завдання
- •3.1 Семисегментний індикатор
- •3.2 Клавіатурні прапори
- •3.3 Шифратор коду Хеммінга
- •3.4 Дешифратор адреси інтерфейсу ieee 1284
- •3.5 Дешифратор адреси плати pcl-711b
- •3.6 Режими адресації мікропроцесора Intel 8086
- •3.7 Система команд мікропроцесору Intel 4004
- •3.8 Приклад виконання роботи
- •3.8.1 Створення проекту
- •3.8.2 Створення компоненту
- •3.8.3 Створення файлу верхнього рівня
- •Література
- •6 9063 М. Запоріжжя, знту, друкарня, вул. Жуковського, 64
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
Інф. біти |
Перев. біти |
111 |
110 |
101 |
100 |
011 |
010 |
001 |
0000 |
000 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0001 |
011 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0010 |
101 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0011 |
110 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0100 |
110 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0101 |
101 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0110 |
011 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0111 |
000 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1000 |
111 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1001 |
100 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1010 |
010 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1011 |
001 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1100 |
001 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1101 |
010 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1110 |
100 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1111 |
111 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Завдання 3. Розробити VHDL-модель шифратора коду Хеммінга з мінімальною відстанню 3. Вхід - чотири інформаційні біти, вихід - 7-розрядний код Хеммінга.