реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Снова Altium и FPGA (Xilinx), Скрипт, который может помочь многим...
bms
сообщение Mar 16 2012, 14:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 11-08-05
Пользователь №: 7 545



Тема поднята в продлжение разговора в ветке http://electronix.ru/forum/index.php?showtopic=97632
Там вопрос так и не решился...

В поисках решения проблемы экспорта пинаута в файл ucf (кто знаком с FPGA от Xilinx - меня поймут) набрел на скрипт, который в принципе должен решать эту (и не только) проблему. И он даже немного ее решает.
Скрипт лежит тут: http://altium-designer-addons.googlecode.c...rTools_v3.0.zip

Проблема в том, что лично у меня этот скрипт заработал "частично". Т.е. экспорт он выполняет, но как-то уж очень выборочно... В моем случае имеется многолистовой проекте, где FPGA разбит на несколько партов. Парты находятся на разных листах схемы. Скрипт по непонятной логике выбирает какой-то один парт (не первый и не последний) и для него генерит ucf-файл. Генерит правильно. Но не для всего FPGA, а только для "понравившегося" кусочка. Всего остального как-будто и нет...
Скрипт заточен на разных производителей FPGA, я использую Xilinx, поэтому проверял работу скрипта в режиме экспорта для этого производителя. Возможно для, например, плисов от Altera он работает нормально...

Сам я в Delphi не силен, но может найдется человек, который "допилит" этот скрипт до нормального состояния? Ну или подскажет куда смотреть. Уверен, что этот скрипт был бы полезен очень многим разработчикам. Если бы работал нормально sm.gif

Заранее благодарен.
Go to the top of the page
 
+Quote Post
andrewkrot
сообщение Mar 16 2012, 19:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106



1. Экспортируйте свой проект из PCB в FPGA "tools/pcb to fpga project wizard".
2. Соедините два любых пина - чтобы проект не был пустым.
3. Синтезируйте этот проект в альтиуме
4. В папке ProjectOutputs\Configuration 1 появится желаемый ucf файл со всеми пинами и локами.
Go to the top of the page
 
+Quote Post
bms
сообщение Mar 19 2012, 07:19
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 11-08-05
Пользователь №: 7 545



Цитата(andrewkrot @ Mar 16 2012, 23:13) *
1. Экспортируйте свой проект из PCB в FPGA "tools/pcb to fpga project wizard".
2. Соедините два любых пина - чтобы проект не был пустым.
3. Синтезируйте этот проект в альтиуме
4. В папке ProjectOutputs\Configuration 1 появится желаемый ucf файл со всеми пинами и локами.


Этот путь был опробован (и обсужден на форуме) ранее. Путь кривой ибо приводит только к сообщениям "No valid FPGA components in project.", "No valid components. Cannot proceed."
Понятно, что это из-за того, что FPGA-библиотека не альтиумовская, а своя. Альтиумовская библиотека по ряду причин не годится. Это все обсуждалось уже, не хочется к этому возвращаться...

Сейчас речь идет о скрипте, который напрямую (прямо из схемы) способен генерить пинаут из проекта. Без всяких дополнительных телодвижений. (соединений пинов... синтеза проекта... и т.д.) Просто при старте скрипта нужно указать, какой компонент считать за FPGA. Все. Очень удобно. Но работает криво.
Скрипт требует доработки.
Go to the top of the page
 
+Quote Post
gammanoid
сообщение Jan 11 2013, 08:05
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 1-03-05
Из: г.Ростов-на-Дону
Пользователь №: 2 988



В очередном проекте появилось желание автоматизировать создание UCF для Xilinx в AD.
Скрипт VendorTools_v3.0 из google code - пропускал много выводов.
Вместо того, чтобы тратить время на ручное набивание UCF, и то я не большой знаток Delphi и API Альтиума,
все же решил попытаться поправить VendorTools_v3.0 под реальную задачу.

Может найдется кто потестировать и отправить коммит в Google Code.

Вот что у меня получилось.

Модифицированная версия на базе VendorTools_v3.0
  1. Добавлена переменная Net Tolerance для поиска метки на цепи подходящей к выводу.
    Она почему-то в метрической системе "плавает" и не точно "ложится" на цепь.
    Возможно что цепь не точно подводится к пину элемента.
  2. Добавлена возможность изменять Wire Length при экспорте UCF.
    Вроде бы так надежнее ищет метки цепей около выводов.
    В оригинальном скрипте было фиксированное значение 30000000,
    исчисляемое во внутренних "попугаях" (cInternalPrecision в 0,1 микродюймах).
    Было (пример для Pin.Orientation = eRotate180):
    Код
    NetItr.AddFilter_Area(Pin.Location.X - 30000000, Pin.Location.Y - 1, Pin.Location.X + 1, Pin.Location.Y + 1)

    Стало (пример для Pin.Orientation = eRotate180):
    Код
    GridSizeMM := CoordToMMs(SchDoc.VisibleGridSize);
    WireSizeMax := StrToInt(EditLength.Text) * GridSizeMM;
    WireSizeMin := 1;
    if Pin.Orientation = eRotate180 then
    begin
      X1 := Pin.Location.X - MMsToCoord(WireSizeMin);
      Y1 := Pin.Location.Y - MMsToCoord(WireSizeMin);
      X2 := Pin.Location.X + MMsToCoord(WireSizeMax);
      Y2 := Pin.Location.Y + MMsToCoord(WireSizeMin);
    end
            
    NetItr.AddFilter_Area(X1,Y1,X2,Y2);

    Т.е. по вертикали "окно поиска метки" расширено с 0,1 микродюйма до ±1 мм,
    а по горизонтали - до величины, заданной в поле Wire Length в единицах видимой сетки.
  3. Добавлена поддержка экспорта в xdc файл для Vivado
  4. Добавлена возможность сортировки ucf/xdc по имени цепи.
  5. Для отладки, при экспорте в Xilinx, создается второй файл с выводами элемента, у которых не обнаружено Net Label.


З.Ы. Почему-то мне попался для правки VendorTools_v3.0 и уже после своих доработок обнаружил более новую версию VendorTools_v3.5 by Caludio Veronesi
Глянул на изменения в коде - мне кажется его изменения незначительны для ликвидации пропусков.

Прикрепленные файлы
Прикрепленный файл  VendorTools_v3.1.zip ( 13.58 килобайт ) Кол-во скачиваний: 39
 
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 01:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016