Што не так с опцией -hier в командах get_ и почему паттерн с \ или / не вернет вам значений
Уж коль я упомянул в прошлом посте про группу команд get_ , то давайте пойдем дальше и обсудим один мааааааааааленький нюанс.
Для некоторых команд get_ есть опция -heir или -hierarchical, которая предназначена для поиска объектов по всей иерархии вниз от текущего модуля (што такое текущий инстанс в иерархии я расскажу как-нибудь потом)
В общем, опция -hierarchical предполагает, что поиск объектов будет выполняться по уровню иерархии. И если в паттерне поиска будет стоять \ (или /) то с огромной долей вероятности вместо списка объектов вивада вам поводит по губам.
Note: Разделитель иерархии, он же hierarchy separator может быть \ или / . Узнать какой он у вас можно с помощью команды get_hierarchy_separator
Разберем пример
Откройте любой post-synthesis проект и в консоли напишите
llength [get_cells -hierarchical *]
Эта команда вернет вам число, которое скажет сколько элементов класса cell есть в нетлисте (в моем случае 5534)
Теперь попробуем найти все GND элементы:
llength [get_cells -hierarchical GND]
В моем случае нашлось 244 элемента.
А теперь давайте найдем сколько элементов GND на каком нить уровне иерархии или определенном модуле. Найдите модуль, где есть GND и сделайте поиск с разделителем иерархии. Например вот так
llength [get_cells -hierarchical *mdm*/GND]
и вуаля - количество найденных элементов 0, хотя на самом деле GND в этом модуле есть. Почему так произошло, где GND Лебовски?
===
Продолжение следует
tcl
vivado