Ezhen 0 2 октября, 2018 Опубликовано 2 октября, 2018 · Жалоба Коллеги, возникла небольшая проблема с трассировкой DRAM для Zynq-a. Мне надо учесть задержки в корпусе для правильного выравнивания линий в шинах, а достать эти задержки можно только из Vivado. Проблема в том, что чип XC7Z045 не поддерживается в бесплатной версии Vivado и сгенерить на него файл с задержками не получается. На XC7Z030 и ниже получается, а на XC7Z045 и выше - нет. Может кто-нибудь у кого нет таких глупых ограничений сгенерировать и запостить такой файл? Вот инструкции с форума Xilinx, как это сделать в гуи и в TCL консоле: 1) Open any design in Vivado, either RTL, Netlist or Implemented. Then select Export > I/O Ports > CSV. You will see all of the min and max package delays for each pin. The min/max trace delays are also displayed in the Package Pins window for every package pin within two separate columns. Similarly you can select File->Export I/O ports to get a CSV type spreadsheet with the delays included. 2) If there is no project you can use the following Tcl commands: link_design -part <part_number> write_csv <file_name> Для моего случая это по идее будет: link_design -part xc7z045ffg900-2 write_csv flight_time Спасибо за помощь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
10ff 0 3 октября, 2018 Опубликовано 3 октября, 2018 · Жалоба 13 hours ago, Ezhen said: Спасибо за помощь! Держите. Вроде бы раньше на сайте Xilinx выкладывали эти файлы с задержками, видимо для новых серий отказались от такой практики. flight_time.csv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ezhen 0 3 октября, 2018 Опубликовано 3 октября, 2018 · Жалоба 17 minutes ago, 10ff said: Держите. Вроде бы раньше на сайте Xilinx выкладывали эти файлы с задержками, видимо для новых серий отказались от такой практики. flight_time.csv На сайте нашел раздел с package files, в них есть название цепей, пины, принадлежность к банкам и т.д., но нет колонок с задержками, к сожалению. Спасибо за помощь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aldec 0 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба Как вариант померить импеданс от DRAM до выходных буферов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба On 10/2/2018 at 8:41 PM, Ezhen said: Спасибо за помощь! Если вам нужно на постоянной основе - можно поставить полную версию вивады. Она содержит встроенную лицензию на все web-девайсы, а для вызова link_design лицензия не требуется. PS Опа, это некропост оказывается. Но сам рецепт, тем не менее работает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 12 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба Интересно, в результирующем файле есть столбцы Max Delay и Min Delay. Я не нашел описания, откуда берется разбор. Видимо, эти значения получены из моделирования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 12 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба Если кому-нибудь интересно, поделюсь своими скриптами для упрощения жизни с пинделеями. Для вытаскивания пинаута с задержками в csv под линуксом: export_pinout_csv.sh #!/bin/sh VIVADO_VER=2018.3 . /opt/Xilinx/Vivado/$VIVADO_VER/settings64.sh export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 PART_NO="xc7k70tfbg484-2" echo "link_design -part \"$PART_NO\"" > pindelay.tcl echo "write_csv \"${PART_NO}.csv\"" >> pindelay.tcl echo "exit" >> pindelay.tcl vivado -nojournal -mode batch -source pindelay.tcl -log pindelay.log В переменную VIVADO_VER ставите свою версию, а в следующую строку - свой путь к установленному Vivado. В переменной PART_NO - соответственно, партномер в точном формате, как упоминается Vivado. Второй скрипт - для формирования из такого пинаута псевдо-csv файла для Allegro: convert_vivado_pindelay.py #!/usr/bin/env python import csv, sys pin_delay = [] with open( sys.argv[1] ) as f: r = csv.reader(f) for l in r: if l == [] or l[0] == '' or l[0][0] == '#': continue d = [l[i] for i in (1,4,5)] if d[1] == d[2] == '': continue try: t1 = float(d[1]) t2 = float(d[2]) except ValueError: continue pin_delay.append( [d[0], (t1+t2)/2.] ) print 'PIN DELAY\nREF DES U1\nDEVICE BGA...\nUNITS ps' for l in pin_delay: print '{0}\t{1:0.2f}'.format(l[0], l[1]) Написан на Python 2. Результат выдается в стандартный вывод, его можно перенаправить в нужный вам файл. Если для какого-то пина не указаны задержки - он в выходной файл не попадает. REF DES и DEVICE - поставить вручную какие надо. Т.к. я не совсем понимаю, откуда берутся Min delay / Max delay, в этом скрипте берется их среднее значение, точность в пикосекундах обрезается при печати до двух знаков после запятой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvlwork 0 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба На bash не проще? Что-то вроде этого: cat file |sed 's/#.*//'' |grep -v '^ *$' |awk -F, '{printf "%s\t%0.2f\n", $1, ($4+$5)/2.0}' Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 12 20 июня, 2019 Опубликовано 20 июня, 2019 · Жалоба 42 минуты назад, dvlwork сказал: На bash не проще? Что-то вроде этого: cat file |sed 's/#.*//'' |grep -v '^ *$' |awk -F, '{printf "%s\t%0.2f\n", $1, ($4+$5)/2.0}' Проще, но у меня сходу это заклинание не сработало :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться