Технологія розробки систем на кристалі

Зміст Наступна

VHDL – FPGA

Технологія розробки систем на кристалі

Відповідно до відомого закону Мура, кількість транзисторів на кристалі ЗВІС з кожним роком збільшується приблизно на 60%. З певного моменту часу те обладнання, що розміщувалося на одній друкованій платі, стало можливим помістити на одному кристалі (рис.2). Причому це стає вигідним, завдяки зменшенню загальної вартості, числа необхідних мікросхем, енергоспоживання, підвищенню надійності. Таким чином, на одному кристалі розміщається не тільки конкретний функціональний пристрій, наприклад, центральний мікропроцесор, але й інші, такі як АЦП, ОЗП, ПЗП, блоки цифрової обробки сигналів, інтерфейсні вузли й т.п., що доповнюють його до закінченої системи блоків. Тому такий ОП прийнято називати System On the Chip (SOC) – системою на кристалі (СНК).

СНК це, як правило, замовлена ЗВІС. Щоб розробка СНК себе окупила, необхідно реалізувати десятки й сотні тисяч ЗВІС. Проект ОП, реалізований на ПЛІС, може бути вигідним при партіях у десятки й тисячі екземплярів, завдяки дешевині розробки й виробництва такого ОП. Розробка такого ОП триває як мінімум у 2 рази швидше, ніж проектування ЗВІС. Це зобумовило бурхливе поширення ПЛІС як елементної бази СНК.

Найбільш трудомісткими і відповідальними етапами розробки СНК виступають етапи структурного проектування та верифікації відповідності ОП заданим алгоритмам функціонування. Тому ефективність САПРів мікросхем і продуктивність розроблювачів, що виконують проектування на рівні регістрових передач, постійно зростає приблизно на 20% у рік. Але починаючи з середини 90-х років, продуктивність розроблювачів стала помітно відставати від росту складності СНК .

Першим напрямком поліпшення технології розробки СНК, спрямованим на зменшення зазору між ростом продуктивності проектування на рівні регістрових передач і ростом складності СНК, є застосування великих бібліотечних обчислювальних модулів (Intellectual Property Cores). Ці модулі повинні бути надійно повторюваними і настоюваними під розв’язувані завдання в ряді проектів СНК. Повторне застосування таких модулів (IP Core reuse), які можна назвати обчислювальними заготовками за їх функціональну й технологічну адаптованість, дозволяє зменшити трудовитрати і строки проектування СНК.

Другий напрямок – це розробка САПР сумістного проектування апаратно-програмного забезпечення (Hardware – Software Codesign). Архітектура СНК, як правило, містить у собі мікропроцесорне ядро з периферійними пристроями в різному сполученні. Зазвичай процес розробки ОП з такою архітектурою складається із трьох послідовних етапів: розробки матзабезпечення мікропроцесора, проектування електричної схеми апаратури і стикування матзабезпечення з апаратурою. Для прискорення проектування розробляють САПР, що не тільки забезпечує спільне виконання цих етапів, але й моделювання роботи СНК і її верифікацію в комплексі.

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

Обчислювальні заготовки

У великих фірмах, що довгі роки займаються розробкою ЗВІС, а тепер і СНК, напрацьовані великі бібліотеки стандартних модулів, як: ОЗП, АЛП, периферійні пристрої. У нових проектах СНК деякі блоки доводиться розробляти заново, а інші – беруться з бібліотеки. При цьому, якщо модуль неясно описаний, не має прийнятного інтерфейсу, документації, коментарів, іспитового стенда з надійними тестами, то він повторно застосовуватися не буде. Якщо такий модуль від початку оформлений у вигляді обчислювальної заготовки, то він буде без зайвих проблем вставлятися в будь-який новий проект. Більше того, ліцензію на нього можна пропонувати іншим фірмам – розроблювачам СНК. Рисунок ілюструє суть обчислювальної заготовки (IP core).

Обчислювальні заготовки розрізняються за ступенем гнучкості свого настроювання під умови споживача як:

  • гнучкі (описані мовою опису апаратури, такою як VHDL, на рівні регістрових передач),
  • жорсткі (логічна схема, EDIF – файл) і
  • тверді (маски під певну технологію).

Гнучкі заготовки зазвичай підстроюються до умов нового проекту в широких межах і незалежні від його технології (серія ПЛІС, технологія ЗВІС). Мінімізація апаратурних витрат обчислювальних заготовок забезпечує не тільки зменшення вартості СНК, але й зменшення його енергоспоживання, що є важливим чинником для портативних і енергонезалежних впроваджень.

Щоб проект ОП був прийнятий як гнучка обчислювальна заготовка, він повинен мати:

  • вичерпну і зрозумілу документацію;
  • текст опису на VHDL або Verilog у стилі для синтезу, заготовка має бути настроюваною під технічні умови споживача;
  • засоби верифікації у вигляді іспитових стендів, вичерпних тестів, можливо, дослідних макетів;
  • чітку методику того, як ОП вставляти в СНК, що включає надійні скрипти (програми на макромові САПР, що автоматизують тестування й створення жорсткої або твердої заготовки) [1].

У сьогоднішніх умовах, щоб швидше перейти від ідеї до “заліза”, ефективніше провести проектування нової СНК, необхідно цю СНК “зібрати” з наявних обчислювальних заготовок , а відсутні – придбати на ринку IP cores, що бурхливо розвивається в останні роки. Якщо придбати не вдасться або якщо проект – дослідницький, то необхідну заготовку можна пошукати, наприклад, у банку безкоштовних IP cores, що на сайті www.opencores.org. Цей банк створений з ініціативи організацій, які сприяють розвитку технології СНК, а також інженерів, котрі бажають поділитися своїми результатами. Якщо обидва ці шляхи не влаштовують, то доведеться ОП проектувати самостійно.

Анатолій Сергієнко
E-mail: aser@comsys.kpi.ua