|
Проектирование асинхронных стейт-машин, Кто и как, каими тулзами решает эту задачу |
|
|
|
Sep 3 2014, 17:21
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Доброго времени суток,
Собственно - $subj. Изучаю вопрос проектирования чипа с использованием асинхронных пайплайнов. I.E. Sutherland, ‘‘Micropipelines’’ неплохо описывает концепцию и дает понимание о том, как работают вычислители при таком подходе, однако как делать управляющие стейт-машины в этой работе не рассматривается. Подход, предложенный в ASYNCHRONOUS FINITE STATE MACHINE DESIGN: A LOST ART? Christopher Carroll, University of Minnesota-Duluth мне не понравился. Другие книги, которые я просмотрел по теме, учат вариациям на тему той-же методологии, однако кардинально ничего не улучшают. В результате асинхронные стейт-машины представляют собой диких паучков из нандов и норов с обратными связями, крайне тяжело модифицируются, плохо верифицируются, короче - обладают целым рядом недостатков, делающих их реальное применение неоправданно дорогим и сложным.
Есть ли у кого мысли как упростить этот процесс и сделать его более простым и контролируемым?
--------------------
WBR, V. Mirgorodsky
|
|
|
|
|
Sep 8 2014, 04:40
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(v_mirgorodsky @ Sep 5 2014, 12:51)  Асинхронные схемы обладают просто громадными преимуществами по сравнению с синхронными схемами... Уточните, если не трудно, это на нескольких примерах. Если книга уже найдена, то прикрепите ее в приложении, она будет интересна многим.
|
|
|
|
|
Sep 8 2014, 07:51
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(des00 @ Sep 8 2014, 09:39)  если нужны выложу Выкладывайте все с небольшой аннотацией или своим мнением. Интересует, в частности, адаптация этих методов к ПЛИС.
|
|
|
|
|
Sep 8 2014, 09:02
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Цитата(Serhiy_UA @ Sep 8 2014, 06:40)  Уточните, если не трудно, это на нескольких примерах.
Если книга уже найдена, то прикрепите ее в приложении, она будет интересна многим. Асинхронные схемы натурально потребляют меньше энергии, поскольку если на блок не приходит вычислительное задание, то он не переключается. Если используется completion detector, то асинхронная схема оказывается значительно быстрее синхронного аналога. Спайс говорит, что мой пайплайн из 4 последовательных MAC юнитов работает на частоте порядка 3.5GHz на 55nm. Если же подходить к вопросу с синхронными мерками, то пришлось бы посчитать частоту по worst case delay, что ограничило бы рабочую частоту на уровне 2.7GHz. Если использовать dual-rail data encoding, то в системе полностью отсутствует паразитный свитчинг. В качестве эксперимента я оценивал потребляемую мощность 32 рязрядного сумматора с префиксным деревом деревом Когга-Стоуна в dual-rail и single-rail реализации. Так вот потребляемая мощность dual-rail реализации была в 2 раза ниже, чем потребляемая мощность single-rail реализации. Правда, в начале она занимала в 2 раза больше места, но эту проблему удалось "полечить" переходом на домино реализацию  Асинхронные пайплайны очень удачно сочетаются с домино реализациями. В моем случае я управляю precharge и evaluate транзисторами раздельно, таким образом получилось выкинуть "лишние" латчи и бополнительно сэкономить порядка 15% места. В кастоме правильно рассчитать и реализовать клоковую сеть - очень трудная задача. В асинхронной системе все клоки локальные и необходимо гарантировать приемлемый перекос только в небольшой части дизайна, что несравнимо проще задачи раздачи синхронного клока на весь чип одновременно. Цитата(Serhiy_UA @ Sep 8 2014, 09:51)  Выкладывайте все с небольшой аннотацией или своим мнением. Интересует, в частности, адаптация этих методов к ПЛИС. В ПЛИС все асинхронные методики не работают. Если попытаться создать простейший асинхронный автомат, то альтеровский Квартус начинает визжать об обнаружении комбинаторного лупа и останавливает компиляцию.
--------------------
WBR, V. Mirgorodsky
|
|
|
|
|
Sep 9 2014, 19:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Цитата Способа сделать проектирование асинхронные схемы более вменяемым пока не придумано. имхо, использовать несколько фаз синхронного клока как-то проще, чем работать с полным асинхроном. Получить кучу фаз с PLL - абсолютно стандартная задача. тем более существующие инструменты это дело более-менее нормально поддерживают.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Sep 19 2014, 07:21
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(v_mirgorodsky @ Sep 3 2014, 20:21)  Доброго времени суток,
Собственно - $subj. Отвечу сразу на вопрос. Есть два хороших проверенных тула, с ними работают, их используют. Первый и основной, это Petrify. Позволяет синтезировать асинхронный автомат из графа. Ограничение на число вершин - в районе 50. Что особенно ценно, Petrify позволяет сразу делать мэппинг в базисе standard cells. Второй тул, Workcraft - графический интерфейс для рисования и что важно - моделирования сетей Петри. Хорош еще тем, что автоматически генерит входной файл для Petrify. Далее, что касается Сазерленда и микропайплайнов. Сазерленд предложил десинхронизацию, т.е. переделку синхронных схем путем убирания клока и заменой его на хендшейки. Это почти не имеет отношения к сетям сетям Петри и построению асинхронных автоматов из графов. Строго говоря, пайплайны по типа Сазерлендовских сейчас называют BD - Bundled delay. Построение полностью асинхронных автоматов (не переделка синхронных схем) - это отдельная методика, имеющая в своей основе теорию графов, теорию автоматов и сети Петри, а в качестве объединяющей надстройки эксплуатирует идеи Варшавского. Есть еще отдельное направление, развившееся в америке -NCL. Схемы Варшавского обычно называют SI - speed independend, а NCL - DI - delay insensitive. Впрочем, у Варшавского тоже были DI схемы, ими потом стал заниматься Стародубцев - можете погуглить. Так что, все асинхронные схемы условно можно разделить на три направления: BD, SI и DI. Схемы Dual rail и Burst Mode - это подклассы SI. Сравнивать эти схемы смысла нет, они все имеют свои плюсы и минусы. И каждая имеет свою область применения, где другие будут работать хуже. Специалистов в РФ по этой тематике - считайте что и не осталось, хотя львиная доля теории разработана в СССР в 70-80х, под руководством В.И. Варшавского. Вопрос - а с какой целью интересуетесь? Праздный интерес, или серьезные разработки? Цитата(v_mirgorodsky @ Sep 3 2014, 20:21)  В результате асинхронные стейт-машины представляют собой диких паучков из нандов и норов с обратными связями, крайне тяжело модифицируются, плохо верифицируются, короче - обладают целым рядом недостатков, делающих их реальное применение неоправданно дорогим и сложным.
Есть ли у кого мысли как упростить этот процесс и сделать его более простым и контролируемым? По поводу верификации. Если речь идет только об FSM, с числом вершин в графе не более 50, то проверку делает Petrify и еще ряд менее известных тулов. Это самая точная верификация, она покажет что схема полумодулярна. Если же речь идет о большой схеме с сотнями тысяч и даже миллионами элементов, то верификацию не сделать. Единственное, можно использовать обычные средства моделирования, при условии что схема - нетлист, и подключаются реальные задержки (SDF). Так можно защититься от совсем уж глупых ошибок. В ПЛИС асинхронные автоматы вообще не получится проверить. Я в начале лета поднимал тему - не нашлось ни одной ПЛИС/ПАЛ, где можно было бы хорошо уложить все эти тысячи мелких обратных связей. Но, можете поискать еще. Если найдете что то подходящее, напишите обязательно.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|