Полная версия этой страницы:
I/O Designer
Frederic
Aug 27 2009, 14:18
Цитата(fill @ Aug 27 2009, 15:22)

Создал простой проект - две FPGA.
....
Шины есть. Перестановки работают. Все синхронизируется.
Ну и где проблема?
Александр спасибо за фильм.
твой фильм показал, что мои выше выложенные картинки соответствуют фильму или наоборот
за исключением IOD, т.к. у тебя IOD8, придется проверить это на 7.4
Frederic
Sep 2 2009, 19:56
Цитата(fill @ Jan 25 2008, 13:31)

как я это сделал ???
а можно данный сигнал подключить одновременно к разным банкам ?
Frederic
Sep 6 2009, 00:56
Цитата(fill @ Aug 27 2009, 15:22)

Создал простой проект - две FPGA.
Внутри в каждой по шине с диф. парами. 22 сигнала.
На верхнем уровне схемы два функциональных символа сгенеренных IOD.
ftp/exp_movie/new/...OD_Exp_2BGA.avi[/url]
.....
Шины есть. Перестановки работают. Все синхронизируется.
Ну и где проблема?
есть проблема и как понимаю в IOD7.4
назначил диф.пары в IОD, выгрузил в DxD (тут диф.парами и не запахло, но ладно) forward в Ехр
диф.пары в Ехр не появились (это нормально

), назначил диф.пары руками. смотрим - расположение шины не оптимально
back аннотация, далее синхронизация в IОD. все ОК.
оптимизирую шины, выгрузка в DxD и о ля ля диф.пары пропали
forward в Ехр и тут диф.пар НЕТ.
и Ехр орет что надо делать back аннотация, куда деваться - делаем
и если тупо сделать синхронизацию в IOD то и здесь диф.пары пропадут
теперь понятно почему в IОD (у меня IОD требовал синхронизацию, т.к. в Ехр пропали диф.пары) происходило расчепление дифшин
теперь после каждого этапа оптимизации в IОD в DxD руками в CES заново руками прописываю диф.пары
может я не поставил какую галку ?
но кажется все облазил
Просто так как правило ничего не происходит (на ваших примерах вы это уже наверняка заметили). Надо разбираться в конкретном примере.
Как вы выдели у меня в проекте ничего не рассыпается.
Диф. пары для Expedition формируются в CES, значит надо разбираться почему у вас в CES они пропадают.
Цитата(Frederic @ Sep 2 2009, 23:56)

как я это сделал ???
а можно данный сигнал подключить одновременно к разным банкам ?
Достаточно посмотреть проект и станет ясно откуда появились два сигнала, скорее всего из схемы аннотировались.
Frederic
Sep 9 2009, 21:21
Цитата(fill @ Sep 7 2009, 15:00)

Диф. пары для Expedition формируются в CES, значит надо разбираться почему у вас в CES они пропадают.
виноват-с, не поставил галку в МАЛЕНЬКОМ сером квадратике в IOD при синхронизации
дифпары появились в DxD соответственно и в Ехр без ручного формирования в CES
Цитата
Достаточно посмотреть проект и станет ясно откуда появились два сигнала, скорее всего из схемы аннотировались.
выше G_A_S задавал вопрос - Необходимо, чтобы сигнал INT_CS (он глобальный и для него выделена одна ножка на ПЛИС: G11 для 4VSX35) был подключен к любой еще одной ножке. Можно ли это сделать и как?
ответ - Да хоть к 10-ти.
а как в IOD без аннотирования подключить к двум ногам один сигнал ?
и ноги в разных банках и д.б. возможность их свопировать в своем банке
Frederic
Sep 27 2009, 12:02
все сраслось в DxD-Exp-IOD, проект синхронизирован
решил перекинуть сигнал с АА2 на АА1 и выскакивает картинка с проблемой в iCDB
если игнорировать - не пройдет упаковка в DxD
просмотрел структуру папок проекта, в database\ в ряду s1....s5 отсутствует s2

куда смотреть и где копать ?
поднял недельной давности проект для контроля - swap и все ОК
вдогонку, работаю в локальной, без ЦБ
просмотрел таблицу сигналов и пинов и увидел, что в таблице пинов не для всех пинов проставлен swap group
dmitry-tomsk
Jul 12 2011, 10:13
Подскажите, почему не работает экспорт символа в DC 7.9.1! Выдаёт ошибку ascii in : **** Error. Invalid text type in *TTEXT statement
Цитата(dmitry-tomsk @ Jul 12 2011, 14:13)

