- Советы
- Включение мультипроцессорности
- Справка по командам выбранной категории
- Справка по командам
- Мониторинг параметров среды
- Изменение подробности вывода лога/выключение лога
- Выключение некоторых DRC-проверок
- Добавление временной метки в битстрим
- Использование внешних переменных среды в TCL
- Вызов одного скрипта из другого
- Выполнение shell-команды из скрипта
Советы
Note!: Все команды вводятся в интерпретаторе TCL в интерактивном или пакетном режимах.
Включение мультипроцессорности
1 | set_param general.maxThreads <значение> |
можно задавать значение от 1 до 8 ядер.
Справка по командам выбранной категории
1 | help -category <категория> |
Справка по командам
1 | read_xdc -help |
Мониторинг параметров среды
1 2 3 4 5 6 7 8 9 10 11 12 13 | % 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!: делаем осторожно — важное не выключаем!
1 | set_param messaging.defaultLimit 1000 |
— установка глобального лимита сообщений по умолчанию
1 | set_msg_config -suppress -id {[Synth 8-5544]} |
— в данном случае полностью выключается вывод информационного сообщения с ID типа «INFO: [Synth 8-5544]«
1 2 | set MSG_LIMIT 10 set_msg_config -id {[Synth 8-3331]} -limit $MSG_LIMIT |
— в данном случае вывод информационного сообщения с ID типа «INFO: [Synth 8-3331]» ограничивается выводом первых 10-ти сообщений
1 | set_property SEVERITY {Warning} [get_drc_checks LUTLP-1] |
— для интерпретации проверки на DRC c ID «LUTLP-1» как предупреждения, вместо критического предупреждения (позволяет получить битстрим, если вы действительно уверены, что в дизайне необходимы комбинационные петли)
Выключение некоторых DRC-проверок
В некоторых ситуациях необходимо выключить определенные типы DRC-проверок, сделать это можно следующим образом:
1 | set_property is_enabled false [get_drc_checks REQP-119] |
вот мой полный список отключенных проверок:
1 2 3 4 5 6 7 8 9 | 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] |
Добавление временной метки в битстрим
1 2 3 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
1 | $env(USER) |
— обращение к переменной $USER в shell
1 | if {![info exists env(USER)]} { ... } |
— проверка существования переменной $USER в shell
Вызов одного скрипта из другого
1 | source ../filter.tcl |
Выполнение shell-команды из скрипта
1 | exec cp -f ${PROJ}.bit ~/smb-share |
— копировать с перезаписью, если файл уже существует