Полная версия этой страницы:
Проблема экспорта из IOD 7.3
sgerasch
Oct 9 2008, 11:54
Проблема экспорта из IOD 7.3 в DxD.
Проблема при экспорте. IOD выдает ошибку при экспортировании Schematic and Symbols
Cannot export the constraints to the iCDB.
Error: FPC Path is not set
Не подскажете ли, где он устанавливается?
При экспортировании только символа - все нормально.
И еще вопрос - подскажите, как дальше этот символ добавить из локальных символов в центральную библиотеку?
Цитата(sgerasch @ Oct 9 2008, 15:54)

И еще вопрос - подскажите, как дальше этот символ добавить из локальных символов в центральную библиотеку?
В Dx выделяете символ, Edit>Local Symbol. В Symbol Editor File>Export Symbol.
Цитата(gray.k @ Oct 9 2008, 17:11)

В Dx выделяете символ, Edit>Local Symbol. В Symbol Editor File>Export Symbol.
Спасибо! Как вовремя. Только что хотел такой же вопрос задать.
sgerasch
Oct 10 2008, 14:31
Всем спасибо. Вопрос №1 решился обновлением софта последним апдейтами. Судя по всему IOD не присваивал автоматически при экспортировании свойство FPCPath символу.
gray.k Спасибо за ответ.
Еще вопрос - как создать ПОЛНЫЙ эелемент в библиотеке после экспортирования из IOD.
Схемный элемент я понял как, а как сделать Part и где брать Cell от этого элемента?
gray.k
Oct 13 2008, 07:53
Цитата(sgerasch @ Oct 10 2008, 18:31)

Всем спасибо. Вопрос №1 решился обновлением софта последним апдейтами. Судя по всему IOD не присваивал автоматически при экспортировании свойство FPCPath символу.
gray.k Спасибо за ответ.
Еще вопрос - как создать ПОЛНЫЙ эелемент в библиотеке после экспортирования из IOD.
Схемный элемент я понял как, а как сделать Part и где брать Cell от этого элемента?
http://megratec.ru/data/ftp/demo_video_200...assignments.rarIO создает *.hkp с данными Part, Cell естественно надо создавать...
Или загрузить с сайта производителя
https://www.altera.com/support/software/dow....oss=expedition.
sgerasch
Oct 13 2008, 12:28
Спасибо. Все понял.
IOD 7.3SP1, DxD2007.2
Добрый день. Подскажите пожалуйста путь решения проблемы -
Создаю в IOD символы для микросхемы XC2C256 в корпусе vq100.
Экспортирую символы в DxD local symbols. Оттуда экспортирую в Symdol Editor и наконец ипортирую в центральную библиотеку.
Но вот тут и происходит засада. Cell есть, PDB есть. Пытаюсь все это свести в единое целое - получаю ошибку например "P45 in sumbol XXX:xxx is not a valid pin number"
т.е. в IODesigner нумерация ножек корпуса vq100 - P1,P2,.....P100, а Library Manager желает явно чего то другого. Судя по всему - просто цифр номера ножки.
Подскажите, как эти грабли обойти. И не наступлю ли я на эти грабли, при создании PDB с корпусоб БГА, где нумерация ножек может быть буквенно-циферной.
Цитата(Maxim @ Oct 28 2008, 12:51)

Подскажите, как эти грабли обойти. И не наступлю ли я на эти грабли, при создании PDB с корпусоб БГА, где нумерация ножек может быть буквенно-циферной.
В принципе, буквенно-цифровые обозначения перевариваются нормально. Правда, вчера у меня был инциндент с нумеерацией пинов BGA памяти. Номер пина "H1" в Cell присваиваться отказывался категорически. Пришлось и в символе и в селле обозвать пин через маленькую букву "h1".
Цитата(Maxim @ Oct 28 2008, 13:51)

IOD 7.3SP1, DxD2007.2
Добрый день. Подскажите пожалуйста путь решения проблемы -
Создаю в IOD символы для микросхемы XC2C256 в корпусе vq100.
Экспортирую символы в DxD local symbols. Оттуда экспортирую в Symdol Editor и наконец ипортирую в центральную библиотеку.
Но вот тут и происходит засада. Cell есть, PDB есть. Пытаюсь все это свести в единое целое - получаю ошибку например "P45 in sumbol XXX:xxx is not a valid pin number"
т.е. в IODesigner нумерация ножек корпуса vq100 - P1,P2,.....P100, а Library Manager желает явно чего то другого. Судя по всему - просто цифр номера ножки.
Подскажите, как эти грабли обойти. И не наступлю ли я на эти грабли, при создании PDB с корпусоб БГА, где нумерация ножек может быть буквенно-циферной.
Откройте эту CELL в CELL_Editor и перенумеруйте
Нажмите для просмотра прикрепленного файла согласно номерам в IOD.
Основное правило - номера в CELL должны совпадать с номерами в IOD, если несовпадают, то исправляйте CELL.
sgerasch
Oct 28 2008, 15:41
Цитата(fill @ Oct 28 2008, 17:23)

Откройте эту CELL в CELL_Editor и перенумеруйте
Нажмите для просмотра прикрепленного файла согласно номерам в IOD.
Основное правило - номера в CELL должны совпадать с номерами в IOD, если несовпадают, то исправляйте CELL.
Но ведь эта Cell может использоватся и в других PDB. Тогда получается нужно отдельную CELL заводить, чтобы удовлетворить IOD'у?
Цитата(sgerasch @ Oct 28 2008, 19:41)

Но ведь эта Cell может использоватся и в других PDB. Тогда получается нужно отдельную CELL заводить, чтобы удовлетворить IOD'у?
Откройте datasheet по Spartan and Spartan-XL и увидите что этот корпус имеет номера совпадающие с IOD
Нажмите для просмотра прикрепленного файла . А теперь обратитесь по адресу - какого черта xilinx нумерует курпус с одним и тем же именем по разному в разных семействах.
sgerasch
Oct 28 2008, 16:47
Хорошо, тогда еще вопрос, Например хочу я создать в IOD схемный элемент.
Завожу сигнал - дифференциальный тактовый DIFF_CLK.
Микросхему использую Virtex5 5VLX-50t (FF1136 корпус), а сигнал этот, который я создал, присвоить никому нельзя. Т.к. IOD считает, что таких ног с функцией DIFF_CLK у этого корпуса нет. Хотя по даташиту на эту микросхему - дифклоков есть много. Ну и это не только на этом корпусе. еще на одном столкнулся с таким косяком.
Цитата(Svoy @ Oct 28 2008, 17:27)

В принципе, буквенно-цифровые обозначения перевариваются нормально. Правда, вчера у меня был инциндент с нумеерацией пинов BGA памяти. Номер пина "H1" в Cell присваиваться отказывался категорически. Пришлось и в символе и в селле обозвать пин через маленькую букву "h1".
Странно
Нажмите для просмотра прикрепленного файлаА вы не могли случайно вместо английской буквы русскую вставлять?
Цитата(sgerasch @ Oct 28 2008, 20:47)

Хорошо, тогда еще вопрос, Например хочу я создать в IOD схемный элемент.
Завожу сигнал - дифференциальный тактовый DIFF_CLK.
Микросхему использую Virtex5 5VLX-50t (FF1136 корпус), а сигнал этот, который я создал, присвоить никому нельзя. Т.к. IOD считает, что таких ног с функцией DIFF_CLK у этого корпуса нет. Хотя по даташиту на эту микросхему - дифклоков есть много. Ну и это не только на этом корпусе. еще на одном столкнулся с таким косяком.
Функцию соответсвующего пина переопределите:
Нажмите для просмотра прикрепленного файла
sgerasch
Oct 28 2008, 20:12
Fill
Что функцию переопределить для ножки это вполне понятно, я так и сделал когда понял, почему он не хочет присваивать. И вообще такой глюк у меня с разными типами сигналов и как минимум с 4 из 4 типов микросхем Ксайлинкса, которые есть в IOD и с которыми мне нужно сейчас работать.
Но ведь IOD для того и создан, чтобы он в автомате мог менять и присваивать сигналы меджу ножками. И на Вашей конференции(EDA Tech Forum) - было особо выделено то, что все делается в автоматическом режиме, мол ошибки человеческие будут таким образом исключены. А получается - снова с тетрадочкой и ручкой и докой - проверять соответствие сигналов например в микросхеме с 1136 ножками. Я конечно утрирую, но смысл, я думаю, понятен.
Цитата(sgerasch @ Oct 28 2008, 23:12)

Fill
Что функцию переопределить для ножки это вполне понятно, я так и сделал когда понял, почему он не хочет присваивать. И вообще такой глюк у меня с разными типами сигналов и как минимум с 4 из 4 типов микросхем Ксайлинкса, которые есть в IOD и с которыми мне нужно сейчас работать.
Но ведь IOD для того и создан, чтобы он в автомате мог менять и присваивать сигналы меджу ножками. И на Вашей конференции(EDA Tech Forum) - было особо выделено то, что все делается в автоматическом режиме, мол ошибки человеческие будут таким образом исключены. А получается - снова с тетрадочкой и ручкой и докой - проверять соответствие сигналов например в микросхеме с 1136 ножками. Я конечно утрирую, но смысл, я думаю, понятен.
IOD проверяет соответствие текущего типа сигнала с текущим типом пина, а не с возможными типами многозадачных пинов. Ошибки здесь исключены потому что вы не сможете выбрать тип пина, который не совпадает с возможностями данного пина ибо в списке типов пина есть только те типы которые допустимы для данного пина согласно документации от производителя.
Попробуйте ввести указанный вами сигнал, назначить ему тип IO и присвоить его на пин, таких пинов первоначально много. А теперь поменяйте тип сигнала - если этот пин может нести данную функцию, то его тип автоматически изменится на тип совпадающий с типом сигнала и сигнал останется назначенным в пин, если нет, то произойдет отказ от назначения - сигнал станет не назначенным в пин.
В IOD есть специальная закладка Special в которой собраны многозадачные и специальные пины.
sgerasch
Oct 29 2008, 13:46
Цитата(fill @ Oct 29 2008, 13:41)

