Структура COM-порту при його реалізації в САПР MAX+PLUS II

Розробка цифрових засобів ПЛІС в інтегрованому середовищі проектування MAX+PLUS II
Генезис програмувальних логічних інтегральних схем, їх класифікація та архітектура Призначення та структура системи автоматизованого проектування MAX+PLUS II Процедура компіляції створеного проекту в системі автоматизованого проектування MAX+PLUS II Загальні відомості про мову описання апаратури AHDL Синхронний RS-тригер JK-тригер Програма реалізації тригерів в інтегрованому середовищі MAX+PLUS II Паралельні регістри зсуву Програма реалізації регістрів в інтегрованому середовищі MAX+PLUS II Асинхронний лічильник з модулем 10 Програми реалізації лічильників в інтегрованому середовищі MAX+PLUS II Теоретичні відомості про мультиплексори, демультиплексори, шифратори, дешифратори Демультиплексор Дешифратор Результати програмної реалізації мультиплексорів, демультиплексорів, шифраторів, дешифраторів Віднімачі Програми реалізації суматорів, віднімачів в інтегрованому середовищі MAX+PLUS II Структура COM-порту при його реалізації в САПР MAX+PLUS II Результати програмної реалізації COM-порту в САПР MAX+PLUS II
120215
знаков
18
таблиц
54
изображения

8.2 Структура COM-порту при його реалізації в САПР MAX+PLUS II

Принципова структурна схема COM-порту при його реалізації в системі автоматизованого проектування MAX+PLUS II зображена на рис. 8.4. Вона являє собою розгорнутий варіант рис. 8.2, де в ролі одно кінцевого об’єкту передачі даних виступатиме пульт з 20 варіантами вихідного сигналу.

Візьмемо стоп-біт, що дорівнює 1, а кількість бітів даних - 8. Частота сигналу синхронізації може бути рівною 115200 біт за секунду або 9600 біт за секунду. Для забезпечення схеми з можливістю переключення частоти введемо до неї сигнал переключення (switch signal), який і переключатиме частоту сигналів синхронізації, що поступатиме на вхід тактування.

Всі елементи схеми доцільно описати окремо за допомогою мови AHDL в текстовому редакторі, а потім, використовуючи символьний редактор, перетворити елементи на символи і зібрати повністю всю схему вже у графічному редакторі.

Розглянемо функціональне призначення кожного з наведених в схемі пристроїв.

Шифратор 20 на 10 має 20-розрядний вхід (Encipherer_1_input[20..1]) і 10-розрядний вихід (Encipherer_1_output[10..1]). Шифратор описаний з використанням таблиці дійсності виконує дві функції.

По-перше, в залежності від натиснутої на пульті клавіші він видає двійковий код, який знаходиться в діапазоні від 0000000011 до 0000101001. Дана двійкова послідовність вихідного коду завжди починається з 0, а закінчується 1, ці числа являють собою ніщо інше, як старт-біт і стоп-біт. Тобто шифратор на своєму виході дає вже готовий код, що може передаватись по лінії зв’язку.

По-друге, можливий випадок коли дві клавіші будуть натиснуті одночасно, що може призвести до збою в системі. Тому рядок

WHEN OTHERS => Encipherer_1_output[] = b"1111111111";

дає вказівку шифратору видавати на виході двійковий код 1111111111 в будь-яких інших випадках, не передбачених таблицею дійсності шифратора - це захисна функція.

5-розрядний лічильник на D-тригерах має вхід (Counter_1_input), на який поступає сигнал синхронізації від зовнішнього генератора імпульсів, вхід очищення (Reset) і виконує функцію дільника частоти. Даний лічильник має два виходи (Counter_1_output[1] і Counter_1_output[1]), що відповідають вхідній частоті, поділеній на 2 і вхідній частоті, поділеній на 12.

Мультиплексор має 4 інформаційні (Multiplexer_1_input[4..1]), 2 адресні входи (Switch_signal[2..1]) і вхід дозволу роботи (Enable). Пристрій реалізовано за допомогою емульованої таблиці дійсності і його завданням є переключення виходу (Multiplexer_1__output) на один з інформаційних входів в залежності від стану адресних входів. Оскільки частота роботи системи може бути рівною 115200 біт за секунду або 9600 біт за секунду, то для керування переключенням досить і одного адресного входу, а другий адресний вхід (Switch_signal[2]), що у вікні графічного редактору відповідає імені SWITCH[2], заземлимо. З тієї ж самої причини заземлимо сигнали Multiplexer_1_input[4] і Multiplexer_1_input[3], що у вікні графічного редактору відповідають іменам MUX[4] і MUX[3]. Другий адресний вхід може бути потрібний, якщо в майбутньої, при модифікації схеми, кількість можливих варіацій частоти збільшиться до чотирьох.

4-розрядний лічильник на D-тригерах має вхід (CLK), на який передається обраний за допомогою мультиплексора сигнал синхронізації і вхід очищення (Reset). Цей лічильник керує завантаженням послідовного регістру шляхом призначення власному виходу (LOAD) значення 0 або 1: 0 – завантаження заборонено, 1 – завантаження дозволено.

10-розрядний паралельний регістр D-тригерах зберігає і зсуває з приходом кожного нового імпульсу синхронізації вихідний код, що сформований і переданий йому мультиплексором. Регістр має 10-розрядний вхід для завантаження “інформаційного” коду (Register_1_input[9..0]), вхід дозволу роботи (Enable), вхід предвстановлення (Set), вхід синхронізації (Clk), вхід керуванням завантаження (Load) і однорозрядний вихід (Register_1_output).

8.3 Програми структурних компонентів COM-порту мовою AHDL в САПР MAX+PLUS II

