Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Методика применения I/O_Designer
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Mentor-ExpeditionPCB
Страницы: 1, 2, 3, 4
Inpharhus
Цитата(fill @ Sep 18 2009, 14:14) *
работать с ASIC уже можно - изучайте iod_asic_user.pdf

А где взять?
fill
Цитата(Inpharhus @ Sep 18 2009, 14:58) *
А где взять?


C:\MentorGraphics\IOD8.0\docs\pdfdocs\

Цитата(SM @ Sep 18 2009, 00:25) *
А подправление .dev-файла руками на тему добавления типа PLLDIFF к нужным мне пинам сработало. Осталось таки въехать, можно ли задать такое правило свопа, навроде "цепь INCK должна быть подключена к пинам типа PLLDIFF, а цепь IN к пинам типа DIFF, и они обе обязаны быть в одном банке, но все равно в каком."


"цепь INCK должна быть подключена к пинам типа PLLDIFF, а цепь IN к пинам типа DIFF," без проблем задается в Rule_Editor.
А вот обязаны быть в одном банке трудно реализуемо, т.к. правила проверяются интерактивно и тогда получается что сигналы можно будет размещать только одновременно - иначе сразу получается нарушение.
Хотя если привязать их в правиле к одному VREF, то можно в принципе и это организовать.
Victor®
Цитата(insector @ Sep 15 2009, 16:06) *
поэтому это Я буду в декларативном порядке сообщать программисту какие сигналы на каких ножках будут, а не ОН мне. Т.к. ему это фиолетово, а мне на плате - нет. Случай с DDR модулем немного другой, но там тоже от программиста немного зависит.


Ему ("программисту", как Вы его называете) это абсолютно НЕ фиолетово. Т.к. есть куча проектов, где идет привязка
к определенным контактам. Причем, не всегда эти контакты распределяет разработчик FPGA, они могут быть сгенерированы
автоматически для удовлетворения времменых параметров (например, Xilinx Coregen формирует достаточно сложный файл ограничений дял PCI ядра, в том числе и для пинов). И Ваше общение с разработчиком должно быть итеративным. Просто может оказаться так, что из-за Вашей разводки проект в FPGA будет нерабочим... и как Вы думаете, кому дадут пинка? :-)

-- Успехов
baken
Вопрос к fill, есть ли возможность генерировать символы с помощью скриптов, так, как возможно в DC. Сейчас получается двойной путь, если речь идет о символе пользователя. Сначала генерируем символ из текста в slb, затем импортируется в DC, и наконец транслируется в DxD. Есть ли такая возможность сгенерировать свой символ из текста в IOD, чтобы потом перенести его в DXD. Возможно вопрос глупый, с IOD не работал, поэтому и прошу направить.
fill
Цитата(baken @ Sep 18 2009, 17:56) *
Вопрос к fill, есть ли возможность генерировать символы с помощью скриптов, так, как возможно в DC. Сейчас получается двойной путь, если речь идет о символе пользователя. Сначала генерируем символ из текста в slb, затем импортируется в DC, и наконец транслируется в DxD. Есть ли такая возможность сгенерировать свой символ из текста в IOD, чтобы потом перенести его в DXD. Возможно вопрос глупый, с IOD не работал, поэтому и прошу направить.


Более подробно что за скрипты вы используете, т.е. вы получаете на выходе символ с нужно графикой?

Вот вам предмет для изучения Нажмите для просмотра прикрепленного файла
baken
Цитата(fill @ Sep 18 2009, 18:35) *
Более подробно что за скрипты вы используете, т.е. вы получаете на выходе символ с нужно графикой?
Вот вам предмет для изучения Нажмите для просмотра прикрепленного файла


Самописные бат файлы для генерации символов с помощью acmaker. Посмотрел видео, как все просто. Спасибо.
Frederic
думаю вопрос по теме IOD7.4
1.четыре листа Design1 имеют нормальный вид, для ПЛИС в Bloks - табличный.
Решение д.б. простое (раньше же был нормальный вид, но где то и что то нажал).
Как вернуть к нормальному виду ПЛИС ?

2.при экспорте ucf файла при наличие сигналов содержащих # ( AOE#; ARE#; AWE#) происходит дописывание данных сигналов в конец файла при каждом экспортирование. В хелпе не нашел запрета на использование данного знака sad.gif
fill
Цитата(Frederic @ Sep 21 2009, 01:37) *
думаю вопрос по теме IOD7.4
1.четыре листа Design1 имеют нормальный вид, для ПЛИС в Bloks - табличный.
Решение д.б. простое (раньше же был нормальный вид, но где то и что то нажал).
Как вернуть к нормальному виду ПЛИС ?


Мог или сделать экспорт из IOD в виде ICT или изменил внутри DxD (навигатор ПКМ>Change_to_ICT). Новый экспорт Shematic приведет в схемный вид.
fill
Цитата(fill @ Sep 17 2009, 14:34) *
Он остался отдельным - ведь его можно использовать не только с Expedition. Просто его релизы синхронизуют теперь с текущим релизом EE, ведь внутри IOD можно создать сразу project в формате DxD и если его формат не совпадет с текущими возможностями DxD то ...


Корректировка - IOD теперь является частью EE. Т.е. новый IOD8.1 включен в текущий релиз (EE2007.7)
baken
Цитата(fill @ Sep 18 2009, 18:35) *

