Изучение VHDL

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


В сентябре 1979 г. в лаборатории спец-ЭВМ кафедры вычислительной техники КПИ под руководством Ю.С.Каневского приступили к системной отладке самого скоростного в стране опытного образца процессора БПФ, собранного из 2000 микросхем серии К155. Отладка шла, в целом, успешно. Но процессор упорно отказывался работать стабильно. Как ни меняли конструкцию системы синхронизации, как не варьировали период и скважность синхросерии - данные нет-нет, да проскакивали лишний уровень регистров. Было принято кардинальное решение - заменить все асинхронные регистры ТМ5 на  синхронные ИР1. Т.е. заменить двухтактную синхронизацию на однотактную. Второе решение - никогда больше в лаборатории Ю.С.Каневского не применять двухтактную синхронизацию… А отлаженный и испытанный процессор еще несколько лет надежно работал где-то на Дальнем Востоке.

Проектирование микросхем и в частности, систем на кристалле (СНК) характеризуется тем, что ошибка в проекте обходится слишком дорого, а ее локализация в микро­схеме и выяснение ее причин очень затруднительны. Поэтому основным правилом проектирования является то, что поведение ВУ в кристалле должно быть предсказуемым.

В вычислительной технике используются, в основном, два принципа син­хро­низации вычислительных устройств (ВУ): двухтактной и однотактной синхронизации. Эти принципы обеспечивают различный уровень предсказуемости поведения ВУ и их необ­ходимо рассмотреть подробнее.

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




Благодаря двухтакт­ной синхронизации, триг­геры могут быть вы­полнены по простей­шей электрической схе­ме, т.е.
как асинхрон­ные, прини­мающие дан­ные по уров­ню син­хро­серии. Для пра­виль­ ной работы ВУ прием данных в сосед­них уров­нях триггеров дол­жен выполняться в раз­ных активных фазах синхросигналов CLK1 и CLK2. При перекрытии этих фаз (пример пере­крытия выделен цве­том на рис. 1) возмож­на ситуация непра­виль­ного прие­ма дан­но­го и даже прохож­дения данного через несколько уровней триг­ге­ров без запоминания. Поэтому фазы синхросерий выполняют с защитным времен­ным промежут­ком между ними.

Задержки в линиях соединений могут превосходить задержки в логичес­ких схемах и триггерах. Эти задержки трудно выполнить нормированными в заданных пределах, а при реализации в ПЛИС – это почти невозможно. Поэтому принцип двухтактной синхронизации применяется только тогда, когда защитный промежуток между фазами достаточно велик. А это приводит к существенному уменьшению быстродействия ВУ по сравнению с максимально возможным.

Если в ВУ применяются RS – триггеры и другие асинхронные триггеры, например, защелки, то такое ВУ необходимо отнести к схеме с двухтактной синхронизацией. Даже если в такой схеме используется один синхросигнал, то второй синхросигнал присутствует неявно. Например, его могут получать инвертированием первого синхросигнала.

При разработке проектов для ПЛИС двухтактная синхронизация практи­чески никогда не применяется, так как трудно получить проект с гарантиро­ванной работо­способностью. Но, например, в блоке распределенной памя­ти, выполнен­ном на LUT, такая синхронизация использована: по фронту синхро­сигнала записываются адрес и данное в защелки, а по его спаду – данное переписывается в триггер – защелку памяти. Но LUT разрабатывался с таким расчетом, чтоб его поведение было пред­ска­зу­емым при любой про­шивке ПЛИС, и чтобы пользователь воспринимал эту память как синхронную. Кстати, в первых ПЛИС эта память была асинхронной и необходимо было вводить дополнительные временные ограничения на сигналы, чтобы она работала корректно.



В некоторых ВУ используется асинхронный способ вычислений на логи­ческом уровне, благодаря чему понижается энергопотребление до мини­мума. Но разработка таких ВУ не поддерживается стандартными САПР и тем более - САПР для ПЛИС.


Двухтактная синхронизация относится к асинхронному управлению. Другим случаем такого управления является асинхронная начальная уста­новка или сброс триггеров ВУ. Если сигнал сброса не согласован по вре­мени с синхросигналом или если в схеме используются несколько сигналов сброса, то она может функциони­ровать некорректно. Например, после сбро­са, состояние управляющего автомата, следующее за начальным, может быть случайным, если за­держка между сигналом сброса и фронтом синхро­серии слишком мала. Для избежания этого в ПЛИС ор­ганизована ши­на гло­баль­ного сброса, под­во­дящая сигнал сбро­са-ус­та­новки ко всем тригге­рам поч­ти одно­вре­менно.

При однотактной син­хро­низации все триггеры ВУ выпол­нены как син­хрон­ные и тактиру­ются фрон­том од­ного син­хро­сигнала (рис. 2). При этом усло­вием пра­виль­ности функци­о­ни­ро­ва­ния ВУ яв­ля­ется неравен­ство кри­ти­ческой задержки:

max(TTi+TDi,j + TПj ± ?TCi,j) < TC,                                          (1)

i,j

где TTi – задержка от фронта синхросигнала до выхода i-го триггера, TDi,j – задержка сигнала в логических схемах и линиях связи между i –м и j – м триггером, TПj – время предустановки сигнала на входе j-го триггера относи­тельно фронта синхросигнала, ?TCi,j - относительная задержка между син­хро­сигналами, приходящими на эти триггеры, называемая перекосом фазы (clock skew), TC – заданный период синхросигнала, при условии, что время удержания сигнала на входе триггера ТУ  удовлетворяет заданным ограниче­ниям.