Програма для реалізації шифратора 20 на 10 (опис таблицею дійсності шифратора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

Subdesign encipherer_1

(

Encipherer_1_input[20..1] : input;

Encipherer_1_output[10..1] : output;

)

Begin

CASE Encipherer_1_input[] IS

WHEN b"00000000000000000001" => Encipherer_1_output[] = b"0000000011";

WHEN b"00000000000000000010" => Encipherer_1_output[] = b"0000000101";

WHEN b"00000000000000000100" => Encipherer_1_output[] = b"0000000111";

WHEN b"00000000000000001000" => Encipherer_1_output[] = b"0000001001";

WHEN b"00000000000000010000" => Encipherer_1_output[] = b"0000001011";

WHEN b"00000000000000100000" => Encipherer_1_output[] = b"0000001101";

WHEN b"00000000000001000000" => Encipherer_1_output[] = b"0000001111";

WHEN b"00000000000010000000" => Encipherer_1_output[] = b"0000010001";

WHEN b"00000000000100000000" => Encipherer_1_output[] = b"0000010011";

WHEN b"00000000001000000000" => Encipherer_1_output[] = b"0000010101";

WHEN b"00000000010000000000" => Encipherer_1_output[] = b"0000010111";

WHEN b"00000000100000000000" => Encipherer_1_output[] = b"0000011001";

WHEN b"00000001000000000000" => Encipherer_1_output[] = b"0000011011";

WHEN b"00000010000000000000" => Encipherer_1_output[] = b"0000011101";

WHEN b"00000100000000000000" => Encipherer_1_output[] = b"0000011111";

WHEN b"00001000000000000000" => Encipherer_1_output[] = b"0000100001";

WHEN b"00010000000000000000" => Encipherer_1_output[] = b"0000100011";

WHEN b"00100000000000000000" => Encipherer_1_output[] = b"0000100101";

WHEN b"01000000000000000000" => Encipherer_1_output[] = b"0000100111";

WHEN b"10000000000000000000" => Encipherer_1_output[] = b"0000101001";

WHEN OTHERS => Encipherer_1_output[] = b"1111111111";

End CASE;

End;

Програма для реалізації мультиплексора з 4 інформаційними, 2 адресними і входом дозволу роботи (опис емульованою таблицею дійсності мультиплексора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

Subdesign multiplexer_1

(

Multiplexer_1_input[4..1] : input;

Switch_signal[2..1] : input;

Enable : input;

Multiplexer_1__output : output;

)

Begin

if Enable == 0 then

case Switch_signal[2..1] is

when 0 => Multiplexer_1__output = Multiplexer_1_input[1];

when 1 => Multiplexer_1__output = Multiplexer_1_input[2];

when 2 => Multiplexer_1__output = Multiplexer_1_input[3];

when 3 => Multiplexer_1__output = Multiplexer_1_input[4];

end case;

end if;

End;

Програма для реалізації 10-розрядного послідовного регістру зсуву за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

Subdesign register_1

(

Register_1_input[9..0] : input;

Enable, Set, Clk , Load : input;

Register_1_output : output;

)

Variable

Triggers[9..0] : DFFE;

Begin

Triggers[9..0].clk = Clk;

Triggers[9..0].prn = Set;

Triggers[9..0].ena = Enable;

IF Load == 0

THEN

Triggers[].d = (Triggers[8..0].q, VCC);

ELSE

Triggers[].d = Register_1_input[];

END IF;

Register_1_output = Triggers[9].q;

End;

Програма для реалізації 4-розрядного лічильника за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

Subdesign counter_2

(

CLK : input;

Reset : input;

LOAD : output;

)

Variable

TRIG[3..0] : DFF;

Begin

TRIG[].clrn = Reset;

TRIG[].clk = CLK;

IF ( TRIG[].q == B"1011")

THEN TRIG[].d = B"0000";

LOAD = B"1";

ELSE TRIG[].d = TRIG[].q + 1;

LOAD = B"0";

END IF;

End;

Програма для реалізації 5-розрядного лічильника за модулем 12 з допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

Subdesign counter_1

(

Counter_1_input : input;

Reset : input;

Counter_1_output[2..1] : output;

)

Variable

Triggers : JKFFE;

TRIG[4..0] : DFF;

Begin

Triggers.j = vcc;

Triggers.k = vcc;

Triggers.clrn = Reset;

Triggers.clk = Counter_1_input;

TRIG[].clrn = Reset;

TRIG[].clk = Counter_1_input;

IF ( TRIG[].q == B"11000")

THEN TRIG[].d = B"00000";

ELSE TRIG[].d = TRIG[].q + 1;

END IF;

Counter_1_output[2..1] = (TRIG[4].q,Triggers.q);

End;

Схема проекту COM-порту зібраного з окремих символів-підпрограм у вікні графічного редактору показано на рис. 8.5. Символи-підпрограми, що зображені у вигляді блоків з іменованими входами і виходами поєднані за допомогою ліній зв’язку.

Рис. 8.5. Реалізація проекту СОМ-порту в графічному редакторі


Информация о работе «Розробка цифрових засобів ПЛІС в інтегрованому середовищі проектування MAX+PLUS II»
Раздел: Информатика, программирование
Количество знаков с пробелами: 120215
Количество таблиц: 18
Количество изображений: 54

Похожие работы

Скачать
35274
1
16

... цих проектів, їх компіляції, комп’ютерного моделювання, загрузки проекту на кристал ПЛІС. Програмні продукти фірм Xilinx та Altera на сьогоднішній день є найбільш поширеними САПР для проектування цифрових пристроїв на ПЛІС. Серед програмних продуктів Xіlіnx є як відносно прості вільно розповсюджувані системи, так і потужні інтегровані пакети, що дозволяють розробляти ПЛІС еквівалентної ємності бі ...

Скачать
39468
0
18

... КП, відповідно; X Offset, Y Offset – зсув точки підключення траси відносно геометричного центру КП по осях X і Y, відповідно. Таблиця апертур (Apertures) містить опис використовуваних апертур. Таблиця Layers містить список шарів, використовуваних OrCAD Layout. Шари можуть бути наступних типів: Routing – шар трасування; Plane – шар металізації; Drill – шар символів отворів; Jumper – шар ...

Скачать
178729
2
1

... результаты отчета. Они являются кульминационным пунктом отчета и должны быть разумными, хорошо определенными, перечисленными и обоснованными [11].Практика дистанционного образования с использованием Internet Шутилов Ф.В. Особенности заочного образования - в необходимости обеспечить высокий уровень знаний при значительно меньшем времени непосредственного личного общения студентов с преподавателем. ...

0 комментариев


Наверх