Вы будете смеяться, но символ транзистора сгенерировать не удалось. Пишет нечетное число ног.
Она даже не открывает символ транзистора из demo папки.

Но даже и без этого недочета могу ответственно сказать Symgen и компилятор AXEL полный отстой.
Там недочетов вагон и маленькая тележка. Не буду всего расписывать, но я изучил и прощупал эту
тему досконально. Принципиально не удастся сделать символ детали, который потом не придется
вручную подравнивать, подкорректировать , подправлять и так далее. Не говоря о том, что нечетное число
ног он просто не понимает.
Так что для больших чипов остается только один вариант IOD, а для дискретных элементов вручную
рисовать. Может оно и правильно.
fill
Цитата(baken @ Oct 13 2009, 21:10) *
Вы будете смеяться, но символ транзистора сгенерировать не удалось. Пишет нечетное число ног.
Она даже не открывает символ транзистора из demo папки.

Но даже и без этого недочета могу ответственно сказать Symgen и компилятор AXEL полный отстой.
Там недочетов вагон и маленькая тележка. Не буду всего расписывать, но я изучил и прощупал эту
тему досконально. Принципиально не удастся сделать символ детали, который потом не придется
вручную подравнивать, подкорректировать , подправлять и так далее. Не говоря о том, что нечетное число
ног он просто не понимает.
Так что для больших чипов остается только один вариант IOD, а для дискретных элементов вручную
рисовать. Может оно и правильно.


А это не пробовали http://www.pcbmatrix.com/Products/SymbolWi.../DxDesigner.asp
Frederic
Цитата(fill @ Sep 15 2009, 15:26) *
Т.к. судя по всему многие до сих пор не понимают, что такое IOD и зачем он нужен, попытаюсь популярно объяснить это в приложении к ПЛИС:

