惊蛰日雷
下面对usb_dma模块的DC脚本进行说明。
t arch_path "./rtl" 设置搜索路径,即寻找库的路径。
source ./script/lib_link.path source是把script 下的lib_link.path文件链接到此处,设置链接路径,文件里面是综合用到的的库的路径。
牛肉饺子source ./script/l l文件是综合时不希望用到的元件的信息,如RS触发器和JK触发器等,与做APR的人员商量得到,目的是使用合适的器件,提高流片成功率。
read_verilog 读入代码。读入代码的时候要先读入子模块的代码,最后读入顶层。
Link 报告链接信息,若有些库或者代码没找到会报错。
check_design 检查design中的悬空管脚、短接等情况。主要关注其中的没有输入驱动(no_drivers)、loop和tied to的情况。
t_wire_load_model 选择连线负载模型,由工艺库中的连线模型得到。命令区别于t_wire_load_mode,mode一共有三种,分别是top、enclod、gmented三种。
sspc
t compile_gmap_propagate_constants fal 把输入端接固定电平的触发器当做固定电平而不看作触发器处理。
礼仪的名言t uload 设置标准负载,具体为哪一个,由后面的决定。一般选择与非门的输出引脚。
t_load [expr 10*$uload] [all_outputs] 给所有的输出端设置负载,负载值为标准负载的10倍。
t_driving_cell 设置输入驱动,一般选择反相器。
t_fix_multiple_port_nets -feedthroughs -outputs -constants -buffer –constants 给所有纯组合逻辑的路径(输入到输出都是组合逻辑)的输出端加buffer,以增强驱动能力。
define_name_rules 定义命名规则,方便后面流程工具的识别。(在link_path中)
source ./SDC/$module.sdc 吃进sdc约束文件。
check_clocks 检查没有施加时钟约束的端口。
记叙文report_timing -delay max 报告tup情况。根据路径组报出此路径下的最长延时,看是否满足t要求。
report_timing -delay min 报告hold情况,DC时一般不做此检查,在APR时检查并通过插入buffer解决hold问题。李政贤
report_constraint -all_violators 报告所有的时序违例。
report_transitive_fanout 报告时钟树,即每一个寄存器的时钟。DC时不对时钟树和全局rst信号综合。
write -format verilog -hierarchy -output ./report/$module 生成综合后的网表文件。
write -format ddc -hierarchy -output ./report/$module.ddc 生成综合后的二进制网表。