Синтез логіки
В електроніці, синтез логіки — процес за допомогою якого абстрактний опис бажаної поведінки електронної схеми, як правило на рівні передачі регістрів (англ. Register-transfer level, RTL), перетворюється на конструкторську реалізацію в термінах логічних вентилів, як правило за допомогою комп'ютерної програми, що відноситься до класу засобів синтезування (англ. synthesis tool). Типовим прикладом цієї процедури є синтез проєктів, описаних мовами опису апаратури (англ. hardware description language), до яких відносяться VHDL та Verilog.[1] Деякі засоби синтезування генерують бітові потоки для ПЛІС компонентів таких як PAL або FPGA, в той час як інші мають на меті створювати ASIC компоненти. Синтез логіки є одним із аспектів автоматизації проєктування електронних систем.
Історія розвитку синтезу логіки
Початком синтезу логіки можна вважати коли Джордж Буль (1815-1864) започаткував своє трактування логіки, яке зараз має назву Булева алгебра. В 1938 Клод Шеннон показав, що Булева алгебра для двох значень (двійкова) може описати операцію перемикання електричних кіл. На початку, проєктування логіки передбачало використання таблиць істинності і операцій над ними представлених у вигляді карт Карно. Мінімізація логіки на основі карт Карно здійснювалася відповідно до певного набору правил, які дозволяли об'єднати елементи мапи між собою. Людина, що проєктує таку логіку, як правило може працювати з картами Карно, які містять лише до чотирьох-шести змінних.
Першим кроком до автоматизації процедури мінімізації логіки стала поява алгоритму Куайна — Мак-Класкі, який можна було реалізувати на комп'ютері. Ці точні методи мінімізації започаткували поняття простих імплікантів і мінімальної вартості покриття, що стали основою дворівневої мінімізації. Згодом, стандартним інструментом для здійснення цієї процедури став більш ефективний евристичний мінімізатор логіки Еспрессо.
Інший напрямок ранніх досліджень полягав у мінімізації станів і кодуванні скінченних автоматів. Ця задача була досить складною для проєктувальників. Програмні застосунки для синтезу логіки спрямовані в основному на проєктування цифрових комп'ютерів. Тому, компанії IBM і Bell Labs відігравали ключову роль у ранній автоматизації синтезу логіки. Еволюція від компонентів дискретної логіки до програмованих логічних матриць(англ. programmable logic array, PLA) прискорила необхідність у створенні ефективної дворівневої мінімізації, оскільки мінімізування термів у дворівневій репрезентації дозволяло зменшити площу PLA.
Однак, дворівневі логічні схеми є не настільки важливими у проєктуванні схем із дуже великим рівнем інтеграції (англ. very-large-scale integration, VLSI); де більшість схем використовують декілька рівнів логіки. Власне кажучи, майже будь-яка схема представлена у RTL або описом поведінкової логіки є багаторівневим поданням. Першою системою, яка використовувалася для проєктування багаторівневих схем, була система LSS від IBM. Вона використовувала для спрощення логіки локальні перетворення. Робота на LSS і Силіконовому компіляторі Yorktown стимулювала швидкий прогрес у дослідженнях синтезу логіки в 1980-их роках. Декілька університетів здійснили внесок зробивши свої дослідження доступними для широкого загалу, серед яких були SIS від Каліфорнійського університету в Берклі, RASP від Каліфорнійського університету в Лос-Анджелесі та BOLD від Колорадського університету в Боулдері. За десятиліття, технологія розвинулася у комерційні продукти синтезу логіки, що пропонують компанії з автоматизації проєктування електронних систем.
Елементи логіки
Проєктування логіки це крок циклу стандартного проєктування в рамках якого функціональний дизайн електронної схеми перетворюється на представлення, яке включає логічні операції, арифметичні операції, порядок виконання, та ін. Як правилом на виході цього кроку формується RTL описання. За проєктуванням логіки як правило слідує крок схемотехнічного проєктування. В сучасних засобах автоматизації проєктування електронних систем логічне проєктування можливо автоматизувати використавши засоби високорівневого синтезу на основі опису поведінки схеми.[2]
До логічних операцій як правило відносять булеві операції AND, OR, XOR та NAND, що є самими базовими формами операцій в електричних схемах. Арифметичні операції як правило виконують з використанням логічних операторів. Такі кола логіки як двійковий помножувач або двійковий суматор є прикладами більш складних двійкових операцій, які можна реалізувати із використанням базових логічних операторів.
Комерційні інструменти для синтезу логіки
Програмні засоби для синтезу логіки спрямовані на ASIC системи
- Design Compiler компанії Synopsys
- Genus Synthesis Solution компанії Cadence Design Systems
- Encounter RTL Compiler, компанії Cadence Design Systems, послідовник Genus Synthesis Solution
- BuildGates, більш ранній продукт компанії Cadence Design Systems, названа на честь Білла Гейтса
- HDL Designer компанії Mentor Graphics
- TalusDesign компанії Magma Design Automation
- RealTime Designer компанії Oasys Design Systems
- BooleDozer: Інструмент синтезу логіки компанії IBM (засіб внутрішнього використання IBM EDA)
Програмні засоби для синтезу логіки спрямовані на FPGA
- XST (поставляється разом з ISE) компанії Xilinx
- Vivado компанії Xilinx
- Quartus II інтегрований синтез компанії Altera
- IspLever компанії Lattice Semiconductor
- Encounter RTL Compiler компанії Cadence Design Systems
- LeonardoSpectrum and Precision (RTL / Physical) компанії Mentor Graphics
- Synplify (PRO / Premier) компанії Synopsys
- BlastFPGA компанії Magma Design Automation
Онлайн засоби
- EDA Playground компанії Doulos (використовує процедури синтезу Yosys та Verilog-to-Routing)
- BoolEngine
- hana (HDL Analyzer and Netlist Architect)
Див. також
Примітки
- Synthesis:Verilog to Gates.
- Naveed A. Sherwani (1999). Algorithms for VLSI physical design automation (вид. 3rd). Kluwer Academic Publishers. с. 4. ISBN 978-0-7923-8393-2.
Джерела
- Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer, ISBN 0-8493-3096-3 A survey of the field of Electronic design automation. The above summary was derived, with permission, from Volume 2, Chapter 2, Logic Synthesis by Sunil Khatri and Narendra Shenoy.
- A Consistent Approach in Logic Synthesis for FPGA Architectures, by Burgun Luc, Greiner Alain, and Prado Lopes Eudes, Proceedings of the international Conference on Asic (ASICON), Pekin, October 1994, pp. 104–107.
Література
- Jie-Hong (Roland) Jiang, Srinivas Devadas (2009). Logic synthesis in a nutshell. У Laung-Terng Wang; Yao-Wen Chang; Kwang-Ting Cheng. Electronic design automation: synthesis, verification, and test. Morgan Kaufmann. ISBN 978-0-12-374364-0. chapter 6.
- Gary D. ....Hachtel; Fabio Somenzi (1996). Logic synthesis and verification algorithms. Springer. ISBN 0-7923-9746-0. Також опубліковано у м'якій обкладинці ISBN 0-387-31004-5 у 2006
- Soha Hassoun; Tsutomu Sasao, ред. (2002). Logic synthesis and verification. Kluwer. ISBN 978-0-7923-7606-4.