IOD проверяет соответствие текущего типа сигнала с текущим типом пина, а не с возможными типами многозадачных пинов. Ошибки здесь исключены потому что вы не сможете выбрать тип пина, который не совпадает с возможностями данного пина ибо в списке типов пина есть только те типы которые допустимы для данного пина согласно документации от производителя.
Попробуйте ввести указанный вами сигнал, назначить ему тип IO и присвоить его на пин, таких пинов первоначально много. А теперь поменяйте тип сигнала - если этот пин может нести данную функцию, то его тип автоматически изменится на тип совпадающий с типом сигнала и сигнал останется назначенным в пин, если нет, то произойдет отказ от назначения - сигнал станет не назначенным в пин.
В IOD есть специальная закладка Special в которой собраны многозадачные и специальные пины.
Да спасибо. Убедился на примере - Тип пина IO, но со свойствами дифпары в названии ножек. На прямую его нельзя соотнести с сигналом дифференциальным. Но если с overwrite (+SHIFT), то IOD находит дифпары правильно.
sgerasch
Nov 1 2008, 14:57
Доброе время суток.
Имеется недопонимание в работе IOD и DxD.
Предпосылки. Создаю в IOD символ для микросхемы Spartan XC3S500E в корпусе 320 BGA.
Получаю в DxD локальные символы этой микросхемы. Отлично.
Теперь я на схему помещаю 2 УГО этой микросхемы , которые создал IOD и соединяю их между собой.
Делаю упаковку и перехожу в Expedition PCB. Расставляю 2 корпуса микросхемы и получаю ну не очень хорошие соединения. Не оптимальные. Ну, думаю я, для того и создан IOD в помощь разработчику, чтобы эти соединения оптимизировать. Отлично, запускаю IOD он весело все оптимизирует(смотреть аж приятно и дрожь пробирает, сколько бы руками парился), делаю синхронизацию и получаю, что ничего не изменилось. Т.к. символы созданые IODом используются и в 1 и во 2 УГО микросхем - IOD, как я понял - меняет их одновременно и ничего не меняется. Т.е. оптимизация не получается.
Не разъясните ли мне, как эти микросхемы инстанцировать, т.е. сделать каждый символ уникальным чтоли, ну или другой путь, как сделать оптимизацию связей.
Простой путь в лоб - создать IODом 2 разных символа с одним и тем же корпусом, но это не наш метод. Хочется по правильному.
А что это такое IOD, ссылку дайте плис, а то закостянел в своей непробиваемости
sgerasch
Nov 2 2008, 08:07
fill Спасибо, буду разбиратся.
Цитата(dch @ Nov 2 2008, 01:06)

А что это такое IOD, ссылку дайте плис, а то закостянел в своей непробиваемости
http://megratec.ru/catalog/117/118/18/
sgerasch
Nov 17 2008, 09:07
Цитата(fill @ Nov 1 2008, 23:35)