Подскажите, почему не работает экспорт символа в DC 7.9.1! Выдаёт ошибку ascii in : **** Error. Invalid text type in *TTEXT statement
Кириллица?
Цитата(dmitry-tomsk @ Jul 12 2011, 14:13)

Подскажите, почему не работает экспорт символа в DC 7.9.1! Выдаёт ошибку ascii in : **** Error. Invalid text type in *TTEXT statement
Я бы предположил использование пользовательского атрибута, про который IOD не в курсе.
dmitry-tomsk
Jul 12 2011, 14:02
Цитата(Asb @ Jul 12 2011, 16:14)

Я бы предположил использование пользовательского атрибута, про который IOD не в курсе.
Да кто его знает! Вот файл. Не нравятся все строки с TEXT
Нажмите для просмотра прикрепленного файла
Так все таки что вы делаете? Какой такой экспорт символа, если вы уже выложили нам экспортированный ASCII вариант?
Импортируете символ в IOD или наоборот в ЦБ?
В ЦБ он спокойно импортируется, и в IOD тоже.
7.9.2
dmitry-tomsk
Jul 12 2011, 14:34
Цитата(fill @ Jul 12 2011, 17:18)

Так все таки что вы делаете? Какой такой экспорт символа, если вы уже выложили нам экспортированный ASCII вариант?
Импортируете символ в IOD или наоборот в ЦБ?
В ЦБ он спокойно импортируется, и в IOD тоже.
7.9.2
А я нажимаю меню export/current symbol. Больше пока не умею.
Цитата(dmitry-tomsk @ Jul 12 2011, 18:34)

А я нажимаю меню export/current symbol. Больше пока не умею.
Во время этого процесса в консоле IOD (если она открыта) идет куча текстовых сообщений.
В частности будет командная строка утилиты asc_in. Среди прочих параметров будет проект с настройками которого запускается утилита.
Если IOD нормально настроен (и нормально работает - что увы бывает не всегда) там будет имя Вашего проекта со ссылкой на ЦБ и на файл
описания свойств (обычно СentLib.prp). Если нет - IOD использует свой шаблонный проект - вот здесь и может оказаться засада.
Это как вариант. К сожалению c IOD никогда нельзя быть в чем-то уверенным до конца

.
Цитата(dmitry-tomsk @ Jul 12 2011, 18:34)

А я нажимаю меню export/current symbol. Больше пока не умею.
Блин ну прям как дети.
Можете грамотно сформулировать последовательность ваших действий, так чтобы было понятно остальным?
Т.е. только теперь я могу только догадаться что есть некий проект в IOD.
В котором нарисован символ.
Вы нажимаете на кнопку Export>Current_Symbol и в окне Console видите некие ошибки.
При этом символ все таки создается (если вы его выложили нам).
Так какого ж рожна вы выкладываете нам этот символ вместо исходного проекта и ЦБ, на которых можно было бы понять что системе не нравится.
Что прикажете делать с этим символом?
dmitry-tomsk
Jul 12 2011, 18:53
Цитата(fill @ Jul 12 2011, 19:01)

Блин ну прям как дети.
Можете грамотно сформулировать последовательность ваших действий, так чтобы было понятно остальным?
Т.е. только теперь я могу только догадаться что есть некий проект в IOD.
В котором нарисован символ.
Вы нажимаете на кнопку Export>Current_Symbol и в окне Console видите некие ошибки.
При этом символ все таки создается (если вы его выложили нам).
Так какого ж рожна вы выкладываете нам этот символ вместо исходного проекта и ЦБ, на которых можно было бы понять что системе не нравится.
Что прикажете делать с этим символом?

Всем спасибо за помощь! Это я указал в IOD маршрут DC, а ЦБ DxD
Frederic
Jul 12 2011, 19:40
Цитата(fill @ Jul 12 2011, 18:01)

Блин ну прям как дети.
...

