目录
使用dc_shell可以直接读取verilog文件和gv.gz的文件,并使用gui查看电路图
1.源文件为rtl
1.1 读取rtl或filelist
可以一个一个的读取rtl的.v文件:使用以下命令
read_verilog xxx.v
#或者
read_file -format verilog xxx.v
#或者
read_file file_list
#这个filelist必须是tcl语法的list
#或者
analyze -format sverilog -vcs “-f $RTL_FILE/flist.f”
但是一般都需要读取vcs格式的使用下面命令filelist
analyze -format sverilog -vcs “-f $RTL_FILE/flist.f”
1.2 elaborate
elaborate design_top
其中design_top为filelist的top module name
单module应该不需要elaborate
1.3 设置current_design
在没有elaborate之前是没法设置current_design的,在elaborate之后:
current_design design_top
在这一步之后就可以get_cell、get_port等就可以使用了,所以在这个时候可以用于调式sdc等
也可以尝试一下工作:
1.此时的电路图是什么样的,
时可以看到电路图的,但是无法看到例如reg的 CP、D、Q端口的,这个需要link到库之后才行
2.此时是不是可以输出整个design的Hier
可以使用report_hierarchy 输出hier结构
3.此时是否可以report mem
此时可以利用 get_reference和get_attr来报出所有例化的mem的instance full name和ref_name(即module name)可参考:
1.4 link
假设在link前已经设置好库文件
link
1.5后续综合流程
在link之后可以读取sdc约束文件,然后就可以check_design,报timing,最后compile
在compile之后就可以写出netlist 也可以报综合之后的check_design,timing,面积等等
一个整体的综合流程和tcl脚本可参考:
2.启动dc,并读取netlist
dc_shell> read_verilog -netlist xxxx.gv.gz
dc_shell> current_design xxx (设置当前design的top)
dc_shell> link (将网表里的元件link到库??)