Журнал Эмбеддед-Инженера

Коллекция советов и подсказок по работе с Xilinx Vivado в командной строке TCL

Советы

Note!: Все команды вводятся в интерпретаторе TCL в интерактивном или пакетном режимах.

Включение мультипроцессорности

set_param general.maxThreads <значение>

можно задавать значение от 1 до 8 ядер.

Справка по командам выбранной категории

help -category <категория>

Справка по командам

read_xdc -help

Мониторинг параметров среды

% report_param

Name                                    Value  Type     Description
bd.useOldFindObjs                       0      boolean  If set to true tool will use previous implementation of find_bd_objs for relation connected_to and connected_to_hierip.
general.maxThreads                      8      integer  Maximum threads created for Vivado Value should be >= 1 and <= 8
gui.enableImprovedElfAssociationDialog  1      boolean  When true use the new improved elf association dialog box. Default is true
labtools.hw_server_timeout              120    integer  Parameter to control the wait to connect to hw_server timeout in seconds
labtools.ila.autoCloseIlaData           1      boolean  Automatically close ILA data objects when associated WCFG closes
labtools.set_target_frequency                  string   Parameter to set target frequency
labtools.use_vcse_server                0      boolean  When enabled the connect_hw_server command will start the legacy vcse_server and conect to the server otherwise vcse_server will not be used
simulator.compiled_library_dir                 string   Directory containing compiled simulation libraries
tcl.collectionResultDisplayLimit        500    integer  Maximum number of elements that can be displayed by any commands that display a collection.  Make unlimited with limit set to 0. (default: 500)
tcl.statsThreshold                      5      integer  Display runtime and memory stats for any command that runs longer than this threshold specified in seconds.  Disable with threshold < 0. (default: 5)

Изменение подробности вывода лога/выключение лога 

 Note!: делаем осторожно — важное не выключаем!

set_param messaging.defaultLimit 1000

— установка глобального лимита сообщений по умолчанию

set_msg_config -suppress -id {[Synth 8-5544]}

— в данном случае полностью выключается вывод информационного сообщения с ID типа «INFO: [Synth 8-5544]«

set MSG_LIMIT 10 
set_msg_config -id {[Synth 8-3331]} -limit $MSG_LIMIT

— в данном случае вывод информационного сообщения с ID типа «INFO: [Synth 8-3331]» ограничивается выводом первых 10-ти сообщений

set_property SEVERITY {Warning} [get_drc_checks LUTLP-1]

— для интерпретации проверки на DRC c ID «LUTLP-1» как предупреждения, вместо критического предупреждения (позволяет получить битстрим, если вы действительно уверены, что в дизайне необходимы комбинационные петли)

Выключение некоторых DRC-проверок

В некоторых ситуациях необходимо выключить определенные типы DRC-проверок, сделать это можно следующим образом:

set_property is_enabled false [get_drc_checks REQP-119]

вот мой полный список отключенных проверок:

set_property is_enabled false [get_drc_checks REQP-119]
set_property is_enabled false [get_drc_checks REQP-1839]
set_property is_enabled false [get_drc_checks DPIP-1]
set_property is_enabled false [get_drc_checks DPOP-1]
set_property is_enabled false [get_drc_checks REQP-1577]
set_property is_enabled false [get_drc_checks REQP-165]
set_property is_enabled false [get_drc_checks REQP-14]
set_property is_enabled false [get_drc_checks RPBF-3]
set_property is_enabled false [get_drc_checks RPBF-4]

Добавление временной метки в битстрим 

##### ddddd_MMMM_yyyyyy_hhhhh_mmmmmm_ssssss
##### (bit 31)......................(bit 0)
set_property BITSTREAM.CONFIG.USR_ACCESS TIMESTAMP [current_design]
report_property [current_design] BITSTREAM.CONFIG.USR_ACCESS

 — для добавления таймштампа в примитив USR_ACCESS 

Использование внешних переменных среды в TCL

$env(USER) 

— обращение к переменной $USER в shell

if {![info exists env(USER)]} { ... }

— проверка существования переменной $USER в shell

 Вызов одного скрипта из другого

 source ../filter.tcl

Выполнение shell-команды из скрипта

exec cp -f ${PROJ}.bit ~/smb-share

— копировать с перезаписью, если файл уже существует

 

 

PS: если заметка помогла Вам, поделитесь ей с друзьями или коллегами: