ТОП 10:

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



 

Історія розвитку програмувальних логічних інтегральних схем (ПЛІС) або програмувальних логічних пристроїв (ПЛП - Programmable Logic Devices - PLD) починається з появи на початку 70-х років програмувальних постійних запам'ятовуючих пристроїв (ППЗП - Programmable Read Only Memory - PROM). Перший час програмувальні постійні запам’ятовуючі пристрої використовувалися винятково для збереження даних, пізніше їх стали застосовувати для реалізації логічних функцій. Однак, необхідність приведення логічних функцій до завершеної диз’юнктивної нормальної форми не дозволяло використовувати PROM для реалізації функцій великих розмірів.

Спеціально для реалізації систем булєвих функцій (СБФ) великого числа змінних були розроблені і з 1971 р. стали випускатися промисловістю програмувальні логічні матриці (ПЛМ - Programmable Logic Arrays - PLAs). PLA дуже широко розповсюджені в якості універсальної елементної бази цифрових пристроїв, тому саме PLA можна вважати першими PLD.

Удосконалювання архітектури PLA призвело до появи програмувальних матриць логіки (ПЛМ - Programmable Array Logics - PALs), що дотепер визначають найбільш популярну архітектуру PLD. Перші PAL були розроблені фірмою Monolithic Memories у 1976 році, а вироблятися вони почали з 1977 року фірмою Advanced Micro Devices (AMD). З моменту своєї появи PAL стали успішно конкурувати з PLA і в даний час завдяки ряду позитивних властивостей практично цілком замінили програмувальні користувачем PLA.

Подальше удосконалювання технології виробництва інтегральних схем на початку 90-х років призвело до можливості реалізації на одному кристалі декількох PAL, поєднуваних програмувальними з'єднаннями. Подібні архітектури одержали назва складних ПЛП (Сomplex PLD - CPLD), відповідно всі розроблені раніше PLD стали називати стандартними ПЛУ (Standart PLD - SPLD) або класичними ПЛУ (Classic PLD).

Паралельно з PLD також розвивалися архітектури вентильних матриць (Gate Array - GA) і матриць логічних осередків (Logic Cell Array - LCA), у російськомовній літературі вони отримали назву базових матричних кристалів (БМК). Перші вентильні матриці були напівзамовленими, тобто програмувалися під час виготовлення, що стримувало їх широке практичне використання. Однак у 1985 році фірма Xilinix випустила програмовану користувачем вентильну матрицю (Field Programmable Gate Array — FPGA). Це дало сильний поштовх до широкого поширення вентильних матриць і конкуренції їх з PLD. Хоча FPGA і не є предметом дослідження даної роботи, згадування про них необхідно для порівняльного аналізу архітектур CPLD і FPGA.

В даний час спостерігається бурхливий розвиток архітектур CPLD і FPGA, зниження їхньої вартості, підвищення швидкодії і функціональної потужності (табл. 1.1). Це дозволяє припустити, що в найближчі п'ять років основу елементної бази цифрових систем будуть складати CPLD і FPGA.

 

Табл. 1.1. Перспективність складних програмувальних логічних пристроїв (CPLD).

Параметри
Число вентилів, шт. 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
Швидкодія, нс 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), поєднаних програмувальною матрицею переключень (Switch Matrix - SM).

Багатьма фірмами випускаються різні структури CPLD. Наприклад, фірма AMD свої CPLD назвала КМОП-макроматриці високої щільності (Macro Array CMOS High-density - MACH). Фірма Altera випускає кілька видів CPLD: багаторазові матричні таблиці (Multiple Array Matrix - MAX) і FLASH-пристрої, названі за засобом перепрограмування елементів, що здатні до багаторазового налагоджування.

