
- •Мова опису апаратури ahdl
- •1. Опис комбінаційних схем
- •1.1. Шифратор
- •1.2. Дешифратор
- •1.3. Мультиплексор
- •1.4. Демультиплексор
- •1.5. Перетворювач коду
- •1.6. Компаратор
- •1.7. Суматор
- •1.8. Шинні приймачі-передавачі
- •1.9. Схеми монтажного «і» і «або»
- •2.1. Регістри
- •2.1.1. Паралельний регістр
- •2.1.2. Регістр зсуву
- •2.1.3. Регістр зсуву з паралельним завантаженням даних
- •2.1.4. Універсальний регістр
- •2.1.5. Циклічний регістр зсуву
- •Часть 2. Практическое использование языка ahdl. М. 2005.- 34 с.
- •1. Опис комбінаційних схем……………………………… 3
- •1.1. Шифратор ………………………………………………………………. 3
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
УЖГОРОДСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІНЖЕНЕРНО-ТЕХНІЧНИЙ ФАКУЛЬТЕТ
КАФЕДРА « КОМП’ЮТРНИХ СИСТЕМ ТА МЕРЕЖ»
Мова опису апаратури ahdl
Методичні вказівки з курсу
Автоматизація проектування комп’ютерних систем
Частина 2
ПРАКТИЧНЕ ВИКОРИСТАННЯ МОВИ AHDL
Ужгород 2008
Методичні вказівки до лабораторних робіт з курсу
«Автоматизація проектування комп’ютерних систем»
для студентів 4-го курсу інженерно-технічного факультету
спеціальність «Комп’ютерні системи та мережі»
Укладач: Король І.Ю., канд. фіз.-мат. наук, доцент
Рецензенти:
Відповідальний за випуск: Король І.Ю., канд. фіз.-мат. наук, доцент,
зав. кафедри комп’ютерних систем та мереж
Дані методичні вказівки розглянуто та схвалено на засіданні кафедри комп’ютерних систем та мереж, протокол № від 2008 р.
та методичної комісії інженерно-технічного факультету,
протокол № від 2008 р.
1. Опис комбінаційних схем
1.1. Шифратор
Шифратор — комбінаційний пристрій, що перетворює 2n-розрядний унітарний код (код 1 із N) у двійковий n-розрядний код. Опис трирозрядного шифратора:
SUBDESIGN CD_8
(
IN[8..1] : INPUT;
Binary_code[3..0] : OUTPUT;
)
BEGIN
DEFAULTS
Binary_code[] = 9;
END DEFAULTS;
TABLE
in[8..1] => Binary_code[3..0];
b"00000001" => 0;
b"00000010" => 1;
b"00000100" => 2;
b"00001000" => 3;
b"00010000" => 4;
b"00100000" => 5;
b"01000000" => 6;
b"10000000" => 7;
END TABLE;
END;
У даному текстовому описі значення логічних функцій Binary Code[3..0] задані не на всіх наборах аргументів. Якщо в програмі не використовувати оператор Defaults, то, за замовчуванням, на всіх незаданих в таблиці істинності наборах аргументів, групі виходів Binary_Code[3..0] буде присвоєне значення В”0000”. У програмі використаний оператор Defaults, який у явному вигляді на всіх, не визначених в таблиці істинності значеннях аргументів, задає значення групи виходів Binary_Code[3..0] рівне В“1001”.
Результати моделювання модуля CD_8 наведено на рис. 1.
Рис. 1.
З рис. 1. видно, що для вхідних кодів “0” і “6”, які не задані в таблиці істинності, вихідне значення, яке генерується пристроєм, дорівнює В “1001”.
Для уведення даних з клавіатури звичайно застосовується неповний шифратор 10 → 4. У такому шифраторі клавіші кожної десяткової цифри відповідає свій двійковий код. Ознака помилки формується, якщо одночасно натиснуто більше однієї клавіші або не натиснуто ні однієї клавіші.
SUBDESIGN CD_10
(
IN[9..0] : INPUT;
Binary_code[4..1], Error_ : OUTPUT;
)
BEGIN
DEFAULTS
Error_ = GND;
BINARY_CODE[] = 15;
END DEFAULTS;
CASE IN[9..0] IS
WHEN H"001" => BINARY_CODE[] = B"0000"; --натиснута клавіша 0
WHEN H"002" => BINARY_CODE[] = B"0001"; --натиснута клавіша 1
WHEN H"004" => BINARY_CODE[] = B"0010"; --натиснута клавіша 2
WHEN H"008" => BINARY_CODE[] = B"0011"; --натиснута клавіша 3
WHEN H"010" => BINARY_CODE[] = B"0100"; --натиснута клавіша 4
WHEN H"040" => BINARY_CODE[] = B"0110"; --натиснута клавіша 6
WHEN H"080" => BINARY_CODE[] = B"0111"; --натиснута клавіша 7
WHEN H"100" => BINARY_CODE[] = B"1000"; --натиснута клавіша 8
WHEN H"200" => BINARY_CODE[] = B"1001"; --натиснута клавіша 9
WHEN OTHERS =>;
END CASE;
END;
У наведеному текстовому описі значення логічних функцій Binary_code[4.. 1] і ERROR_ задані не на всіх наборах аргументів. Тому, так само як і в попередньому прикладі, якщо не заданий оператор DEFAULTS, то на цих наборах вони будуть мати значення логічного нуля. У наведеній програмі логічним функціям Binary_code[4.. 1] і ERROR_ за замовчуванням присвоєні значення «1111» і логічного нуля (GND).
Примітки:
1. Строго кажучи, присвоєння Error_ = GND є надлишковим, оскільки воно вже задано за замовчуванням.
2. У таблиці для задання вхідного сигналу використані числа задані в шістнадцятковій системі числення.
Результати моделювання модуля CD_10 наведено на рис. 2.
Рис. 2.
З наведених часових діаграм видно, що при формуванні активного рівня сигналу помилки (ERROR_= VCC) вихідний код приймає значення В ”1111”.