|
Инверсная логика сигналов внутри ПЛИС, Насколько это полезно? |
|
|
|
Aug 13 2009, 16:43
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(BSV @ Aug 13 2009, 17:44)  Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.) Хотелось устранить пробел в знаниях и узнать, а что такое прамая или неинверсная логика для сброса или разрешения? Я всегда считал, что про сигналы сброса пишут "active low" или "active high" и нет никакой ложки. Есть конкретная микросхема, в которой либо имеется возможность применять оба вида сброса, либо есть только один. Кстати, вот вспомнился кошмар под названием FPSLIC http://uchcom.botik.ru/boris/fpslic/errors/Я этот текст написал по следам борьбы с ним. Посмотрите самое начало.
|
|
|
|
|
Aug 14 2009, 00:38
|

Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 3-09-04
Пользователь №: 586

|
Цитата(BSV @ Aug 13 2009, 22:44)  Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.). Хочется услышать мнение сообщества по вопросу какие у данного подхода есть плюсы. Просто супер будет, если есть какие-либо практические данные по улучшению помехозащищенности или еще какие осязаемые профиты.
В поиске с ходу не нашлось, поэтому если баян, прошу прощения. Тогда ткните носом в тему где это обсуждалось. Что касается помехозащищенности, то инверсные сигналы сброса и разрешения более помехоустойчивы. Если ваша ПЛИС работает вблизи мощной силовой электроники, то помехи бывают такие, что модули с прямой логикой сброса будут часто сбоить (сам с таким сталкивался). Если от помехоустойчивости абстрагироваться, то про ПЛИС уже написали (синтезатор соберет как надо, хотя я обычно смотрю на структуру триггера логической ячейки и выбираю полярность в соответствии с полярностью его входов сброса и разрешения. Старая привычка просто...) А вот при проектировании ASIC полярность сигналов желательно выбирать в соответствии с конкретными библиотеками производителя. Если библиотечный триггер имеет active-high сигналы разрешения и сброса, то лучше в проекте их такими и делать. Кстати, добросовестный производитель кристаллов вам об этом скажет, когда вы будете сдавать ему проект в производство. В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней.
|
|
|
|
|
Aug 14 2009, 05:54
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(BSV @ Aug 13 2009, 17:44)  Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.). Ну а теперь по жизни. Если у Вас такая система: "Сделал проект и выкинул", то тогда можно делать как угодно, это на результате не отразится... Но если Вы делаете изделие, которое будет жить несколько лет, то кому-то его придется сопровождать. Возможно даже и не Вам лично... Так вот, этот кто-то и будет потом разбираться, что и как там наворочено, где ноль и где единица... Ошибок набьет кучу... Вас вспомнит тихим словом. Так что лучше не увеличивать вероятность возникновения ошибок, а все делать в положительной логике, благо компилятору это все равно... А если Вы уже начали делать большие проекты, то тогда дело несколько другое... Выбирите стандартную внутрикристальную шину, например Авалон, для Альтер или что-то в этом духе из распространенных шин из открытых проектов. И все сигналы интерфейса подгоняйте под стандарт такой шины. Сделайте файл соглашения о названии сигналов. Я об это писал в "Кратком Курсе HDL". Вот теперь, если понадобится подключить Ваш проект к шине, или ввести в проект микроконтроллерное ядро, то Вам уже не понадобится никаких переделок... Да и тестбенчи можно будет использовать многократно... И такой порядок должен быть во все Вашей группе разработчиков. Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Aug 14 2009, 06:50
|
Местный
  
Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240

|
Цитата(glock17 @ Aug 14 2009, 03:38)  Что касается помехозащищенности, то инверсные сигналы сброса и разрешения более помехоустойчивы. Если ваша ПЛИС работает вблизи мощной силовой электроники, то помехи бывают такие, что модули с прямой логикой сброса будут часто сбоить (сам с таким сталкивался). с чего это вдруг? Цитата(glock17 @ Aug 14 2009, 03:38)  В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней. ссылку на документы где "большинство ПЛИС" работают в инверсной логике. ПЛИС, насколько я знаю, глубоко по барабану какая там логика в ней. инверсная логика для управляющих сигналов была выбрана во времена господства TTL микросхем, если не раньше. и обусловлено это было а) экономичностью б) возможностью применить монтажное ИЛИ. но никак не помехозащищённостью. наоборот. высокий уровень был более подвержен помехам.
|
|
|
|
|
Aug 14 2009, 09:08
|