Подальший розвиток структура складних PLD одержала в мікросхемах фірми Altera, названих матрицями елементів гнучкої логіки (Flexible Logic 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/Output Blocks - 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+PLUS II

 


В систему автоматизованого проектування 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 Base Builder), логічний синтез, зволікання часових, функціональних параметрів (SNF Extractor), розбиття на частини (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 SNF Extractor для створення файлу розводки, що використовується при тестуванні часових параметрів;

5. у випадку успішної компіляції – тестування і часовий аналіз, для проведення якого необхідно виконати наступні дії:

5.1. для проведення часового аналізу відкрити вікно “Timing Analyzer”, вибрати режим аналізу і натиснути кнопку “Start”;

5.2. для проведення тестування треба спочатку створити файл каналу тестування (*.scf), використовуючи сигнальний редактор, або в файлі вектора тестування (*.vec), використовуючи текстовий редактор;

6. програмування або завантаження конфігурації синтезованого приладу відбувається шляхом запуску програматора (Programmer) с наступною вставкою пристрою в програмувальний адаптер програматора MPU (Master Programming Unit) або за допомогою підключення пристрою MasterBlaster, ByteBlaster або кабелю завантаження FLEX (FLEX Download Cable) до приладу, що програмується в системі;

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) файли формату Xilinix Netlist (*.xnf);

9) файли проекту Altera (*.adf);

10) файли цифрового автомату (*.smf).

Допоміжні файли – це файли, що пов’язані з проектом MAX+PLUS II, але вони не є частиною ієрархічного дерева проекту. Більшість таких файлів не містить опису логічних функцій проекту. Деякі з них створюються автоматично додатками системи MAX+PLUS II, інші – користувачем.

Проект складається зі всіх файлів ієрархічної структури дизайну, в тому числі допоміжних і вхідних файлів. Ім’ям проекту є ім’я файлу верхнього рівня без розширення. Система 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+PLUS II

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

Компілятор використовує різноманітні засоби збільшення ефективності проекту і мінімізації використання ресурсів пристрою. Якщо проект занадто великий, щоб бути реалізованим в одній програмувальній логічній інтегральній схемі – компілятор може автоматично розбити його на частини для реалізації в декількох пристроях того ж самого сімейства програмувальних логічних інтегральних схем, при цьому мінімізуються число з’єднань між пристроями. В файлі звітності (.rpt) буде відображено яким чином проект реалізуватиметься: в одному або декількох пристроях.

Компілятор може автоматично компілювати проект. Існують можливості задати обробку проекту у відповідності з точними вказівками розробника. Наприклад, можливо задати стиль логічного синтезу проекту та інші параметри логічного синтезу в рамках всього проекту. Крім того, зручно задавати часові вимоги в рамках всього проекту, точно вказати розбиття великого проекту на частини для реалізації в декількох пристроях і обрати варіанти параметрів пристроїв, що будуть використані для всього проекту в цілому. Користувач здатний обирати кількість виводів і логічних елементів, які залишатимуться не використаними під час плинної компіляції, щоб зарезервувати їх для наступних модифікацій проекту.

Компіляцію можна запустити з будь-якого додатку MAX+PLUS II з вікна компілятора. Компілятор автоматично обробляє всі вхідні файли плинного проекту.

Процес компіляції можна бачити у вікні компілятора (рис. 5.1) в наступному вигляді:

1) спустошується і перевертається пісковий годинник, що вказує на активність компілятора;

2) висвітлюються, за чергою, прямокутники модулів компілятора;

3) під прямокутником модуля компілятора з’являється піктограма вихідного файлу, що був генерований даним модулем;

4) відсоток завершення компіляції поступово збільшується (до 100%);

5) під час розбиття та монтажу кнопка компілятора Stop (Стоп) перетворюється в кнопку Stop/Show Status (Стоп/Показати стан), яку користувач може вибрати для відкриття діалогового вікна, в якому відображається плинний стан розбиття і монтажу проекту;

6) при виявленні в процесі компіляції будь-яких помилок або можливих проблем автоматично відкривається вікно обробника повідомлень, в якому відображається список повідомлень про помилку, що попереджують та інформаційних повідомлень, а також відразу дається довідка по виправленню помилки. Крім того, користувач може визначити джерела повідомлень в файлах проекту або в його порівневому плані призначень.

 

