02-25-2019 10:24 PM
Hi,
I have two Tcl scripts like below which use "()" in regular expression, but Vivado always reports a warning or an error.
Can you give me any advice? Thanks.
set used_bram [get_cells -hier -regexp -filter {PRIMITIVE_SUBGROUP == "(BRAM|FIFO)"}]
WARNING: [Vivado 12-180] No cells matched 'get_cells -hier -regexp -filter {PRIMITIVE_SUBGROUP == "(BRAM|FIFO)"}'.
set used_bram [get_cells -hier -regexp -filter {PRIMITIVE_SUBGROUP == (BRAM|FIFO)}]
ERROR: [Common 17-263] There was a syntax error while parsing filter expression: 'PRIMITIVE_SUBGROUP == (BRAM|FIFO)' at position '19'
02-26-2019 06:11 PM
The best way to solve these problems is to open the implemented design and use the find command.
get_cells -hierarchical -filter { PRIMITIVE_TYPE =~ BLOCKRAM.BRAM.* || PRIMITIVE_TYPE =~ BLOCKRAM.FIFO.* }
02-26-2019 06:20 PM
Another example
get_cells -hierarchical -regexp -filter { PRIMITIVE_TYPE =~ BLOCKRAM.* }
get_cells -hierarchical -regexp -filter {LIB_CELL =~ .*GT[HPRXYZ]E\d_CHANNEL.* || LIB_CELL =~ .*GT[HPRXYZ]E\d_COMMON.*}