Однотактна синхронізація проти двотактної

Зміст

Вивчення VHDL

Однотактна синхронізація проти двотактної

У вересні 1979 р. у лабораторії спец-ЕОМ кафедри обчислювальної техніки КПІ під керівництвом Ю.С.Канєвського приступили до системного налагодження найшвидкісного в країні дослідного зразка процесора ШПФ, зібраного з 2000 мікросхем серії К155. Налагодження йшло, в цілому, успішно. Але процесор вперто відмовлявся працювати стабільно. Як не міняли конструкцію системи синхронізації, як не варіювали період і скважність синхросерії, – дані раз по раз, та проскакували зайвий рівень регістрів.
Було прийнято кардинальне рішення – замінити всі асинхронні регістри ТМ5 на синхронні ИР1. Тобто замінити двотактну синхронізацію на однотактну.

Друге рішення – ніколи більше в лабораторії Ю.С.Канєвського не застосовувати двотактну синхронізацію…
А налагоджений і випробуваний процесор ще кілька років надійно працював десь на Далекому Сході.

Проектування мікросхем і, зокрема , систем на кристалі (СНК) характеризується тим, що помилка в проекті обходиться занадто дорого, а її локалізація в мікросхемі і з’ясування її причин дуже утруднені. Тому основним правилом проектування є те, що поводження ОП в кристалі повинне бути передбачуваним.

В обчислювальній техніці використовуються, в основному, два принципи синхронізації обчислювальних пристроїв (ОП): двотактної і однотактної синхронізації. Ці принципи забезпечують різний рівень передбачуваності поводження ОП і їх необхідно розглянути детальніше.

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

При двотактній синхронізації сусідні рівні регістрів і тригерів синхронізуються різними синхросигналами (рис. 1).

Рис1. Схема з двотактною синхронізацією і часові діаграми сигналів у ній.

Завдяки двотактній синхронізації, тригери можуть бути виконані за найпростішою електричною схемою, тобто як асинхронні, приймаючі дані за рівнем синхросерії.
Для правильної роботи ОП прийом даних у сусідніх рівнях тригерів повинен виконуватися в різних активних фазах синхросигналів CLK1 і CLK2. При перекритті цих фаз (приклад перекриття виділений кольором на рис. 1) можлива ситуація неправильного прийому даного і навіть проходження даного через кілька рівнів тригерів без запам’ятовування. Тому фази синхросерій виконують із захисним часовим проміжком між ними.

Затримки в лініях з’єднань мікросхем можуть перевершувати затримки в логічних схемах і тригерах. Ці затримки важко виконати нормованими в заданих межах, а при реалізації в ПЛІС – це майже неможливо. Тому принцип двотактної синхронізації застосовується тільки тоді, коли захисний проміжок між фазами досить великий. А це приводить до істотного зменшення швидкодії ОП в порівнянні з максимально можливим.

Якщо у ОП застосовуються RS – тригери і інші асинхронні тригери, наприклад, защіпка, то такий ОП необхідно віднести до схеми із двотактною синхронізацією. Навіть якщо в такій схемі використовується один синхросигнал, то другий синхросигнал є присутнім неявно. Наприклад, його можуть одержувати інвертуванням першого синхросигнала.

При розробці проектів для ПЛІС двотактна синхронізація практично ніколи не застосовується, тому що важко одержати проект із гарантованою працездатністю.
Але, наприклад, у блоці розподіленої пам’яті, виконаному на LUT, така синхронізація використана: по фронту синхросигнала записуються адреса і дане в защіпки, а по його спаду – дане переписується в тригер – защіпку пам’яті. Причому LUT розроблявся з таким розрахунком, щоб його поводження було передбачуваним при будь-якому прошиванні ПЛІС, і щоб користувач сприймав цю пам’ять як синхронну. До речі, у перших ПЛІС ця пам’ять була асинхронною і необхідно було вводити додаткові часові обмеження на сигнали, щоб вона працювала коректно.

