Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мова опису апаратури AHDL_Частина2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
455.68 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

УЖГОРОДСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІНЖЕНЕРНО-ТЕХНІЧНИЙ ФАКУЛЬТЕТ

КАФЕДРА « КОМП’ЮТРНИХ СИСТЕМ ТА МЕРЕЖ»

Мова опису апаратури 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”.