时序约束(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[*]


