реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Инверсная логика сигналов внутри ПЛИС, Насколько это полезно?
BSV
сообщение Aug 13 2009, 13:44
Сообщение #1


Знающий
****

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



Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.). Хочется услышать мнение сообщества по вопросу какие у данного подхода есть плюсы. Просто супер будет, если есть какие-либо практические данные по улучшению помехозащищенности или еще какие осязаемые профиты.

В поиске с ходу не нашлось, поэтому если баян, прошу прощения. Тогда ткните носом в тему где это обсуждалось.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Aug 13 2009, 16:43
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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/
Я этот текст написал по следам борьбы с ним. Посмотрите самое начало.
Go to the top of the page
 
+Quote Post
SFx
сообщение Aug 13 2009, 17:07
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



синтезатор все собирет так, как ему удобно. и минимизирует до кучи для конкретного кристала. смертным теперь парится не надо об этом. пиши как удобно для понимания, а сапр все сам разложет и оптимизирует.
Go to the top of the page
 
+Quote Post
Builder
сообщение Aug 13 2009, 17:21
Сообщение #4


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Как уже сказали, синтезатор сделает так как ему удобно.
Поэтому вопрос правильнее перевести в плоскость стилей написания и оформления модулей.
IMHO: выработыйте единые правила для себя (для фирмы) и их придерживайтесь,
когда всего намешано - труднее понимать чужой код.
Go to the top of the page
 
+Quote Post
glock17
сообщение Aug 14 2009, 00:38
Сообщение #5


Частый гость
**

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



Цитата(BSV @ Aug 13 2009, 22:44) *
Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.). Хочется услышать мнение сообщества по вопросу какие у данного подхода есть плюсы. Просто супер будет, если есть какие-либо практические данные по улучшению помехозащищенности или еще какие осязаемые профиты.

В поиске с ходу не нашлось, поэтому если баян, прошу прощения. Тогда ткните носом в тему где это обсуждалось.


Что касается помехозащищенности, то инверсные сигналы сброса и разрешения более помехоустойчивы. Если ваша ПЛИС работает вблизи мощной силовой электроники, то помехи бывают такие, что модули с прямой логикой сброса будут часто сбоить (сам с таким сталкивался).

Если от помехоустойчивости абстрагироваться, то про ПЛИС уже написали (синтезатор соберет как надо, хотя я обычно смотрю на структуру триггера логической ячейки и выбираю полярность в соответствии с полярностью его входов сброса и разрешения. Старая привычка просто...)

А вот при проектировании ASIC полярность сигналов желательно выбирать в соответствии с конкретными библиотеками производителя. Если библиотечный триггер имеет active-high сигналы разрешения и сброса, то лучше в проекте их такими и делать. Кстати, добросовестный производитель кристаллов вам об этом скажет, когда вы будете сдавать ему проект в производство.

В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 14 2009, 05:54
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(BSV @ Aug 13 2009, 17:44) *
Некоторые ПЛИС-разработчики используют в своих проектах инверсную логику для внутренних сигналов ПЛИС (например, для сигналов разрешения, сброса и т.п.).


Ну а теперь по жизни.
Если у Вас такая система: "Сделал проект и выкинул", то тогда можно делать как угодно, это на результате не отразится...
Но если Вы делаете изделие, которое будет жить несколько лет, то кому-то его придется сопровождать. Возможно даже и не Вам лично...
Так вот, этот кто-то и будет потом разбираться, что и как там наворочено, где ноль и где единица... Ошибок набьет кучу... Вас вспомнит тихим словом. Так что лучше не увеличивать вероятность возникновения ошибок, а все делать в положительной логике, благо компилятору это все равно...
А если Вы уже начали делать большие проекты, то тогда дело несколько другое...
Выбирите стандартную внутрикристальную шину, например Авалон, для Альтер или что-то в этом духе из распространенных шин из открытых проектов. И все сигналы интерфейса подгоняйте под стандарт такой шины. Сделайте файл соглашения о названии сигналов. Я об это
писал в "Кратком Курсе HDL". Вот теперь, если понадобится подключить Ваш проект к шине, или ввести в проект микроконтроллерное ядро, то Вам уже не понадобится никаких переделок... Да и тестбенчи можно будет использовать многократно... И такой порядок должен быть во все Вашей группе разработчиков.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Aug 14 2009, 06:50
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



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

с чего это вдруг?

Цитата(glock17 @ Aug 14 2009, 03:38) *
В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней.

ссылку на документы где "большинство ПЛИС" работают в инверсной логике.

ПЛИС, насколько я знаю, глубоко по барабану какая там логика в ней.

инверсная логика для управляющих сигналов была выбрана во времена господства TTL микросхем, если не раньше. и обусловлено это было а) экономичностью б) возможностью применить монтажное ИЛИ. но никак не помехозащищённостью. наоборот. высокий уровень был более подвержен помехам.
Go to the top of the page
 
+Quote Post
BSV
сообщение Aug 14 2009, 09:08
Сообщение #8


Знающий
****

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



Коллеги, спасибо всем за ответы. a14.gif

Цитата(iosifk @ Aug 14 2009, 09:54) *
Ну а теперь по жизни.
Если у Вас такая система: "Сделал проект и выкинул", то тогда можно делать как угодно, это на результате не отразится...
Но если Вы делаете изделие, которое будет жить несколько лет, то кому-то его придется сопровождать. Возможно даже и не Вам лично...
Не, выкидывать ничего не собираюсь. Кто знает, что тебя в будущем ждет, лучше все на совесть делать.

Цитата(iosifk @ Aug 14 2009, 09:54) *
Так вот, этот кто-то и будет потом разбираться, что и как там наворочено, где ноль и где единица... Ошибок набьет кучу... Вас вспомнит тихим словом. Так что лучше не увеличивать вероятность возникновения ошибок, а все делать в положительной логике, благо компилятору это все равно...
Я тоже так считаю. Просто я сейчас начинаю делать большой проект на основе модулей, сделанных другим разработчиком. Вот и хотелось для себя уяснить что реально хорошего в таком подходе и стоит ли его придерживаться хотя бы в рамках этого проекта. Грамотное именование сигналов исключает путаницу в уровнях, но пока мне кажется, что лучше делать так, как привычно мне.

Цитата(Mahagam @ Aug 14 2009, 10:50) *
с чего это вдруг? ссылку на документы где "большинство ПЛИС" работают в инверсной логике. ПЛИС, насколько я знаю, глубоко по барабану какая там логика в ней.
Еще в первом посте хотел написать, что не хотел бы разжигать очередную религиозную войну, так что давайте от ожесточенных споров постараемся воздержаться. Хотя ПМСМ применение инверсной логики для сигналов на плате (межэлементных) оправдано, примером чему могут служить хотя бы шины ISA и PCI.

P.S. Тему не закрываю.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 14 2009, 10:29
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(BSV @ Aug 14 2009, 13:08) *
Хотя ПМСМ применение инверсной логики для сигналов на плате (межэлементных) оправдано, примером чему могут служить хотя бы шины ISA и PCI.

О применении сигналов низкого уровня:
1. для сброса, который идет по плате/устройству. Здесь низкий уровень определяется тем, что во время подъема напряжения питания правильную лог.1 взять просто неоткуда... Поэтому открытый коллектор "давит" сброс до окончания переходного процесса. Тут вроде все понятно.
2. Дадее. По интерфейсу DEC-овских машин шины строились на компонентах с ОК. При работе инверсной логикой получали хороший передний фронт, от которого все и синхронизировались.
при переходе шин на ТТЛ-логику с 3-мя состояниями, стало все равно. Хотя уровень нуля и здесь был более мощный. А при КМОП схемах так и вовсе все равно, какая логика в шинах данных (Про сброс я уже сказал особо).


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 14 2009, 11:16
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



хочу дополнить - некоторые производители (Lattice) в своих IP используют как "положительную", так и "отрицательную" логику
это очень печально...
Go to the top of the page
 
+Quote Post
zverek
сообщение Aug 14 2009, 12:37
Сообщение #11


Участник
*

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



Цитата(yes @ Aug 14 2009, 15:16) *
хочу дополнить - некоторые производители (Lattice) в своих IP используют как "положительную", так и "отрицательную" логику
это очень печально...


Практикуют ли это производители "железных" IP/библиотек (artisan, viragelogic, cadence, synopsys)? Или стараются придерживаться положительной логики? (Сам порвериьт не могу, все кругом confidential smile.gif )