Знающий
   
Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045

|
Коллеги, спасибо всем за ответы. Цитата(iosifk @ Aug 14 2009, 09:54)  Ну а теперь по жизни. Если у Вас такая система: "Сделал проект и выкинул", то тогда можно делать как угодно, это на результате не отразится... Но если Вы делаете изделие, которое будет жить несколько лет, то кому-то его придется сопровождать. Возможно даже и не Вам лично... Не, выкидывать ничего не собираюсь. Кто знает, что тебя в будущем ждет, лучше все на совесть делать. Цитата(iosifk @ Aug 14 2009, 09:54)  Так вот, этот кто-то и будет потом разбираться, что и как там наворочено, где ноль и где единица... Ошибок набьет кучу... Вас вспомнит тихим словом. Так что лучше не увеличивать вероятность возникновения ошибок, а все делать в положительной логике, благо компилятору это все равно... Я тоже так считаю. Просто я сейчас начинаю делать большой проект на основе модулей, сделанных другим разработчиком. Вот и хотелось для себя уяснить что реально хорошего в таком подходе и стоит ли его придерживаться хотя бы в рамках этого проекта. Грамотное именование сигналов исключает путаницу в уровнях, но пока мне кажется, что лучше делать так, как привычно мне. Цитата(Mahagam @ Aug 14 2009, 10:50)  с чего это вдруг? ссылку на документы где "большинство ПЛИС" работают в инверсной логике. ПЛИС, насколько я знаю, глубоко по барабану какая там логика в ней. Еще в первом посте хотел написать, что не хотел бы разжигать очередную религиозную войну, так что давайте от ожесточенных споров постараемся воздержаться. Хотя ПМСМ применение инверсной логики для сигналов на плате (межэлементных) оправдано, примером чему могут служить хотя бы шины ISA и PCI. P.S. Тему не закрываю.
--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
|
|
|
|
|
Aug 14 2009, 10:29
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(BSV @ Aug 14 2009, 13:08)  Хотя ПМСМ применение инверсной логики для сигналов на плате (межэлементных) оправдано, примером чему могут служить хотя бы шины ISA и PCI. О применении сигналов низкого уровня: 1. для сброса, который идет по плате/устройству. Здесь низкий уровень определяется тем, что во время подъема напряжения питания правильную лог.1 взять просто неоткуда... Поэтому открытый коллектор "давит" сброс до окончания переходного процесса. Тут вроде все понятно. 2. Дадее. По интерфейсу DEC-овских машин шины строились на компонентах с ОК. При работе инверсной логикой получали хороший передний фронт, от которого все и синхронизировались. при переходе шин на ТТЛ-логику с 3-мя состояниями, стало все равно. Хотя уровень нуля и здесь был более мощный. А при КМОП схемах так и вовсе все равно, какая логика в шинах данных (Про сброс я уже сказал особо).
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Aug 14 2009, 12:37
|

Участник

Группа: Свой
Сообщений: 62
Регистрация: 2-04-09
Из: Москва
Пользователь №: 47 059

|
Цитата(yes @ Aug 14 2009, 15:16)  хочу дополнить - некоторые производители (Lattice) в своих IP используют как "положительную", так и "отрицательную" логику это очень печально... Практикуют ли это производители "железных" IP/библиотек (artisan, viragelogic, cadence, synopsys)? Или стараются придерживаться положительной логики? (Сам порвериьт не могу, все кругом confidential  )
Сообщение отредактировал zverek - Aug 14 2009, 12:47
|
|
|
|
|
Aug 16 2009, 12:29
|
Участник

Группа: Свой
Сообщений: 61
Регистрация: 3-03-06
Пользователь №: 14 936

|
Цитата(yes @ Aug 14 2009, 16:28)  не стал бы на это расчитывать. стандарта или договоренности не существует, ну или я не знаю об этом. Стандарта тут и правда нет. Например у MIPSа reset active high, в IP Synopsys - active low...
|
|
|
|
|
Aug 16 2009, 13:20
|

Участник

Группа: Свой
Сообщений: 62
Регистрация: 2-04-09
Из: Москва
Пользователь №: 47 059

