Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Swap
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Mentor-ExpeditionPCB
G_A_S
Столкнулся с проблемой сваппирования пинов, дифференциальных пар, прямой и обратной аннотациями при сваппировании. Чтобы не задавать глупых вопросов, подскажите, пожалуйста, где можно почитать об основах работы с этой тематикой. Важна любая информация. Заранее благодарен.
G_A_S
Есть ли возможность менять имена цепей в схеме при сваппировании, а не номера пинов. Иначе в гейте происходит путаница: номера пинов меняются местами, а соответствующие им имена пинов остаются на прежних местах... Подскажите, если знаете! Начальный этап освоения пакета самый сложный...

И хотя бы в двух словах о своппинге диф пар.

И хотя бы в двух словах о своппинге диф пар.
fill
Символ являет библиотечным элементом, имя пина прописано на уровне символа и изменяется только в библиотеке, на схеме оно не изменяется. Это кстати полностью согласно стандартов - изображение символа примененного внутри одной схемы должно быть одинаковым.
Диф. пары - если речь о ExpeditionPCB - переставлять надо не пины, а вентили, т.е. создаете PDB, где каждая пара пинов это вентиль.
Если работаете с ПЛИС то лучше делать своп в I/O_Designer - он понимает что нужно переставлять пару пинов, если они дифференциальные. Также символы для схемы можно перегенерить исходя из перестановок пинов. PDB он тоже генерит автоматически.
G_A_S
Спасибо за ответ! Я понимаю, что имя пина прописано и изменить его в схеме нельзя, но я не понимаю почему при сваппировании прыгают по символу номера пинов. Это неприятно и символ после этого перестает быть корректным (в качестве PinNumber - номер ножки ПЛИС, в качестве PinName - ее функцинальное назначение по ПДФ).
А если я создал элемент не прибегая к помощи ИО-Дезайнера, а вручную... Где именно определяются вентили? ПЛИС большая: Virtex4.
fill
Топологический редактор имеет дело с нетлистом в котором фигурируют номера пинов (а не их имена). Поэтому и при обратной аннотации, на схеме изменяются только номера пинов (так сделано в большинстве САПР).

Определение вентилей посмотрите в тренинге по ExpeditionPCB (раздел 4) http://electronix.ru/forum/index.php?showtopic=36292.
G_A_S
Но каким же образом сделать все правильно в Менторе? Так, чтобы после окончани разводки схема ей соответствовала и чтобы эту схему можно было сдать в качестве КД. Может мой алгоритм создания проекта заранее ошибочен? Но есть определенные стандарты оформления КД, от которых никуда не денешься... Как делаете это Вы?
gray.k
Вопрос не понятен. Что Вы имеете ввиду под словом "делаете". Никаких проблем с офрмлением схемы по ЕСКД нет (если они есть, то есть пути обхода). В Менторе можно сделать "все правильно" читая эксплуатационную документацию на него и выполняя тренинги. Вопрос "вообще" сложно обсуждать, сформулируте пожалуйста конечную задачу (или приведите пример), тогда можно дать рекомендации как ее решить.
G_A_S
Вопрос в том, какой алгоритм проектирования должен быть, когда используется большое количество плисин с переставляемыми ножками. Ведь в ГОСТовских схемах мы делим их на определенные группы (гейты в Менторе). При своппинге в разводке и обратной аннотации меняются местами номера пинов, но не соответствующие им имена пинов (которые определяются в ПДФ, и которые должны присутствовать на схеме).

И еще вопрос! Есть ли документация на русском языке по I/O Designer?
Vadim
Цитата(G_A_S @ Nov 21 2007, 11:08) *
При своппинге в разводке и обратной аннотации меняются местами номера пинов, но не соответствующие им имена пинов (которые определяются в ПДФ, и которые должны присутствовать на схеме).

Я конечно, извиняюсь, но где в ГОСТах написано, что имена пинов, определяемые в пдф, должны присутствовать на схеме? 07.gif
gray.k
Цитата(G_A_S @ Nov 21 2007, 10:08) *
Вопрос в том, какой алгоритм проектирования должен быть, когда используется большое количество плисин с переставляемыми ножками. Ведь в ГОСТовских схемах мы делим их на определенные группы (гейты в Менторе). При своппинге в разводке и обратной аннотации меняются местами номера пинов, но не соответствующие им имена пинов (которые определяются в ПДФ, и которые должны присутствовать на схеме).