Сообщение отредактировал zverek - Aug 14 2009, 12:47
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 14 2009, 13:28
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(zverek @ Aug 14 2009, 16:37) *
Практикуют ли это производители "железных" IP/библиотек (artisan, viragelogic, cadence, synopsys)? Или стараются придерживаться положительной логики? (Сам порвериьт не могу, все кругом confidential smile.gif )


не стал бы на это расчитывать. стандарта или договоренности не существует, ну или я не знаю об этом.
Go to the top of the page
 
+Quote Post
ArMouReR
сообщение Aug 16 2009, 12:29
Сообщение #13


Участник
*

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



Цитата(yes @ Aug 14 2009, 16:28) *
не стал бы на это расчитывать. стандарта или договоренности не существует, ну или я не знаю об этом.

Стандарта тут и правда нет. Например у MIPSа reset active high, в IP Synopsys - active low...
Go to the top of the page
 
+Quote Post
zverek
сообщение Aug 16 2009, 13:20
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 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. Если что, можно в личку smile.gif

Сообщение отредактировал zverek - Aug 16 2009, 13:57
Go to the top of the page
 
+Quote Post
yura-w
сообщение Aug 18 2009, 18:09
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(glock17 @ Aug 14 2009, 04:38) *
Что касается помехозащищенности, то инверсные сигналы сброса и разрешения более помехоустойчивы. Если ваша ПЛИС работает вблизи мощной силовой электроники, то помехи бывают такие, что модули с прямой логикой сброса будут часто сбоить (сам с таким сталкивался).

ИМНО: это проблема гонок, а не уровня (говорим о внутренних синалах), не сталкивался с подобными вещами в устройствах работающих в жестких условиях

Цитата
В общем, выбирайте инверсную логику, не ошибетесь. Большинство ПЛИС и библиотечных элементов работают как раз в ней.

позвольте не согласиться,
Посмотрите спецификации AVALON и WISHBONE(на них ложиться большая нагрузка по коммутации сигналов в плис), они разработанные разными производителями, а логика и там и там - прямая.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Aug 18 2009, 18:15
Сообщение #16


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(yura-w @ Aug 18 2009, 21:09) *
ИМНО: это проблема гонок, а не уровня (говорим о внутренних синалах), не сталкивался с подобными вещами в устройствах работающих в жестких условиях


Посмотрите спецификации AVALON и WISHBONE, они разработанные разными производителями, а логика и там и там - прямая.


Не в тему... но какое-то печальное это название - Avalon :-)
http://ru.wikipedia.org/wiki/Авалон


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 18 2009, 21:42
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zverek @ Aug 14 2009, 16:37) *
Практикуют ли это производители "железных" IP/библиотек (artisan, viragelogic, cadence, synopsys)? Или стараются придерживаться положительной логики? (Сам порвериьт не могу, все кругом confidential smile.gif )

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

Цитата(zverek @ Aug 16 2009, 17:20) *
Вопрос как оказалось очень важный. Cell Libraries для TSMC надеюсь у всех одинаковые

У меня для TSMC есть штук 8 разных либов разных разработчиков. И артизаны, и авант, и кажется aspec. так там хватает и триггеров с инверсными сетами-резетами, и с прямыми. Имеется в виду именно физически. Опять ничего святого smile.gif Все на откуп синтезу. Где-то ему выгодно воткнуть триггер с инверсным резетом, а где-то инвертор и пять триггеров с прямым smile.gif
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Aug 19 2009, 11:33
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



2 SM:
речь про ПЛИС. а им, насколько я помню, абсолютно параллельно какая логика.

некоторые "правила хорошего тона при проектировании" гласят, что для устранения геморроя в проекте на ПЛИС лучше использовать во всех внутренних модулях прямую логику. и только сигналы выходящие наружу при необходимости инвертить и в их имена вписывать суффиксы.
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 19 2009, 12:45
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 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. Офф. А если разработчик уходит, то он по хорошему и должен какое-то время поддерживать свои "произведения", пока в них не освоятся те, кто идет ему на смену. А если есть "правила хорошего тона" - то это заранее означает то, что и "правила увольнения пинком под зад", причем реально и нередко применяемые, тоже есть.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01535 секунд с 7
ELECTRONIX ©2004-2016