| <h3 id='___get_cells'>get_cells</h3> | |
| <pre>Get all cells in the current module or sub-modules (LLM: find/get instance) | |
| <b>Usage:</b> my @cells = get_cells($pattern, @options); | |
| $pattern: The pattern matching instance name, '*', 'U*', 'U123' or '/UI_.*_./' | |
| It can have path, 'u_clk/*', 'u_abc/u_def/*' | |
| @options: | |
| -help: Print this information | |
| -hier: Or -h, do the command hierarchically | |
| -ref ref_pattern: Get cells that has reference matching ref_pattern, E.G. -ref OAI* | |
| -type type_pattern: Type_pattern can be 'ff','latch','itiming','cg','not','rom','ram' ... | |
| run 'get_lib_cells -type_info' for all existing type in the current libraries | |
| -type_match type_pattern: Get cells that have one of the types matches the type_pattern | |
| -leaf: Only leaf cells | |
| -new: Only new created ECO instances | |
| -verbose: To print out reference with instance | |
| -dotpath: Path delimit is '.' instead of '/' | |
| -nobackslash: Remove backslash | |
| -nonscan: Flops/sync-cells not in scan chain including those scan pins tied off | |
| @cells: Returned array with all instances matched | |
| <b>Examples:</b> | |
| #1. Get all instances in the current module | |
| my @cells = get_cells('*'); | |
| #2. Get all instances in the current module | |
| my @cells = get_cells(); | |
| #3. Get all instances matching 'U234*' in the current module | |
| my @cells = get_cells('U234*'); | |
| #4. Regular expression. Get all instances starting with U and followed by | |
| # two characters, like U10, U99 | |
| my @cells = get_cells('/U../'); | |
| #5. Get all instances matching *reg_*_ hierarchically | |
| my @cells = get_cells('*reg_*_', '-hier'); | |
| #6. Get all instances hierarchically and having reference matching DFF* | |
| my @cells = get_cells('*', '-hier', '-ref', 'DFF*'); | |
| #7. Get all instances in 'u_kb' | |
| my @cells = get_cells('u_kb/*'); | |
| #8. Get all flops, sync-cells not in scan chain | |
| my @cells = get_cells('-hier', '-nonscan'); | |
| </pre> |