спокойствие только спокойствие
без литровой клюквенной финляндии не разобраться
dmitry-tomsk
Jul 14 2011, 20:37
Подскажите, что не так!
1) экспорт в DC сделал в slb файл
2) поправили графику символов и поместили их в ЦБ
3) поменяли распиновку в pin файле
4) сделал synchronize на pin файл
4) импортировал символ из ЦБ, согласился на замену
5) экспортировал символы в slb файл, вместо номеров выводов слово pin number, в inp файлах на том месте где должно быть pin number стоит ""
Цитата(dmitry-tomsk @ Jul 15 2011, 00:37)

Подскажите, что не так!
1) экспорт в DC сделал в slb файл
2) поправили графику символов и поместили их в ЦБ
3) поменяли распиновку в pin файле
4) сделал synchronize на pin файл
4) импортировал символ из ЦБ, согласился на замену
5) экспортировал символы в slb файл, вместо номеров выводов слово pin number, в inp файлах на том месте где должно быть pin number стоит ""
Номера пинов присутствую в PDB. При упаковке схемы они отобразятся и на схеме.
Вы пошли работать по более сложному пути:
- если символы редактировали в ЦБ и затем импортировали в IOD, то подразумевается что все модификации символов призводят в ЦБ, а не в IOD, и используется процесс Update_Schematic - т.е. при перестановке пинов в IOD в схеме перемещаются цепи, т.к. символы "заморожены".
- зачем вообще теперь импортировать символы снова в ЦБ, ведь по идее при такой работе их надо "заморозить" на уровне IOD?
- при импорте новой распиновки, да и перестановках могут возникнуть ньюансы: например пины были задействованы, а теперь нет и наоборот - вопрос - они были отображены на разных символах и вообще не задействованные пины были отображены или нет?
Например на символе есть пин ХХХ с номером 11 к которому подключен сигнал YYY. Согласно новому pin файлу этот пин теперь не используется и сигнал YYY подключен к пину ААА с номером 22 (имена пинов вы наверняка выбрали согласно имени в datasheet, а не поименам сигналов), получается что символы надо переделывать - если использовать имена сигналов в качестве имен пинов и все модификации символов делать внутри IOD, то не возникает такого гемороя.
Прочтите внимательнее тренинг IOD там расписаны четыре варианта работы и отмечены плюсы и недостатки каждого варианта.
dmitry-tomsk
Jul 15 2011, 17:00
Цитата(fill @ Jul 15 2011, 13:06)

Номера пинов присутствую в PDB. При упаковке схемы они отобразятся и на схеме.
Вы пошли работать по более сложному пути:
- если символы редактировали в ЦБ и затем импортировали в IOD, то подразумевается что все модификации символов призводят в ЦБ, а не в IOD, и используется процесс Update_Schematic - т.е. при перестановке пинов в IOD в схеме перемещаются цепи, т.к. символы "заморожены".
- зачем вообще теперь импортировать символы снова в ЦБ, ведь по идее при такой работе их надо "заморозить" на уровне IOD?
- при импорте новой распиновки, да и перестановках могут возникнуть ньюансы: например пины были задействованы, а теперь нет и наоборот - вопрос - они были отображены на разных символах и вообще не задействованные пины были отображены или нет?
Например на символе есть пин ХХХ с номером 11 к которому подключен сигнал YYY. Согласно новому pin файлу этот пин теперь не используется и сигнал YYY подключен к пину ААА с номером 22 (имена пинов вы наверняка выбрали согласно имени в datasheet, а не поименам сигналов), получается что символы надо переделывать - если использовать имена сигналов в качестве имен пинов и все модификации символов делать внутри IOD, то не возникает такого гемороя.
Прочтите внимательнее тренинг IOD там расписаны четыре варианта работы и отмечены плюсы и недостатки каждого варианта.
Оказалось в inp файле всё же есть номера выводов. Вот только в slb они не отображаются. А при импорте в ЦБ через сервис отображаются. В ЦБ символ правится один раз - сразу после создания и импортируется в ИОД один раз, далее меняются только номера выводов, для оптимизации трассировки. Использовать swap вообще нет смысла - в плис нюансов столько, что без проверки на имплементацию каждого варианта рспиновки легко получить нерабочую плату.
AHTuKiLLeR
Dec 20 2011, 05:16
Потихоньку осваиваю пакет IOD (9.2) + DxD(PADS 9.3).
Есть проект в Квартусе для Циклона 3. В проекте обозначено что 2 банка(3 и 4) оперируют логическим уровнем в 2.5 В (SSTL-2 Class I). Остальные - 3 В (3.0-V LVCMOS). Проекти экспортируется в файлы *.pin и *.fx.
Через Визард в IOD формируется проект. Но вот какая неожиданность возникает. После инструмента Tools->Update power signals
Пины Vref банка 3(R6, R7 и R9) привязываются к группе V_3_0 (должны к V_2_5), а банка 8 (D4, D6, D8) к группе VCCO(должны к V_3_0). В принципе потом можно вручную сделать как надо. Но так ли оно дожно быть?
И второе. Я пока так еще и не понял различие в типе Symbols. Чем различаются Functional от PCB? Если я правильно понимаю, то потом символы передаются в DxD, составляется схема, которая передается уже дальше для разводки. Поэтому символы должны быть COMPOSITE(части одного посадочного места). Правильно ли я все понимаю?
Проверьте внимательно тип всех сигналов в банке 3. Там есть не SSTL-2 Class I.
В банке 8 нет назначенных сигналов. Если перенести в него сигнал из соседнего банка с типом 3.0-V LVCMOS, то
Нажмите для просмотра прикрепленного файлаСимволы PCB это примитивы представляющие части микросхемы.
Функциональный символ - представляет всю микросхему и содержит под собой по иерерхии сгенерированную подсхему из символов PCB.
Т.е. если на схему платы разместить один функциональный, то не нужно отдельно размещать все PCB.
Volosatyi
Jan 19 2012, 08:56
Цитата(fill @ Nov 21 2007, 17:29)

