时序约束(TCL脚本)
get_ports
的使用方法如下:
# 获取所有端口 get_ports * # 获取名称中包含data的端口 get_ports *data* # 获取所有输出端口 get_ports -filter {DIRECTION == OUT} # 获取所有输入端口 all_inputs # 获取输入端口中名字包含data的端口 get_ports -filter {DIRECTION == IN} *data* # 获取总线端口 get_ports -filter {BUS_NAME != ""}
get_cells
的使用方法如下:
# 获取顶层模块 get_cells * # 获取名称中包含字符gen的模块 get_cells *gen* # 获取clk_gen_i0下的所有模块 get_cells clk_gen_i0/* # 获取触发器为FDRE类型且名称中包含字符samp get_cells -hier filter {REF_NAME == FDRE} *samp* # 获取所有的时序单元逻辑 get_cells -hier -filter {IS_SEQUENTIAL == 1} # 获取模块uart_rx_i0下两层的LUT3 get_cells -filter {REF_NAME == LUT3} *uart_tx_i0/*/*
get_pins
的使用方法如下:
# 获取所有pins get_pins * # 获取名称中包含字符led的引脚 get_pins -hier -filter {NAME =~ *led*} # 获取REF_PIN_NAME为led的引脚 get_pins -hier -filter {REF_PIN_NAME == led} # 获取时钟引脚 get_pins -hier -filter {IS_CLOCK == 1} # 获取名称中包含cmd_parse_i0的使能引脚 get_pins -filter {IS_ENABLE == 1} cmd_parse_i0/*/* # 获取名称中包含字符cmd_parse_i0且为输入的引脚 get_pins -filter {DIRECTION == IN} cmd_parse_i0/*/*
get_nets
的使用方法如下:
# 获取所有nets get_nets * # 获取名称中包含字符send_resp_val的网线 get_nets -hier *send_resp_val* get_nets -filter {NAME =~ *send_resp_val*} -hier # 获取穿过边界的同一网线的所有部分 get_nets {resp_gen_i0/data4[0]} -segments # 获取模块cmd_parse_i0下的所有网线 get_nets -filter {PARENT_CELL == cmd_parse_i0} -hier # 获取模块cmd_parse_i0下的名称中包含字符arg_cnt[]的网线 get_nets -filter {PARENT_CELL == cmd_parse_i0} -hier *arg_cnt[*]