DC课程笔记-数字逻辑综合工具-DC Synthesis Optimization Techniques


本节视频来源于DC视频教程,本节主要约束环境

课程内容笔记00:00开始至

芯片的输出端口要驱动一个负载,如何在DC综合时候就模仿在流片回来后的输出管脚的负载,例如芯片的管脚直接驱动LED,那如果在某种情况下,芯片管脚驱动10个LED,能否驱动呢?所以在综合的时候就要告诉DC,输出负载有多大?
如何选择输入驱动能力,输出负载能力?影响输入端口逻辑部分M和输出逻辑部分S的选择。
当一条约束都不加时候,DC也能编译,不过编译出来的未必能符合工作环境。
set_load代表负载的电容有多大,中括号[ ]代表计算表达式,也就是将[ ]里面计算的结果交给set_load继续执行。30/1000 的计算结果的单位是经过工艺库可以查看,list_lib,report_lib 。get_ports可以返回一个端口加在哪一个端口上面。get_ports返回一个collection。

set_load [expr 30/1000] [get_ports B]

如下图所示,第一个图代表的是驱动的一个与门的负载,也就相当于在输出的port的线上加了一个负载电容,现在我们要决定这个负载电容有多大。set_load就是设置负载电容, load_of是指定这个my_lib这个库,库里面的一个与门的A pin口,然后get_ports是将负载+在这个B口的上。

set_load [load_of my_lib/AN2/A] [get_ports B]
set_load [expr {[load_of my_lib/inv1a0/A]*3}] [get_ports B]

在这里插入图片描述
脚本:


top.tcl的脚本如下,代表当我运行这个top.tcl文件时候,sourcefsm.tcl的文件log就会被保存下来。

redirect -tee -file ${WORK_PATH}/compile.log {source -echo -erbose fsm_moor.tcl}

采用如下的命令查看最差的路径,这个slack一定要为正值

report_timing -delay_type max

采用如下命令查看所有的violators

report_constraint -all_violators

executing run_scripts in"batch mode"
For maximum efficency capture “run commands”
in a “run script” and execute in batch mode

linux% dc_shell-topo -f RUN.tcl | tee -i dc.log

采用上述命令,可以在启动DC的同时直接跑脚本

检查DC的约束脚本的语法错误命令:

linux% dcprocheck TOP.con

dcprocheck is a syntax-checking utility that is included with DC

检查约束是否有正确加上去:

report_port -verbose
report_clock #clock waveform
report_clock -skew #clock tree specs

如何使用帮助?
help *clock; 列出所有关于clock的命令
在这里插入图片描述

help -verbose create_clock ;;列出create_clock的所有选项
在这里插入图片描述
如果使用help set_input_delay 或set_input_delay 加tab都不能显示参数
在这里插入图片描述
使用set_input_delay -help可以达到同样的效果
在这里插入图片描述
man create_clock 可以得到完整的man page
变量:
printvar *_library 列出所有的匹配library的变量的命令
echo $target_library
man target_library

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值