В современных микросхемах сеть передачи синхросигнала от источника до всех триггеров выполняется с особой тщательностью и она обеспечивает минимальный перекос фаз, находящийся в пределах допусти­мого. Благодаря этому, формула (1) упрощается до следующей формулы:

max(TTi+TDi,j + TПj ) < TC .                                              (2)

i,j

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

Предсказание правильности поведения ВУ с однотактной синхрониза­ци­ей во всех САПР микросхем основано, прежде всего, на времен­ном анализе задержек схемы ВУ, который выполняет программа временного анализа. Эта программа по известным задержкам между всеми элементами проекта ВУ, включая задержки в проводниках, выполняет проверку условия (2). Также вычисляются задержки от входных выводов микросхемы до входов тригге­ров и от выходов триггеров до выходных выводов микросхем.

Задержки определяются как маршруты между вершинами графа схемы ВУ, дуги которого нагружены соответствующими задержками вентилей или проводников. Во многих ВУ используются сложные логические схемы, кото­рые можно представить многовершинными двудольными графами с боль­шим числом ребер. В этом случае количество маршрутов, по которым опре­де­ляются задержки, представленных ребрами в двудольном графе, может достигать многих миллионов. Из-за перебора всех маршрутов вре­менной анализ ВУ может длиться довольно долго.

Если в ВУ существует перекос фаз, то временной анализ усложняется, так как он выполняется по более сложной формуле (1). Во многих САПР автоматический учет перекоса фаз не выполняется или проводится только для отдельно выбранных маршрутов. Если ВУ состоит из нескольких связан­ных между собой модулей, в пределах которых действуют разные синхросе­рии, то дополнительно проверяется условие (1), в котором ?TCi,j - относи­тельная задержка между фронтами двух синхро­серий, а задержки опреде­ля­ются по маршрутам сигналов между парами блоков.

Часто, операнд за­пи­­сыва­ется в триггер i и хранится в нем несколько так­тов, в течение кото­рых сигнал операнда распространяется через логическую схему до триггера j, в который операнд записывается также через несколько тактов. Очевидно, что такой маршрут желатель­но удалить из временного ана­ли­за или анализи­ровать отдельно, так как через него практически никог­да не проходит крити­ческая задержка. Такие маршруты выделяют в виде множества много­так­товых маршрутов (multicycle paths), называемых также ложными маршрута­ми (false paths).

В результате временного анализа подтверждается, что схема ВУ работа­ет с однотактной синхронизацией, что в ней отсутствуют кри­тические пе­реко­сы фаз, а также фиксируются критический путь и его задерж­ка, которые ха­рак­­теризуют быстродействие ВУ. Это быстродействие обычно вы­ража­ется ве­личи­ной минимального тактового периода TCmin, определяе­мо­го ле­вой час­тью формулы (1) или максимальной тактовой частотой fmax = 1/TCmin.

Стадия размещения вентилей логической схемы по площади кристалла и трассировки межсоединений является ответственным этапом проектирова­ния микросхемы и прошивки ПЛИС, так как от нее зависят все основные характеристики СНК. В то же время, это одна из самых трудоемких стадий. Она сводится к серии последовательных приближений к эффективному ва­рианту размещения в плоскости микросхемы графа соединения вентилей (рис. 27).

Одним из критериев оптимизации размещения и трассировки явля­ется мини­мум задержки критического пути. На основе временного анализа выпол­ня­ется автоматическая оптимизация быстродей­ствия схемы ВУ путем сокра­щения длины найденных критических путей. Поэтому для ускорения и улуч­шения оптимизации желательно мини­мизи­ровать количество проверяемых маршрутов, например, отмечая много­цикло­вые маршруты и выделяя крити­ческие маршруты, требующие опти­мизации.

Конвейеризация вычислений, которая сводится к "расщеплению" слож­ных логических схем промежуточными конвейерными регистрами, сущест­венно (от десятков до тысяч раз) сокращает число проверяемых маршрутов. Поэтому в конвейерных ВУ достигается прирост производительности не толь­ко благодаря укорачиванию маршрутов, но и за счет улучшения работы программы, оптимизирующей проект ВУ.

Исходя из вышеизложенных особенностей проектирования микросхем, разработчики фирм – производителей микросхем предлагают следующие рекомендации :

Þ       Применять только однотактную синхронизацию и желательно, только один синхросигнал.

Þ       Если в ВУ используется несколько синхросигналов, в том числе один сигнал, но со срабатыванием по фронту и спаду, то минимизировать их число, а их распространение ограничить отдельными модулями – по одному синхросигналу на модуль; синхросигналы генерировать в одном, предназна­ченном для этого модуле.

Þ       Не допускать существенных перекосов фаз.

Þ       Минимизировать количество проверяемых маршрутов, в частности, вы­де­лением множества многоцикловых маршрутов и конвейеризацией ВУ.

Þ       Отделять быстродействующие блоки от медленных блоков и оптими­зи­ровать их раздельно.

Þ       Обеспечить запоминание в регистрах модулей ВУ выходных сигналов, а еще лучше – и входных сигналов. Благодаря этому, не только ускоряется временной анализ, повышается максимальная тактовая частота, но и упро­щается стыковка модулей между собой, упрощаются условия повторного использования модулей (вычислительных заготовок).

Þ       Реализовать преимущественно синхронные начальные установку или сброс триггеров, особенно в схемах управления.

Þ       При реализации в ПЛИС желательно все триггеры выполнить с асин­хронным сбросом или установкой по одному сигналу.





Анатолий Сергиенко
< a href = "mailto:%20kvantn@ukrpack.net"> E-mail: aser@comsys.ntu-kpi.kiev.ua

Содержание раздела