Перейти к содержанию
    

IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!?

И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...?

Изменено пользователем SShLD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

IOD ругается на то что не может загрузить Layout и в следствии этого я не вижу в IOD соединения с плис. Все аннотации сделаны... Какова может быть причина этой ошибки!?

выложи проект, чтоб не гадать на кофейной гуще

 

И Ещё вопрос я так понимаю в DxD чтобы Пакейджер не затирал мне свойства элемента из ДатаБук надо отключить галочку Update Prop from PDB как то так, я правилно понимаю...?

не подскажу, т.к. с "...ДатаБук..." не знаком-с :(

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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), потом наоборот - не помогает..

 

Тестовый проект выложите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тестовый проект выложите.

Создал тестовый проект 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 ?

IOD_Diff_Pair.rar

Изменено пользователем sast777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

IOD_Diff_Pair.7z

Ответ найдете в Tools>Rule_Editor

post-512-1332240343_thumb.png

 

Спасибо, во первых, что пнули в нужном направлении.

 

Предполагаю, Ваш пример 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Таки назначил-таки дифф пару в банк 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полный текст сообщения гласит:

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 - не знаю как это потом может отразится на синхронизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конгениально!

 

Залочить сигналы (я по наивности предполагал - запретить изменения ВСЕХ аттрибутов сигналов), а потом создать из них дифф пару (изменить аттрибут)...

Неожиданно.

Или дифф пара - это не аттрибут существующих пинов, а некий новый базовый объект в IOD-DxD-PCB, как пин?

 

Гады, достали жадностью, так покопать в ASCII хочется - что есть что...

 

Но - именно это и есть решение моей задачи в два клика.

На боевом проекте все сработало, синхронизируется.

 

Недотряс я это дерево...

 

О сколько нам открытий чудных

Готовят просвещенья дух Mentor

И опыт, сын ошибок трудных,

И гений, парадоксов друг,

И случай, бог изобретатель...

 

Спасибо, fill!

Изменено пользователем sast777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раньше при загрузке нового *.fx файла менялись номера пинов, а теперь меняются имена сигналов. Как сделать так, чтобы просто менялись номера пинов, а не сами сигналы? Версия EE7.9.2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раньше при загрузке нового *.fx файла менялись номера пинов, а теперь меняются имена сигналов. Как сделать так, чтобы просто менялись номера пинов, а не сами сигналы? Версия EE7.9.2.

 

В настройках проекта что стоит?

Schematic Update или Schematic Export?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В настройках проекта что стоит?

Schematic Update или Schematic Export?

Schematic Export

Уже разобрался. В свойстве Port Binding нужно было поставить Signal вместо Pin.

Теперь другая проблема. При автоматическом свапировании пинов в Expedition и последующем Back Annotation в IOD происходит некорректное переназначение пинов.

Например, пин ddr2_ch1_ck_p вместо номера AB10 (в Expedition) имеет значение <none>.

Тестовый проект во вложении.

USIU2_IOD.rar

Uch_Library_EE2007_full.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Schematic Export

Уже разобрался. В свойстве Port Binding нужно было поставить Signal вместо Pin.

Теперь другая проблема. При автоматическом свапировании пинов в Expedition и последующем Back Annotation в IOD происходит некорректное переназначение пинов.

Например, пин ddr2_ch1_ck_p вместо номера AB10 (в Expedition) имеет значение <none>.

Тестовый проект во вложении.

проверил, такого не наблюдаю

но в начале провел полную синхронизацию проекта IOD-DxD-Exp

 

до сих пор не понимаю маникального не желания использовать функциональный символ и возможность подключать шины к ПЛИС просто двумя (точнее четырмя) щелчками мыши :twak:

post-5035-1334012891_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...