Міністерствоосвіти і науки України
Національнийтехнічний університет України
“Київськийполітехнічний інститут”
Приладобудівнийфакультет
Кафедра приладів тасистем орієнтації і навігації
Атестаційнамагістерська робота
на тему:
Розробка цифровихзасобів ПЛІС в інтегрованому
середовищіпроектування MAX+PLUS II
Київ 2009
Зміст
Анотація
Перелік умовних позначень, символів, скороченьі термінів
Вступ
1. Генезис програмувальних логічнихінтегральних схем, їх класифікація та архітектура
2. Призначення та структура системиавтоматизованого проектування MAX+PLUS II
3. Додатки системи автоматизованогопроектування MAX+PLUS II
4. Процедура розробки нового проекту в системіавтоматизованого проектування MAX+PLUS II
5. Процедура компіляції створеного проекту всистемі автоматизованого проектування MAX+PLUS II
6. Загальні відомості про мову описанняапаратури AHDL
7. Реалізація в інтегрованому середовищіMAX+PLUS II базових пристроїв мікроелектроніки
7.1 Теоретичні відомості про тригери
7.1.1 RS-тригер
7.1.2 Синхронний RS-тригер
7.1.3 D-тригер
7.1.4 JK-тригер
7.1.5 Програми реалізації тригерів вінтегрованому середовищі MAX+PLUS II
7.1.6 Результати програмної реалізаціїтригерів
7.2 Теоретичні відомості про регістри
7.2.1 Послідовні регістри зсуву
7.2.2 Паралельні регістри зсуву
7.2.3 Програма реалізації регістрів вінтегрованому середовищі MAX+PLUS II
7.2.4 Результати програмної реалізаціїрегістрів
7.3 Теоретичні відомості про лічильники
7.3.1 Лічильник з крізним переносом
7.3.2 Асинхронний лічильник з модулем 10
7.3.3 Лічильник віднімання
7.3.4 Програми реалізації лічильників вінтегрованому середовищі MAX+PLUS II
7.3.5 Результати програмної реалізаціїлічильників
7.4 Теоретичні відомості про мультиплексори,демультиплексори, шифратори, дешифратори
7.4.1 Мультиплексор
7.4.2 Демультиплексор
7.4.3 Шифратор
7.4.4 Дешифратор
7.4.5 Програми реалізації мультиплексорів,демультиплексорів, шифраторів, дешифраторів в інтегрованому середовищі MAX+PLUSII
7.4.6 Результати програмної реалізаціїмультиплексорів, демультиплексорів, шифраторів, дешифраторів
7.5 Теоретичні відомості про суматори,віднімачі
7.5.1 Суматори
7.5.2 Віднімачі
7.5.3 Програми реалізації суматорів,віднімачів в інтегрованому середовищі MAX+PLUS II
7.5.4 Результати програмної реалізаціїсуматорів, віднімачів
8. Проект реалізації COM-порту в САПР MAX+PLUSII
8.1 Теоретичні відомості про послідовні портиі протокол RS-232
8.2 Структура COM-порту при його реалізації вСАПР MAX+PLUS II
8.3 Програми структурних компонентів COM-портумовою AHDL в САПР MAX+PLUS II
8.4 Результати програмної реалізації COM-портув САПР MAX+PLUS II
Висновки
Використана література
Анотація
Дипломна робота викладена на 108 аркушах, містить 61ілюстрацію, 17 таблиць і 20 посилань на джерела інформації, що мають відношеннядо даного тематичного напрямку.
Метою дипломної роботи є створення інформаційно-програмної бази для роботи зінтегрованим середовищем MAX+PLUS II.
Роботою передбачено теоретичний опис основних приладівмікроелектроніки разом з їх програмною реалізації за допомогою мови AHDL вінтегрованому середовищі MAX+PLUS II. В роботі проведено генезиспрограмувальних логічних інтегральних схем, їх класифікація, архітектура,детально розписана процедура створення нового проекту і процес його компіляції.
З метою більш детального пояснення взаємозв’язкурізних додатків зазначеного середовища в дипломній роботі реалізовано проектпослідовного COM-порту, що складається з декількох базових мікроелектроннихпристроїв, принципи дії яких було описано у відповідних розділах.
Результатом дипломної роботи є описання основ роботи з інтегрованим середовищемMAX+PLUS II, підкріплене прикладами розробки і моделювання конкретнихпристроїв. Вони можуть використовуватися як в дидактичних, так і внауково-дослідницьких цілях.
В подальшому можливий розвиток і доповнення роботи занаступними напрямками: створення програмно-інформаційної бази найбільшпоширених мікроелектронних приладів на основі ПЛІС фірми Altera; визначенняможливості інтеграції інтегрованого середовища MAX+PLUS II з іншими пакетами тасистемами автоматичного проектування; створення на базі ПЛІС мікропроцесорнихпристроїв з відносно малими габаритами і споживчою потужністю.
Ключові слова (словосполучення): архітектура пристрою, електроніка, гнучка логіка, мікроелектроннийпристрій, моделювання поведінки, послідовний порт, програмувальна логічнаінтегральна схема, програмування, компіляція, система автоматичного проектування.
Перелік умовнихпозначень, символів, скорочень і термінів
АДП – апаратура передачі даних;
БМК – базовий матричний кристал;
ПЛІС – програмувальна логічна інтегральна схема;
ПЛМ – програмувальна логічна інтегральна матриця;
ПЛП – програмувальний логічний пристрій;
ППЗП – програмувальній постійній запам’ятовуючійпристрій;
ООД – одно кінцевий об’єкт передачі даних
САПР – система автоматизованого проектування;
СБФ – система булєвих функцій;
AMD – Advanced Micro Devices;
CLK – CLocK;
CPLD – Complex Programmable Logic Device;
DCE – Data Communication Equipment;
DTE – Data Transfer Equipment;
ENA – ENAble;
FLEX – Flexible Logic Element Matrix;
FPGA – Field Programmable Gate Array;
GA – Gate Array;
GAL – Generic Array Logic;
IOB – Input/Output Element;
JTAG – Joint Test Action Group;
LAB – Logic Array Block;
LE – Logic Element;
MAX – Multiple Array Matrix;
PLA – Programmable Logic Array;
PLD – Programmable Logic Devices;
PLS – Programmable Logic Sequencers;
PROM – Programmable Read Only Memory;
SPLD – Standart Programmable Logic Devices.
Вступ
Широке впровадження електроніки й автоматики в усісфери людської діяльності, що спостерігається в даний час, пред'являє все більшжорсткі вимоги до виробів електронної техніки. Це пов'язано, з одного боку, зізростанням важливості і складності розв'язуваних задач, а, з іншого боку,необхідністю поліпшення таких характеристик, як швидкодія, надійність,споживана потужність, габарити, вартість та інше. Одним з шляхів вирішенняданої проблеми є широке використання програмувальних логічних інтегральних схем(ПЛІС — Programmable Logic Devices — PLDs).
ПЛІС являють собою нову елементну базу, що володієгнучкістю замовлених ВІС і доступністю традиційної «твердої» логіки.
Головною відмітною властивістю ПЛІС, на відміну від“жорсткої” логіки, є можливість настроювання на виконання заданих функцій самимкористувачем. Сучасні ПЛІС характеризуються низькою вартістю, високоюшвидкодією, значними функціональними можливостями, багаторазовістюперепрограмування, низкою споживаною потужністю й інше.
При цьому час розробки на основі ПЛІС навіть доситьскладних проектів може складати усього кілька годин. Власно кажучи, розробкапристроїв на основі ПЛІС являє собою нову технологію проектування електроннихсхем, включаючи їх виготовлення і супроводження. Доказом перспективності новоїелементної бази служить щорічна поява нових поколінь ПЛІС, а також постійнозростаючий обсяг випуску вже розроблених ПЛІС.
Істотною перешкодоюширокого практичного використання ПЛІС є відсутність ефективних методівсинтезу. Справа в тому, що в основу архітектури сучасних ПЛІС покладена структурапрограмувальних логічних матриць (ПЛМ —Programmable Array Logics — PALs), щоявляє собою пари матриць: І й АБО, у якій програмується матриця І, а матрицяАБО має фіксоване положення. Методи й алгоритми синтезу на такій структуріодержали назву двухуровнего синтезу і бурхливо розвивалися в 80-х роках. Зчасом інтерес дослідників на багато років залучив багаторівневий синтез,використовуваний при проектуванні цифрових систем на основі FPGA (Field Programmable Gate Array).
В останні роки спостерігається явнепротиріччя: архітектури ПЛІС бурхливо розвиваються й удосконалюються, а методипроектування на їх основі залишаються без зміни.
Інтегроване середовище MAX+PLUS II фірми Alteraпропонує повний спектр можливостей логічного дизайну: різноманітні засоби описупроектів з ієрархічною структурою, потужний логічний синтез, компіляцію ззаданими часовими параметрами, розподілення на підпрограми основного проекту,функціональне і часове тестування (симуляцію), тестування декількохвзаємопов’язаних властивостей, аналіз часових параметрів системи, автоматичнулокалізацію помилок, а також програмування і верифікацію помилок.
Відносно низьку популярність даного інтегрованогосередовища серед вітчизняних проектувальників можливо пояснити відсутністюдетальної та ємної документації українською мовою про можливості та властивостіMAX+PLUS II. Ліквідацію саме такого інформаційного браку і було взято авторомза стратегічну мету написання дипломної роботи.
Для спрощення розуміння читачем структурноїорганізації і функціонального призначення додатків інтегрованого середовища вроботі наведено генезис програмувальних логічних інтегральних схем, їхкласифікація, архітектура, детально розписана процедура створення новогопроекту і процес його компіляції.
В дипломній роботі наведено приклади опису вінтегрованому середовищі MAX+PLUS II всіх базових пристроїв мікроелектроніки,як то:
1) JK-тригера, D-тригера,RS-тригера;
2) послідовних регістрівзсуву, паралельних кільцевих регістра зсуву;
3) лічильників з крізнимпереносом, асинхронних лічильників, лічильників віднімання, універсальноголічильника;
4) шифраторів, дешифраторів,мультиплексорів, демультиплексорів (з використанням функцій алгебри логіки ітаблиць дійсності);
5) суматорів, віднімачів.
1. Генезиспрограмувальних логічних інтегральних схем, їх класифікація та архітектура
Історія розвитку програмувальних логічних інтегральнихсхем (ПЛІС) або програмувальних логічних пристроїв (ПЛП — Programmable LogicDevices — PLD) починається з появи на початку 70-х років програмувальнихпостійних запам'ятовуючих пристроїв (ППЗП — Programmable Read Only Memory — PROM). Перший час програмувальні постійні запам’ятовуючі пристроївикористовувалися винятково для збереження даних, пізніше їх стализастосовувати для реалізації логічних функцій. Однак, необхідність приведеннялогічних функцій до завершеної диз’юнктивної нормальної форми не дозволяловикористовувати PROM для реалізації функцій великих розмірів.
Спеціально для реалізації систем булєвих функцій (СБФ)великого числа змінних були розроблені і з 1971 р. стали випускатисяпромисловістю програмувальні логічні матриці (ПЛМ — Programmable Logic Arrays — PLAs). PLA дуже широко розповсюджені в якості універсальної елементної базицифрових пристроїв, тому саме PLA можна вважати першими PLD.
Удосконалювання архітектури PLA призвело до появи програмувальнихматриць логіки (ПЛМ — Programmable Array Logics — PALs), що дотепер визначаютьнайбільш популярну архітектуру PLD. Перші PAL були розроблені фірмою MonolithicMemories у 1976 році, а вироблятися вони почали з 1977 року фірмою AdvancedMicro Devices (AMD). З моменту своєї появи PAL стали успішно конкурувати з PLAі в даний час завдяки ряду позитивних властивостей практично цілком замінилипрограмувальні користувачем PLA.
Подальше удосконалювання технології виробництваінтегральних схем на початку 90-х років призвело до можливості реалізації наодному кристалі декількох PAL, поєднуваних програмувальними з'єднаннями.Подібні архітектури одержали назва складних ПЛП (Сomplex PLD — CPLD), відповідновсі розроблені раніше PLD стали називати стандартними ПЛУ (Standart PLD — SPLD)або класичними ПЛУ (Classic PLD).
Паралельно з PLD також розвивалисяархітектури вентильних матриць (Gate Array — GA) і матриць логічних осередків (LogicCell Array — LCA), у російськомовній літературі вони отримали назву базовихматричних кристалів (БМК). Перші вентильні матриці були напівзамовленими, тобтопрограмувалися під час виготовлення, що стримувало їх широке практичневикористання. Однак у 1985 році фірма Xilinix випустила програмованукористувачем вентильну матрицю (Field Programmable Gate Array — FPGA). Це далосильний поштовх до широкого поширення вентильних матриць і конкуренції їх зPLD. Хоча FPGA і не є предметом дослідження даної роботи, згадування про них необхіднодля порівняльного аналізу архітектур CPLD і FPGA.
В даний час спостерігається бурхливий розвитокархітектур CPLD і FPGA, зниження їхньої вартості, підвищення швидкодії іфункціональної потужності (табл. 1.1). Це дозволяє припустити, що в найближчіп'ять років основу елементної бази цифрових систем будуть складати CPLD і FPGA.
Табл. 1.1. Перспективність складнихпрограмувальних логічних пристроїв (CPLD).Параметри 1985 1990 1995 2000 2005 Число вентилів, шт.
8×102
5×103
5×104
1×106
2×106 Число виводів, шт.
6.4×101
2.56×102
5×102
1×103
2×103 Число транзисторів, шт.
8.5×103
2×106
6×106
2.25×108
5×108 Швидкодія, нс 40 15 3.5 1.5 0.75
У російськомовній літературі немає чіткого поділу міжPLD, PAL, PLA, SPLD, CPLD і FPGA. Найчастіше всі ці пристрої називають програмувальнимилогічними інтегральними схемами, чому в англомовній літературі відповідаєтермін programmable logic (рис. 1.1) – програмувальна логіка.
В даний час програмувальні логічні пристрої прийнятоподіляти на два великих класи: стандартні програмувальні логічні пристрої(SPLD) і складні програмувальні логічні пристрої (CPLD). За своїмифункціональними можливостями, ступенями інтеграції і способові використання доскладних програмувальних логічних пристроїв наближаються програмованікористувачем логічні матриці.
/>
Рис. 1.1. Класифікація програмувальних логічнихінтегральних схем
Структуру більшості SPLD умовно можливо подати увигляді сукупності двох матриць взаємно ортогональних провідників: матриці І(AND) і матриці АБО (OR). Вхідні сигнали звичайно надходять на парафазні входиматриці І, що на ортогональних шинах дозволяє реалізувати будь-які кон’юнкціївхідних змінних. Виходи матриці І з'єднані з входами матриці АБО та на виходахреалізує диз'юнкції сигналів, що надходять.
Сукупність вихідних шин матриці І утворює множину проміжнихшин PLD (product terms) або просто термів (terms).
/>
Рис. 1.2. Структура PLA Рис. 1.3. Структура PROM
В залежності від того, яка матриця програмується,матриця І чи матриця АБО, SPLD прийнято поділяти на три класи: PLA, PROM і PAL.У PLA (рис. 1.2) програмуються обидві матриці: матриця І та матриця АБО. У PROM(рис. 1.3) матриця І постійно налаштована на функції повного дешифратора, апрограмується тільки матриця АБО.
У структурі PAL (рис. 1.4), навпаки, програмуєтьсятільки матриця І, а матриця АБО має фіксоване налагодження, при якій qпроміжних шин зв'язується з одним виходом. Це дозволяє матрицю АБО реалізуватиу виді сукупності q-входових диз‘юнкторов.
На перший погляд може показатися, що PAL значно уступаютьPLA за своїми можливостями, оскільки вводиться обмеження на число проміжнихшин, що приєднуються до одного виходу. Практика ж показує, що дане обмеження вбільшості застосувань не критично.
Якщо все-таки це трапляється, можливо об'єднати кількавиходів по АБО за допомогою логічного елемента або провідним з'єднанням (дляінверсної логіки).
/>
Рис. 1.4. Структура PAL.
З іншого боку, у PAL програмується тільки одна матрицяІ, що значно спрощує структуру PAL і, як наслідок, приводить до зниженнявартості пристрою і підвищенню його швидкодії. Крім того, спрощення матриці АБОдозволило додати в структуру PAL ланцюг зворотного зв'язку і вихідні буфери,завдяки чому PAL набули нових якостей.
Вихідні буфери PAL являють собою програмувальнімакроосередки, що і визначають архітектуру PAL. Макроосередки PAL можутьвключати вихідний інвертор із трьома станами, тригери різного типу, вентилі«АБО, що вилучає» і ін. Відповідно до типу вихідних макроосередківPAL поділяють на функціональні групи: комбінаційні, реєстрові, універсальні,асинхронні й ін. У свою чергу виробники поділяють PAL на сімейства, у якихвиділяють серії пристроїв, причому в одній серії можуть зустрічатися пристрої зрізних функціональних груп. Більш того, різні типи вихідних макроосередківможуть одночасно зустрічатися в одній PAL.
Безумовно, приведена класифікація не охоплює всієїрозмаїтості SPLD. Наприклад, структуру, що дуже нагадує PLA, мають програмувальнілогічні секвенсери (Programmable Logic Sequencers — PLS), а узагальнені матрицілогіки (УМЛ — Generic Array Logics — GAL) подібні PAL.
/>
Рис.1.5. Узагальнена структура CPLD
Складними PLD прийнято називати мікросхеми високогоступеня інтеграції, структура яких являє собою сукупність функціональних блоківз архітектурою PAL (рис. 1.5), поєднаних програмувальною матрицею переключень (SwitchMatrix — SM).
Багатьма фірмами випускаються різні структури CPLD.Наприклад, фірма AMD свої CPLD назвала КМОП-макроматриці високої щільності (MacroArray CMOS High-density — MACH). Фірма Altera випускає кілька видів CPLD:багаторазові матричні таблиці (Multiple Array Matrix — MAX) і FLASH-пристрої,названі за засобом перепрограмування елементів, що здатні до багаторазовогоналагоджування.
Подальший розвиток структура складних PLD одержала вмікросхемах фірми Altera, названих матрицями елементів гнучкої логіки (FlexibleLogic Element Matrix — FLEX), узагальнена структура яких подана на рис. 1.6.Тут відсутня звична PAL-структура, а є лише блоки логічних елементів,поєднувані в LAB-модулі (LAB — Logic Array Block) по 8 елементів у кожнім.Відмінною рисою FLEX-пристроїв є те, що матриця переключень реалізована увигляді горизонтальних і вертикальних каналів з’єднань (каналів трасування).
/>
Рис. 1.6. Структура FLEX-пристроїв
Це дозволило значно зменшити площу кристала, займаногоматрицею переключень, без суттєвого зниження властивостей CPLD. Елементивведення-виведення (IOE — Input/Output Element), що обслуговують зовнішнівиводи, приєднуються безпосередньо до каналів з’єднань.
Архітектуру FPGA доцільно розглянути на прикладіпристроїв фірми Xilinix. Основу структури FPGA (рис. 1.7) складає матриця логічнихелементів (Logic Element — LE), між якими розташовується поле з’єднань:сукупність вертикальних і горизонтальних каналів.
Якщо в FLEX-пристроях лінії каналів з’єднаньбезперервні і проходять через всю довжину або ширину кристала, то в FPGA лініїканалів складаються з окремих сегментів, що з'єднуються програмувальними матрицямипереключень. По боках кристала FPGA розташовані блоки введення-виведення (Input/OutputBlocks — IOBs).
/>
Рис.1.7. Структура FPGA фірми Xilinix
Розглянута класифікація PLD стосується лише їхархітектури. Існують класифікації PLD за типом налагоджуваного елемента,кількістю перепрограмувань, затримці при проходженні сигналів и так далі.Виходячи з поставленого технічного завдання проектувальник самостійно обираєтип програмуємих логічних інтегральних схем, користуючись співвідношеннямосновних параметрів PLD (табл. 1.1) до ціни конкретної мікросхеми. Чималу рольпри обранні елементної бази відіграють і досвід проектувальника, а такождоступність програмних засобів ефективного синтезу логічної схеми. Останнімчасом компанії-виробники PLD звернули увагу на розробку саме таких програмнихпакетів.
2.Призначення та структура системи автоматизованого проектування MAX+PLUS II
Система автоматизованого проектування MAX+PLUS IIявляє собою інтегроване середовище для розробки цифрових пристроїв на базіпрограмувальних логічних інтегральних схем фірми Altera. Він забезпечуєвиконання всіх етапів, необхідних для випуску готових виробів:
1) створення проектівлогічних пристроїв;
2) синтез структур ітрасування внутрішніх зв'язків програмувальних логічних інтегральних схем;
3) підготовку даних дляпрограмування або конфігурацію програмувальних логічних інтегральних схем(компіляцію);
4) верифікацію проектів(функціональне моделювання і часовий аналіз), програмування або конфігураціюпрограмувальних логічних інтегральних схем.
Наданий на рис. 2.1 склад програмного забезпеченнясистеми автоматизованого проектування MAX+PLUS II є повним комплектом, щозабезпечує створення логічних дизайнів для пристроїв фірми Altera зпрограмувальною логікою, в тому числі і родин пристроїв ACEX 1000, MAX 7000,MAX 9000, FLEX 6000, FLEX 8000, FLEX 10000.
/>
Рис. 2.1. Середовище проектування в системі MAX+PLUSII
В систему автоматизованого проектування MAX+PLUS IIвходять 11 додатків (рис. 2.2).
/>
Рис. 2.2. Додатки в системі MAX+PLUS II
Сукупність ієрархічно пов’язаних файлів називається проектом(project). Можливо описати проект (Design Entry) у вигляді файла на мовіописання апаратури, створеного в зовнішньому редакторі, або в текстовомуредакторі MAX+PLUS II (Text Editor), у вигляді схеми електричної принципової задопомогою графічного редактора (Graphic Editor); у вигляді часової діаграми,створеної в сигнальному редакторі (Waveform Editor). Для зручності роботи зіскладними ієрархічними проектами кожному проекту нижчого рівня ієрархії можебути поставлений у відповідність символ, редагування якого відбувається за допомогоюсимвольного редактора (Symbol Editor). Редагування розміщення вузлів пологічним блокам і виводам програмувальних логічних інтегральних схемвідбувається за допомогою порівневого планувальника (Floorplan editor).
Верифікація проекту (Project verification) виконується за допомогою симулятора(simulator), результати роботи якого зручно проглянути в сигнальному редакторі.Тестові впливи створюються також в сигнальному редакторі.
Компіляція проекту, в тому числі і витягнення ізсписку з’єднань компонентів (Netlist Extractor), побудова бази даних (Data BaseBuilder), логічний синтез, зволікання часових, функціональних параметрів (SNFExtractor), розбиття на частини (Partioner), трасування (Fitter) і формуванняфайла програмування і завантаження (Assembler) виконуються за допомогою компілятора(Compiler) системи.
Безпосереднє програмування або завантаження конфігураціїпристроїв з використанням відповідного апаратного забезпечення виконується звикористанням модуля програматора (Programmer).
Більшість характерних рис ікоманди – такі, як відкриття файлів, введення назначених пристроїв, виводів ілогічних елементів, компіляція плинного проекту – схожі для багатьох додатківсистеми MAX+PLUS II. Редактори для розробки проекту (графічний, текстовий,сигнальний) мають багато спільного з допоміжними редакторами (порівневогопланування та символьний). Кожний редактор розробки проекту дозволяє виконуватисхожі завдання схожим способом.
Можливо легко комбінуватирізні типи файлів в ієрархічному проекті, обираючи для кожного функціональногоблоку той формат описання проекту, який є більш зручним. Бібліотека мегафункційі макрофункцій, що надається фірмою Altera, в тому числі і функції з бібліотекипараметризованих модулів, забезпечує додаткові можливості для описання проекту.
Можна одночасно працювати з різними додатками системиMAX+PLUS II. Наприклад, можна відкрити декілька файлів проекту і переноситиінформацію з одного проекту в інший, або наприклад проглянути все деревопроекту.
Основою системи MAX+PLUS II є компілятор, щозабезпечує потужні засоби обробки проекту, при цьому можливо задавати різнірежими роботи компілятора. Автоматична локалізація помилок, видача повідомленьі достатньо широка документація про помилки прискорюють і полегшують проведеннязмін в проекті. Стало можливим створювати вихідні файли в різних форматах длярізних цілей, таких, як робота функцій, часових параметрів і зв’язку декількохпристроїв, аналізу часових параметрів, програмування пристрою.
3. Додатки системиавтоматизованого проектування MAX+PLUS II
Програмне забезпечення системи автоматизованогопроектування MAX+PLUS II складається з 11 додатків і головної керуючоїоболонки.
Різні додатки, що забезпечують створення файлупроекту, можуть бути активізовані миттєво, що дозволяє користувачупереключатися між ними за допомогою миші або командного меню. В цей же час можепрацювати один з фонових додатків, наприклад компілятор, симулятор, часовийаналізатор, програматор. Одні і ті ж команди різних додатків працюють однаково,що полегшує процес роботи розробки проекту.
Вікно будь-якого додатку можна згорнути до піктограми,не закриваючи самого додатку, а потім знову його розкрити.
В табл. 3.1 наведено піктограми і описання додатків.
Табл. 3.1. Додатки системи автоматизованогопроектування MAX+PLUS IIПіктограма Назва Функціональне призначення доданку
/>
Огляд ієрархії
(Hierarchy Display) Відображає плинну ієрархічну структуру файлів у вигляді дерева з гілками, що являють собою підпроекти. Можна візуально визначити чи є файл проекту схемним, текстовим чи сигнальним; які файли відкрити в даний момент; які допоміжні файли в проекті доступні для редагування. Можна також безпосередньо відкрити або закрити один або декілька файлів дерева і ввести ресурси
/>
Графічний редактор
(Graphic Editor) Дозволяє розробляти схемний логічний дизайн в форматі реального відображення на екрані WYSIWYNG. Використовуючи розроблені фірмою Altera примітиви, мегафункції і макрофункції в якості основних блоків розробки, користувач може також використовувати свої символи
/>
Символьний редактор
(Symbol Editor) Дозволяє редагувати існуючі і створювати нові символи
/>
Текстовий редактор
(Text Editor) Дозволяє створювати і редагувати текстові файли проекту, що написані на мовах AHDL, VHDL і Verilog HDL. Крім того, в даному редакторі можна створювати, розглядати і редагувати інші файли формату ASCII, що використовуються іншими додатками MAX+PLUS II
/>
Сигнальний редактор
(Waveform Editor) Виконує подвійну функцію: це інструмент для розробки проекту і одночасно — інструмент для введення текстових сигналів і спостережень тестування
/>
Порівневий
планувальник
(Floorplan Editor) Дозволяє графічним засобам створювати призначення виводам приладу і ресурсів логічних елементів та блоків. Можна редагувати розташуванням виводів на кресленні корпуса пристрою і призначити сигнали окремим логічним елементам на більш детальній схемі логічної структури
/>
Компілятор
(Compiler) Обробляє логічні проекти, що розроблені для сімейств Altera Classic, MAX 5000, MAX 7000, MAX 9000, FLEX 6000, FLEX 8000, i FLEX 10k. Більшість завдань виконується автоматично, але користувач може керувати процесом компіляції повністю або частково
/>
Симулятор
(Simulator) Дозволяє тестувати логічні сигнали і внутрішню синхронізацію логічної схеми, що проектується. Можливі три варіанти тестування: функціональне, часове і тестування декількох поєднаних між собою пристоїв
/>
Аналізатор часових параметрів
(Timing Analyzer) Аналізує роботу логічного ланцюга, що проектується після того, як вона була синтезована та імітизована компілятором, дозволяє оцінювати затримки в схемі
/>
Програматор
(Programmer) Дозволяє програмувати, конфігурувати, проводити верифікацію і досліджувати пристрої фірми Altera
/>
Генератор
повідомлень
(Message Processor) Видає на екран повідомлення про помилки, попереджуючі і інформаційні повідомлення про стан проекту користувача і дозволяє користувачу автоматично знайти джерело, повідомлення у вихідному або допоміжному файлі (файлах) і порівневому плані призначень
4. Процедурарозробки нового проекту в системі автоматизованого проектування MAX+PLUS II
Процедуру розробки нового проекту відконцепції до завершення можливо спрощено представити наступним чином:
1. створення нового файлупроекту або ієрархічної структури декількох файлів проекту з використаннямрізних редакторів розробки проекту в системі MAX+PLUS II, тобто графічного,текстового і сигнального редакторів;
2. присвоєння імені файлупроекту верхнього рівня (Top of hierarchy) як імені проекту (Project name);
3. призначення родинипрограмувальних логічних інтегральних схем для реалізації проекту. Користувачможе сам призначати конкретний пристрій або передати цю дію компілятору з метоюоцінки наявних ресурсів;
4. відкриття вікнакомпілятора і його запуск кнопкою “Start” для початку компіляції проекту. Якщокористувач бажає, він може підключати модуль витягу часових затримок Timing SNFExtractor для створення файлу розводки, що використовується при тестуваннічасових параметрів;
5. у випадку успішноїкомпіляції – тестування і часовий аналіз, для проведення якого необхідновиконати наступні дії:
5.1. для проведення часового аналізу відкрити вікно“Timing Analyzer”, вибрати режим аналізу і натиснути кнопку “Start”;
5.2. для проведення тестування треба спочатку створитифайл каналу тестування (*.scf), використовуючи сигнальний редактор, або в файлівектора тестування (*.vec), використовуючи текстовий редактор;
6. програмування абозавантаження конфігурації синтезованого приладу відбувається шляхом запускупрограматора (Programmer) с наступною вставкою пристрою в програмувальнийадаптер програматора MPU (Master Programming Unit) або за допомогою підключенняпристрою MasterBlaster, ByteBlaster або кабелю завантаження FLEX (FLEX DownloadCable) до приладу, що програмується в системі;
7. вибір кнопки “Program” дляпрограмування приладу з пам’яттю EPROM (MAX, EPC) або вибір кнопки Configureдля завантаження конфігурації приладу з пам’яттю типа SRAM (FLEX).
При роботі в системі MAX+PLUS II слідвідрізняти різницю між файлами проекту, допоміжними файлами і проектами.
Файл проекту – це графічний, текстовий або сигнальний файл,створений за допомогою графічного або сигнального редактора редакторусередовища MAX+PLUS II. Цей файл містить логіку проекту і обробляєтьсякомпілятором. Компілятор автоматично обробляє наступні файли проекту:
1) графічні файли проекту(*.gdf);
2) текстові файли проекту намові AHDL (*.tdf);
3) сигнальні файли проекту(*.wdf);
4) файли проекту на мові VHDL(*.vhd);
5) файли проекту на мовіVerilog (*.v);
6) схемні файли OrCAD(*.sch);
7) вхідні файли EDIF (*.edf);
8) файли формату XilinixNetlist (*.xnf);
9) файли проекту Altera(*.adf);
10) файли цифрового автомату (*.smf).
Допоміжні файли – це файли, що пов’язані з проектом MAX+PLUS II, але вони не є частиноюієрархічного дерева проекту. Більшість таких файлів не містить опису логічнихфункцій проекту. Деякі з них створюються автоматично додатками системи MAX+PLUSII, інші – користувачем.
Проект складаєтьсязі всіх файлів ієрархічної структури дизайну, в тому числі допоміжних і вхіднихфайлів. Ім’ям проекту є ім’я файлу верхнього рівня без розширення. СистемаMAX+PLUS II виконує компіляцію, тестування, часовий аналіз і програмуваннявідразу всього проекту, хоча користувач може в цей час редагувати файли цьогопроекту в рамках іншого проекту.
Для кожного проекту слід створювати окремий підкаталогв робочому каталозі системи (\max2work).
При запуску системи MAX+PLUS II автоматичновідкривається її головне вікно (Main Window) (рис. 4.1), меню, що охоплює всідодатки системи. В самому верхньому рядку написано ім’я останнього проекту, зяким працював користувач. Два наступні рядки є типовим для Windows: рядокосновного меню і панель інструментів, в лівій частині якої знаходяться звичайніінструменти Windows (New, Open, Save, Print, Cut, Copy, Paste, Undo), а вправій – специфічні інструменти пакета, за допомогою яких відбувається запускосновних додатків пакету.
/>
Рис. 4.1. Головне вікно системи автоматизованогопроектування MAX+PLUS II
Запуск компонентів системи зручно проводити черезвікно меню MAX+PLUS II (рис. 4.2), що містить в собі вкладене підменю викликуосновних додатків: огляд ієрархії, графічний редактор, символьний редактор,текстовий редактор, сигнальний редактор, порівневий планувальник, компілятор,симулятор, аналізатор часових параметрів, програматор та генератор повідомлень,функціональне призначення яких вже описано в попередньому розділі.
В ієрархічній структурі проекту на будь-якому рівнідозволяється змішане використання файлів з розширеннями .gdf, .tdf, .vhd, .v,.edf, .sch. Однак, файли з розширенням .wdf, .xnf, .adf, .smf повинні бути абона самому нижньому ієрархічному рівні проекту, або бути єдиним файлом.
У всіх доданках MAX+PLUS II є можливість за допомогоюкоманд з меню “Assign” (Призначити) вводити, редагувати і знищувати типипризначених ресурсів, пристроїв, і параметрів, які керують компіляцією проекту,логічним синтезом і розділенням на частини. На рис. 4.3 представлено командименю Assign. Користувач може робити призначення для плинного проекту незалежновід того, чи відкритий будь-який файл проекту або вікно додатків.
/> />
Рис. 4.2. Вікно меню MAX+PLUS II Рис. 4.3. Менюпризначень проекту Assign
Система MAX+PLUS II зберігає інформацію для проекту вфайлі з розширенням .acf. Зміна призначень, зроблених у вікні порівневогопланувальника також зберігаються в форматі .acf. Крім того, користувач маєможливість редагувати acf-файл проекту в текстовому редакторі.
Наступні функції є загальними для всіх додатківMAX+PLUS II: призначення пристрою, ресурсів і зондів, збереження попередніхверсій, глобальні опції пристрою в проекті, глобальні параметри проекту,глобальні вимоги до часових параметрів проекту, глобальний логічний синтезпроекту.
Ресурс є частиною пристрою Altera, як, наприкладконтакт або логічний елемент, який виконує конкретне, визначене користувачемзавдання. Керування компіляцією проекту і його часовими параметрамиздійснюється за допомогою різноманітних призначень. Існують наступні типипризначень.
Clique assignment (призначення кліка) – задає які саме логічні функції повиннізалишатись разом. Групування логічних функцій в кліки гарантує, що вони реалізуютьсяв одному і тому ж блоці логічної структури пристрою, одному ряді або пристрої.
Chip assignment (призначення чіпа) – задає які логічні функції повинні бутиреалізовані в одному і тому ж пристрої у випадку розділення проекту на частини(декілька пристроїв).
Pin assignment (призначення виводу) – призначає вхід або вихід однієї логічноїфункції, такої, як примітив або мегафункція, конкретному контакту або горизонтальному(вертикальному) ряду виводів ПЛІС.
Location assignment (призначення вічка) – задає розміщення логічної функції (вузла) вконкретному логічному елементі. В полях даного вікна можна задати номер виводу,логічний осередок або блок, а також, використовуючи кнопки “Change” і “Delete”,змінити призначення.
Probe assignment (призначення зонду) – присвоює легке для запам’ятання унікальнеім’я входу чи виходу логічної функції.
Connected pin assignment (призначення з’єднанихвиводів) – задає зовнішнє поєднаннядвох або більше виводів на схемі користувача. Дана інформація корисна і врежимі тестування часових параметрів схеми і при тестуванні декількох скомпонованихпроектів.
Local routing assignment (призначення місцевоготрасування) – присвоює коефіцієнтрозподілення за виходом вузла логічного елементу, що знаходиться в тому ж блоцілогічних елементів або ж у сусідньому блоці логічних елементів, суміжним зобраним вузлом, з використанням місцевих зв’язків. Місцеве трасування такожздійснюється між вузлом, що поміщений в блок логічних елементів на периферіїпристрою, і вихідним контактом, з яким він поєднаний. Призначення місцевоготрасування здійснюється за допомогою команди “Assign/Local routing”.
Device assignment (призначення пристрою) – призначає тип ПЛІС, в якому буде втіленийплинний проект. Якщо проект складається з декількох пристроїв, то дана функціяздійснює призначення чіпів конкретним пристроям. Можна також вибрати опцію Autoі надати компілятору право обирати пристрій з заданої родини пристроїв.Процесом автоматичного вибору пристрою можна керувати, задаючи діапазон і числопристроїв в родині. Якщо проект є занадто великим для реалізації в одномупристрої, можна задати тип і число додаткових пристроїв. Для вибору пристроювикористовується команда “Assign/Device”.
Logic option assignment (призначення логічної опції) – керує синтезом окремих логічних функцій підчас компіляції з використанням стилю логічного синтезу і окремих опційлогічного синтезатора. Фірма Altera забезпечує велику кількість логічних опцій,і також готових стилів, кожний з яких уявляє собою зібрання установок длялогічних опцій, об’єднане одним іменем стилю синтезу (Synthesis style).Користувач може використовувати готові стилі або створювати нові. Стилі синтезудозволяють настроювати опції синтезу на певні родини пристроїв, враховуючи прицьому архітектуру родини. Для налагодження стилів синтезу використовується команда“Assign/Logic Options”.
Timing assignment (призначення часових параметрів) – керує логічним синтезом і підгонкою окремихлогічних функцій з метою отримання необхідних значень для часу затримки.Користувач також може вирізати з’єднання між шляхами для конкретного сигналу таіншими осередками або блоками проекту. Призначення часових параметрів блокувідбувається за командою “Assign/Timing Requirements”.
Можна вводити глобальні часові вимоги для проекту,задаючи загальні характеристики для часу затримки, використовуючи команду“Assign/Global Project Timing Requirements”.
Для призначення глобальних параметрів логічногосинтезу проекту використовують команду “Assign/Global Project Logic Synthesis”.
5. Процедуракомпіляції створеного проекту в системі автоматизованого проектування MAX+PLUSII
Спочатку компілятор дістає інформацію проієрархічні зв’язки між файлами проекту і перевіряє проект на звичайні помилкивведення дизайнів. Він створює організаційну карту проекту і потім, комбінуючивсі файли проекту, перетворює їх в базу даних без ієрархії, яку він здатенефективно обробляти.
Компілятор використовує різноманітні засоби збільшенняефективності проекту і мінімізації використання ресурсів пристрою. Якщо проектзанадто великий, щоб бути реалізованим в одній програмувальній логічнійінтегральній схемі – компілятор може автоматично розбити його на частини дляреалізації в декількох пристроях того ж самого сімейства програмувальнихлогічних інтегральних схем, при цьому мінімізуються число з’єднань міжпристроями. В файлі звітності (.rpt) буде відображено яким чином проектреалізуватиметься: в одному або декількох пристроях.
Компілятор може автоматично компілювати проект.Існують можливості задати обробку проекту у відповідності з точними вказівкамирозробника. Наприклад, можливо задати стиль логічного синтезу проекту та іншіпараметри логічного синтезу в рамках всього проекту. Крім того, зручно задаватичасові вимоги в рамках всього проекту, точно вказати розбиття великого проектуна частини для реалізації в декількох пристроях і обрати варіанти параметрівпристроїв, що будуть використані для всього проекту в цілому. Користувачздатний обирати кількість виводів і логічних елементів, які залишатимуться невикористаними під час плинної компіляції, щоб зарезервувати їх для наступнихмодифікацій проекту.
Компіляцію можна запустити з будь-якого додаткуMAX+PLUS II з вікна компілятора. Компілятор автоматично обробляє всі вхідніфайли плинного проекту.
Процес компіляції можна бачити у вікні компілятора(рис. 5.1) в наступному вигляді:
1) спустошується іперевертається пісковий годинник, що вказує на активність компілятора;
2) висвітлюються, за чергою,прямокутники модулів компілятора;
3) під прямокутником модулякомпілятора з’являється піктограма вихідного файлу, що був генерований даниммодулем;
4) відсоток завершеннякомпіляції поступово збільшується (до 100%);
5) під час розбиття тамонтажу кнопка компілятора Stop (Стоп) перетворюється в кнопку Stop/Show Status(Стоп/Показати стан), яку користувач може вибрати для відкриття діалоговоговікна, в якому відображається плинний стан розбиття і монтажу проекту;
6) при виявленні в процесікомпіляції будь-яких помилок або можливих проблем автоматично відкриваєтьсявікно обробника повідомлень, в якому відображається список повідомлень пропомилку, що попереджують та інформаційних повідомлень, а також відразу даєтьсядовідка по виправленню помилки. Крім того, користувач може визначити джерелаповідомлень в файлах проекту або в його порівневому плані призначень.
/>
Рис. 5.1. Процес компіляції проекту
Компілятор системи автоматичного проектування MAX+PLUSII обробляє проект, використовуючи наступні модулі та утиліти:
1) екстрактор списку ланцюгів(Compiler Netlist Extractor), що включає програми для читання форматів EDIF,VHDL, Verilog, XNF;
2) будівник бази даних(Database Builder);
3) логічний синтезатор (LogicSynthesizer);
4) роздільник (Partitioner);
5) трасувальник (Fitter);
6) екстрактор дляфункціонального тестування (Functional SNF Extractor);
7) екстрактор для тестуваннячасових параметрів (Timing SNF Extractor);
8) екстрактор для тестуваннякомпонування (Linked SNF Extractor);
9) програма для записувихідного файла в формат EDIF (EDIF Netlist Writer);
10) програма для записувихідного файла в формат Verilog (Verilog Netlist Writer);
11) програма для записувихідного файла в формат VHDL (VHDL Netlist Writer);
12) модуль асемблера(Assembler);
13) утиліта діагностикипроекту (Design Doctor Utility).
Модуль екстрактора форматів (Compiler NetllistExtractor) перетворює кожний файлпроекту в один або декілька двійкових файлів з розширенням .cnf (compilernetlist file). Оскільки компілятор підставляє значення всіх параметрів, що використовуютьсяв параметризованих функціях, вміст cnf-файлу може змінюватись при послідовнійкомпіляції, якщо значення параметрів змінюється. Даний модуль також створює іфайл ієрархічних взаємозв’язків, з розширенням .hif (hierarchy interconnectfile). В цьому файлі документуються ієрархічні зв’язки між файлами проекту, атакож інформація, необхідна для показу ієрархічного дерева у вікні “HierarchyDisplay”. Крім того, даний модуль створює файл бази даних вузлів з розширенням.ndb (node database), в якому містяться імена вузлів проекту для бази даних призначеньресурсів.
Модуль будівника бази даних (Database Builder)використовує файл ієрархічних зв’язків для компонування створених компіляторомcnf-файлів, в яких міститься описання проекту. На основі даних про ієрархічнуструктуру проекту даний модуль копіює кожний cnf-файл в одну базу даних безієрархічної структури. Таким чином, ця база даних зберігає електричні зв’язкипроекту.
При створенні бази даних модуль досліджує логічнуповноту та узгодженість проекту, а також перевіряє прикордонні зв’язки інаявність синтаксичних помилок. На цій стадії компіляції виявляється більшістьпомилок, які можуть бути тут же легко виправлені. Кожний модуль компіляторапослідовно обробляє і поновлює цю базу даних.
Перший раз, коли компілятор обробляє проект, всі файлипроекту компілюються. Користувач має можливість обрати “швидку повторнукомпіляцію” (smart recompile) для створення розширеної бази даних проекту, щодозволяє прискорити наступні компіляції. Використовуючи можливість повноїповторної компіляції (total recompile), є можливість зробити вибір міжповторною компіляцією лише тих файлів, які редагувались після останньоїкомпіляції, і повною повторною компіляцією.
Модуль логічного синтезу (Logic Synthesizer)використовує ряд алгоритмів, що зменшує використання ресурсів і прибираютьдубльовану логіку, забезпечуючи тим самим ефективне використання структурилогічного елемента для архітектури цілої родини пристроїв. Крім того логічнийсинтезатор шукає логіку для не поєднаних вузлів. Якщо він знаходить такийвузол, він прибирає примітиви, що відносяться до такого вузла.
Якщо проект не вміщується при монтажі в одномупристрої, модуль роздільника (Partitioner) розділяє базу даних на декілька ПЛІСоднією і тіє ж самої родини, намагаючись при цьому розділити проект намінімальну кількість пристроїв.
Використовуючи базу даних, поновлену модулем розбиття,модуль трасування (Fitter) приводить у відповідність вимоги проекту з відомимиресурсами одного або декількох пристроїв. Він призначає кожній логічний функціїположення логічного елемента, що її реалізує та обирає відповідні шляхивзаємозв’язків і призначень виводів.
Екстрактор для функціонального тестування (FunctionalSNF Extractor) створює файл дляфункціонального тестування з розширенням .snf. Компілятор генерує цей файлперед синтезом проекту, він містить всі вузли, що присутні в початкових файлахпроекту.
Екстрактор для тестування часових параметрів (TimingSNF Extractor) створює, якщокомпіляція проекту пройшла без помилок, файл для тестування часових параметрів,що містить дані про часові параметри проекту. Розширення файлу також — .snf.
Екстрактор для тестування компонування (Linked SNF Extractor) створює файл (.snf) для тестуваннякомпонування декількох проектів (на рівні плати). Такий файл комбінуєінформацію з snf-файлів двох типів: для тестування часових параметрів іфункціонального тестування, що були синтезовані для цих декількох проектівокремо.
Програма для запису вихідного файла в формат EDIF(EDIF Netlist Writer). КомпіляторMAX+PLUS II може взаємодіяти з більшістю стандартних програмних засобів системиавтоматичного проектування, що можуть читати файли стандартного формату EDIF 200або EDIF 300. Даний модуль компілятора, що містить програму запису в форматEDIF, створює один або декілька файлів в форматі EDIF, з розширенням .edo.
Програма для запису вихідного файла в формат Verilog(Verilog Netlist Writer).Необов’язковий модуль програми запису в формат Verilog генерує вихідні файли зрозширенням .vo, що містять інформацію про функції та їх часові параметри,отримані після проведення синтезу.
Програма для запису вихідного файла в формат VHDL(VHDL Netlist Writer).Необов’язковий модуль компілятора з програмою запису в формат VHDL генерує одинабо декілька вихідних файлів (.vho) на мові VHDL з синтаксисом 1987 або 1993.
Модуль асемблера (Assembler) перетворює призначення логічних елементів, виводів іпристроїв, зроблених модулем трасування, в програмний образ для пристрою увигляді одного або декількох двійкових об’єктних файлів для програматора (.pof)і об’єктних файлів SRAM (.sof).
Утіліта діагностики проекту (Design Doctor Utility) перевіряє логіку кожного файлу проекту зметою виявлення елементів, які можуть викликати проблеми надійності насистемному рівні. Ці проблеми виявляються лише після запуску пристрою “взалізі”. Існує можливість обирати одне з трьох попередніх правил обробкипроекту з різними рівнями.
6. Загальнівідомості про мову описання апаратури AHDL
Мова описання апаратури AHDL (Altera HardwareDescription Language) розробленафірмою Altera і призначена для описання комбінаційних і послідовних логічнихпристроїв, групових операцій, цифрових автоматів з урахуванням особливостейПЛІС фірми Altera. Він повністю інтегрується з системою автоматичногопроектування MAX+PLUS II. Файли описання апаратури, написані на мові AHDL, маютьрозширення .tdf (Text design file). Для створення tdf-файлу можна використовуватияк текстовий редактор системи MAX+PLUS II, так і будь-який інший. Проект,виконаний у вигляді tdf-файлу, компілюється і використовується для формуванняфайлу програмування або завантаження ПЛІС фірми Altera.
Оператори та елементи мови AHDL є достатньо потужнимита універсальними засобами описання алгоритмів функціонування цифровихпристроїв. Мова описання апаратури AHDL дає можливість створювати ієрархічніпроекти в рамках однєї цієї мови або ж в ієрархічному проекті використовуватияк tdf-файли, написані на мовіAHDL, так і інші типи текстового описання апаратури. Для створення проектів наAHDL можна, звичайно, користуватись будь-яким текстовим редактором, алетекстовий редактор системи MAX+PLUS II надає ряд додаткових можливостей для введення,компіляції і верифікації проекту.
Файли, створені на мові AHDL, легко інтегруються вієрархічну структуру проекту. Система MAX+PLUS II дозволяє автоматичностворювати символ компонента, алгоритм функціонування якого описано tdf-файлом,а потім вставити його в файл схемного описання (gdf-файл). Додатково, користувачможе вводити власні функції, крім розроблених фірмою Altera близько 300макрофункцій. Для всіх функцій, включених до макробібліотеки системи MAX+PLUSII, фірма Altera поставляє файли з розширенням .inc (include design file).
При розподіленні ресурсів пристроїв проектувальникможе користуватись програмами текстового редактору або операторами мови AHDL.Крім того, розробник може перевірити синтаксис і зробити повну компіляцію.Будь-які помилки автоматично фіксуються обробником повідомлень та інформаціяпро їх наявність з’являється у вікні текстового редактору, що оптимізує часрозробки пристрою.
7. Реалізація вінтегрованому середовищі MAX+PLUS II базових пристроїв мікроелектроніки
7.1 Теоретичнівідомості про тригери
Базовою структурною одиницею для побудовикомбінаційних логічних схем є логічний елемент (вентиль). У випадку послідовнихлогічних схем роль такої структурної одиниці відіграє тригер. В даному розділідипломної роботи буде розглянуто різні види тригерів.
7.1.1 RS-тригер
Умовне позначення RS-тригеру подано на рис. 7.1.1: RS-тригермає два входи R і S та два виходи Q1 та Q2. В тригерахвиходи завжди знаходяться в протилежних (компланарних) станах. Іншою мовою,якщо на вході Q1 ми маємо логічну одиницю, то на виході Q2буде рівень логічного нуля, і навпаки.
Входи R і S розглядуваного тригера називаютьвідповідно входом встановлення 1 і входом встановлення 0.
Виходи />
Інверсний
Прямий
Встановлення 1
Встановлення 0
Входи />
/>
Рис. 7.1.1. Умовне позначення RS-тригеру
Принцип роботи RS-тригеру ілюструє його таблицядійсності (табл. 7.1.1).
Табл. 1.1. Таблиця дійсності RS-тригеруРежим роботи Входи Виходи S R
Q1
Q2
Вплив на вихід Q1 Заборонений стан 1 1
Заборонено –
не використовується Встановлення 1 1 1
Для встановлення
Q1 в 1 Встановлення 0 1 1
Для встановлення
Q1 в 0 Збереження 1 1
Q1
Q2 Залежить від попереднього стану
При поданні на обидва входи тригера рівня логічногонуля (R=S=0) на обох виходах встановлюється логічна одиниця (Q1=Q2=1).Це заборонений стан тригеру; він не використовується. Згідно другому рядкутаблиці дійсності на виході Q1 встановлюється логічна 1. В даномувипадку кажуть, що тригер встановлений у стан 1. Згідно третього рядка, при S=1і R=0 відбувається скидання сигналу на вході Q1 (очищення виходу Q1)до рівня логічного 0. Це значить, що тригер встановлено у стан 0. Четвертийрядок таблиці дійсності відповідає R=S=1. В даному випадку тригер знаходиться встані спокою: на виходах Q1 і Q2 зберігаються попереднікомплементарні рівні сигналу. Це режим збереження.
Із табл. 7.1.1 видно, що встановлення тригеру у стан 1(встановлення 1 на виході Q1) ініціює логічний 0 на вході S.Аналогічно встановлення тригеру в стан 0 (встановлення 0 на виході Q1)ініціює логічний 0 на вході R. Так як зміна стану RS-тригеру обумовлена появою0 на одному з його входів, то вірогідніше, точнішим зображенням даної схемибуло б умовне графічне зображення, приведене на рис. 7.1.2.
/>
Рис. 7.1.2. Умовне графічне позначення RS-тригеру
/>
Рис. 7.1.3. RS-тригер, побудований на логічнихелементах І-НЕ
Особливу увагу треба звернути на інвертуючі кола у входівR та S. Вони показують, що активним рівнем сигналу для встановлення тригеру встан 1 і 0 є рівень логічного 0 на одному із входів. RS-тригер часто називають RS-фіксатором,або тригером з роздільними входами.
7.1.2 СинхроннийRS-тригер
Умовне графічне позначення для синхронного RS-тригерупоказано на рис. 7.1.4. Воно подібне до звичайного RS-тригеру; відмінність полягаєв появі одного додаткового, так званого синхронізуючого входу, що позначаєтьсяCLK.
/>
Рис. 7.1.4. Умовне графічне позначення синхронногоRS-тригеру
Принцип роботи синхронного RS-тригеру ілюструє йоготаблиця дійсності (табл. 7.1.2).
Табл. 7.1.2. Таблиця дійсності синхронного RS-тригеруРежим роботи Входи Виходи CLK S R
Q1
Q2
Вплив на вихід Q1 Збереження
/> Без змін Без змін Встановлення 0
/> 1 1
Для встановлення
Q1 в 0 Встановлення 1
/> 1 1
Для встановлення
Q1 в 1 Заборонений стан
/> 1 1 1 1
Заборонено –
не використовується
Тільки верхні три рядки таблиці дійсності описуютьреальні режими роботи RS-тригеру. Нижній рядок відповідає забороненому стану ініколи не використовується. З таблиці видно, що стан виходів синхронногоRS-тригеру може змінюватись лише в моменти приходу тактових імпульсів. В даномувипадку кажуть, що тригер працює синхронно: процес переключення йогознаходиться в синхронізмі з тактовими імпульсами.
Важливу роль в багатьох цифрових схемах відіграє ще однахарактеристика RS-тригеру – наявність пам’яті. Дійсно, якщо тригер встановленийв стан 1 або 0, то він залишається в такому стані навіть при деяких змінахвхідних сигналів.
/>
Рис. 7.1.5. Синхронний RS-тригер, побудований на логічнихелементах І-НЕ
Щоб отримати синхронний RS-тригер, в схему звичайногоRS-тригеру потрібно ввести два додаткових логічних елемента І-НЕ, як показанона рис. 7.1.5.
7.1.3 D-тригер
Умовне графічне позначення D-тригеру подано на рисунку7.1.6. У цього тригера є лише один інформаційний вхід D, а також синхронізуюзуючийвхід CLK.
D-тригер часто називають тригером з затримкою. Слово“затримка” означає те, що відбувається з даними (інформацією), що поступає навхід D. Інформаційний сигнал (0 або 1), поступаючи на цей вхід затримується утригері рівно на один такт, перед тим як з’явитись на виході Q.
/>
Рис. 7.1.6. Умовне графічне позначення D-тригеру
Спрощена таблиця дійсності для D-тригеру подана нижче.
Табл. 7.1.3. Таблиця дійсності D-тригеруВхід Вихід
Dn
Qn+1 1 1
Слід звернути увагу, що сигнал на виході Q в такті n+1повторює сигнал, що був на вході D в попередньому такті n.
D-тригер можливо отримати з тактуємого RS-тригеру,додаючи до останнього інвертор, як показано на рис. 7.1.7.
/>
Рис. 7.1.7. Схема D-тригера
На рис. 7.1.8 показано умовне позначення типовогосерійно випускаємого D-тригеру. Він має два додаткових входи – попередньоговстановлення (PS) і очищення (CLR). Логічний 0 на вході PS ініціює встановленнялогічної 1 на виході Q. Логічний 0 на вході CLR ініціює очистку виходу Q.
В активних станах входи PS і CLR блокують дію входів Dі CLK; при розблокуванні входи D і CLK діють аналогічно звичайному D-тригеру,що зображений на рис. 7.1.6.
Очищення
Входи />
Рис. 7.1.8. Умовне графічне позначення серійногоінтегрального D-тригеру
7.1.4 JK-тригер
JK-тригер – це універсальний тригер, що маєхарактеристики всіх інших типів тригерів. Умовне графічне позначення JK-тригеруподано на рис. 7.1.9. JK-тригер має два інформаційні входи: J і K, і вхідсинхронізації CLK і, як і всі тригери два комплементарних виходи Q1і Q2. Таблиця дійсності для JK-тригера приведена в табл. 7.1.4. Колина обидва входи J і K подається рівень логічного 0, тригер блокується, і станйого виходів не змінюється. В цьому випадку тригер знаходиться в режимі збереження./>
/>
Рис. 7.1.9. Умовне графічне позначення JK-тригеру
Табл. 7.1.4. Таблиця дійсності JK-тригеруРежим роботи Входи Виходи CLK J K
Q1
Q2
Вплив на вихід Q1 Збереження
/> Без змін
Без змін –
блокування Встановлення 0
/> 1 1
Скидання або очищення Q1 в 0 Встановлення 1
/> 1 1
Для встановлення
Q1 в 1 Переключення
/> 1 1 Переключення
Зміна стану на
протилежний
Рядки 2 і 3 таблиці дійсності описують режими, щовідповідають встановленню тригера в стани 0 на 1. Рядок 4 ілюструє дужеважливий режим роботи JK-тригера – переключення. Якщо на обох входах J і Kвстановлена логічна 1, то наступні тактові імпульси будуть викликатиперекидання рівнів сигналів на виходах тригера від 1 до 0, от 0 до 1 і такдалі. Така робота подібна переключенню тумблера, звідки і походить назварежиму.
Умовне графічне позначення JK-тригера, що входить доскладу інтегральної схеми показано на рис. 7.1.10. В порівнянні з тригером нарис. 7.1.9 даний тригер має два додаткових асинхронних входи (вхід попередньоговстановлення і вхід очищення).
Синхронними входами є інформаційні входи J та K ісинхронізуючий вхід CLK.
/>
Рис. 7.1.10. Умовне графічне позначення серійногоінтегрального JK-тригеру
При реалізації тригерів за допомогою мови AHDLдоцільно користуватись примітивами тригерів.
В табл. 7.1.5 наведено всі примітиви тригерів, щовикористовуються при описанні роботи апаратури.
Табл. 7.1.5. Примітиви тригерів в AHDLПримітив Прототип примітиву DFF
FUNCTION DFF (D, CLK, CLRN, PRN)
RETURNS (Q) DFFE
FUNCTION DFFE (D, CLK, CLRN, PRN, ENA)
RETURNS (Q) TFF
FUNCTION TFF (T, CLK, CLRN, PRN)
RETURNS (Q) TFFE
FUNCTION TFFE (T, CLK, CLRN, PRN, ENA)
RETURNS (Q) JKFF
FUNCTION JKFF (J, K, CLK, CLRN, PRN)
RETURNS (Q) JKFFE
FUNCTION JKFFE (J, K, CLK, CLRN, PRN, ENA)
RETURNS (Q) SRFF
FUNCTION SRFF (S, R, CLK, CLRN, PRN)
RETURNS (Q) SRFFE
FUNCTION SRFFE (S, R, CLK, CLRN, PRN, ENA)
RETURNS (Q) LATCH
FUNCTION LATCH (D, ENA)
RETURNS (Q)
Виводи тригерів:
D, T, J, K, S, R – інформаційні входи;
CLK – вхід тактового сигналу (активний перепад0->1);
CLRN – вхід асинхронного скидання тригера (активнийрівень – логічний нуль);
PRN – вхід асинхронного встановлення тригера (активнийрівень – логічний нуль);
ENA – вхід дозволу роботи (активний рівень – логічнаодиниця).
7.1.5 Програмареалізації тригерів в інтегрованому середовищі MAX+PLUS II
Програма для реалізації тригерів за допомогою мовиAHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:Title«triggers»;
Subdesign triggers
(
D,T,J,K,S,R,CLK,CLRN,PRN,ENA: input;
Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9: output;
)
Begin
Q1 = DFF(D,CLK,CLRN,PRN); Q2 = DFFE(D,CLK,CLRN,PRN,ENA);
Q3 = TFF (T,CLK,CLRN,PRN); Q4 = TFFE (T, CLK, CLRN,PRN, ENA);
Q5 = JKFF (J, K, CLK, CLRN, PRN);
Q6 = JKFFE (J,K, CLK, CLRN, PRN, ENA);
Q7 = SRFF (S, R, CLK, CLRN, PRN);
Q8 = SRFFE (S, R, CLK, CLRN, PRN, ENA);
Q9 = LATCH (D, ENA);
End;
7.1.6 Результатипрограмної реалізації тригерів
На рис. 7.1.11 зображено вікно сигнального редакторупроекту “triggers”.
/>
Рис.7.1.11. Результати тестування RS-, D-, JK-тригерів
7.2 Теоретичнівідомості про регістри
7.2.1 Послідовнірегістри зсуву
Схема одного з типових регістрів зсуву подана на рис.7.2.1. Цей регістр реалізований на 4 D-тригерах. Такий регістр має назву 4-розряднийрегістр зсуву, оскільки він дозволяє зберігати 4 двійкових розряди даних А, B,C, D.
/>
Рис.7.2.1. 4-розрядний послідовний регістр зсуву
За допомогою табл. 7.2.1 і рис. 7.2.1 ми маємоможливість спостерігати за роботою цього пристрою. Спочатку очистимо регістр(встановимо рівні логічного нуля на його виходах А, B, C, D). Для цьогопотрібно подати логічний 0 на вхід очищення CLR. Отриманому стану регістразсуву відповідає рядок 1 табл. 7.2.1 До приходу тактового імпульсу виходирегістру залишаються в стані 0000. Подамо перший імпульс на синхронізуючий вхідCLK; індикатор покаже число 1000 (рядок 3 в табл. 7.2.1), оскільки на тактовомуімпульсі логічна 1 з інформаційного входу тригера TA переноситься на йогологічний вихід Q. Тепер при наявності логічної 1 на інформаційному входірегістру ця одиниця з кожним тактовим імпульсом вводиться в розряд А, а введеніраніше одиниці зсуваються на одну позицію (розряд) вправо (тактові імпульси 2 і3 в табл. 7.2.1). Таким самим чином при подачі на інформаційний вхід логічного0 цей нуль при кожному тактовому імпульсі вводиться в розряд А, а введеніраніше одиниці та нулі зсуваються вправо (тактові імпульси 4-8 в табл. 7.2.1).Перед приходом тактового імпульсу 9 на інформаційному вході встановлюється 1, аперед приходом імпульсу 10 цей вхід повертається до 0. В час дії тактовихімпульсів 9-13 введена в регістр на імпульсі 9 одиниця буде зміщуватись наіндикаторі вправо. Рядок 15 в табл. 7.2.1 показує, на імпульсі 13 ця одиницяпокидає крайній правий розряд регістру зсуву і втрачається.
Табл.7.2.1. Робота 4-розрядного регістру зсувуВходи Виходи
Номер
рядка Очищення Дані Номер тактового імпульсу TА TB TC TD А B C D 1 2 1 1 3 1 1 1 1 4 1 1 2 1 1 5 1 1 3 1 1 1 6 1 4 1 1 1 7 1 5 1 1 8 1 6 1 9 1 7 10 1 8 11 1 1 9 1 12 1 10 1 13 1 11 1 14 1 12 1 15 1 13
Нагадаємо, що D-тригер називають також тригером ззатримкою. Він просто передає інформаційний сигнал з входу D на вихід Q з затримкоюна один такт.
Прилад, схема якого приведена на рис. 7.2.1 має назву послідовногорегістру зсуву. Термін “послідовний” відображає той факт, що в цей регістр данівводяться порозрядно. Наприклад, щоб ввести в регістр двійкову комбінацію 0111треба пройти всю послідовність станів від рядка 1 до рядка 6 в табл. 7.2.1.Послідовне завантаження 4-бітової комбінації 0111 в послідовний регістрвідбувається за 5 тактів (рядок 2 можливо виключити).
Інший спосіб завантаження регістру – паралельне (аборозширене) завантаження, при якому всі інформаційні біти вводяться в регістродночасно “за командою” одного тактового імпульсу.
Регістр зсуву на рис. 7.2.1 можливо трансформувати в5-розрядний, додав до схеми ще один D-тригер. Регістри зсуву частіше бувають4-, 5- або 8-розрядними. В них можливо використання не тільки D-тригеру, але йтригерів іншого типу (наприклад, JK-тригера, або синхронних RS-тригерів).
7.2.2 Паралельнірегістри зсуву
Послідовний регістр зсуву, робота якого описана вищемає два суттєві недоліки: він дозволяє вводити тільки по одному біту інформаціїна кожному тактовому імпульсі і, крім того, кожний раз при зсуві вправовтрачається крайній правий біт.
На рис. 7.2.2 показана схема 4-розрядного паралельногокільцевого регістру. Входи A, B, C, D вданому приладі є інформаційними.
/>Рис.7.2.2. 4-розрядний паралельний кільцевий регістр зсуву
Цю систему можливо спорядити ще однією корисноюхарактеристикою – можливістю кільцевого переміщення інформації, коли дані звходу приладу повертаються на його вхід і не втрачаються.
В даному регістрі зсуву використовуються чотириJK-тригери. Треба звернути увагу на зворотній зв’язок виходу тригера TD тавходів J і K тригера ТА. Завдяки цьому ланцюгу зворотного зв’язку введена врегістр інформація, яка звично втрачається на виході тригеру TD, буде циркулюватипо регістру зсуву. Сигналом очищення регістру (встановлення його виходів в стан0000) є рівень логічного нуля на вході CLR.
Входи паралельного завантаження A, B, C, D пов’язані звходами попереднього встановлення тригерів PRN, що дозволяє встановлюватирівень логічної одиниці на будь-якому виході (A, B, C, D). Якщо на один з цихвходів подати логічний 0, то на відповідному виході буде логічна 1. Подачатактових імпульсів на входи CLK всіх JK-тригерів призводить до зсуву інформаціїв регістрі вправо. З тригеру TD дані передаються в тригер ТА (кільцевепереміщення інформації).
Табл. 7.2.2. Робота 4-розрядного паралельногокільцевого регістру зсувуВходи Виходи Номер рядка Очищення Паралельне завантаження даних Номер тактового імпульсу TА TB TC TD A B C D А B C D 1 1 1 1 1 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 4 1 1 1 1 1 1 1 5 1 1 1 1 1 2 1 6 1 1 1 1 1 3 1 7 1 1 1 1 1 4 1 8 1 1 1 1 1 5 1 9 1 1 1 1 10 1 1 1 1 1 11 1 1 1 1 1 6 1 1 12 1 1 1 1 1 7 1 1 13 1 1 1 1 1 8 1 1 14 1 1 1 1 1 9 1 1 15 1 1 1 1 1 10 1 1 /> /> /> /> /> /> /> /> /> /> /> /> />
Табл. 7.2.2 допомагає зрозуміти принцип роботипаралельного регістру зсуву. При включенні живлення на виходах регіструвстановлюється будь-яка двійкова комбінація, така, наприклад як в рядку 1таблиці 7.2.2. Подача логічного 0 на входи CLR тригерів ініціює очищеннярегістру (рядок 2). Далі (рядок 3) відбувається завантаження в регістрдвійкової комбінації 0100. Послідовні тактові імпульси викликають зсув введеноїінформації вправо (рядки 4-8). Треба звернути увагу на рядки 5 і 6: одиниця зкрайнього правого тригеру TD переноситься в крайній лівий тригер ТА. В даномувипадку можливо говорити про кільцеве переміщення одиниці в регістрі.
Далі (рядок 9) заново ініціюється очищення регістру задопомогою входу CLR. Завантажується нова двійкова комбінація 0110 (рядок 10).Подача 5 тактових імпульсів (рядки 11-15) призводить до кільцевого зсувуінформації на 5 позицій вправо. Треба звернути увагу, що для повернення даних впочатковий стан потрібно 4 тактових імпульси. Якщо в регістрі зсуву на рис. 2.2розірвати ланцюг зворотного зв’язку, то ми отримаємо звичайний паралельнийрегістр зсуву; можливість кільцевого переміщення даних буде виключена.
7.2.3 Програмареалізації регістрів в інтегрованому середовищі MAX+PLUS II
Програма для реалізації 4-розрядного послідовногорегістру зсуву за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS IIмає наступний вигляд:
Title «register1»;
Parameters
(WIDTH = 4); — встановлення розрядності регістру
Assert (WIDTH > 0) — перевірка розрядності регіструна відмінність від 0
Report «Value of WIDTH parameter must be greaterthen %» WIDTH
Severity Error;
Subdesign register1
(
D_INPUT, SET, RESET: input = GND; — вхідні сигнали
CLK: input; — вхід синхронізації
ENABLE: input = VCC; — вхід дозволу роботи
Q_OUTPUT: output; — вихідні сигнали
)
Variable
FF[WIDTH..1]: DFFE; — об'ява змінної FF, що належитьдо класу DFFE
Begin
FF[].clk = CLK;
FF[].prn = !SET;
FF[].clrn = !RESET;
FF[].ena = ENABLE;
FF[].d = (FF[WIDTH-1..1].q, D_INPUT);
Q_OUTPUT = FF[WIDTH].q;
End;
— Примітка: на часовій діаграммі:
— FF — двійкове число на виході регістру
Програма для реалізації 4-розрядного паралельногокільцевого регістру зсуву за допомогою мови AHDL в інтегрованому середовищіMAX+PLUS II має наступний вигляд:
Subdesign register2
Parameters
(WIDTH = 4); — встановлення розрядності регістру
Assert (WIDTH > 0) — перевірка розрядності тригера(більша від нуля)
Report «Value of WIDTH parameter must be greaterthen %» WIDTH
Severity Error;
(
I[WIDTH..1]: input = VCC; — вхідні сигнали (дані)
CLK: input;
RESET: input;
O[WIDTH..1]: output; — вихідні сигнали (дані)
)
Variable
FF[WIDTH..1]: JKFF; — об'ява змінної FF, що належитьдо класу JKFF
Begin
FF[WIDTH..1].j = (FF[WIDTH-1..1].q, FF[WIDTH].q);
FF[WIDTH..1].k = (!FF[WIDTH-1..1].q, !FF[WIDTH].q);
FF[WIDTH..1].clk = CLK;
FF[WIDTH..1].clrn = !RESET;
FF[WIDTH..1].prn = I[WIDTH..1];
O[WIDTH..1] = FF[WIDTH..1].q;
End;
7.2.4 Результатипрограмної реалізації регістрів
На рис. 7.2.3 зображено вікно сигнального редакторупроекту “register1”.
/>
Рис. 7.2.3. Результати тестування 4-розрядногопослідовного регістру зсуву
На рис. 7.2.4 зображено вікно сигнального редакторупроекту “register2”.
/>
Рис. 7.2.3. Результати тестування 4-розрядногопаралельного кільцевого регістру зсуву
7.3 Теоретичнівідомості про лічильники
7.3.1 Лічильник зкрізним переносом
Процедури двійкової і десяткової лічби ілюстровано втабл. 7.3.1. Використовуючи лише чотири двійкових розряди (T4, T3, T2, T1), миможемо рахувати від 0000 до 1111 (від 0 до 15 в десятеричній системі відліку).Стовпчик T1 таблиці відповідає двійковому розряду одиниці або самій молодшійзначимій цифрі. Зазвичай використовується термін “самий молодший розряд”.Стовпець T4 відповідає двійковому розряду вісімок або старшій значимій цифрі.Зазвичай використовується термін “самий старший розряд”. Зверніть увагу, що встовпці одиниць цифри змінюються найчастіше. Якщо вам потрібний лічильник, щорахує від 0000 до 1111 в двійковій системі, у нього повинно бути 16 різнихвихідних станів. Такий лічильник має назву лічильник за модулем 16. Модуль лічильника– це число різних станів, через які проходить лічильник в процесі одногоповного циклу відліку.
Табл.7.3.1. Відлікова послідовність для лічильника за модулем 16Двійкова лічба Десяткова лічба T4 T3 T2 T1 8 4 2 1 1 1 1 2 1 1 3 1 4 1 1 5 1 1 6 1 1 1 7 1 8 1 1 9 1 1 10 1 1 1 11 1 1 12 1 1 1 13 1 1 1 14 1 1 1 1 15
Функціональна схема лічильника за модулем 16,зібраного з чотирьох JK-тригерів, показана на рис 7.3.1. Кожний JK-тригерпрацює в режимі переключення (J = K = 1). Нехай в початковий момент часу станвиходів лічильника відповідає двійковому числу 0000 — лічильник очищений. Принадходженні тактового імпульсу 1 на синхронізуючий вхід CLK тригера Т1 цейтригер переключається, при проходженні зрізу імпульсу, і на індикаторіз’являється число 0001. Лічба продовжується: зріз сигналу на виході кожноготригеру запускає наступний тригер. Повертаючись до табл. 7.3.1. ми бачимо, щоцифри (1 або 0) в стовпці T1 (одиниць) змінюються на кожному етапі лічби.Іншими словами тригер Т1 переключається з приходом кожного нового тактовогоімпульсу. Як бачимо з стовпця T2, тригер Т2 переключається в два рази рідше відтригера Т1. Взагалі кожний старший розряд в табл. 7.3.1 переключається в дварази рідше попереднього.
/>
Рис. 7.3.1. Логічна схема лічильника за модулем 16
Роботу лічильника за модулем 16 ілюструють часовідіаграми на рис. 7.3.2. Синхронізуючому входу відповідає верхня діаграма.Діаграми для виходів Q регістрів Т4, Т3, Т2, Т1 наведено нижче.
Оскільки кожний тригер впливає тільки на одиннаступний за ним тригер, то для переключення всіх тригерів необхідний деякийчас.
Ми бачимо, що зміна станів послідовно проходить поланцюжку тригерів. Тому лічильник, що ми розглядаємо має назву лічильника зкрізним переносом.
/>
Рис. 7.3.2. Часова діаграма лічильника за модулем 16
Лічильник, функціональна схема якого показанана рис. 7.3.1, можливо назвати не тільки лічильником з крізним переносом, але йлічильником за модулем 16, 4-розрядним лічильником або асинхронним лічильником.Кожна з назв характеризує розглядувану схему з якогось одного боку.
Визначення “з крізним переносом” і“асинхронний” говорять про те, що запуск тригерів відбувається не в один і тойже час. Назва “лічильник за модулем 16” віддзеркалює число різних станів, що“проходяться” лічильником за один повний цикл лічби. Визначення “4-розрядний”вказує на число двійкових розрядів на виході лічильника.
7.3.2Асинхронний лічильник з модулем 10
Лічильник за модулем 10 рахує від 0000 до 1001(від 0 до 9 в десятковій системі), тобто перші 10 комбінацій в табл. 7.3.1. Мибачимо, що для цього потрібно чотири двійкових розряди: розряд одиниць, розряддвійок, розряд четвірок і розряд вісімок.
/>/>
Рис. 7.3.3. Логічна схема лічильника за модулем 10
Такий лічильник можливо реалізувати на чотирьохтригерах, з’єднаних по схемі описаного вище асинхронного лічильника. В схему потрібнододатково ввести логічний елемент І-НЕ (рис. 7.3.3) для встановлення всіхтригерів в нульовий стан, очищення лічильника, з приходом десятого імпульсу(тобто з приходом першого імпульсу після того, як лічильник нарахував до 1001 –9 в десятковій системі).
Принцип використання такого логічного елементастає зрозумілим якщо розглянути яке двійкове число настає за 1001. З табл.7.3.1 видно, що цим числом є 1010 (10 в десятковій системі). При поданнілогічної 1, що міститься в розрядах двійок і вісімок двійкового числа 1010, навходи логічного елемента І-НЕ (як показано на рис. 7.3.3), цей елементвстановить всі тригери в стан 0. Лічильник почне рахувати від 0000 до 1001.Таким чином, логічний елемент І-НЕ забезпечує встановлення лічильника в стан0000. Подібне використання логічного елемента І-НЕ дозволяє створити лічильникиз деякими іншими значеннями модуля. На рис. 7.3.3 показано функціональну схемуасинхронного лічильника за модулем 10. Цей лічильник можливо також назватидекадним (десятковим) лічильником.
7.3.3Лічильник віднімання
Вище було описано лічильники, що рахують в прямомунапрямку (0, 1, 2,...). Однак в деяких цифрових системах з’являєтьсянеобхідність рахування в зворотному напрямку (9, 8, 7, 6,...). Лічильники, якірахують від більших чисел до менших називають лічильниками віднімання, або лічильникамизворотної дії.
Схема асинхронного лічильника віднімання замодулем 8 показано на рис. 7.3.4, відповідна відлікова послідовність чиселнаведена в табл. 7.3.2.
/>
Рис. 7.3.4. Логічна схема асинхронного 3-розрядного лічильникавіднімання
Табл.7.3.2. Відлікова послідовність для 3-розрядного лічильника віднімання
Номер
тактового імпульсу Двійкова відлікова послідовність Десяткові числа Т3 Т2 Т1 1 1 1 7 1 1 1 6 2 1 1 5 3 1 4 4 1 1 3 5 1 2 6 1 1 7 8 1 1 1 7 9 1 1 6
Треба звернути увагу на те, що схемалічильника віднімання нагадує схему лічильника прямої дії на рис. 7.3.1. Єдиноювідмінністю є спосіб переносу від тригера Т1 до тригера Т2 і від тригера Т2 дотригера Т3. В лічильнику прямої дії синхронізуючий вхід кожного тригерапов’язаний з інверсним виходом Q попереднього тригера. Зауважимо, що влічильнику відліку перед початком відліку в зворотному напрямку передбаченейого попереднє встановлення в стан 111 (деcяткове число 7) за допомогою входупредвстановлення (PRN). Тригер Т3 – двійковий лічильник розряду одиниць(стовпець T1). Тригер Т2 – лічильник розряду двійок (стовпець T2). Тригер Т3 –лічильник розряду четвірок (стовпець T3).
7.3.4Програми реалізації лічильників в інтегрованому середовищі MAX+PLUS II
Програма для реалізації 4-розрядногоасинхронного лічильника з крізним переносом за модулем 16 за допомогою мовиAHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
title «counter1»;
parameters
(WIDTH = 4); — встановлення розрядності лічильника
assert (WIDTH > 0) — перевірка розрядностілічильника
report «Value of WIDTH parameter must be greaterthen %» WIDTH
severity error;
subdesign counter1
(
CLK: input; — імпульси синхронізації (CLK) лічильника
RESET: input; — імпульси зкидання (CLRN) тригерівлічильника
SET: input; — імпульси предвстановлеення (PRN)тригерів лічильника
O [WIDTH..1]: output; — вихід лічильника
)
variable
TRIGGER [WIDTH..1]: JKFF;
begin
TRIGGER [WIDTH..1].j = vcc;
TRIGGER [WIDTH..1].k = vcc;
TRIGGER [WIDTH..1].clrn = !RESET;
TRIGGER [WIDTH..1].prn = !SET;
TRIGGER [WIDTH].clk = !CLK;
TRIGGER [WIDTH-1..1].clk = !TRIGGER [WIDTH..2].q;
O [WIDTH..1] = TRIGGER [1..WIDTH].q;
end;
Програма для реалізації асинхронного лічильника за модулем10 за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступнийвигляд:
title «counter2»;
parameters
(WIDTH = 4); — встановлення розрядності лічильника
assert (WIDTH > 0) — перевірка розрядностілічильника
report «Value of WIDTH parameter must be greaterthen %» WIDTH
severity error;
subdesign counter2
(
CLK: input; — імпульси синхронізації (CLK) лічильника
SET: input; — імпульси предвстановлення (PRN)тригерів лічильника
O [WIDTH..1]: output; — вихід лічильника
)
variable
TRIGGER [WIDTH..1]: JKFF;
begin
TRIGGER [WIDTH..1].j = vcc;
TRIGGER [WIDTH..1].k = vcc;
TRIGGER [WIDTH..1].prn = !SET;
TRIGGER [WIDTH].clk = !CLK;
TRIGGER [WIDTH-1..1].clk = !TRIGGER [WIDTH..2].q;
TRIGGER [WIDTH..1].clrn = (TRIGGER [3].q !&TRIGGER [1].q);
O [WIDTH..1] = TRIGGER [1..WIDTH].q;
end;
Програма для реалізації 3-розрядноголічильника віднімання за допомогою мови AHDL в інтегрованому середовищіMAX+PLUS II має наступний вигляд:
title «counter3»;
parameters
(WIDTH = 3); — встановлення розрядності лічильника
assert (WIDTH > 0) — перевірка розрядностілічильника
report «Value of WIDTH parameter must be greaterthen %» WIDTH
severity Error;
subdesign counter3
(
CLK: input; — імпульси синхронізації (CLK) лічильника
RESET: input; — імпульси зкидання (CLRN) тригерівлічильника
SET: input; — імпульси предвстановлення (PRN)тригерів лічильника
O[WIDTH..1]: output; — вихід лічильника
)
variable
TRIGGER[WIDTH..1]: JKFF;
begin
TRIGGER [WIDTH..1].j = vcc;
TRIGGER [WIDTH..1].k = vcc;
TRIGGER [WIDTH..1].clrn = !RESET;
TRIGGER [WIDTH..1].prn = !SET;
TRIGGER [WIDTH..1].clk = (CLK, !TRIGGER [WIDTH..2].q);
O [WIDTH..1] = !TRIGGER [1..WIDTH].q;
end;
Програма для реалізації 3-розрядногоуніверсального лічильника за допомогою мови AHDL в інтегрованому середовищіMAX+PLUS II має наступний вигляд:
title «counter4»;
parameters
(WIDTH = 3); — встановлення розрядності лічильника
assert (WIDTH > 0) — перевірка розрядностілічильника
report «Value of WIDTH parameter must be greaterthen %» WIDTH
severity Error;
subdesign counter4
(
CLK: input; — імпульси синхронізації (CLK) лічильника
SET: input; — імпульси предвстановлення (PRN)тригерів лічильника
RESET: input; — імпульси зкидання (CLRN) тригерівлічильника
FWC: input;
BWC: input;
O[WIDTH..1]: output; — вихід лічильника
)
variable
TRIGGER[WIDTH..1]: JKFF;
begin
TRIGGER[].j = vcc;
TRIGGER[].k = vcc;
TRIGGER[].prn = !SET;
TRIGGER[].clrn = !RESET;
TRIGGER[WIDTH].clk = !CLK;
TRIGGER[WIDTH-1..1].clk = !((TRIGGER[WIDTH..2].q &!FWC) & !(!TRIGGER[WIDTH..2].q & !BWC));
O[WIDTH..1] = TRIGGER[1..WIDTH].q;
end;
— Примітка:
— Значення входів, що відповідают вставленню відлікулічильника в
— зростаючому напрямку:
— FWC = 1;
— BWC = 0.
— Значення входів, що відповідают вставленню відлікулічильника в
— спадаючому напрямку:
— FWC = 0;
— BWC = 1.
7.3.5Результати програмної реалізації лічильників
На рис. 7.3.5 зображено вікно сигнальногоредактору проекту “counter1”.
/>
Рис 7.3.5. Результати тестування 4-розрядногоасинхронного лічильника з крізним переносом за модулем 16
На рис. 7.3.6 зображено вікно сигнального редакторупроекту “counter2”.
/>
Рис 7.3.6. Результати тестування асинхронного лічильниказа модулем 10
На рис. 7.3.7 зображено вікно сигнального редакторупроекту “counter3”.
/>
Рис 7.3.7. Результати тестування 3-розрядного синхронноголічильника
На рис. 7.3.8 зображено вікно сигнального редакторупроекту “counter4”.
/>
Рис 7.3.8. Результати тестування 3-розрядного універсальноголічильника
7.4 Теоретичнівідомості про мультиплексори, демультиплексори, шифратори, дешифратори
7.4.1 Мультиплексор
Мультиплексором називають комбінаційний логічний пристрій, призначений для керуванняпередачею даних від кількох джерел до одного вихідного каналу.
Типове використання мультиплексорів – передача даних від кількох рознесених впросторі джерел інформації на вхід приймача. Припустимо, вимірюється температуранавколишнього середовища в кількох приміщеннях й результати цих вимірів повиннібути виведені на ЕОМ. При цьому, так як температура змінюється повільно, дляотримання достатньої точності зовсім не обов’язково виміряти її постійно. Адостатньо мати виміри, проведені через деякі фіксовані проміжки часу. Головне,щоб проміжки між двома вимірами були суттєво менші за сталу часу, щохарактеризує зміну температури в приміщенні, яке контролюється. Саме цюфункцію, тобто підключення різних джерел інформації до одного приймача, зазаданою командою, і виконує мультиплексор. Інформацію, рознесену в просторі,він перетворює до вигляду з розділом в часі.
Відповідно довизначення, мультиплексор повинен мати один вихід і дві групи входів:інформаційні і адресні. Код, що подається на адресні входи, визначає, який зінформаційних входів в даний момент підключений до вихідного виводу. Оскількиn-розрядний двійковий код може приймати 2n значень, то, якщо числоадресних входів мультиплексора дорівнює n, то число його інформаційних входівповинно дорівнювати 2n.
Таблиця дійсності, щовідображає роботу мультиплексора з двома адресними входами має наступний вигляд(табл. 7.4.1).
Табл. 7.4.1. Таблицядійсності для мультиплексора з двома адресними входамиE
A1
A0 Q
/> 1 х x 1
D0
/> 1
D1
/> 1
D2
/> 1 1
D3
/>
В даній таблицівраховано, що мультиплексор зазвичай має додатковий інверсний вихід />і вхід дозволу роботи Е (в програмах мовою AHDL вхід дозволу роботи, поприкладу примітивів тригерів, має ім’я ENA). Якщо на вхід дозволу роботи Е подається активний логічнийсигнал (Е=1), вихідний сигнал мультиплексора постійний і не залежить від йоговхідних сигналів.
Функція алгебри логіки,що описує роботу мультиплексора має вид:
/>. (1)
Логічна схемамультиплексора, що відповідає наведеній функції алгебри логіки та умовнепозначення мультиплексора на прикладі ІС (інтегральна схема) 555КП7 показані нарис. 7.4.1 а, б.
/> />
а) б)
Рис. 7.4.1. Логічна схема мультиплексора (а) ійого умовне графічне позначення (б)
При передачі інформації від кількох джерел позвичайному каналу з розподілом в часі потрібні не тільки мультиплексори, але йпристрої оберненого призначення, що розподіляють інформацію, отриману з одногоканалу поміж кількох приймачів. Таку задачу вирішують демультиплексори.
В інтегрованому середовищі MAX+PLUS II задопомогою мови AHDL мультиплексор може бути описаний двома методами:
1) таблицею дійсності;
2) на поведінковому рівні.
Описання пристрою задопомогою таблиці дійсності найбільш просте, адже вимагає знанняпроектувальником лише таблиці дійсності мультиплексора. Об’єм отриманоїпрограми, порівняно з об’ємом програми описання на поведінковому рівні, маєзначно менший розмір, але архітектура (логічна схема) самого пристрою залишаєтьсяпроектувальнику невідомою.
Фахівець обирає методописання виходячи з технічного завдання, заданого об’єму програми, кількостіелементарних вентилів на мікросхемі та власного досвіду.
В даній дипломній роботі приклади описаннямультиплексора, що має два адресних, чотири інформаційних входи і один вхіддозволу роботи наведено і за допомогою таблиці дійсності, і на поведінковомурівні.
7.4.2Демультиплексор
Демультиплексором називається комбінаційний логічний пристрій, призначенийдля керування передачею даних від одного джерела інформації до декількохвихідних каналів. Відповідно до визначення, демультиплексор в загальномувипадку має один інформаційний вхід, n адресних входів і 2n виходів.Таблиця дійсності, що описує роботу демультиплексора з двома адресними входамиі входом дозволу роботи Е, має вид (табл. 7.4.2):
Табл.7.4.2. Таблиця дійсності для демультиплексора здвома адресними входамиE
A1
A0
Q0
Q1
Q2
Q3 1 x X D 1 D 1 D 1 1 D
Даній таблиці відповідає наступна функція алгебрилогіки:
/> (2)
На рис. 7.4.2, а наведена логічна схемадемультиплексора, що задовольняє функції алгебри логіки (2), а на рис. 7.4.2, бпоказано його умовне графічне зображення.
/> />
а) б)
Рис. 7.4.2. Логічна схема демультиплексора (а)і його умовне графічне позначення (б)
7.4.3Шифратор
Шифратором, або кодером називається комбінаційний логічний пристрій для перетвореннячисел з десяткової системи відліку до двійкової. Входам шифратора послідовноприсвоюються значення десяткових чисел, тому подача активного логічного сигналуна один з входів сприймається шифратором як подача відповідного десятковогочисла. Цей сигнал перетворюється на виході шифратора в двійковий код.Відповідно до сказаного, якщо шифратор має n виходів, то число його входівповинно бути не більше за 2n. Шифратор, що має 2n входіві n виходів, називається повним. Якщо число входів шифратора менше за 2n,то він називається неповним.
Розглянемо роботу шифратору на прикладі перетворювачадесяткових чисел від 0 до 9 в двійково-десятковий код. Таблиця дійсності, щовідповідає даному випадку має вигляд (табл. 7.4.3).
Так як число входів даного пристрою менше за 2n= 16, то ми маємо неповний шифратор. Використовуючи таблицю для Q3,Q2, Q1, Q0, стає можливо записати наступнівирази:
Q3 = x8 + x9;
Q2 = x4 +x5 + x6+x7;
Q1 = x2 + x3 +x6+ x7; (3)
Q0 = x1 + x3 +x5+x7 +x9.
Табл.7.4.3. Таблиця дійсності для перетворювача десяткових чисел від 0 до 9 вдвійко-десятковий код
x9
x8
x7
х6
x5
x4
x3
x2
x1
x0
Q3
Q2
Q1
Q0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Отримана система (3) характеризує роботу шифратора.Логічна схема пристрою, що відповідає системі (3) показана на рис. 7.4.3.
Неважко помітити, що в шифраторі даного типу сигнал,що подається на вхід x0не використовується. Тому відсутністьсигналу на будь-якому з входів x0, x1 трактується схемоюяк наявність нульового сигналу.
/>
Рис. 7.4.3. Логічна схема шифратору десяткових чисел
Основний напрямок використання шифратора вцифрових системах – введення початкової інформації з клавіатури.
При натисканні будь-якої клавіші на відповідний вхідшифратора подається сигнал “логічна одиниця”, який і перетворюється потім вдвійково-десятковий код. Варіант пристрою введення інформації показано на рис.7.4.4.
/>
Рис. 7.4.4. Пристрій введення інформації з клавіатури
В інтегрованому середовищі MAX+PLUS II за допомогоюмови AHDL шифратор може бути описаний двома методами:
3) емульованою, за допомогоюоператора CASE, таблицею дійсності;
4) на поведінковому рівні.
Описання пристрою,емульованою за допомогою оператора CASE, таблицею дійсності найбільш просте,адже вимагає знання проектувальником лише таблиці дійсності шифратору. Об’ємотриманої програми, порівняно з об’ємом програми описання на поведінковомурівні, має значно менший розмір, але архітектура (логічна схема) самогопристрою залишається проектувальнику невідомою.
Фахівець обирає методописання виходячи з технічного завдання, заданого об’єму програми, кількостіелементарних вентилів на мікросхемі та власного досвіду.
В даній дипломній роботі наведено приклади описанняшифратора 10 на 4 і за допомогою таблиці дійсності, і на поведінковому рівні.
7.4.4 Дешифратор
Дешифратором, або декодером називається комбінаційний логічний пристрій дляперетворення чисел з двійкової системи відліку до десяткової. Відповідно довизначення дешифратор відноситься до класу перетворювачів коду. Розуміється, щокожному двійковому числу ставиться у відповідність сигнал, що формується навиході пристрою. Таким чином, дешифратор виконує операцію, обернену стосовношифратора. Якщо число адресних входів дешифратора n пов’язано з числом йоговиходів m співвідношенням m = 2n, то дешифратор називають повним. Воберненому випадку, якщо m
Поведінку дешифратора описують таблицею дійсності, аналогічнодо таблиці дійсності шифратора (дивись систему 3), але в цій таблиці вхідні івихідні сигнали помінялися місцями. У відповідності до даної таблиці, так яквихідний сигнал дорівнює 1 тільки на одному, єдиному, наборі вхідних змінних,тобто для одної конституєнти одиниці, алгоритм роботи дешифратора описуєтьсясистемою рівнянь виду:
х0= /> ;
х1 = /> ;(4)
х2 = /> ;
і так далі, де Qi – значення логічноїзмінної на і-ому вході пристрою.
В загальному випадку система (4) має вид:
хі = (Q3Q2Q1Q0)і,(5)
де, xi – сигнал на і-ому виході шифратора;(Q3Q2Q1Q0)і –конституанта одиниці, що відповідає двійковому коду і-ої десяткової цифри.
Неважко помітити, що функція алгебраїчної логікидешифратора (4) відрізняється від функції алгебраїчної логіки демультиплексора(2) лише наявністю в останній додаткового множника, що відповідає значеннюсигналу на інформаційному вході D. Тому при D = 1 демультиплексор функціонує якдешифратор. Обернене перетворення дешифратора в демультиплексор вимагаєвведення двох допоміжних логічних елементів І, що виконують операцію логічногомноження між загальним сигналом інформаційного входу D і відповідним логічнимрезультатом множення адресних сигналів (Q3Q2Q1Q0).
Використовуючи дешифратор, можливо побудувати і схемумультиплексора. Для цього схему з рис. 7.4.5, а необхідно доповнити чотирмавихідними логічними елементами АБО (рис. 7.4.5, б).
/>
а) б)
Рис. 7.4.5. Реалізація демультиплексора (а) імультиплексора (б) з використанням дешифратора
При розробці інтегральних схем використовують декількалогічних структур дешифратора. Їх головна відмінність полягає в швидкодії ікількості використаних елементарних логічних елементів.
Найбільш швидкодійним і в той же час найбільш складнимє дешифратор, що прямо реалізує систему функцій алгебри логіки (4). Такийдешифратор називається одноступінчастим або паралельним. Його структурна схемааналогічна до схеми демультиплексора (дивись рис. 7.4.2) за умови D = 1.
Вважаючи, що для реалізації обробки одного вхідногологічного сигналу необхідна деяка умовна одиниця апаратних засобів, числоодиниць цих апаратних засобів для n-розрядного дешифратора визначається виразом:
N1 = n2n.
На рис. 7.4.6 наведено умовне графічне зображеннядешифратора. Воно відповідає інтегральній схемі двійково-десяткового дешифраторатипа 564ИД1.
Якщо при проектуванні основною вимогою є простотасистемного рішення, використовують інші структурні схеми дешифраторів. Однак,спрощення структури досягається за рахунок падіння швидкодії.
/>
Рис. 7.4.6. Умовне графічне позначення дешифратора
Мікросхеми дешифраторів часто мають входом дозволуроботи E (вхід стробування). Наявність цього входу дозволяє на основі готовихінтегральних схем при необхідності збільшення розрядності вхідного кодустворювати структури дешифраторного дерева.
7.4.5 Програми реалізації мультиплексорів,демультиплексорів, шифраторів, дешифраторів в інтегрованому середовищі MAX+PLUSII
Програма для реалізації шифратора 10 на 4 (опис таблицеюдійсності шифратора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUSII має наступний вигляд:
Subdesign shifrator1
(
XIP[9..0]: input; — вхідні сигнали
QOP[3..0]: output; — вихідні сигнали
)
Begin
Table
XIP[] => QOP[];
b«0000000001» => b«0000»;
b«0000000010» => b«0001»;
b«0000000100» => b«0010»;
b«0000001000» => b«0011»;
b«0000010000» => b«0100»;
b«0000100000» => b«0101»;
b«0001000000» => b«0110»;
b«0010000000» => b«0111»;
b«0100000000» => b«1000»;
b«1000000000» => b«1001»;
End table;
End;
Програма для реалізації шифратора 10 на 4 (опис наповедінковому рівні шифратора) за допомогою мови AHDL в інтегрованомусередовищі MAX+PLUS II має наступний вигляд:
Subdesign shifrator2
(
XIP[9..0]: input; — вхідні сигнали
QOP[3..0]: output; — вихідні сигнали
)
Begin
QOP[3]= XIP[8] + XIP[9];
QOP[2]= XIP[4] + XIP[5] + XIP[6] + XIP[7];
QOP[1]= XIP[2] + XIP[3] + XIP[6] + XIP[7];
QOP[0]= XIP[1] + XIP[3] + XIP[5]+ XIP[7] + XIP[9];
End;
Програма для реалізації 3-розрядного дешифратора з інверснимивиходами за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступнийвигляд:
subdesign decipherer1
(
XIP[3..1]: input; — вхідні сигнали
QOP[7..0]: output; — вихідні сигнали
)
begin
case XIP[] is
when 0 => QOP = b«11111110»;
when 1 => QOP = b«11111101»;
when 2 => QOP = b«11111011»;
when 3 => QOP = b«11110111»;
when 4 => QOP = b«11101111»;
when 5 => QOP = b«11011111»;
when 6 => QOP = b«10111111»;
when 7 => QOP = b«01111111»;
end case;
end;
Програма для реалізації мультиплексора з 2 адреснимивходами, 4 інформаційними і входом дозволу роботи (опис емульованою таблицеюдійсності мультиплексора) за допомогою мови AHDL в інтегрованому середовищіMAX+PLUS II має наступний вигляд:
subdesign multiplexer1
(
INFIN[4..1]: input; — інформаційні входи
ADRIN[2..1]: input; — адресні входи
ENA: input; — вхід дозволу роботи (вхід стробування)
Q: output; — вихід мультиплексора
)
begin
if ENA == 0 then — емуляція таблиці дійсності
case ADRIN[2..1] is
when 0 => Q = INFIN[1];
when 1 => Q = INFIN[2];
when 2 => Q = INFIN[3];
when 3 => Q = INFIN[4];
end case;
end if;
end;
— Примітка: компілятор AHDL не дозволяє присутності в
— таблиці дійсності змінних (параметрів), навіть якщо
— змінним (параметрам) раніше вже присвоєне фіксоване
— значення. Тому за логікою таблиці дійсності, наоснові
— оператору вибору CASE, формується послідовністьперевірки
— значень вхідних сигналів системи.
Програма для реалізації мультиплексора з 2 адреснимивходами, 4 інформаційними і входом дозволу роботи (опис на поведінковому рівнімультиплексора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS IIмає наступний вигляд:
subdesign multiplexer2
(
INFIN[4..1]: input; — інформаційні входи
ADRIN[2..1]: input; — адресні входи
ENA: input; — вхід дозволу роботи (вхід стробування)
Q: output; — вихід мультиплексора
)
begin
Q = INFIN[1] & !ADRIN[2] & !ADRIN[1] &!ENA #
INFIN[2] & !ADRIN[2] & ADRIN[1] & !ENA #
INFIN[3] & ADRIN[2] & !ADRIN[1] & !ENA #
INFIN[4] & ADRIN[2] & ADRIN[1] & !ENA;
end;
— Примітка: Q — функція алгебри логіки, що описуєроботу мультиплексора.
Програма для реалізації демультиплексора з 3 адреснимивходами, 1 інформаційним і входом дозволу роботи за допомогою мови AHDL вінтегрованому середовищі MAX+PLUS II має наступний вигляд:
subdesign demultiplexer1
(
ADRIN[3..1]: input; — адресний вхід
INFIN: input; — інформаційний вхід
ENA: input; — вхід дозволу роботи (вхід стробування)
Q[7..0]: output; — виходи демультиплексора
)
begin
if ENA == 0 then
case ADRIN[] is
when 0 => Q[0] = INFIN;
when 1 => Q[1] = INFIN;
when 2 => Q[2] = INFIN;
when 3 => Q[3] = INFIN;
when 4 => Q[4] = INFIN;
when 5 => Q[5] = INFIN;
when 6 => Q[6] = INFIN;
when 7 => Q[7] = INFIN;
end case;
end if;
end;
7.4.6 Результатипрограмної реалізації мультиплексорів, демультиплексорів, шифраторів,дешифраторів
На рис. 7.4.7 зображено вікно сигнального редакторупроекту “shifrator1”.
/>
Рис.7.4.7. Результати тестування шифратора 10 на 4
На рис. 7.4.8 зображено вікно сигнального редакторупроекту “decipherer1”.
/>
Рис. 7.4.8. Результати тестування повного 3-розрядногодешифратора з інверсними виходами
На рис. 7.4.9 зображено вікно сигнального редакторупроекту “multiplexer2”.
/>
Рис. 7.4.9. Результати тестування мультиплексора з 2адресними входами, 4 інформаційними і входом дозволу роботи
На рис. 7.4.10 зображено вікно сигнального редакторупроекту “demultiplexer1”.
/>
Рис. 7.4.10. Результати тестування демультиплексора з3 адресними входами,1 інформаційним і входом дозволу роботи
7.5 Теоретичнівідомості про суматори, віднімані
7.5.1 Суматори
Крайній лівий розряд двійкового числа, такого,наприклад, як 101011, називають самим старшим розрядом (ССР), а крайній правийрозряд – самим молодшим розрядом (СМР). Нагадаємо, що розряди представленогодвійкового числа в порядку зростання старшинства мають ваги (зправа налiво) 1,2, 4, 8, 16, 32.
Оскільки в двійкових числах присутні лише дві цифри (0і 1), таблиця додавання досить проста. Вона приведена на рис. 7.5.1. Як і ввипадку додавання десяткових чисел, три перших результати не викликають питань.Що стосується останньої задачі (1+1), то при складанні десяткових чисел вданому випадку відповіддю було б число 2. Таким чином, при двійковому додаванні1+1=0 плюс перенос 1 в сусідній старший двійковий розряд.
/>
Рис. 7.5.1. Таблиця двійкового додавання
Ще один приклад на складання двійкових чиселпредставлено на рис. 7.5.2, а.
а)
б) /> />Рис. 7.5.2. Двійкове додавання а) –приклад на двійкове додавання; б) — скорочена форма таблиці двійковогододавання
Рішення виглядає простим, доки ми не доходимо дорозряду двійок, де треба знайти двійкову суму. В десятковій системі ця сумадорівнює 3, що відповідає числу 11. Цей випадок не відображений на рис. 7.5.1.Сума 1+1+1 може виникнути в будь-якому розряді, за винятком розряду одиниць. Внову (скорочену) таблицю на рис. 7.5.2, б включена ще одна можлива комбінація1+1+1.
Ця таблиця справедлива для всіх розрядів двійковихчисел, за виключенням розряду одиниць.
У відповідній таблиці дійсності (табл. 7.5.1) надановсі можливі комбінації двійкових однорозрядних доданків А, В і сигналу переносуСin.
Табл.7.5.1. Таблиця дійсності повного суматора Входи Виходи
Сin В А S
С0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Перенос + В + А Сума Перенос
Повні суматори використовуються для складання всіхдвійкових розрядів за виключенням одиниць. Вони повинні мати додатковий вхідпереносу.
Повний суматор – 3-входова схема. Сигнали на йоговиходах S і С0отримуються внаслідокскладання трьох вхідних сигналів (на входах А, В і Сin).
На рис. 7.5.3 показана розгорнута логічна схемаповного суматора. Вона основана на структурній схемі з двома напівсуматорами.
/>Рис.7. 5.3. Логічна схема повногосуматораНа рис.7.5.4. приведена інша схема повного суматора з використанням двох логічнихелементів виключного АБО і трьох логічних елементів І-НЕ. Зазначимо, що схеми,приведені на рис. 7.5.3. і 7.5.4. відрізняються лише заміною логічних елементівІ та АБО на логічні елементи І-НЕ.
/>Рис.7.5.4. Логічна схема повного суматора з використанням виключного АБО та І-НЕ
Напівсуматори і суматоризазвичай використовують разом. Велика кількість схем, аналогічних донапівсуматорів і повних суматорів, є в складі мікропроцесорнихарифметично-логічних приладів (АЛП). Мікропроцесорні АЛП можуть виконувати іоперації віднімання, при цьому використовуються ті ж самі напівсуматори і суматори.
Певним чином поєднуючи між собою напівсуматори таповні суматори отримують пристрої, що одночасно виконують додавання декількохдвійкових розрядів. Пристрій, схема якого показана на рис. 7.5.5. виконуєоперацію додавання двох 3-розрядних чисел. Числа-доданки А2А1А0і В2В1В0. Сигнали, що відповідають значеннямрозряду одиниць в доданках, поступають на вхід суматора розряду одиниць(напівсуматора). Вхідними сигналами для повного суматора розряду двійок є сигналпереноса з виходу напівсуматора (подається на вхід Сin) і значення А1і В1 розряду двійок і доданків. Далі суматор четвірок складаєА2 і В2 і сигнал переносу з суматора двійок. Надвійковому виході пристрою (показано в правому нижньому куті рис. 7.5.5)встановлюється двійкова сума.
В результаті додавання двох 3-розрядних двійковихчисел можливо отримати 4-розрядне число, тому на індикаторі суми маємододатковий розряд вісімок. Зверніть увагу, що даний розряд пов’язаний з виходом(С0) суматора четвірок.
/>
Рис. 7.5.5. 3-розрядний паралельний суматор
Логіка роботи розглядуваного 3-розрядногосуматора майже не відрізняється від послідовності операцій, що виконуються придодаванні вручну (додаванні однорозрядних чисел плюс перенос в наступнийрозряд). Однак електронний суматор виконує дані операції набагато швидше.
Ще раз зазначимо, що в багаторозрядних суматорахнапівсуматори використовуються лише для додавання в розряді одиниць; у всіхiнших розрядах використовуються повні суматори. Описаний вище 3-розрядний суматорназивається паралельним суматором.
В паралельному суматорі інформаційні біти всіхрозрядів поступають на входи одночасно. Результат (сума) з’являється на виходіпрактично миттєво. Паралельний суматор на рис. 7.5.5 відноситься до класукомбінаційних логічних схем. Для фіксації даних на входах і виходах суматорівзазвичай використовують різноманітні додаткові регістри.
7.5.2 Віднімачі
Далі буде показано, що суматори і віднімачі подібніодин до одного, і, крім того напіввіднімачі та повні віднімачі використовуютьсяаналогічно напівсуматорам та повним суматорам. Таблиця двійкового відніманняприведена нижче, в ній наведено правила віднімання двійкових чисел, що поданіна рис. 7.5.6, у вигляді таблиці дійсності. Ми бачимо, що В віднімається з А (Аі В – вхідні сигнали), результат (різниця) появляється на виході D1.Якщо В більше за А (як в рядку 2 таблиці), потрібно позичити 1 в сусідньогостаршого розряду. Сигнал позики вказано у стовпці В0.
Табл. 7.5.2. Таблиця двійкового відніманняВходи Виходи А В
Di
B0 1 1 1 1 1 1 1 A-B Різниця Позика
/>
Рис.7.5.6. Таблиця двійкового віднімання
При відніманні багаторозрядних двійкових чиселтреба приймати до уваги позику “одиниць” в більш старших розрядах.
Таблиця дійсності, що містить всі можливі комбінації,які виникають при відніманні двійкових чисел, приведена нижче.
Табл. 7.5.3. Таблиця дійсності повного віднімача Входи Виходи A В
Bin
Di
B0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A – B – Bin Різниця Позика
Умовне позначення повного віднімача показано на рис.7.5.7, а. Ліворуч – входи А, В, Bin, праворуч – виходи Di,B0.По аналогії з повним суматором повний віднімач можливо зібрати здвох напіввіднімачів і логічного елемента АБО. На рис. 7.5.7, б показано якпотрібно поєднати напіввіднімачі і логічний елемент АБО, щоб отримати повнийвіднімач. Розгорнута логічна схема повного віднімача наведена на рис. 7.5.7, в.Ця схема працює у відповідності до таблиці дійсності 7.5.3. При необхідностілогічні елементи І та АБО можливо замінити на три логічних елемента І-НЕ. Вцьому випадку ми отримаємо схему повного віднімача, аналогічну до схеми повногосуматора.
в)
б)
а) />
Рис.7.5.7. Повний віднімач а) – умовне графічне позначення; б) – структурна схемадля випадку використання двох напіввіднімачів і логічного елемента АБО; в) –принципова схема
Поєднуючи між собою напіввіднімачі і повні віднімачі,отримують пристрої, що називають паралельними віднімачами. Аналогічним чином дорозглядуваного вище трьохрозрядного суматора збирається і паралельний віднімач.Суматор на рис. 7.5.5 називається паралельним, оскільки інформаційні біти всіхрозрядів в доданках поступають на даний суматор одночасно.
На рис. 7.5.8 подано структурну схема, отримана шляхомоб’єднання одного напіввіднімача і трьох повних віднімачей. Це схема4-розрядного паралельного віднімача, який виконує операцію віднімання одного двійковогочисла B3B2B1B0 з двійкового числа А3А2А1А0.Зверніть увагу, що верхній (на схемі) віднімач виконує віднімання в розрядіодиниць (СМР). Вихід B0цього віднімача пов’язаний з віднімачемрозряду двійок.
/>
Рис. 7.5.8. 4-розрядний паралельний віднімач
Взагалі вихід позики B0кожного віднімачапов’язаний з входом позики Bin віднімача сусіднього старшогорозряду. Ці лінії зв’язку “слідкують” за позиками в процесі віднімання двійковихчисел.
7.5.3 Програмиреалізації суматорів, віднімачів в інтегрованому середовищі MAX+PLUS II
Програма для реалізації 4-розрядного суматора задопомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
SUBDESIGN add_gate
(
A[4..1], B[4..1], cin:input;
C[4..1], cout: output;
)
VARIABLE
carry_out[5..1]: node;
BEGIN
carry_out[1] = cin;
FOR i IN 1 TO 4 GENERATE
C[i] = A[i] $ B[i] $carry_out[i];
carry_out[i + 1] = CARRY (A[i] & B[i] # carry_out[i] & ( A[i] # B[i] ));
END GENERATE;
cout = carry_out[5];
END;
Програма для реалізації 4-розрядного віднімача задопомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
SUBDESIGN add_sub
(
A[4..1], B[4..1]: input =GND;
Res[4..1], Cout: output;
)
VARIABLE
S[4..1]: node;
Cout_int: node;
BEGIN
(Cout_int, S[]) = (GND, A[])- (GND, B[]);
(Cout, Res[]) = (Cout_int,S[]);
END;
7.5.4 Результатипрограмної реалізації суматорів, віднімачів
На рис. 7.5.9 зображено вікно сигнального редакторупроекту “add_gate”.
/>
Рис. 7.5.9. Результати тестування 4-розрядногосуматора
На рис. 7.5.10 зображено вікно сигнального редакторупроекту “add_sub”.
/>
Рис. 7.5.10. Результати тестування 4-розрядноговіднімача
8. Проектреалізації COM-порту в САПР MAX+PLUS II
8.1 Теоретичнівідомості про послідовні порти і протокол RS-232
Послідовний інтерфейс для передачі даних в однусторону використовує одну сигнальну лінію, по якій інформаційні бітипередаються один за одним послідовно. Такий засіб передачі і визначає назвуінтерфейсу і порту, що його реалізує. Ці назви відповідають англійськимтермінам Serial Interface і Serial Port. Послідовна передача даних можевідбуватись як в асинхронному, так і у синхронному режимах.
При асинхронній передачі кожному біту передує старт-біт,що сигналізує приймачу про початок чергової посилки, за яким зазвичай слідують бітиданих і, можливо, біт паритету. Завершує посилку стоп-біт, що гарантуєвизначену затримку між сусідніми посилками (рис. 8.1).
/>
Рис. 8.1. Формат асинхронної передачі
Старт-біт наступногопосланого байту може посилатись в будь-який момент після закінчення стоп-біту,тобто між передачами можливі паузи нефіксованої довжини. Старт-біт, що маєзавжди строго визначене значення (лог. 0), забезпечує простий механізм синхронізаціїприймача. Приймач і передавач працюють на одній швидкості обміну, щовиміряється в кількості передаваємих бітів за секунду. Внутрішній генераторсинхронізації приймача використовує лічильник-дільник опорної частоти, щообнуляється в момент прийняття початку (переднього фронту) старт-біту. Цейлічильник генерує внутрішні строби, по яким приймач фіксує біти, які вінприймає. В ідеальному варіанті строби розташовуються в середині бітових інтервалів,що забезпечує можливість прийняття даних і при деяких неузгодженнях швидкостейприймача і передавача.
Неважко помітити, що при передачі 8 біт даних, одногоконтрольного і одного стоп-біта гранично допустиме неузгодження швидкостейприймача і передавача, при якому дані будуть розпізнані вірно, не можеперевищувати 5%. З врахуванням фазових змін (затягнутих фронтів сигналу) ідискретності роботи внутрішнього лічильника синхронізації реально допустиміменші відхилення частот. Чим менший коефіцієнт ділення внутрішньої частотивнутрішнього генератора (частота передачі), тем більше похибка прив’язкистробів до середині бітового інтервалу, і, відповідно, вимоги до узгодженнячастот найбільш строгі. Також, чим вище частота передачі, тим більше впливфакторів, що призводять до похибок.
Формат асинхронної посилки дозволяє виявляти можливіпомилки передачі:
1) якщо прийнятий перепад, що сигналізує про початокпосилки, а по стробу старт-біта зафіксований рівень логічного одиниці, тостарт-біт вважається помилковим і приймач знову переходить до стану очікування.Про дану помилку формату приймач може і не повідомляти;
2) якщо під час, відведений під стоп-біт(и), виявленорівень логічного нуля, фіксується помилка стоп-біта (також помилка формату);
3) якщо використовується контроль паритету, то післяпосилки бітів даних (перед стоп-бітом) посилається контрольний біт. Цей бітдоповнює кількість одиничних біт даних до парного або непарного в залежностівід прийнятої згоди. Прийняття біту з помилковим значенням контрольного бітупри включеному контролі паритету призводить до фіксації помилки прийнятихданих.
Контроль формату дозволяє знаходити обрив лінії: прицьому зазвичай приймається логічний нуль, який спочатку трактується якстарт-біт і нульові біти даних, але потім спрацьовує контроль стоп-біту.
Кількість біт даних може бути 5, 6, 7 або 8 (5- і6-бітні формати мало поширені). Кількість стоп біт може бути 1, 1.5 і 2(“півтора біта” означає лише довжину стопового інтервалу).
Асинхронний обмін в персональному комп’ютеріреалізується за допомогою протоколу RC-232.
Інтерфейс RC-232 призначений для підключенняапаратури, що приймає або передає дані (ООД – одно кінцевий об’єкт передачіданих або АДП – апаратура передачі даних), до одно кінцевої апаратури каналівданих. В ролі АДП може виступати комп’ютер, принтер, плоттер або іншіпериферійні пристрої. Цій апаратурі відповідає абревіатура DTE – Data TransferEquipment. В ролі АКД зазвичай виступає модем, цій апаратурі відповідаєабревіатура DCE – Data Communication Equipment. Кінцевою метою підключення єз’єднання двох пристроїв DTE, повна схема з’єднання приведена на рис. 8.2. Інтерфейсдозволяє виключити канал зв’язку разом з парою пристроїв DTE (модемів), поєднавпристрої безпосередньо за допомогою нуль-модемного кабелю (рис. 8.3).
/>
Рис. 8.2. Повна схема з’єднання заRC-232
/>
Рис. 8.3. З’єднання за RC-232 нуль-модемним кабелем
Стандарт описує керуючі сигнали інтерфейсу, пересилкуданих, електричний інтерфейс і типи сполучень. Стандарт описує асинхронний ісинхронний режими обміну, але COM-порти підтримують лише асинхронний режим.
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. Реалізація проекту СОМ-порту в графічномуредакторі
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 стр.