1. Предположим мы начинаем новый проект платы в которой будет стоять ПЛИС(ы).
2. Проработали функционально наш проект и определили какие сигналы (цепи) будут подключены к ПЛИС.
3. Можно начинать определение ПЛИС, используя проект в IOD, сделать это можно несколькими путями:
а) Написали VHDL(Verilog) файл в котором есть "шапка", т.е. определены порты - соответственно его можно:
- прочитать в IOD и таким образом список сигналов окажется в IOD.
- передать разработчику ПЛИС (естественно если не он сам его сделал) для дальнейшего формирования функционально\структурного описания внутренности ПЛИС
б) Ввели сигналы непосредственно внутри IOD:
- можем сгенерить VHDL(Verilog) файл и передать разработчику ПЛИС.
4. Выбрали изготовителя ПЛИС, конкретный device и маршрут ПЛИС.
5. Сделали предварительное присвоение выводов внутри IOD.
6. Генерировали\нарисовали символ(ы) внутри IOD.
7. Экспортировали символы\PDB в DxDesigner.
8. Нарисовали схему платы в DxD.
9. Создали проект платы и сделали размещение.
10. Обратно аннотировали размещение в IOD.
11. Сделали перераспределение выводов для улучшения длин соединений и распутывания их.
12. Теперь надо связаться с разработчиком внутренности ПЛИС на предмет передачи ему информации о текущем распределении выводов. Передать ему можно любой файл из трех типов:
- P&R_Constraints_File (Actel (.pin, .gcf or .pdc), Altera (.csf or .qsf), Xilinx (.ucf), Lattice (.lpf)
- Pin Report File (Actel (.rpt), Altera (.pin), Xilinx (.pad or .csv), Lattice (.pad)
- FPGA Xchange File
Как правило любой из этих файлов могут прочитать (а также генерировать) системы разработки ПЛИС и таким образом ему не нужно будет в ручную определять выводы.
13. После того как разработчик ПЛИС одобрил это размещение или предложил свое переделанное (через такой же файл), вы решаете задачу трассировки платы. Походу этого естественно могут возникать вопросы дальнейших итерации по перераспределению выводов ибо как у разработчика платы может возникнуть потребность в этом, так и у разработчика ПЛИС - все это решается через процесс аннотаций и генерирования указанных выше обменных файлов. Процесс контролирует "Синхронизатор" - если изменились какие-либо подключенные к проекту IOD файлы, он это увидит и предложит соответствующие действия.

Естественно последовательность процесса и составные части каждый из вас сможет выбирать на свое усмотрение.


Подводные камни на маршруте проектирования в IOD7.4 (мои бывшие проблемы из-за п.п.1, 2 и 5).
Будем рассматривать только иерархическую схему, т.е. используем один функциональный символ (т.е. один на всю ПЛИС) и работа в локальной PDB (без создания полноценного компонента в ЦБ). В фильме IOD_DxD_2007.avi очень хорошо показан принцип работы, но обычно проблемы начинаются после того как начались изменения в IOD или Ехр.

При любом изменение в IOD и передачи изменений в DxD необходимо следовать следующим советам smile.gif:
1. Перед передачей изменений в DxD сохранить базу через CommonDatabaseProperties. Поставить галку на Export_PartData и точку на Write_to_Local_PDB_file. У меня галка не скидывается, но и почему то база первоначально не сохранялась. Для нормальной работы пришлось первоначально сохранить проект по дефолтному *.hkp и сразу поставить точку на Write_to_Local_PDB_file и сохранить базу. Базу следует сохранять при закрытом Ехр, иначе IOD не сможет корректно сохранить базу из-за блокировки ее Ехр, т.е. при любом действии в IOD настоятельно рекомендуется закрывать Ехр.
2. Сделанные изменения передаются в DxD через Export/Schematic_and_Symbols, а не через светофоры синхронизации.
3. При изменениях, когда изменяются имена сигналов (но без изменения расположения пина в функциональном элементе) при экспорте в DxD данный пин будет отключен от цепи в DxD. Необходимо будет подвигать цепь для подключения к пину.
4. При кардинальных изменениях, когда добавляются, удаляются или изменяются имена сигналов проще провести изменения через SimbolWizard/UpdateSimbols (не проверял) или вообще удалить в IOD символы и заново сгенерить двумя щелчками мышки и пройти путь по п.1 (так поступаю). Предварительно удалить ПЛИС в DxD на схеме, в навигаторе и в базе Symbol_View/local_symbols, сделать FA & BA. Чтобы не пропали разведенные цепи относящиеся к ПЛИС, необходимо убрать галки Trace_removal_options в FA .
5. Пины JTAG и питания (они не изменяются) выделяю в отдельные pcb символы. В этом случае сигналы JTAG необходимо добавить в IOD.
6. Перед серьезными изменениями советую закрыть DxD, Exp, IOD и сделать дамп проекта тупым копированием всего директория на архивный веник.
baken
Цитата(fill @ Oct 14 2009, 11:53) *

Спасибо за наводку, попробую.
SM
Вот... Первая попытка работы с IOD...
Ввел сигналы, назначил, создал символы в визарде, экспортировал. Получил два блока в моем проекте - "name" и "name_top" где "name" то, как я назвал в iod. А, собственно, как мне теперь все это соединить с моей схемой? Где мне взять символ, соответствующий тому, что я описывал в IOD, чтобы его поставить в схему?
Frederic
Цитата(SM @ Oct 18 2009, 18:42) *
Вот... Первая попытка работы с IOD...
Ввел сигналы, назначил, создал символы в визарде, экспортировал. Получил два блока в моем проекте - "name" и "name_top" где "name" то, как я назвал в iod. А, собственно, как мне теперь все это соединить с моей схемой? Где мне взять символ, соответствующий тому, что я описывал в IOD, чтобы его поставить в схему?

если без ЦБ, то из Symbols/Symbol_View/local_symbols , т.е. стандарный ввод элемента на схему
SM
Цитата(Frederic @ Oct 18 2009, 20:30) *
если без ЦБ, то из Symbols/Symbol_View/local_symbols , т.е. стандарный ввод элемента на схему

Да, там такой символ есть, но этот символ уже задействован в блоке "<name>_top", сгенеренном IOD-ом. Вот это меня смущает. Т.е. как я понял в этом блоке IOD понацеплял к нему цепей, но вот что дальше делать с этим блоком, я не понимаю. И символа, который соответствует этому "топовому" блоку я не вижу.

Или этот "топ" надо переместить из блоков в схемный лист проекта? Или вообще "забить" на него и по образу и подобию как в топе все подключить там, где мне надо?

(2007.7 версия, и IOD оттуда же встроенный)
Frederic
Цитата(SM @ Oct 18 2009, 22:15) *
Да, там такой символ есть, но этот символ уже задействован в блоке "<name>_top", сгенеренном IOD-ом. Вот это меня смущает. Т.е. как я понял в этом блоке IOD понацеплял к нему цепей, но вот что дальше делать с этим блоком, я не понимаю. И символа, который соответствует этому "топовому" блоку я не вижу.

Или этот "топ" надо переместить из блоков в схемный лист проекта? Или вообще "забить" на него и по образу и подобию как в топе все подключить там, где мне надо?

(2007.7 версия, и IOD оттуда же встроенный)

даю картинку, если не поймешь - завтра уточним
сненерил компонент из трех символов, котрорые ставим на схему :
ХС35S700_configpins.1
XC35S700_powerpins.1
XC35S700.1
и автоматом получаем еще XC35S700_pcb.1 (на схему его не ставим, это подсхема функционального символа XC35S700.1)
почему удобно использовать функциональный символ - вместо кучи проводников шины рисуем шину и она подключина к ПЛИС
SM
Цитата(Frederic @ Oct 19 2009, 00:57) *
даю картинку, если не поймешь - завтра уточним

Тема... Ну в общем не совсем раскрыта. Поясните назначение того, что находится в Blocks и кончается на _top (у Вас XC35S700AN-4FGG484C_top). Все символы я нашел, но я не понял смысла этого блока с окончанием на "top" - я должен его как-то его использовать, или это образец, как подключать все символы? Лично у меня в этом блоке, кончающемся на _top, установлен как раз сгенерированный функциональный символ, распихано часть .pcb-символов с питаниями, не касающимися IO, ну и config/JTAG, и к ним подведены "обрывки" цепей с названиями, как я их указал в IOD-е.

Я тоже использую функциональный символ, но я не совсем понимаю, как правильно его использовать, и для чего мне сгенерили этот самый блок, кончающийся на "_top".

И еще - а на кой он мне генерирует кучу символов с VREF-ами (либо добавляет их в символ с конфиг-пинами, смотря какие опции split-а символов), причем вне завсисмости от галки "Add VREF pins if required by I/O Standard" визарда. Да и ни одного пина у меня нет в таком стандарте, чтобы VREF нужен был. Т.е. по идее все врефы априори обычные I/O.
Frederic
Цитата(SM @ Oct 19 2009, 00:08) *
Тема... Ну в общем не совсем раскрыта. Поясните назначение того, что находится в Blocks и кончается на _top (у Вас XC35S700AN-4FGG484C_top). Все символы я нашел, но я не понял смысла этого блока с окончанием на "top" - я должен его как-то его использовать, или это образец, как подключать все символы? Лично у меня в этом блоке, кончающемся на _top, установлен как раз сгенерированный функциональный символ, распихано часть .pcb-символов с питаниями, не касающимися IO, config, JTAG, и к ним подведены "обрывки" цепей с названиями, как я их указал в IOD-е.

Я тоже использую функциональный символ, но я не совсем понимаю, как правильно его использовать, и для чего мне сгенерили этот самый блок, кончающийся на "_top"

то что находится в Blocks не трогай, функциональный символ и есть блок (как я понимаю) и он прописан в секции Blocks
top это верхний уровень, под ним лежит подсхема функциональ\ного символа

ты должен ставить на схему символы из Symbols/Symbol_View/local_symbols (если работаешь без ЦБ)
"подведены "обрывки" цепей с названиями, как я их указал в IOD-е." - увидеть цепи можно , если открыть функциональный символ в Blocks или выделить его на схеме и ПКМ Push_Schematic. обрывки цепей (это имена сигналов IOD) в символьном элементе превращаются в имена пинов и к ним в DxD подключить можно любую цепь или шину (если в IOD имеется шина то для DxD к функциональному символу возможно подключить шину с кол-вом сигналов прописанных в IOD или иначе не пройдешь упаковку)

"генерирует кучу символов с VREF-ами" и IOD кидает в символ ХС35S700_configpins.1 т.е. наверно считает их по функционалу JTAG, другого объяснения я не нашел, просто смирился с этим
SM
Цитата(Frederic @ Oct 19 2009, 01:41) *
то что находится в Blocks не трогай, функциональный символ и есть блок (как я понимаю) и он прописан в секции Blocks
top это верхний уровень, под ним лежит подсхема функциональ\ного символа


Не-не, там похоже не все так просто. Там сгенерено два блока. Первый, который не top, это и есть то, что снаружи представлено функциональным символом. А вот именно блок "top" - ведь не спроста он сгенерирован, наверное для чего то нужен. А если в него посмотреть - там просто стоит функциональный символ, символ с питачем и символ, в котором конфиг-пины. И к ним подведены цепи с такими названиями, как я их собственно и назвал. Спрашивается, зачем? Если его, этот топ, использовать не надо, а надо ставить сразу функциональный символ в свою схему. Или же top это просто образец, как цеплять сгенеренные символы, чтобы все соответствовало? Ведь именно в том самом top на power пины подается правильное питание, прописанное IOD-ом в соответсвии с тем, как он разбросал по банкам разные пины разных IO-стандартов. И если я его не использую, то мне придется powerpins вручную подключать.

Цитата(Frederic @ Oct 19 2009, 01:41) *
обрывки цепей (это имена сигналов IOD) в символьном элементе превращаются в имена пинов и к ним в DxD подключить можно любую цепь или шину (если в IOD имеется шина то для DxD к функциональному символу возможно подключить шину с кол-вом сигналов прописанных в IOD или иначе не пройдешь упаковку)

Это все так для того блока, который без добавки "_top". А я пытаюсь выяснить назначение "_top"-а


Вот картинка того, что у меня в top-e сгенерилось. То, что слева вверху - это уже экземпляр функционального символа! Соотв. этот блок никак не может быть "содержимым" функционального символа, если он сам в себе его содержит!

Нажмите для просмотра прикрепленного файла

ЗЫ.
Еще засада - если не ставить галку "Generate Full PCB Symbols", то похериваются сигналы питания PLL, которые в БД по плисам почему-то имеют тип "OTHER", и даже если я их принудительно описываю в списке сигналов, то все равно они пропадают. Причем, что удивительно, земля одной из PLL попала в тип "GND", земля второй - увы... нет... Тоже Other... Так что их база данных требует не меньшей перепроверки, чем собственно изготовленные символs smile.gif smile.gif Ужос. Никому доверять нельзя.

ЗЗЫ. Ну а под конец он просто упал, сказав такое smile.gif Так что на сегодня явно возиться хорошь....
Код
[PROLOG SYSTEM ERROR:  Thread 1
    Recursively received fatal signal 11
PROLOG STACK:
]

Action? /opt/mentor/EE2007.7/2007.7EE/SDD_HOME/IODesigner/resource/iod_env: line 15: 11184 Killed                  ${IOD_HOME}/IODesigner/iod "$@"
SM
В общем - конкретизирую вопрос. Как мне подключить блок "<name>_top" к схеме, чтобы все подключения цепей VCC/GND, сделанных IOD-ом, учитывались в моем проекте?
Frederic
Цитата(SM @ Oct 19 2009, 11:32) *
В общем - конкретизирую вопрос. Как мне подключить блок "<name>_top" к схеме, чтобы все подключения цепей VCC/GND, сделанных IOD-ом, учитывались в моем проекте?

да не трогай блок "<name>_top
вставляй в схему функциональный символ и свои два pcb JTAG и питания
дай картинки в word-е как ты генерил в IOD, по символу питания вижу ты делал замену имен питания в Preferences/SymbolGeneration
выложи проект или вышли по личке
SM
Цитата(Frederic @ Oct 19 2009, 12:41) *
вставляй в схему функциональный символ и свои два pcb JTAG и питания

Да как я могу вставить символ питания, когда IOD сам его должен подключать в зависимости от того, какие VCC на какой банк нужны с его точки зрения. Иначе зачем он мне все эти питачные сигналы авто-присваивает? Или мне вручную каждый раз в процессе оптимизации там питачи перекидывать?

Я не понял, как это дать картинки в ворде... Но скриншот могу:


Цитата(Frederic @ Oct 19 2009, 12:41) *
вижу ты делал замену имен питания в Preferences/SymbolGeneration

Да, естественно, чтобы подогнать под мои стандартные названия.
Frederic
Цитата(SM @ Oct 19 2009, 12:15) *
Да как я могу вставить символ питания, когда IOD сам его должен подключать в зависимости от того, какие VCC на какой банк нужны с его точки зрения. Иначе зачем он мне все эти питачные сигналы авто-присваивает? Или мне вручную каждый раз в процессе оптимизации там питачи перекидывать?

ты можешь пойти по нескольким путям с питанием например:
- сделать символ рсв питания без изменения имени пининия, т.е. имя пина в рсв будет как был по умолчани (типа Vdd Vcc и так далее). В схеме к кадждому пину к нему подключишь все что хочешь. Этот путь меня устраивает.
- не добавлять никуда, они попадут в pdb и станут глобальными
Цитата
Я не понял, как это дать картинки в ворде... Но скриншот могу:

путь генерации в IOD
SM
Цитата(Frederic @ Oct 19 2009, 13:35) *
ты можешь пойти по нескольким путям с питанием например:


Вы мне вот что скажите - а я могу просто как-то подключить тот самый блок, который на _top кончается, к проекту? Чтобы он стал одним из листов схемы. Меня бы это устроило полностью и безоговорочно...
Frederic
Цитата(SM @ Oct 19 2009, 12:43) *
Вы мне вот что скажите - а я могу просто как-то подключить тот самый блок, который на _top кончается, к проекту? Чтобы он стал одним из листов схемы. Меня бы это устроило полностью и безоговорочно...

1.мы в нете, поэтому без вы
2."блок, который на _top" повторяю еще раз,не трогай, бери символы из локальной базы
SM
Цитата(Frederic @ Oct 19 2009, 14:21) *
1.мы в нете, поэтому без вы
2."блок, который на _top" повторяю еще раз,не трогай, бери символы из локальной базы

1. Не привык я так, сорри.
2. Ну меня не устраивает из локальной базы. Ну не удобно это, когда IOD сам мне создал целый лист где все уже сам из локальной базы взял и подключил к нужным мне цепям! Зачем мне повторять всю работу, которую за меня сделали автоматом? Я просто хочу понять, как мне это использовать.
Frederic
Цитата(SM @ Oct 19 2009, 13:25) *
1. Не привык я так, сорри.
2. Ну меня не устраивает из локальной базы. Ну не удобно это, когда IOD сам мне создал целый лист где все уже сам из локальной базы взял и подключил к нужным мне цепям! Зачем мне повторять всю работу, которую за меня сделали автоматом? Я просто хочу понять, как мне это использовать.

1.привыкай smile.gif
2.он ничего не подключил. есть пин на функционально символе WP (соответственно и цепь WP нижележащей схемы), но к пину ты можешь подключить WP cхемы в DxD или любую цепь включая 0V или +3.3V и аналогично со всеми другими пинами , включая пины шин на которые подключаются шины DxD (которые могут отличаться от IOD)
fill
Наверно придется писать большими буквами (т.к. уже устал это повторять) ВСЕ ВАШИ ПРОБЛЕМЫ ИЗ-ЗА ИДЕОЛОГИИ ПРОЕКТИРОВАНИЯ ВЗЯТОЙ ИЗ PCAD-а.
1. Вы тащите все пины на символы - это источник ваших дальнейших проблем. Помимо того что они просто загромождают схему. Они например приведут к следующему:
Есть два пина, один с сигналом, другой не задействован. Соответственно один попал на "сигнальный" символ, другой на "неподсоединенный" символ. При перестановке сигнала между этими пинами, на обеих символах окажется бывший незадействованный пин, а ранее задействованный станет не размещенным. Поэтому придется перегенерировать все символы или решать эту проблему вручную. Эта же проблема будет при создании Full_PCB_Simbols.
2. Создание отдельных символов питания и т.п. удобно для построения многолистовой не иерархической схемы, и чревато дополнительными шагами для приведения схемы в порядок при итерациях перестановок.
3. Наиболее простой и производительный способ - это на символы выносить только пины с назначенными сигналами и не создавать отдельных пинов\символов для питания и т.п. В этом случае вы имеете функциональный символ на котором присутствуют все сигналы (многие в виде шин) который просто размещаете на вашей схеме и подключаете к нему цепи платы. Все остальные цепи\пины питания и т.п присутствую в PDB сгенеренном из IOD (раздел Supply_NC) и появляются на плате как глобальные цепи. Именно в этом случае нет никаких доп. шагов при различных перестановках, т.к. все изменения будут касаться только подсхемы генерируемой автоматом из IOD
4. Т.к. вы использовали отдельные символы питания и т.п. IOD сгенерировал две схемы. Первая стандартная используемая напрямую, т.к. является подсхемой для функционального символа. Вторая ( _top) для отображения "внешнего интерфейса", ее можно использовать только для копирования ее кусков на собственную схему. Если внимательно посмотрите на схему _top то увидите, что в отличие от подсхемы функционального символа на ней нет портов для связи цепей по иерархии и соответственно нет и ее символа.
Frederic
a14.gif
узок круг IOДизайнеров, страшно далеки они от народа biggrin.gif
SM
Цитата(fill @ Oct 19 2009, 16:29) *
Вторая ( _top) для отображения "внешнего интерфейса", ее можно использовать только для копирования ее кусков на собственную схему. Если внимательно посмотрите на схему _top то увидите, что в отличие от подсхемы функционального символа на ней нет портов для связи цепей по иерархии и соответственно нет и ее символа.


Вот! Спасибо! Этого ответа я и добивался изначально. Правда я надеялся, что этот лист схемы (_top) целиком можно без копирования поставить одним из листов design-а (типа как-то перетащить его туда, сменив "родителя" в дереве), чтобы он просто если что автоматически перегенерировался IOD-ом, после чего FA, и вуаля. Как всегда, надежды на удобство в работе не оправдываются. Ну а так, в общем то, после каждой перегенерации, если она привела к изменению на этом листе, не особо велик напряг скопировать его содержимое в лист из design-а. Просто я не вижу смысла ставить символ самостоятельно, и подводить к нему цепи и шины, когда это уже сделано за меня автоматом smile.gif

Насчет идеологии пикада - Вы не правы, как раз в пикаде все назначения питания я предпочитал делать в скрытых пинах (читай в pdb). А в данном конкретном случае у меня есть свои соображения для выноса питаний в символ, тем более, что подключает цепи питания к символу сам IOD.

И не тащу я все пины на символы. Это отчетливо видно на скриншоте. Исключительно задействованные.
fill
Цитата(SM @ Oct 19 2009, 20:23) *
Вот! Спасибо! Этого ответа я и добивался изначально. Правда я надеялся, что этот лист схемы (_top) целиком можно без копирования поставить одним из листов design-а (типа как-то перетащить его туда, сменив "родителя" в дереве), чтобы он просто если что автоматически перегенерировался IOD-ом, после чего FA, и вуаля. Как всегда, надежды на удобство в работе не оправдываются. Ну а так, в общем то, после каждой перегенерации, если она привела к изменению на этом листе, не особо велик напряг скопировать его содержимое в лист из design-а. Просто я не вижу смысла ставить символ самостоятельно, и подводить к нему цепи и шины, когда это уже сделано за меня автоматом smile.gif

Насчет идеологии пикада - Вы не правы, как раз в пикаде все назначения питания я предпочитал делать в скрытых пинах (читай в pdb). А в данном конкретном случае у меня есть свои соображения для выноса питаний в символ, тем более, что подключает цепи питания к символу сам IOD.

И не тащу я все пины на символы. Это отчетливо видно на скриншоте. Исключительно задействованные.


1. Этот лист принадлежит схеме _top. Поэтому сделать его принадлежностью другой схемы через какую-то ссылку мне представляется невозможным. Копировать лист, тоже самое что копировать кусок схемы, т.е. выигрыша никакого. Через иерархию тоже не получится т.к. _top в данном случае не "полноценен".

2. Скриншот не рассматривал, просто обратил внимание о генерировании Full_PCB_Symbols, а это как раз = тащить все пины на символ.

3. Кстати, для любителей "плоских" схем, в IOD8.0 появилась опция Export>Schematic_Update и судя по описанию
Цитата
Using this flow, the pin numbers of the symbols are not swapped, as is done during typical back
annotation from Expedition PCB. Instead, the net names and net stubs that have been placed on
the schematic are swapped.

она делает как раз то что многие пкадчики так любят - переставляет на схеме цепи, а не номера пинов.
Frederic
Цитата(fill @ Oct 19 2009, 15:29) *
3. Наиболее простой и производительный способ - это на символы выносить только пины с назначенными сигналами и не создавать отдельных пинов\символов для питания и т.п. В этом случае вы имеете функциональный символ на котором присутствуют все сигналы (многие в виде шин) который просто размещаете на вашей схеме и подключаете к нему цепи платы. Все остальные цепи\пины питания и т.п присутствую в PDB сгенеренном из IOD (раздел Supply_NC) и появляются на плате как глобальные цепи. Именно в этом случае нет никаких доп. шагов при различных перестановках, т.к. все изменения будут касаться только подсхемы генерируемой автоматом из IOD

сгенерил только один функциональный символ (на рис. видно)
и не получается сигналы JTAG подключить sad.gif
в AugmentedPins.txt видно что нет соединения "U1 | A21| <unconnected pin> " и т.д. в части JTAG
соответстенно в Ехр в разделе No connect Supply_NC пины JTAG присутствуют

как JTAG подключить ???
Inpharhus
Цитата(Frederic @ Nov 6 2009, 03:14) *
как JTAG подключить ???

В 3м шаге генерации в Symbol Wizard'e есть пункт "CONFIG and JTAG pins", возможно у вас просто выбрано "Do not use CONFIG and JTAG pins"
Frederic
Цитата(Inpharhus @ Nov 6 2009, 09:11) *
В 3м шаге генерации в Symbol Wizard'e есть пункт "CONFIG and JTAG pins", возможно у вас просто выбрано "Do not use CONFIG and JTAG pins"

совершенно верно и это сделано сознательно.
если выбрать "использовать" то получается символ с сигналами JTAG и vref, а я НЕ ХОЧУ его иметь на схеме и контролировать.
символ питание убрал (стало место больше на схеме smile.gif ) - цепи стали глабальными
хочу сделать все как пишет fill в п.3 , повторю еще
"3. Наиболее простой и производительный способ - это на символы выносить только пины с назначенными сигналами и не создавать отдельных пинов\символов для питания и т.п. В этом случае вы имеете функциональный символ на котором присутствуют все сигналы (многие в виде шин) который просто размещаете на вашей схеме и подключаете к нему цепи платы. Все остальные цепи\пины питания и т.п присутствую в PDB сгенеренном из IOD (раздел Supply_NC) и появляются на плате как глобальные цепи. Именно в этом случае нет никаких доп. шагов при различных перестановках, т.к. все изменения будут касаться только подсхемы генерируемой автоматом из IOD"
Asb
Э-э-э, а PCB символ под этим функциональным есть? А JTAG-pin'ы на нем есть ?
Вообще говоря я делаю немного по другому: В редакторе символов создаю свой конфигурационный символ и затем импортирую его в IOD как PCB символ.
В таблицу сигналов при этом, эти выводы можно не добавлять. В общем получается довольно удобно.
P.S. Маршрут DC-IOD-EXP, но не думаю, что в данном случае это существенно.
Frederic
Цитата(Asb @ Nov 6 2009, 12:18) *
Э-э-э, а PCB символ под этим функциональным есть? А JTAG-pin'ы на нем есть ?
Вообще говоря я делаю немного по другому: В редакторе символов создаю свой конфигурационный символ и затем импортирую его в IOD как PCB символ.
В таблицу сигналов при этом, эти выводы можно не добавлять. В общем получается довольно удобно.
P.S. Маршрут DC-IOD-EXP, но не думаю, что в данном случае это существенно.

конечно PCB символ под этим функциональным есть - иначе не выгрузить его в DxD
а вот JTAG-pin'ы на нем нет - в этом и загвоздка

я работаю в локальной базе, т.е. без ЦБ
и принципиально не хочу что то ваять в SE и импортироватть в IOD

как обычно без fill не разобраться smile.gif
SM
Цитата(Frederic @ Nov 6 2009, 11:39) *
если выбрать "использовать" то получается символ с сигналами JTAG и vref, а я НЕ ХОЧУ его иметь на схеме и контролировать.


Во-во, меня этот вопрос тоже очень интересует. Правда я не против отдельного символа для JTAG/Config, даже за, мне хорошо его на другой лист, нежели функ. символ, но чтобы без VREF-ов!!!!
Asb
Цитата(Frederic @ Nov 6 2009, 13:04) *
а вот JTAG-pin'ы на нем нет - в этом и загвоздка

А почему бы их туда не добавить в ручную из Pin-list (без Simbol Wizard'a). Понятно, что автоматизация не ice, но работать вроде должно.
P.S. Symbol Wizard'ом у меня вообще как то не очень получается пользоваться.
fill
1. Ваять можно непосредственно внутри IOD - для этого и существует окно Symbol
2. Естественно данные пины надо добавить как на функ. так и на pcb символ.
Взять все пины JTAG (в окне пинов или сигналов) и перетащить на символ секундное дело. Чтобы не искать их в списке достаточно включить фильтр (например щелкнув на JTAG в заголовке окна Device - в результате в окне Pins останутся только пины JTAG).

Также добавить\перераспределить пины можно в последнем шаге Symbol_Wizard - когда перед вами таблица - слева не размещенные пины, справа размещенные.
Frederic
Цитата(fill @ Nov 6 2009, 16:18) *
1. Ваять можно непосредственно внутри IOD - для этого и существует окно Symbol

просто ленивый я, тем более не получалось никогда получить 100% схему. постоянно какие то изменения и функциональный символ плывет sad.gif
Цитата
2. Естественно данные пины надо добавить как на функ. так и на pcb символ.
Взять все пины JTAG (в окне пинов или сигналов) и перетащить на символ секундное дело. Чтобы не искать их в списке достаточно включить фильтр (например щелкнув на JTAG в заголовке окна Device - в результате в окне Pins останутся только пины JTAG).
Также добавить\перераспределить пины можно в последнем шаге Symbol_Wizard - когда перед вами таблица - слева не размещенные пины, справа размещенные.

эх не хватает пимпочки для автоматизации этого процесса

и самое главное не получается пройти упаковку
т.к. я не использовал отдельные символы JTAG и питания то IOD сгенерировал одну схему. нет *_top

даю картинки. т.е. как я понимаю еще требуется и схема *_top для упаковки
как это понять ?
fill
В подсхеме сгенерированной IOD есть порт X_DONE?

Ничего дополнительного не требуется. Я модифицировал схему с двумя ПЛИС использованную в моем видео и все работает.
- добавил пины TMS, TDI, TDO, TCK на функ. символ и символ pcb
- сделал экспорт символов и схемы
вид на топе Нажмите для просмотра прикрепленного файла
вид внутри первого блока Нажмите для просмотра прикрепленного файла

Все упаковывется и аннотируется.
Frederic
Цитата(fill @ Nov 7 2009, 12:32) *
В подсхеме сгенерированной IOD есть порт X_DONE?

В подсхеме сгенерированной IOD порта X_DONE у меня почему то НЕТ crying.gif
я вижу на "вид внутри первого блока Нажмите для просмотра прикрепленного файла" у тебя для каждого сигнаа TMS, TDI, TDO, TCK имеется порт, который отсутствует у меня

Цитата
Ничего дополнительного не требуется. Я модифицировал схему с двумя ПЛИС использованную в моем видео и все работает.
- добавил пины TMS, TDI, TDO, TCK на функ. символ и символ pcb
- сделал экспорт символов и схемы
Все упаковывется и аннотируется.

как обычно у fill все работает smile.gif
сделал
1.пин DONE добавлен на на функ. символ и символ pcb - это видно на двух первых картинках
2.проблема только с добавлением сигнала X_DONE, т.к. без него все все упаковывется и аннотируется
janus
Вопрос - а как IOD сказать не перегенерировать подсхему? то есть - вручную создан лист подсхемы и на него поставлены символы _pcb, а при следующей синхронихации IOD заменяет лист на сгенеренный самостоятельно....
fill
Цитата(janus @ Nov 10 2009, 11:01) *
Вопрос - а как IOD сказать не перегенерировать подсхему? то есть - вручную создан лист подсхемы и на него поставлены символы _pcb, а при следующей синхронихации IOD заменяет лист на сгенеренный самостоятельно....


Если делаете экспорт схемы, то естественно схема генеририруется заново.
А зачем делать вручную именно эту подсхему, сделайте подсхему под другим именем, если вы ее все равно редактируете вручную. Символы _pcb на ней обновятся автоматом после экспорта из IOD.
janus
Цитата(fill @ Nov 10 2009, 11:09) *
Если делаете экспорт схемы, то естественно схема генеририруется заново.
А зачем делать вручную именно эту подсхему, сделайте подсхему под другим именем, если вы ее все равно редактируете вручную. Символы _pcb на ней обновятся автоматом после экспорта из IOD.

Экспот схемы не делался...делался экспорт символов, а потом синхронизация с дефолтными параметрами....Или я чего-то не понимаю, и это одно и то же?


Э.. Тогда в проекте будет две подсхемы? А мне совершенна не нужна подсхема криво сгенеренная ИОД с дефолтной форматкой А4, которую кстати, я поменятть почему-то не могу в данном проекте....=(
fill
Цитата(Frederic @ Nov 10 2009, 10:35) *
В подсхеме сгенерированной IOD порта X_DONE у меня почему то НЕТ crying.gif
я вижу на "вид внутри первого блока Нажмите для просмотра прикрепленного файла" у тебя для каждого сигнаа TMS, TDI, TDO, TCK имеется порт, который отсутствует у меня


как обычно у fill все работает smile.gif
сделал
1.пин DONE добавлен на на функ. символ и символ pcb - это видно на двух первых картинках
2.проблема только с добавлением сигнала X_DONE, т.к. без него все все упаковывется и аннотируется


Так все таки на функ. символе пин DONE или X_DONE? Чтобы не путаться назови сигнал DONE, тогда все имена станут одинаковыми и скорее всего проблема сразу исчезнет.
janus
Сорри, уточнение....Вручную был создан лист подсхемы с именем spartan6, на него указывал символ сгенеренный ИОД и на нем были размещены порты и _pcb...После синхронизации - в spartan6 вдруг стало два листа, причем, символы _pcb с первого листа перенеслись на второй лист....
fill
1. Есть несколько видов экспорта:
- Shematic_and_symbols - генерируется подсхема на которую размещаются генерируемые символы _pcb
- All_Symbols - генерируются только символы
- Selected_Symbol - генерируется только выбранный символ
- Schematic_Update - обновляется руками сделанная схема на которую были размещены символы _pcb
Так какой из них вы используете?
2. На сгенерированной IOD подсхеме ясно красными буквами написано - не модифицировать подсхему, т.к. она автоматом перерисовывается при выполнении экспорта Shematic_and_symbols
3. Если вы в проекте DxD указали используемые форматки для конкретных размеров листов (border.ini), то в IOD в Tools>Preferences>Symbol_Editor>Export будет доступна для авто размещения именно ваша форматка, выбираемая согласно размера листа заданного вами в Tools>Preferences>Symbol_Editor
4. Какой смысл заниматься "причесыванием" подсхемы на этапе первичной разработки? Когда закончите все перестановки пинов, тогда и можете привести подсхему в нужный вам вид.
janus
1. Использовался экспорт All_Symbols
2. Это понятно.
3. В проекте указана форматка А3. В ИОД - она не доступна. ЦБ ессно, подключена и в ЦБ эта форматка есть.
4. Тоже верно.. но - хочется все сразу =)

UPDATE: по п3 разобрался - в Preferences->Symbol Edito стоял размер листа А4 - забыл поправить...правда логика сего мне не понятно - почему размер листа выставляется в одном разделе, а форматка к этому листу в другом....ну да бог с ним, тут и почище нелогичности бывают...=)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.