SM 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Подскажите пожалуйста такую вещь по IOD: - ПЛИСка Lattice LFXP2-5E-5MN132 Есть входная цепь "INCK", стандарт IO LVDS25, которая должна быть подключена на входной сигнал одной из двух PLL. Я ставлю ей стандарт LVDS25, ставлю тип PLLDIFF, после чего assign говорит, что нету таких пинов. Хотя я то точно знаю, что есть, а именно PT8A__ULC_GPLLT_IN_A__True_of_PT8B / PT8B__ULC_GPLLC_IN_A__Comp_of_PT8A и второй вариант - PB26A__LRC_GPLLT_IN_A__True_of_PB26B / PB26B__LRC_GPLLC_IN_A__Comp_of_PB26A В чем дело и как правильно тут поступить? Дальше хуже. Кроме этого есть еще пины IN, тоже LVDS25, и это та же физическая цепь, что и INCK (ну т.е. входной сигнал должен прийти одновременно и на dedicated вход PLL-ки, и на generic IO. Ну надо так. Там ШИ-модулированный 150-Мбитный поток данных), и правило по ее размещению - должна быть в том же банке, что и INCK. Тоже не понял, как это задать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Исключение человеческого фактора. Вероятность ошибки при вводе м\сх с 1000 ногами далека от нулевой, а ее цена очень высока. Да-да. Людям следует доверять только в самом крайнем случае (Це) Число пинов растет как на дрожжах :) Создать универсальный символ для ПЛИС невозможно, поскольку в каждом проекте свои сигналы, разные питания. И соответственно разные группы свапа. Второй раз повторяю - берем даташит и тупо создаем символ. Сигналы и питания назначаем при рисовании схемы. Назначение различных групп свапа вообще бесполезно, об этом тоже уже говорилось. Кроме того, группы свапа назначаются в pdb и никак не могут повлиять на создание символа. Например есть группа ног для ЦАПа, они 3,3В, им заданы банки 1-2 где они могут свапиться, есть ноги АЦП, они ЛВДС, т.е.2,5В им заданы банки 3-4. И нужно поменять местами. Или для ЦАП отдать 1,3. А еще есть клоки которые должны попадать на клоковые ноги, МГТ с его питанием, и т.д. В ИОД все это делается элементарно, в нем уже вся информация о плис. Без него все вручную, долго, непроизводительно, и при этом есть вероятность ошибки. Это Ваш ответ на вопрос о сигналах на этапе создания компонента? Первый раз слышу о сигналах в символе и pdb(кроме сигналов питания). Старею, наверное. Каждый волен расставлять вокруг себя любые грабли. Совершенно верно. Особенно если разработчик настолько неуверен в своих действиях, что мысль о свапе двух пинов вызывает страх. Удачи. Действия я привык совершать осознанно и нести полную ответственность за их последствия, так что по крайней мере в вопросах свапа она мне вряд ли понадобится, тем не менее спасибо, и Вам тоже удачи :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inpharh 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 (изменено) · Жалоба Есть входная цепь "INCK", стандарт IO LVDS25, которая должна быть подключена на входной сигнал одной из двух PLL. Я ставлю ей стандарт LVDS25, ставлю тип PLLDIFF, после чего assign говорит, что нету таких пинов. Хотя я то точно знаю, что есть, а именно PT8A__ULC_GPLLT_IN_A__True_of_PT8B / PT8B__ULC_GPLLC_IN_A__Comp_of_PT8A и второй вариант - PB26A__LRC_GPLLT_IN_A__True_of_PB26B / PB26B__LRC_GPLLC_IN_A__Comp_of_PB26A Рискну предположить что нужные пины имеют переключаемый тип и он в данный момент отличный от PLLDIFF, хотя я не совсем понял что именно вы делаете, да и IOD под рукой нет. Второй раз повторяю - берем даташит и тупо создаем символ. Сигналы и питания назначаем при рисовании схемы. Назначение различных групп свапа вообще бесполезно, об этом тоже уже говорилось. Кроме того, группы свапа назначаются в pdb и никак не могут повлиять на создание символа. Кому бесполезно, а кому нет. IOD генерит не только символ, но и pdb, главное не забыть о создании cell с указанным IOD именем. Вот кстати удивляюсь этому, что сложно было интегрировать в IOD сразу все необходимые cell'ы? Нарисовать не сложно, но время... Это Ваш ответ на вопрос о сигналах на этапе создания компонента? Первый раз слышу о сигналах в символе и pdb(кроме сигналов питания). Старею, наверное. IOD на выходе может создавать схематик с символами и уже присоединенными цепями к пинам. Изменено 17 сентября, 2009 пользователем Inpharhus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fill 2 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Подскажите пожалуйста такую вещь по IOD: - ПЛИСка Lattice LFXP2-5E-5MN132 Есть входная цепь "INCK", стандарт IO LVDS25, которая должна быть подключена на входной сигнал одной из двух PLL. Я ставлю ей стандарт LVDS25, ставлю тип PLLDIFF, после чего assign говорит, что нету таких пинов. Хотя я то точно знаю, что есть, а именно PT8A__ULC_GPLLT_IN_A__True_of_PT8B / PT8B__ULC_GPLLC_IN_A__Comp_of_PT8A и второй вариант - PB26A__LRC_GPLLT_IN_A__True_of_PB26B / PB26B__LRC_GPLLC_IN_A__Comp_of_PB26A В чем дело и как правильно тут поступить? А вы в окне Pins на этих пинах установили нужный тип - я так понимаю они многозадачные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Рискну предположить что нужные пины имеют переключаемый тип и он в данный момент отличный от PLLDIFF, хотя я не совсем понял что именно вы делаете, да и IOD под рукой нет. Я хочу соптимизировать подключение цепей к пинам исходя из заданных мной правил, как это показывал fill в ролике, где в IOD перенесено размещение компонентов на плате, и видны все цепи. Потом оттрассировать плату. После чего хочу сгенерировать verilog-шапку с получившимся назначением пинов, и начать писать описание устройства, реализованного в этой ПЛИС. А вы в окне Pins на этих пинах установили нужный тип - я так понимаю они многозадачные? А там предлагают только DIFF или IO, а PLLDIFF нету. DIFF не катит, так как свопится с чем попало.... А можно как-то "custom" тип добавить или сделать просто DIFF, но добавить констрейн, что только либо эта пара, либо та? Да и как я уже понял, в окне Pins не надо тип выставлять, IOD сам смотрит, есть ли нужный тип в списке, и если есть, то коннектит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба А в случае использования IOD даже не обязательно его качать, большинство ПЛИС уже в базе, надо только выбрать производителя, модель и корпус. Конечно, не обязательно качать. Настоящие ковбои даташитов не читают (Це) Сколько времени надо для того чтобы "тупо повторить даташит"? В IOD тупо генерация символов проделывается минут за 5-10, плюс полчаса-час на подгонку под ГОСТ, и это речь о корпусе FF1760 например. Символ, что ли, нарисовать? С 1760 ногами? Ой, как страшно Ну допустим, за рабочий день справлюсь... Ну ладно, так и быть, специально для Вас - за два А если меня посадят библиотекарем на постоянку, заточу соответствующий инструмент, и буду выдавать такие страшные символы ну максимум за пару часов. А что? А сколько времени нужно для создания компонента? Создание групп свопирования, сверка с даташитом каждого пина банка, питания и т.д... В IOD же просто надо по фильтру выделить все пины банка и пачкой определить в одну группу свопирования. И, как говорилось выше, исключение пресловутого человеческого фактора, ошибиться при ручном создании компонента элементарно. Не, ну про свопирование и человеческий фактор я третий раз повторять не буду. Устал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inpharh 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба А что - типы пинов переключать можно самому? Я думал IOD сам знает все варианты всех типов для всех пинов. Не можно, а нужно :) Он-то знает, соответственно доступны для переключения только доступные для этих пинов варианты. А там предлагают только DIFF или IO, а PLLDIFF нету. DIFF не катит, так как свопится с чем попало.... А можно как-то "custom" тип добавить или сделать просто DIFF, но добавить констрейн, что только либо эта пара, либо та? Присвоить DIFF, выбрать 2 нужные пары пинов и присвоить им собственную группу свопирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fill 2 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Я хочу соптимизировать подключение цепей к пинам исходя из заданных мной правил, как это показывал fill в ролике, где в IOD перенесено размещение компонентов на плате, и видны все цепи. Потом оттрассировать плату. После чего хочу сгенерировать verilog-шапку с получившимся назначением пинов, и начать писать описание устройства, реализованного в этой ПЛИС. А там предлагают только DIFF или IO, а PLLDIFF нету. DIFF не катит, так как свопится с чем попало.... А можно как-то "custom" тип добавить или сделать просто DIFF, но добавить констрейн, что только либо эта пара, либо та? Да и как я уже понял, в окне Pins не надо тип выставлять, IOD сам смотрит, есть ли нужный тип в списке, и если есть, то коннектит. Вообще-то IOD тип пина сам меняет только в случае изменения типа сигнала к нему подключенного. Т.е. если сигнал назначен нами в пин и мы поменяли тип сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Присвоить DIFF, выбрать 2 нужные пары пинов и присвоить им собственную группу свопирования. Ага, понял, спасибо. А как теперь поступить со второй частью вопроса - другой сигнал, который тоже DIFF, и правило для него "в том же банке, что и этот сигнал, но на любой дифпаре". Вообще-то IOD тип пина сам меняет только в случае изменения типа сигнала к нему подключенного. Т.е. если сигнал назначен нами в пин и мы поменяли тип сигнала. Ну как же так? Я вот описал пачку сигналов типа DIFF, сделал Assign pins with overwrite им, и он сам все подключил, куда надо причем, и поменял тип с IO на DIFF. ЗЫ. А можно как-то руками залезть в БД IOD-а и вручную нужным пинам добавить тип PLLDIFF? IMHO это упростило бы жизнь... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fill 2 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Ну как же так? Я вот описал пачку сигналов типа DIFF, сделал Assign pins with overwrite им, и он сам все подключил, куда надо причем, и поменял тип с IO на DIFF. Ключевое слово Assign pins with overwrite - вы принудили назначить сигнал в пин не его типа - в текущей версии не проверял, но так можно было назначить и в пин который не может быть такого типа вообще :rolleyes: . А можно как-то руками залезть в БД IOD-а и вручную нужным пинам добавить тип PLLDIFF? IMHO это упростило бы жизнь... В принципе да, но надо изучать документацию. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inpharh 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 (изменено) · Жалоба Символ, что ли, нарисовать? С 1760 ногами? Ой, как страшно Ну допустим, за рабочий день справлюсь... Ну ладно, так и быть, специально для Вас - за два А если меня посадят библиотекарем на постоянку, заточу соответствующий инструмент, и буду выдавать такие страшные символы ну максимум за пару часов. А что? А то что вы сами ответили на вопрос целесообразности IOD - экономия времени. А если "заточить" IOD, то и подгонять под ГОСТы почти нечего будет... Повторю еще раз - IOD одновременно генерит еще и pdb, а это тоже время. В любом случае сомневаюсь что какой-либо заточенный инструмент будет быстрее IOD по отношению к фпга, кроме случаев выхода новых плис еще не включенных в IOD :rolleyes: и то лишь до момента выхода соответствующих библиотек Ага, понял, спасибо. А как теперь поступить со второй частью вопроса - другой сигнал, который тоже DIFF, и правило для него "в том же банке, что и этот сигнал, но на любой дифпаре". Ну наверно все оставшиеся дифпары банка объединить в другую группу свопирования и прицепить к какой-нибудь дифпаре этот сигнал. А можно как-то руками залезть в БД IOD-а и вручную нужным пинам добавить тип PLLDIFF? IMHO это упростило бы жизнь... Если разберетесь в синтаксисе .\IOD\library\devices\... далее производитель, модель фпга и редактирование файла *.dev Изменено 17 сентября, 2009 пользователем Inpharhus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Кому бесполезно, а кому нет. IOD генерит не только символ, но и pdb, главное не забыть о создании cell с указанным IOD именем. IOD на выходе может создавать схематик с символами и уже присоединенными цепями к пинам. Не понял, зачем Вы мне это рассказываете? То, что иод Вам не бесполезен, я уже понял. Все остальные возможности иода узнал во время плотного знакомства с ним, сразу после перехода на Expedition. Спешите поделиться радостью иодного просветления? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба в текущей версии не проверял, но так можно было назначить и в пин который не может быть такого типа вообще :rolleyes: . Неа, не даеть... Только в пины, которые могут быть такими. Он по ходу физически не может переписать тип пина на тот, которого нет в списке. В принципе да, но надо изучать документацию. :rolleyes: Ну что же... Порою... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Повторю еще раз - IOD одновременно генерит еще и pdb, а это тоже время. Повторите третий раз, пожалуйста. Очень хочется еще раз почитать А я пожалуй, третий раз повторять не буду. Не просто устал, а очень устал :) Просто сделаю выводы и пойду работать. Всем иодным дизайнерам - привет!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 сентября, 2009 Опубликовано 17 сентября, 2009 · Жалоба Ну наверно все оставшиеся дифпары банка объединить в другую группу свопирования и прицепить к какой-нибудь дифпаре этот сигнал. А я вот чего не понял - а можно пин держать одновременно в нескольких группах свопирования? Ну а цепь, соответственно, в одной? И где эти списки этих групп вообще задаются? В .dev-файле беглым разбирательством я не нашел групп свопирования. В принципе да, но надо изучать документацию. :rolleyes: Спасибо еще раз, и Impharus-у тоже за наводку на .dev файлы, там по ходу можно и свои новые типы добавлять тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться