(
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. Реалізація проекту СОМ-порту в графічному редакторі
8.4 Результати програмної реалізації COM-порту в САПР MAX+PLUS II
Результати тестування програмної реалізації COM-порту в САПР MAX+PLUS II наведено на рис. 8.6. Поетапно процес компіляції всього проекту, так як і його компонентів, описаний в розділі 4 даної дипломної роботи.
Рис. 8.6. Результати тестування проекту СОМ-порту
Висновки
В даній атестаційній магістерській роботі створено інформаційно-програмну базу роботи з інтегрованим середовищем MAX+PLUS II.
Інформаційна складова бази роботи з інтегрованим середовищем MAX+PLUS II являє собою описання структури розглядуваного середовища, призначення його основних додатків, а також їх взаємозв’язку, детально розкриту процедура розробки нового проекту в інтегрованому середовищі MAX+PLUS II; процес компіляції створеного проекту дозволить зменшити витрати часу на підготовку спеціалістів з програмування на ПЛІС та оволодіння ними практичних навичок.
З метою створення процесу програмування більш зрозумілим в роботі проведено класифікацію, а також розкрито архітектуру найбільш поширених програмувальних логічних інтегральних схем.
Програмна складова база роботи з інтегрованим середовищем MAX+PLUS II являє собою теоретичне описання базових пристроїв мікроелектроніки разом з програмами їх реалізації. В даній атестаційній магістерській роботі наведено програми мовою AHDL для програмування:
1) JK-тригера;
2) D-тригера;
3) RS-тригера;
4) синхронного RS-тригера;
5) 4-розярядного послідовного регістру зсуву;
6) 4-розярядного паралельного кільцевого регістру зсуву;
7) 4-розрядного асинхронного лічильника з крізним переносом за модулем 16;
8) асинхронного лічильника за модулем 10;
9) асинхронного трьохрозрядного лічильника віднімання;
10) 3-розрядного універсального лічильника;
11) шифратора 10 на 4;
12) 3-розрядного дешифратора з інверсними входами;
13) мультиплексора з двома адресними входами, чотирма інформаційними і входом дозволу роботи;
14) демультиплексора з трьома адресним входами, одним інформаційним і входом дозволу роботи;
15) 4-розярдного суматора;
16) 4-розярдного віднімача.
З метою більш детального пояснення взаємозв’язку різних додатків MAX+PLUS II в атестаційній магістерській роботі створено проект послідовного COM-порту, що складається з п'яти базових мікроелектронних пристроїв: шифратору 20 на 10, 10-розрядного паралельного регістру, мультиплексора з 4 інформаційними і 2 адресними входами, 4-розядного лічильника і 5-розярядного лічильника.
Оскільки в останній час архітектури програмувальних логічних інтегральних схем бурхливо розвиваються й удосконалюються, а методи проектування на їх основі залишаються без зміни, то викладений в роботі матеріал може використовуватися як в дидактичних, так і в науково-дослідницьких цілях.
На базі даної роботи розроблено комплекс лабораторних робіт, що дозволяють скоротить витрати часу на оволодіння навичками роботи в інтегрованому середовищі MAX+PLUS II.
Використана література
1. Антонов А.П. Язык описания цифровых устройств AlteraHDL. М.: Радиософт, 2001. – 221 стр.
2. Баранов С.И. Синтез микропрограммных автоматов. Л.: Энергия, 1979. 232 стр.
3. Девятков В.В Методы реализации конечных автоматов на сдвиговых регистрах. М.: Энергия, 1974. – 80 стр.
4. Денисенко Е.Л. Иерархический синтез асинхронных автоматов на программируемых логических интегральных схемах (ПЛИС) с учетом ограничений. М.: УсИМ, 1997. – 476 стр.
5. Закревский А.Д. Алгоритмы синтеза конечных автоматов. М.: Наука, 1971. – 502 стр.
6. Закревский А.Д. Логический синтез каскадных схем. М.: Наука, 1981. – 416 стр.
7. Лазарев В.Г., Пийль Е.И. Способ объединения алгоритмов. Санкт-Петербург: Тр. ЛОНИИС, 1962 стр.
8. Осадчий Ю.Ф., Глудкин О.П. Гуров А.И. Аналоговая и цифровая электроника. М.: Горячая линия – телеком, 2000. – 762 стр.
9. Соловьев В.В. Использование программируемых матриц логики при синтезе комбинационных схем. Минск: БГУИР, 1995. – 233 стр.
10. Соловьев В.В., Самаль Д.И. Методы синтеза произвольной логики на программируемых логических устройствах. М.: Автоматика и вычислительная техника, 1997. 561 стр.
11. Соловьев В.В., Васильева А.Г. Программируемые логические интегральные схемы и их применение. Минск: Беларуская навука, 1998. – 270 стр.
12. Соловьев В.В. Проектирование цифровых систем на основе программируемых логических интегральных схем. М.: Горячая линия – телеком, 2001. - 636 стр.
13. Соловьев В.В. Проектирование функциональных узлов цифровых систем на программируемых логических устройствах. Минск: Бестпринт, 1996. - 252 стр.
14. Соловьев В.В. Синтез комбинационных и последовательных схем на программируемых логических устройствах. М.: Горячая линия – телеком, 2001. - 233 стр.
15. Соловьев В.В. Синтез произвольной регистровой логики на программируемых логических устройствах. М.: Горячая линия – телеком, 2000. - 81 стр.
16. Соркин Б.Л. Синтез микропрограммных автоматов на стандартных ПЗУ и ПЛМ с использованием элементов средней степени интеграции. Минск: АВТ, 1997. – 378 стр.
17. Поттосин Ю.В., Черимсинова Л.Д. автоматная реализация алгоритмов логического управления. Минск: Институт техники и кибернетики АН Беларуси, 1994 – 38 стр.
18. Стешенко В.Б. ПЛИС фирмы Altera: проектирование устройств обработки сигналов. М.: Додека, 2000. - 128 стр.
19. Токхейм Р.Б. Основы цифровой электроники. М.: Мир, 1988. - 392 стр.
20. Янов Ю.И. О логических схемах алгоритмов. М.: Физматгиз, 1995. – 332 стр.