Смекни!
smekni.com

Розробка цифрових засобів ПЛІС в інтегрованому середовищі проектування MAX+PLUS II (стр. 14 из 14)

(

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 стр.