(路径:/home/implementation_tsmc_ce018fg/CORETEXM3INTEGRATION_synopsys)
1、source -echo -verbose ../scripts/configuration.tcl
将脚本文件中的内容打印出来,并输出中间结果。(常用)
2、set_app_var synthetic_library dw_foundation.sldb
使用dc默认的综合库文件:dw_foundation.sldb
3、set_app_var link_library [concat * $target_library $synthetic_library]
设置链接库为目标库以及综合库
4、set_app_var mw_reference_library [concat $stdcell_mw_library]
设置物理标准单元库,一般为一个文件夹,内包含cell,FRAM,等lib文件。
5、不存在.tluplus文件,将其注释
6、不存在.map文件,将其注释
7、存在milkway以及db(standard cell)文件
8、set $tech_file /arm/tsmc/ce018fg/2009q2v01/milkway/6lm/dc7_tech.tf
set_app_var mw_reference_library [milkway/6lm/sc7_ce018fg_base_rvt]
set_app_var mw_design_library CORETEXM3INTEGRATION
create_mw_lib -technology $tech_file \
-mw_reference_library $mw_reference_library \
$mw_design_library
【create_mw_lib的直接参数是设计库名称
-technology 指定的参数是物理工艺库名称(techfile)
-mw_reference_library 指定的参数是物理参考库名称】
9、set_min_library $max_lib -min_version $min_lib
【set_min_library命令来指定单独的最小时序库。set_min_library命令将最小时序库和由link_library变量指定的最大时序库联系起来,min_version后的是最小库,max_lib是最大库,通常也是link_library指代的库】
10、set_driving_cell -library $target_library_name($slow_corner) \
-from_pin $(driving_from_pin) \
-input_transition_rise $max_transition($slow_corner ) \
-input_transition_fall $max_transition($slow_corner) \
-lib_cell ${driving_cell} \
-pin ${clock_driving_pin} \
${clock_ports}
我们通过set_driving_cell命令来设置某个输入端口前面是什么驱动单元驱动它的,EDA工具会从指定的库中查找得出更加真实的Transition时间来代替零Transition。(dc默认transition=0)
11、set_driving_cell -library $target_library_name($slow_corner) \
-from_pin $(clock_driving_from_pin) \
-input_transition_rise $max_transition($slow_corner ) \
-input_transition_fall $max_transition($slow_corner) \
-lib_cell ${clock_driving_cell} \
-pin ${clock_driving_pin} \
${clock_ports}
【时钟和非时钟端口的驱动需要分开添加】
12、set_operating_conditions \
-max $operating_condition_name($slow_corner) -max_lib [get_libs $target_library_name($slow_corner)] \
-min $operating_condition_name($fast_corner) -min_lib [get_libs $target_library_name($fast_corner)] \
Analysis_type bc_wc
13、在synthesis.tcl最开始,source configuration.tcl 其中表明,don’t include etm files
这告诉在rtl.tcl中不导入etm files,因此需要在rtl.tcl中将对应etm选项注释。
14、ITF文件生成TLU plus文件,使用StarRC工具,
命令:grdgenxo -itf2TLUPlus -i <ITF file> -o <TLU+ file>,其中ITF需要到foundary厂商去下载。
15、warning:../../logical/cm3_nvic/verilog/cm3_nvic_undefs.v:48: The macro ‘num_non_irq’ you are attempting to undefine with the ‘ `undef ’ directive is not defined
警告,在对应verilog文件中,undef的参数并没有被define,不影响结果,可忽略此warning。
目前调用ARM之前给的包进行synthesis综合,能跑出最终结果,可以进一步优化,使用tluplus文件进一步精确结果。目前由于不存在tluplus文件,因此注释了相关部分。
生成的用于后仿的文件路径:/CORTEXINTEGRATION_synopsys/data主要包含:
.ddc .v .sdc .svf这四个文件。
【SDF:standard delay file】标准延时文件。描述的是输出时序延时信息。综合优化后,为进行后仿,要输出sdf文件。
【SDC:standard delay constraint】;标准延时约束文件。描述的是类似DC中的约束,用文件的形式直接保存,用来给后端的布局布线提供参考。
【.v:】:生成的门级网表文件
【.ddc】:.ddc也是网表文件,但是ddc包含的网表文件不是实际意义上的网表文件,而.v形式的网表文件是用来做后仿的文件。
【.svf】:svf文件用来后续做formality(形式验证)