И еще вопрос! Есть ли документация на русском языке по I/O Designer?

А кто Вам сказал, что эти имена обязательно должны присутсвовать на схеме? ЕСКД такого не требует. Имена выводов I/O в ПЛИС могут иметь различные имена, в зависимости от их использования. Такие выводы можно все именовать одним именем (например IO). Кроме того при разбивке ПЛИС на секции возникает проблема обмена эквивалентных выводов, находящихся в разных секциях. Я решаю эту проблему так: создается несколько секций (символов) с конфигурационными выводами и питания (например Power, GND, GNDA JTAG, CLK и т.д.) и одна секция (символ) вывода типа IO. Далее в PDB создается неоднородный компонент из этих секций. Компонент конечно содержит много секций, за счет количества секций вывов IO (каждая секция - один вывод). При таком подходе в схеме я могу "собрать" любую комбинацию секций и сделать любую разбивку их на группы. Достоинства способа в том, что Вы один раз создаете универсальный компонент ПЛИС и можете использовать его в различных проектах.
G_A_S
Цитата(Vadim @ Nov 21 2007, 10:48) *
Я конечно, извиняюсь, но где в ГОСТах написано, что имена пинов, определяемые в пдф, должны присутствовать на схеме? 07.gif


Не обязательно именно то, что в ПДФ... Но хотя бы любая информация, описывающая эту ножку! Ведь получается полный каламбур на схеме после первого же своппинга... По кайне мере у меня и в Менторе... В Протеле было по другому: При своппинге менялись именно имена цепей, а Пины на схеме оставались на тех же местах (ну и их аттрибуты соответственно). Ментор необходим!!!!! Поэтому я пытаюсь разобраться, как делают проэкты другие разработчики, чтобы делать так же, а не заведомо неправильно! Подскажите, если есть время )

Цитата(gray.k @ Nov 21 2007, 10:50) *
А кто Вам сказал, что эти имена обязательно должны присутсвовать на схеме? ЕСКД такого не требует. Имена выводов I/O в ПЛИС могут иметь различные имена, в зависимости от их использования. Такие выводы можно все именовать одним именем (например IO). Кроме того при разбивке ПЛИС на секции возникает проблема обмена эквивалентных выводов, находящихся в разных секциях. Я решаю эту проблему так: создается несколько секций (символов) с конфигурационными выводами и питания (например Power, GND, GNDA JTAG, CLK и т.д.) и одна секция (символ) вывода типа IO. Далее в PDB создается неоднородный компонент из этих секций. Компонент конечно содержит много секций, за счет количества секций вывов IO (каждая секция - один вывод). При таком подходе в схеме я могу "собрать" любую комбинацию секций и сделать любую разбивку их на группы. Достоинства способа в том, что Вы один раз создаете универсальный компонент ПЛИС и можете использовать его в различных проектах.


Спасибо за ответ! А такой подход можно использовать с помощью IOD?
gray.k
Цитата(G_A_S @ Nov 21 2007, 14:38) *
Не обязательно именно то, что в ПДФ... Но хотя бы любая информация, описывающая эту ножку! Ведь получается полный каламбур на схеме после первого же своппинга... По кайне мере у меня и в Менторе... В Протеле было по другому: При своппинге менялись именно имена цепей, а Пины на схеме оставались на тех же местах (ну и их аттрибуты соответственно). Ментор необходим!!!!! Поэтому я пытаюсь разобраться, как делают проэкты другие разработчики, чтобы делать так же, а не заведомо неправильно! Подскажите, если есть время )
Спасибо за ответ! А такой подход можно использовать с помощью IOD?