Рис. 5.1. Процес компіляції проекту

 

Компілятор системи автоматичного проектування MAX+PLUS II обробляє проект, використовуючи наступні модулі та утиліти:

1) екстрактор списку ланцюгів (Compiler Netlist Extractor), що включає програми для читання форматів EDIF, VHDL, Verilog, XNF;

2) будівник бази даних (Database Builder);

3) логічний синтезатор (Logic Synthesizer);

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 Netllist Extractor) перетворює кожний файл проекту в один або декілька двійкових файлів з розширенням .cnf (compiler netlist file). Оскільки компілятор підставляє значення всіх параметрів, що використовуються в параметризованих функціях, вміст cnf-файлу може змінюватись при послідовній компіляції, якщо значення параметрів змінюється. Даний модуль також створює і файл ієрархічних взаємозв’язків, з розширенням .hif (hierarchy interconnect file). В цьому файлі документуються ієрархічні зв’язки між файлами проекту, а також інформація, необхідна для показу ієрархічного дерева у вікні “Hierarchy Display”. Крім того, даний модуль створює файл бази даних вузлів з розширенням .ndb (node database), в якому містяться імена вузлів проекту для бази даних призначень ресурсів.

Модуль будівника бази даних (Database Builder) використовує файл ієрархічних зв’язків для компонування створених компілятором cnf-файлів, в яких міститься описання проекту. На основі даних про ієрархічну структуру проекту даний модуль копіює кожний cnf-файл в одну базу даних без ієрархічної структури. Таким чином, ця база даних зберігає електричні зв’язки проекту.

При створенні бази даних модуль досліджує логічну повноту та узгодженість проекту, а також перевіряє прикордонні зв’язки і наявність синтаксичних помилок. На цій стадії компіляції виявляється більшість помилок, які можуть бути тут же легко виправлені. Кожний модуль компілятора послідовно обробляє і поновлює цю базу даних.

Перший раз, коли компілятор обробляє проект, всі файли проекту компілюються. Користувач має можливість обрати “швидку повторну компіляцію” (smart recompile) для створення розширеної бази даних проекту, що дозволяє прискорити наступні компіляції. Використовуючи можливість повної повторної компіляції (total recompile), є можливість зробити вибір між повторною компіляцією лише тих файлів, які редагувались після останньої компіляції, і повною повторною компіляцією.

Модуль логічного синтезу (Logic Synthesizer) використовує ряд алгоритмів, що зменшує використання ресурсів і прибирають дубльовану логіку, забезпечуючи тим самим ефективне використання структури логічного елемента для архітектури цілої родини пристроїв. Крім того логічний синтезатор шукає логіку для не поєднаних вузлів. Якщо він знаходить такий вузол, він прибирає примітиви, що відносяться до такого вузла.

Якщо проект не вміщується при монтажі в одному пристрої, модуль роздільника (Partitioner) розділяє базу даних на декілька ПЛІС однією і тіє ж самої родини, намагаючись при цьому розділити проект на мінімальну кількість пристроїв.

Використовуючи базу даних, поновлену модулем розбиття, модуль трасування (Fitter) приводить у відповідність вимоги проекту з відомими ресурсами одного або декількох пристроїв. Він призначає кожній логічний функції положення логічного елемента, що її реалізує та обирає відповідні шляхи взаємозв’язків і призначень виводів.

Екстрактор для функціонального тестування (Functional SNF Extractor) створює файл для функціонального тестування з розширенням .snf. Компілятор генерує цей файл перед синтезом проекту, він містить всі вузли, що присутні в початкових файлах проекту.

Екстрактор для тестування часових параметрів (Timing SNF Extractor) створює, якщо компіляція проекту пройшла без помилок, файл для тестування часових параметрів, що містить дані про часові параметри проекту. Розширення файлу також - .snf.







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.027 с.)