А в этом видео есть звук? А то у меня на компьюере нет звуковой аппаратуры, не могу проверить.
Цитата(Volosatyi @ Jan 19 2012, 12:56)

А в этом видео есть звук? А то у меня на компьюере нет звуковой аппаратуры, не могу проверить.
Нет.
Frederic
Jan 22 2012, 17:54
Цитата(Volosatyi @ Jan 19 2012, 10:56)

А в этом видео есть звук? А то у меня на компьюере нет звуковой аппаратуры, не могу проверить.
нет
shirokov1
Jan 31 2012, 13:49
Есть плисина XC3S500E корпус PQ208. I/O Designer pin number ставит P1 P2 и т.д. а посадочное место имеет нумерацию 1 2 и т.д. Проблема вот в чём при передаче в Expedition он не может сопоставить P1<->1 ну и т.д. Что делать?
Цитата(shirokov1 @ Jan 31 2012, 17:49)

Есть плисина XC3S500E корпус PQ208. I/O Designer pin number ставит P1 P2 и т.д. а посадочное место имеет нумерацию 1 2 и т.д. Проблема вот в чём при передаче в Expedition он не может сопоставить P1<->1 ну и т.д. Что делать?
Изменить нумерацию в посадочном - делается за пять секунд.
shirokov1
Feb 1 2012, 06:40
Изменяя нумерацию в посадочном месте на P1 P2 и т.д. ментор пишет что посадочное место должно содержать 208 ног а их нет и отказывается сохранять... Замкнутый круг... Легче наверное обходиться без ИО Дезайнера!
Frederic
Feb 1 2012, 11:04
Цитата(shirokov1 @ Feb 1 2012, 08:40)

Изменяя нумерацию в посадочном месте на P1 P2 и т.д. ментор пишет что посадочное место должно содержать 208 ног а их нет и отказывается сохранять... Замкнутый круг... Легче наверное обходиться без ИО Дезайнера!
что за бред
нарисовать Cell и нумерацию поставить P1 P1 и т.д. и т.п.
может в Cell реально меньше ног ???
Извиняюсь, а почему IOD делает такую странную нумерацию? Имхо все нормальные люди нумеруют без буковок P. Вряд ли в этом есть смысл, а если так, то надо имхо начинать c IOD все-таки.
shirokov1
Feb 1 2012, 11:26
Цитата(vitan @ Feb 1 2012, 15:10)