|
Цитата(ArMouReR @ Aug 16 2009, 16:29)  в IP Synopsys - active low... Вопрос как оказалось очень важный. Cell Libraries для TSMC надеюсь у всех одинаковые (h__p://w_w.synopsys.com/dw/tsmc.php h__p://w_w.cadence.com/Alliances/ip_program/Pages/tsmc_lib.aspx h__p://w_w.arm.com/products/physicalip/designstart.html)? А точнее, физически они active low? Если так, значит glock17 прав. P.S. Если что, можно в личку
Сообщение отредактировал zverek - Aug 16 2009, 13:57
|
|
|
|
|
Aug 18 2009, 18:09
|
Местный
  
Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617

|
Цитата(glock17 @ Aug 14 2009, 04:38)  Что касается помехозащищенности, то инверсные сигналы сброса и разрешения более помехоустойчивы. Если ваша ПЛИС работает вблизи мощной силовой электроники, то помехи бывают такие, что модули с прямой логикой сброса будут часто сбоить (сам с таким сталкивался). ИМНО: это проблема гонок, а не уровня (говорим о внутренних синалах), не сталкивался с подобными вещами в устройствах работающих в жестких условиях Цитата В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней. позвольте не согласиться, Посмотрите спецификации AVALON и WISHBONE(на них ложиться большая нагрузка по коммутации сигналов в плис), они разработанные разными производителями, а логика и там и там - прямая.
|
|
|
|
|
Aug 18 2009, 21:42
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(zverek @ Aug 14 2009, 16:37)  Практикуют ли это производители "железных" IP/библиотек (artisan, viragelogic, cadence, synopsys)? Или стараются придерживаться положительной логики? (Сам порвериьт не могу, все кругом confidential  ) Ничего святого у них нет. У того жу артизана, как и у синопсиса, только у одних мемори компилеров можно найти в одном блоке прямой чипселект и инверсный WE. На мой взгляд - если инверсная логика позволяет сэкономить на паре транзюков в блоке или микроватт по питанию - то нужно юзать ее. Если нет - нет. В общем дело сугубо личное, только не забыть какой нибудь понятный для себя принцип именования цепей для той или иной логики. И внимательно читать доки на IP. Остальное сделает синтезатор за вас. Цитата(zverek @ Aug 16 2009, 17:20)  Вопрос как оказалось очень важный. Cell Libraries для TSMC надеюсь у всех одинаковые У меня для TSMC есть штук 8 разных либов разных разработчиков. И артизаны, и авант, и кажется aspec. так там хватает и триггеров с инверсными сетами-резетами, и с прямыми. Имеется в виду именно физически. Опять ничего святого  Все на откуп синтезу. Где-то ему выгодно воткнуть триггер с инверсным резетом, а где-то инвертор и пять триггеров с прямым
|
|
|
|
|
Aug 19 2009, 12:45
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Mahagam @ Aug 19 2009, 15:33)  речь про ПЛИС. а им, насколько я помню, абсолютно параллельно какая логика. Да??? Про ПЛИС??? А зачем тогда про либы TSMC спрашивали? Какое они к ПЛИС отношение имеют? А для ПЛИС, кстати, инвертированность сигналов играет некую роль, так как часть сигналов идет кроме входов других LUT еще и на клоки, асинхронные сбросы, разрешения, и т.п., которые имеют фиксированную полярность, разрешения клоков, как правило, в положительной логике, асинхронные сигналы (сброс, предустановка) в отрицательной. Как и у блоков памяти логика управляющих сигналов фиксирована. Так что изредка синтезатору приходится либо втыкать лишний LUT, либо делать "NOT gate push-back", перенося инвертор с выхода триггера на его вход, если нет возможности включить инвертор по выходу регистра, о чем аж варнинг скажут (ну и подпоганивание в части различия поведения регистра при симуляции до синтеза и после разводки). Цитата(Mahagam @ Aug 19 2009, 15:33)  некоторые "правила хорошего тона при проектировании" гласят, что для устранения геморроя в проекте на ПЛИС лучше использовать во всех внутренних модулях прямую логику. и только сигналы выходящие наружу при необходимости инвертить и в их имена вписывать суффиксы. Мне кажется, что "правила хорошего тона" это обуза для проектировщика, выдуманная злобным начальником. Лучшие правила хорошего тона те, с которыми проектировщик сам решает задачу быстрее, все остальное, включая поддержку, надумано. Если разработчику привычнее, что резет нулем, то пусть так и будет. PS. Офф. А если разработчик уходит, то он по хорошему и должен какое-то время поддерживать свои "произведения", пока в них не освоятся те, кто идет ему на смену. А если есть "правила хорошего тона" - то это заранее означает то, что и "правила увольнения пинком под зад", причем реально и нередко применяемые, тоже есть.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|