В деяких ОП використовується асинхронний спосіб обчислень на логічному рівні, завдяки чому знижується енергоспоживання до мінімуму. Але розробка таких ОП не підтримується стандартними САПР і тим більше – САПР для ПЛІС.
Двотактна синхронізація відноситься до асинхронного керування. Іншим випадком такого керування є асинхронна початкова установка або встановлення в 0 тригерів ОП. Якщо сигнал встановлення в 0 не погоджений за часом із синхросигналом або якщо в схемі використовуються кілька сигналів встановлення в 0, то вона може функціонувати некоректно.
Наприклад, після асинхронного встановлення в 0, стан керуючого автомата, яке слідує за початковим, може бути випадковим, якщо затримка між сигналом встановлення в 0 і фронтом синхросерії занадто мала. Для запобігання цього в ПЛІС організована шина глобального встановлення в 0, що підводить сигнал встановлення в 0 до всіх тригерів майже одночасно.

Рис2. Схема з однотактною синхронізацією і часові діаграми сигналів у ній.

При однотактній синхронізації всі тригери ОП виконані як синхронні і тактуются фронтом одного синхросигнала (рис. 2). При цьому умовою правильності функціонування ОП є нерівність критичної затримки:

max( TT і + TD і , j + TП j ± Δ TC і , j ) < TC,     (1)

де TT і – затримка від фронту синхросигнала до виходу і- го тригера, TD і , j – затримка сигналу в логічних схемах і лініях зв’язку між і -м та j – м тригером, TП j – час предустановки сигналу на вході j- го тригера відносно фронту синхросигнала, Δ TC і , j – відносна затримка між синхросигналами, що приходять на ці тригери, яка називається перекосом фази (clock skew), TC – заданий період синхросигнала, за умови, що час утримання сигналу на вході тригера ТУ задовольняє заданим обмеженням.

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

max( TT і + TD і , j + TП j ) < TC       (2)

Часовий аналіз проектів мікросхем.

Передбачення правильності поведінки ОП з однотактною синхронізацією у всіх САПР мікросхем засновано, насамперед , на аналізі часових затримок схеми ОП, який виконує програма часового аналізу. Ця програма по відомим затримкам між всіма елементами проекту ОП, включаючи затримки в провідниках, виконує перевірку умови (2). Також обчислюються затримки від вхідних виводів мікросхеми до входів тригерів і від виходів тригерів до вихідних виводів мікросхем.

Затримки визначаються як маршрути між вершинами графа схеми ОП, дуги якого навантажені відповідними затримками вентилів або провідників. У багатьох ОП використовуються складні логічні схеми, які можна представити багатовершинними дводольними графами з великою кількістю ребер. У цьому випадку кількість маршрутів, по яких визначаються затримки, представлених ребрами у дводольному графі, може досягати багатьох мільйонів. Через перебір всіх маршрутів часовий аналіз ОП може тривати досить довго.

Якщо в ОП існує перекiс фаз, то часовий аналіз ускладнюється, тому що він виконується по більш складній формулі (1). В багатьох САПР автоматичний облік перекосу фаз не виконується або проводиться тільки для окремо обраних маршрутів. Якщо ОП складається з декількох зв’язаних між собою модулів, у межах яких діють різні синхросерії, то додатково перевіряється умова (1), у якій Δ TC і , j – відносна затримка між фронтами двох синхросерій, а затримки визначаються за маршрутами сигналів між парами блоків.

Часто, операнд записується в тригер і й зберігається в ньому кілька тактів, протягом яких сигнал операнду поширюється через логічну схему до тригера j, у який операнд записується також через кілька тактів. Вочевидь, що такий маршрут бажано видалити з часового аналізу або аналізувати окремо, тому що через нього практично ніколи не проходить критична затримка. Такі маршрути виділяють у множину багатотактових маршрутів (multіcycle paths), які називаються також помилковими маршрутами (false paths).

В результаті часового аналізу підтверджується, що схема ОП працює з однотактною синхронізацією, що в ній відсутні критичні перекоси фаз, а також фіксуються критичний шлях і його затримка, які характеризують швидкодію ОП.
Ця швидкодія зазвичай виражається величиною мінімального тактового періоду TC mіn, що визначається лівою частиною формули (1) або максимальною тактовою частотою.

fmax = 1 / TC mіn.

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

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

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

Виходячи з вищевикладених особливостей проектування мікросхем, розробники фірм – виробників мікросхем пропонують наступні рекомендації :

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

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