Извиняюсь, а почему IOD делает такую странную нумерацию? Имхо все нормальные люди нумеруют без буковок P. Вряд ли в этом есть смысл, а если так, то надо имхо начинать c IOD все-таки.
Потому что IOD такой странный, у него Pin number идёт только с буквой P и никак это не изменяется... С BGA корпусами всё в порядке нумерация совпадает и там и там.
Цитата(vitan @ Feb 1 2012, 15:10)

Извиняюсь, а почему IOD делает такую странную нумерацию?
Задайте этот вопрос производителю.
Все сделано согласно его спецификации.
Нажмите для просмотра прикрепленного файлаКак я и говорил - ничего нет сложного с перенумерацией
видео
shirokov1
Feb 1 2012, 11:46
У вас данная Cell применена в каком-то PDB (о чем и написано простым английским языком) и соответственно вы не можете изменять ее номера пинов, т.к. тогда будет не соответствие таблицы в PDB.
Меняйте в LM через Tools>Modify_Cell_&_Symbol_Pins - тогда изменения произойдут одновременно и в Cell и в PDB.
Или просто скопируйте Cell (как сделал я) и перенумеруйте ее. И создайте новый PDB с ней.
shirokov1
Feb 1 2012, 12:18
Цитата(fill @ Feb 1 2012, 16:11)

У вас данная Cell применена в каком-то PDB (о чем и написано простым английским языком) и соответственно вы не можете изменять ее номера пинов, т.к. тогда будет не соответствие таблицы в PDB.
Меняйте в LM через Tools>Modify_Cell_&_Symbol_Pins - тогда изменения произойдут одновременно и в Cell и в PDB.
Или просто скопируйте Cell (как сделал я) и перенумеруйте ее. И создайте новый PDB с ней.
ОГРОМНОЕ СПАСИБО!! Получилось через Tools>Modify_Cell_&_Symbol_Pins
Целый день на это убил...
IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!?
И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...?
Frederic
Mar 16 2012, 17:02
Цитата(SShLD @ Mar 16 2012, 14:47)

IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!?
выложи проект, чтоб не гадать на кофейной гуще
Цитата
И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...?
не подскажу, т.к. с "...ДатаБук..." не знаком-с
sast777
Mar 19 2012, 06:34
IOD 7.9.3, Altera Cyclone IV - как создать дифф пару там, где ее не должно быть?
Altera DDR2 controller использует как клок два пина IO standard = SSTL 1.8 Class I, один из которых проинвертирован в буфере IO FPGA;
То есть эти два пина не являются дифф парой SSTL 1.8 Class I по DataSheet на Cylclone, они образуют дифф пару когда используются как LVDS .
Поэтому IOD честно выполняет свои функции: он не дает назначить дифф пару SSTL 1.8 Class там, где ее нет.
Но мне-то надо на PCB получить дифф пару!
Как заставить IOD создать из двух сигналов дифф пару в банке, где все остальные пины - стандарта SSTL 1.8 Class I,
при условии, что нужные мне пины образуют дифф пару в IOD только как LVDS?
Уже без разницы какого типа IO присвоить пинам, лишь бы была пара..
В Types Compatibility отмапировал (Signal) DIFF -> IO (pin), потом наоборот - не помогает..
Цитата(sast777 @ Mar 19 2012, 10:34)

IOD 7.9.3, Altera Cyclone IV - как создать дифф пару там, где ее не должно быть?
Altera DDR2 controller использует как клок два пина IO standard = SSTL 1.8 Class I, один из которых проинвертирован в буфере IO FPGA;
То есть эти два пина не являются дифф парой SSTL 1.8 Class I по DataSheet на Cylclone, они образуют дифф пару когда используются как LVDS .
Поэтому IOD честно выполняет свои функции: он не дает назначить дифф пару SSTL 1.8 Class там, где ее нет.
Но мне-то надо на PCB получить дифф пару!
Как заставить IOD создать из двух сигналов дифф пару в банке, где все остальные пины - стандарта SSTL 1.8 Class I,
при условии, что нужные мне пины образуют дифф пару в IOD только как LVDS?
Уже без разницы какого типа IO присвоить пинам, лишь бы была пара..
В Types Compatibility отмапировал (Signal) DIFF -> IO (pin), потом наоборот - не помогает..
Тестовый проект выложите.
sast777
Mar 19 2012, 18:28
Цитата(fill @ Mar 19 2012, 17:19)

Тестовый проект выложите.
Создал тестовый проект IOD.
Что нужно:
Нужно создать из сигналов SCLK_P, SCLK_N дифф пару, именно на тех пинах, которые назначены.
Чтобы сохранить возможность синхронизации IOD <-> PCB.
Могут быть любого IO типа, стандарта, дешевле потом ручками в Quartus назначить правильный IO standard.
Перемещать их как пару уже не планируется, лишь бы не мешали синхронизации.
А вот все остальные пины в процессе разводки в пределах Swap Group могут свопиться -
- и вот тут-то кровь из носу нужен аттрибут дифф пары одновременно и в DxD-CES-PCB, и в IOD, для поддержания синхронизации IOD-PCB.
Планируемый вариант действий, если Вам не удастся помочь мне, прошу прощения, "изнасиловать" IOD (как понимаю, основной смысл IOD - именно не дать использовать пины непредусмотренным в IOD для конкретной FPGA образом.):
Уже на PCB назначить дифф пару SCLK_P, SCLK_N, развести, залочить, удалить дифф пару. Потом уже разводить и в процессе свопить прочее.
Получить окончательную расстановку пинов на PCB, последний раз синхронизировать проект IOD и в данном проекте забыть об IOD.
Потом снова назначить в PCB дифф пару SCLK_P, SCLK_N - и потом уже tune..
Мда...
Если ставить задачу в общем виде - то как в IOD на произвольных пинах FPGA создавать дифф пары одной Swap Group ?
sast777
Mar 20 2012, 15:56
Цитата(fill @ Mar 20 2012, 11:40)

Спасибо, во первых, что пнули в нужном направлении.
Предполагаю, Ваш пример Rule1 следует рассматривать как просто демонстрацию ВОЗМОЖНОЙ реализации правила?
Потому что в моем тестовом проекте Ваш пример помогает, как гильотина от насморка - радикально.
В останках моего тестового проекта, который Вы вернули, наличествует дифф пара из нужных мне пинов, как просил - но это все...
Причем в нем сигналы LVDS назначены на пины LVDS - а зачем новое правило писать, LVDS на LVDS и так дифф пару создают :-)
Все остальные назначеные мной 60 сигналов применение этого правила просто сносит..
Появляется окно "Rules validation Error", Currently set rules caused error(s)
и в этом окне столбиком "Assignment for signal <SignalName> to pin <n> is not valid", все назаченные сигналы.
Если Apply Rule - все назначения удаляет.
Аналогично действие этого Rule1, импортированного в боевой проект.
Тогда уж, как говорится, "дал дерьма - дай ложку" - нет ли дополнительных доков по работе с Rule?
Понимаю, что сами доки дать нельзя - а хотя бы их названия?
А то из 333 листов "I/O Designer for FPGA User Guide" глава 7, "User-defined Rules", занимает аж целых три листа...
В тренингах вообще ничего.
А инструмент-то, похоже, весьма полезный, надо бы разобраться.
sast777
Mar 21 2012, 04:14
Таки назначил-таки дифф пару в банк c пинами SSTL Class 1, правда без User defined Rule
Введение собственного My_Rule по совету Александра у меня приводит к конфликту моего My_Rule и существующей в IOD базе правил.
Получаю оконо ошибки, что My_Rule не совместимо с существующим назначением сигнала Signal[n], и в этом окне все мои сигналы столбиком...
Когда окно закрывается - все мои сигналы - unassigned.
Попробовал по-простецки:
Сигналы SCLK_P, SCLK_N сделал LDVS
В банке 2, где все сигналы - SSTL Class 1, нужные мне пины P1, P2 сделал LDVS.
Выделил пины P1,P2 -> "Show only selected pins"
При Cntrl+Shift+(Drug signal to pins) получаю окно ошибки:
cannot assign signal 'SCLK' to 'P1' - Differential pad with IO standard LVDS has to be at least 5 PIN away from output p...
Больше в окно ошибки не влезло, что за "p..." - Mentor его знает.
Тогда снес только в банке 2 все сигналы, не отменяя того, что пины в банке 2 - SSTL Class 1, и сигналы LVDS встали на нужные пины LVDS. Удивился, но слава богу. Залочил сигналы.
Но вот просто снова назначить сигналы SSTL Class 1 на пины SSTL Class 1 в банке 2 IOD не дал.
Тогда выделил нужный мне пин, и "Show only selected pins"
Потом - Cntrl+Shift+(Drug signal to pin)
Назначилось!
И так по одному назначил все нужные мне сигналы в банке 2. Ну хоть остальные 7 банков переназначать не пришлось.
Так что доки по написанию User Rules крайне нужны.
Полный текст сообщения гласит:
Cannot assign signal 'SCLK' to 'P2,P1' - Differential pad with IO standard LVDS has to be at least 5 PIN away from output pad.
Смотреть надо в окне Console.
Т.е. пины LVDS не должны быть близко к пинам выходным.
Правило отслеживается при размещении, т.е. если размещать LVDS при размещенных выходных, то нарушение не дает выполнить команду. Если выходные убрали, то дает, т.к нет нарушения. Обратное, т.е. LVDS размещены и размещаем выходные тоже пройдет, т.к. здесь уже возможен режим принудительного размещения по одному пину.
В "I/O Designer™ for FPGA User Guide" есть приложение "Device-dependant Assignment Rules" где расписаны отслеживаемые правила.
Соответственно через Rule_Editor определяются правила для переопределения и\или дополнительные.
Что надо вводить определяется обыкновенной логикой предполагаемых действий, готовых рецептов нет.
Кстати проходит также и такая последовательность:
В исходном примере выбрать эти два сигнала.
ПКМ>Lock_Signals
ПКМ>Create_Differential_Pair
Сигналы становятся дифференциальными, ничего не сбрасывается. Правда тип пина остается IO - не знаю как это потом может отразится на синхронизации.
sast777
Mar 21 2012, 15:14
Конгениально!
Залочить сигналы (я по наивности предполагал - запретить изменения ВСЕХ аттрибутов сигналов), а потом создать из них дифф пару (изменить аттрибут)...
Неожиданно.
Или дифф пара - это не аттрибут существующих пинов, а некий новый базовый объект в IOD-DxD-PCB, как пин?
Гады, достали жадностью, так покопать в ASCII хочется - что есть что...
Но - именно это и есть решение моей задачи в два клика.
На боевом проекте все сработало, синхронизируется.
Недотряс я это дерево...
О сколько нам открытий чудных
Готовят просвещенья дух Mentor
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...
Спасибо, fill!
BSACPLD
Apr 5 2012, 18:09
Раньше при загрузке нового *.fx файла менялись номера пинов, а теперь меняются имена сигналов. Как сделать так, чтобы просто менялись номера пинов, а не сами сигналы? Версия EE7.9.2.
Цитата(BSACPLD @ Apr 5 2012, 22:09)