К сожалению нет. Там все таки другой принцип - генерация символа ПЛИС для конкретного проекта. Видимо у них несколько иначе построен процесс проектирования, чем у нас (я например ориентируюсь по функционалу, представленному в САПР). Я например не могу понять как может быть удобно сваппирование выводов ПЛИС не в pcb а в среде IOD? Ведь только в pcb можно детально увидеть оптимальность сваппирования. Как они решают проблемы доступа? Представляете нашего конструктора зашедшего в IOD и поменявшего не только сваппирование, но и что-то другое (например типы выводов, сигналы или еще что-то), то в чем он абсолютно не смыслит (я имею ввиду знание электрической части проекта-цифровой или схемотехнической).

По поводу изменения имен здесь я с Вами не согласен. Я считаю, что используемый в Mentor подход справедлив (http://www.megratec.ru/forum/1/?theme=2494&)
G_A_S
Цитата(gray.k @ Nov 21 2007, 14:57) *
Я например не могу понять как может быть удобно сваппирование выводов ПЛИС не в pcb а в среде IOD? Ведь только в pcb можно детально увидеть оптимальность сваппирования. Как они решают проблемы доступа? Представляете нашего конструктора зашедшего в IOD и поменявшего не только сваппирование, но и что-то другое (например типы выводов, сигналы или еще что-то), то в чем он абсолютно не смыслит (я имею ввиду знание электрической части проекта-цифровой или схемотехнической)


Ну как я понял, в IOD присваиваются именно правила сваппирования, а непосредственно сваппирование происходит уже в писиби. Насчет непонимания разрабртчиком идеологии устройства и его цифровой или схемотехнической части сказать не могу ничего. Как вообще тогда можно разводить плату... По-моему, именно эти знания являются основополагающими, а уже потом знание пакета и его возможностей, иначе устройство не будет работать корректно.
fill
В www.megratec.ru\data\ftp\exp_movie\new\IOD2006_Multi-FPGA_2X.avi показано как перестановка выводов ПЛИС может производится внутри IOD на основе текущего размещения на плате.
Vadim
Цитата(G_A_S @ Nov 21 2007, 14:38) *
Не обязательно именно то, что в ПДФ... Но хотя бы любая информация, описывающая эту ножку!

Теперь уже легче smile.gif IO1...ION для свопируемых выводов подойдет?
Цитата(G_A_S @ Nov 21 2007, 14:38) *
Поэтому я пытаюсь разобраться, как делают проэкты другие разработчики, чтобы делать так же, а не заведомо неправильно! Подскажите, если есть время

В библиотеке я не делаю эквивалентными выводы двойного назначения. При рисовании схемы по умолчанию их не задействую. В случае, если возникает необходимость их использования (не хватает обычных выводов или для облегчения разводки)...ничего не попишешь, разгребаю врукопашную головоломку схема-плата. Не так уж это страшно.
Раньше, когда работал в PCAD, использовал способ, описанный выше gray.k(один вывод - один вентиль), когда перешел на PADS, нарвался на ограничение по количеству вентилей в компоненте(100 для PadsLogic). IODesigner не использую. Я в него не въезжаю.
Если интересуетесь советами, даю - смиритесь с тем, что меняются номера пинов, а не имена цепей или имена пинов. Я при переходе на Expedition тоже вначале вставал на дыбы, хотелось, чтобы пины тупо менялись местами, как в PadsLogic. Однако, смирившись и поработав в таких условиях, понял, что способ обмена номерами дает гораздо больше практических преимуществ, чем недостатков, которые у него, несомненно,есть(имхо).
gray.k
Цитата(G_A_S @ Nov 21 2007, 16:09) *
Ну как я понял, в IOD присваиваются именно правила сваппирования, а непосредственно сваппирование происходит уже в писиби. Насчет непонимания разрабртчиком идеологии устройства и его цифровой или схемотехнической части сказать не могу ничего. Как вообще тогда можно разводить плату... По-моему, именно эти знания являются основополагающими, а уже потом знание пакета и его возможностей, иначе устройство не будет работать корректно.

Я не о разработчике говорю, а конструкторе (тот, кто занимается трассировкой ПП, а не ее разработкой). Не все же (и не везде же) универсалы (сами разрабатывают, сами трассируют) - хотя это оптимальный вариант. Наверное понятно, что имеется ввиду и не стоит рассказывать кто такой разработчик.
fill
На самом деле даже если конструктор будет использовать IOD только для перестановки выводов, то IOD не даст ему назначить выводы не в те ноги, конечно при условии, что он не будет менять тип сигнала в таблице сигналов (это прерогатива разработчика). Попробуйте в IOD переставить сигнал типа IO в пин типа Config (или CLK и т.д) и вы увидите что это невозможно.
G_A_S
Цитата(gray.k @ Nov 21 2007, 16:42) *
Я не о разработчике говорю, а конструкторе (тот, кто занимается трассировкой ПП, а не ее разработкой). Не все же (и не везде же) универсалы (сами разрабатывают, сами трассируют) - хотя это оптимальный вариант. Наверное понятно, что имеется ввиду и не стоит рассказывать кто такой разработчик.


Я именно инженер-конструктор по трассировке ПП. Но Задание от разработчика дается в виде: вот плисина, вот несколько кристаллов памяти, вот входные и выходные разъемы (к примеру). Почитай ПДФ на микросхемы, накидай кондеров, учти волновое сопротивление, набежки и разведи.

Цитата(fill @ Nov 21 2007, 17:11) *
На самом деле даже если конструктор будет использовать IOD только для перестановки выводов, то IOD не даст ему назначить выводы не в те ноги, конечно при условии, что он не будет менять тип сигнала в таблице сигналов (это прерогатива разработчика). Попробуйте в IOD переставить сигнал типа IO в пин типа Config (или CLK и т.д) и вы увидите что это невозможно.


Вот именно! И помимо этих правил существуют и другие, например, в Xilinx для выходных сигналов LVDS нельзя использовать ножки LC_CC. Можно ли задать IOD дополнительные правила?
fill
Цитата(G_A_S @ Nov 22 2007, 11:22) *
Можно ли задать IOD дополнительные правила?


Можно. Можно даже создать свой компонент, со своими правилами.
G_A_S
По-моему в менторе сделано все, чтобы усложнить своппирование пинов и гейтов через IOD. При перемене всего двух ножек, меняется вся идеология символов, а при обновлении символов в схематике уже присвоенные пинам цепи начинают вести себя, как им захочется... Путаются, переплетаются и т.д. Получается, что проект испорчен... Да еще и выдает кучу ошибок при упаковке... Что делать я уже не знаю...
Vadim
Цитата(G_A_S @ Jan 21 2008, 15:43) *
По-моему в менторе сделано все, чтобы усложнить своппирование пинов и гейтов через IOD.

По моему, тоже. Поэтому пины и гейты я своплю не через ... ИОД smile.gif
G_A_S
Цитата(Vadim @ Jan 21 2008, 17:41) *
В библиотеке я не делаю эквивалентными выводы двойного назначения. При рисовании схемы по умолчанию их не задействую. В случае, если возникает необходимость их использования (не хватает обычных выводов или для облегчения разводки)...ничего не попишешь, разгребаю врукопашную головоломку схема-плата. Не так уж это страшно.

По моему, тоже. Поэтому пины и гейты я своплю не через ... ИОД smile.gif


Расскажите, пожалуйста поподробнее. Если Вы не делаете эти выводы эквивалентными, и назрела необходимость их поменять местами в разводчике они же не поменяются. Какая у Вас структура символов?
fill
Цитата(G_A_S @ Jan 21 2008, 14:43) *
По-моему в менторе сделано все, чтобы усложнить своппирование пинов и гейтов через IOD. При перемене всего двух ножек, меняется вся идеология символов, а при обновлении символов в схематике уже присвоенные пинам цепи начинают вести себя, как им захочется... Путаются, переплетаются и т.д. Получается, что проект испорчен... Да еще и выдает кучу ошибок при упаковке... Что делать я уже не знаю...


См. видео по работе в теме http://electronix.ru/forum/index.php?showt...mp;#entry354417
где ничего не "ломается".
Vadim
Цитата(G_A_S @ Jan 22 2008, 09:26) *
Расскажите, пожалуйста поподробнее. Если Вы не делаете эти выводы эквивалентными, и назрела необходимость их поменять местами в разводчике они же не поменяются. Какая у Вас структура символов?

Может я и туплю, но никак не могу понять, как вставить картинку в сообщение 07.gif
-----------------------------------------------------------------------------------------------------
Вообще-то даже и не знаю, что тут рассказывать. Если очень надо поменять две цепи с неэквивалентными выводами местами - идем в DC, ручками меняем, упаковываем, и - Forward Annotation в PCB. Но, повторюсь, я предпочитаю выводы двойного назначения использовать только по их основному назначению.
Прикрепленный рисунок - часть схемы "спасенного" мной проекта из PCAD4.5. Это к вопросу о структуре символа. Пускай "столбики" D1.1 и D1.3 Вас не вводят в заблуждение - это один символ.
Аргонавт
Все же проблема которую затронул G_A_S для меня остается не решенной.
Цитата(G_A_S @ Nov 19 2007, 14:59) *
Есть ли возможность менять имена цепей в схеме при сваппировании, а не номера пинов. Иначе в гейте происходит путаница: номера пинов меняются местами, а соответствующие им имена пинов остаются на прежних местах...

Подскажите пожалуйста, каким образом можно корректно работать с проектом если у нас в схеме не FPGA а к примеру STM32F?
Вручную перетаскивать десятки названий цепей xDX Designer уж очень утомительно.
fill
Цитата(Аргонавт @ Apr 25 2016, 16:46) *
Все же проблема которую затронул G_A_S для меня остается не решенной.

Подскажите пожалуйста, каким образом можно корректно работать с проектом если у нас в схеме не FPGA а к примеру STM32F?
Вручную перетаскивать десятки названий цепей xDX Designer уж очень утомительно.


В который раз повторяю: в топологии не используются имена пинов. Цепь на плате соединяет определенные номера пинов. В процессе обратной аннотации передается номер пина, который и меняется на схеме в соответствии с изменением в топологии (и соответственно нетлисте). Имя пина на схеме не может изменятся - оно зафиксировано на уровне символа, и поменять его можно только в символьном редакторе. Если вас так смущает расхождение имен с номерами (по даташиту) так скройте изображение имен пинов.
Аргонавт
Цитата(fill @ Apr 26 2016, 10:26) *
В который раз повторяю: в топологии не используются имена пинов. Цепь на плате соединяет определенные номера пинов. В процессе обратной аннотации передается номер пина, который и меняется на схеме в соответствии с изменением в топологии (и соответственно нетлисте). Имя пина на схеме не может изменятся - оно зафиксировано на уровне символа, и поменять его можно только в символьном редакторе. Если вас так смущает расхождение имен с номерами (по даташиту) так скройте изображение имен пинов.

На самом деле меня больше смущает что в среде Altium Designer такая возможность была предусмотрена.
А именно два режима обратной аннотации:
1. Изменение УГО с номерами и именами пинов (что не совсем корректно)
2. Изменение названий цепей подключенных к микросхеме.
В Altium-e на трассировку шины у меня уходило на прядок меньше времени чем сейчас и схема была оформлена по ГОСТу.
Я потратил кучу времени (без толку) в попытках хоть как-то облегчить себе работу.
Мне непонятно почему разработчики MG об этом не задумываются.
dm_mur
Цитата(Аргонавт @ Apr 25 2016, 17:46) *
Подскажите пожалуйста, каким образом можно корректно работать с проектом если у нас в схеме не FPGA а к примеру STM32F?
Вручную перетаскивать десятки названий цепей xDX Designer уж очень утомительно.



В свое время придумал костыль для решения этой проблемы - актуально для микроконтроллеров. Символ должен быть создан по определенным правилам:
Каждый сваппируемый вывод порта имеет пользовательские аттрибуты:
NAME - имя, которое будет отображаться на символе
NUM_NAME - соответствие номера и имени
Отображение пользовательского атрибута NAME включено, отображение системного атрибута Pin Name выключено:


После свопа и бэканнотэйта запускаем скрипт, который апдейтит атрибуты NAME. На выходе соответствие номеров выводов и отображаемого имени:



Сам скрипт я выкладывал в теме про скрипты
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.