|
|
  |
I/O Designer |
|
|
|
Mar 16 2012, 11:47
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 25-09-06
Пользователь №: 20 670

|
IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!? И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...?
Сообщение отредактировал SShLD - Mar 16 2012, 11:59
|
|
|
|
|
Mar 16 2012, 17:02
|
Знающий
   
Группа: Свой
Сообщений: 791
Регистрация: 14-05-05
Из: Минск
Пользователь №: 5 035

|
Цитата(SShLD @ Mar 16 2012, 14:47)  IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!? выложи проект, чтоб не гадать на кофейной гуще Цитата И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...? не подскажу, т.к. с "...ДатаБук..." не знаком-с
--------------------
Будь ты рабочий, будь ты профессор, а DxD-IOD-Exp должен знать каждый, чтобы не стать пособником империализма.
|
|
|
|
|
Mar 19 2012, 06:34
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 5-02-06
Пользователь №: 14 016

|
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:26
|
|
|
|
|
Mar 19 2012, 07:37
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 25-09-06
Пользователь №: 20 670

|
Del
Сообщение отредактировал SShLD - Mar 19 2012, 13:27
|
|
|
|
|
Mar 19 2012, 15:19
|

Гуру
     
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512

|
Цитата(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), потом наоборот - не помогает.. Тестовый проект выложите.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
Mar 19 2012, 18:28
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 5-02-06
Пользователь №: 14 016

|
Цитата(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, 04:08
|
|
|
|
|
Mar 20 2012, 15:56
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 5-02-06
Пользователь №: 14 016

|
Цитата(fill @ Mar 20 2012, 11:40) 
IOD_Diff_Pair.7z ( 84.62 килобайт )
Кол-во скачиваний: 54Ответ найдете в Tools>Rule_Editor
Спасибо, во первых, что пнули в нужном направлении. Предполагаю, Ваш пример 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:33
|
|
|
|
|
Mar 21 2012, 04:14
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 5-02-06
Пользователь №: 14 016

|
Таки назначил-таки дифф пару в банк 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 крайне нужны.
Сообщение отредактировал sast777 - Mar 21 2012, 04:33
|
|
|
|
|
Mar 21 2012, 08:19
|

Гуру
     
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512

|
Полный текст сообщения гласит: 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 - не знаю как это потом может отразится на синхронизации.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
Mar 21 2012, 15:14
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 5-02-06
Пользователь №: 14 016

|
Конгениально!
Залочить сигналы (я по наивности предполагал - запретить изменения ВСЕХ аттрибутов сигналов), а потом создать из них дифф пару (изменить аттрибут)... Неожиданно. Или дифф пара - это не аттрибут существующих пинов, а некий новый базовый объект в IOD-DxD-PCB, как пин?
Гады, достали жадностью, так покопать в ASCII хочется - что есть что...
Но - именно это и есть решение моей задачи в два клика. На боевом проекте все сработало, синхронизируется.
Недотряс я это дерево...
О сколько нам открытий чудных Готовят просвещенья дух Mentor И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель...
Спасибо, fill!
Сообщение отредактировал sast777 - Mar 21 2012, 15:32
|
|
|
|
|
Apr 9 2012, 18:53
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(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>. Тестовый проект во вложении.
|
|
|
|
|
Apr 9 2012, 22:49
|
Знающий
   
Группа: Свой
Сообщений: 791
Регистрация: 14-05-05
Из: Минск
Пользователь №: 5 035

|
Цитата(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 до сих пор не понимаю маникального не желания использовать функциональный символ и возможность подключать шины к ПЛИС просто двумя (точнее четырмя) щелчками мыши
Эскизы прикрепленных изображений
--------------------
Будь ты рабочий, будь ты профессор, а DxD-IOD-Exp должен знать каждый, чтобы не стать пособником империализма.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|