В полном соответствии с этим создал две базы.
У каждой микросхемы есть по 16 дифпар. Экспорт в Expedition PCB проходит нормально.
Пытаюсь загрузить в IOD LayoutDB.lyt в обной базе все проходит нормально.
А вот в другой получаю сообщение (см. прикрепленный файл.) что дифпары (split) разбиты.
Пробовал залочить дифпары - не помогает.
Пробовал присвоить свойство NOSWAP - то же, но вид с боку.
Подскажите, как сделать так, чтобы при экспорте в IOD дифпары не разбивались.
Причем, самое интересное, что дифпары разбиваются с ренумерацией
На VHDL это выглядит так
Код
entity WEST_XC3S500E is
port (
SYS_BUS_DIFF1_N<0> : inout std_logic;
SYS_BUS_DIFF1_N<10> : inout std_logic;
SYS_BUS_DIFF1_N<11> : inout std_logic;
SYS_BUS_DIFF1_N<12> : inout std_logic;
SYS_BUS_DIFF1_N<13> : inout std_logic;
SYS_BUS_DIFF1_N<14> : inout std_logic;
SYS_BUS_DIFF1_N<15> : inout std_logic;
SYS_BUS_DIFF1_N<1> : inout std_logic;
SYS_BUS_DIFF1_N<2> : inout std_logic;
SYS_BUS_DIFF1_N<3> : inout std_logic;
SYS_BUS_DIFF1_N<4> : inout std_logic;
SYS_BUS_DIFF1_N<5> : inout std_logic;
SYS_BUS_DIFF1_N<6> : inout std_logic;
SYS_BUS_DIFF1_N<7> : inout std_logic;
SYS_BUS_DIFF1_N<8> : inout std_logic;
SYS_BUS_DIFF1_N<9> : inout std_logic;
COM_RX : in std_logic;
COM_TX : out std_logic;
SELF_CLK : in std_logic;
SELF_DIN : in std_logic;
SELF_DOUT : out std_logic;
SELF_HSWAP : in std_logic;
SELF_INIT_B : out std_logic;
SELF_M : in std_logic_vector (0 to 2);
SRAM_CE2 : inout std_logic;
SRAM_CLK : inout std_logic;
SRAM_DATA : inout std_logic_vector (0 to 31);
SRAM_DATA_P : inout std_logic_vector (0 to 3);
SRAM_NADV : inout std_logic;
SRAM_NBW : inout std_logic_vector (1 to 4);
SRAM_NCE1 : inout std_logic;
SRAM_NCE2 : inout std_logic;
SRAM_NCEN : inout std_logic;
SRAM_NDE : inout std_logic;
SRAM_NLBD : inout std_logic;
SRAM_NRW : inout std_logic;
SRAM_ZZ : inout std_logic;
SW : in std_logic_vector (0 to 2);
G0_CLK : in std_logic;
SRAM_ADR : in std_logic_vector (0 to 16);
SYS_BUS_DIFF1_P : inout std_logic_vector (0 to 15) );
end WEST_XC3S500E;
За inout дифпары прошу не пинать, почему так сделано долго объяснять, но резон такой есть.
Чтоб разбираться с этим нужен тестовый проект.
sgerasch
Nov 17 2008, 13:16
Цитата(fill @ Nov 17 2008, 15:59)

Чтоб разбираться с этим нужен тестовый проект.
Вроде нашел решение.
Кроме того, что создаются в IOD дифпары нужно в настройках IOD указать на странице Advanced - Generate DIFF_PAIR artibuts. (Либо потом руками в DxD указывать этот атрибут для дифпар)
Сгенерить символы - экспортировать в DxD. Тут нужно учитывать, что Iod генерит символ с двумя шинами для дифпары например xxx_P b xxx_N.
Далее, в DxD нарисовать схему и соединить как требуется шины xxx_P b xxx_N с соответствующими на 2 микросхеме. и вот тут - нужно не забыть, что в шинах соединительных нужно указать свойство DiffPair на парную шину.
Дальше в Expedition и обратно в IOD. теперь все дифпары правильно экспортируются из Expedition в Iod.
подскажите,
хочу получить в DxD символы плис с подключенными цепями из IODes.
пользуюсь в IOD меню generate/schematic and simbol,
в DxD получаю желаемые символы с цепями, НО:
назначить соответствие имен HDL name и PCb name я могу для отдельных цепей (в окне Signals Properties),
а для шин не получается, как это сделать?
мне будет достаточно убрать знак массива (чтоб генерировались , к примеру для массива AD[10:0]
не цепи AD[10], AD[9]...AD[0] а, цепи AD10, AD9...AD0)
Цитата
...убрать знак массива (чтоб генерировались , к примеру для массива AD[10:0]
не цепи AD[10], AD[9]...AD[0] а, цепи AD10, AD9...AD0)
Насколько я понимаю, можно только изменить PCB name каждого сигнала внутри шины.
Для себя сделал небольшой TCL-скрипт, вроде работает.
Однако - есть проблема с дифф. сигналами - для них разные PCB name/HDL name реально не поддерживаются - Diff name у сигнала, входящего в пару может быть только одно (по крайней мере в IOD 7.3)
Цитата(Asb @ Dec 4 2008, 14:09)

Насколько я понимаю, можно только изменить PCB name каждого сигнала внутри шины.
Для себя сделал небольшой TCL-скрипт, вроде работает.
именно так, спасибо
Asb, подскажите где можно почитать про написание скриптов?
(хорошо-бы с примерами, есть потребность в них в DxDesigner)
Цитата(yura-w @ Dec 4 2008, 22:53)

... где можно почитать про написание скриптов?
Посмотрите здесь
http://electronix.ru/forum/index.php?showtopic=40229&hl=
Цитата(Asb @ Dec 5 2008, 12:54)

Посмотрите здесь
спасибо
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.