Раньше при загрузке нового *.fx файла менялись номера пинов, а теперь меняются имена сигналов. Как сделать так, чтобы просто менялись номера пинов, а не сами сигналы? Версия EE7.9.2.
В настройках проекта что стоит?
Schematic Update или Schematic Export?
BSACPLD
Apr 9 2012, 18:53
Цитата(fill @ Apr 9 2012, 17:04)

В настройках проекта что стоит?
Schematic Update или Schematic Export?
Schematic Export
Уже разобрался. В свойстве Port Binding нужно было поставить Signal вместо Pin.
Теперь другая проблема. При автоматическом свапировании пинов в Expedition и последующем Back Annotation в IOD происходит некорректное переназначение пинов.
Например, пин ddr2_ch1_ck_p вместо номера AB10 (в Expedition) имеет значение <none>.
Тестовый проект во вложении.
Frederic
Apr 9 2012, 22:49
Цитата(BSACPLD @ Apr 9 2012, 21:53)

Schematic Export
Уже разобрался. В свойстве Port Binding нужно было поставить Signal вместо Pin.
Теперь другая проблема. При автоматическом свапировании пинов в Expedition и последующем Back Annotation в IOD происходит некорректное переназначение пинов.
Например, пин ddr2_ch1_ck_p вместо номера AB10 (в Expedition) имеет значение <none>.
Тестовый проект во вложении.
проверил, такого не наблюдаю
но в начале провел полную синхронизацию проекта IOD-DxD-Exp
до сих пор не понимаю маникального не желания использовать функциональный символ и возможность подключать шины к ПЛИС просто двумя (точнее четырмя) щелчками мыши
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.