• PT的一些setting


    PT Setting

    在做项目时,遇到了一些常用的setting,这些setting都比较重要,因此记录在这;

    CRPR的计算方法

    首先我们需要设置下面的变量:
    set_app_var timing_remove_clock_reconvergence_pessimism true
    这样工具会激活CRPR;

    PT在计算CRPR时,基本过程如下
    1、比较launch和capture clock path;
    2、选择launch和capture clock path的common point;
    3、将common point的 minimum/maximum arrival time的差值补偿到path slack中;
    以下面的timing report为例:
    在这里插入图片描述
    工具设置为common point为Umux/Z pin,其max arrival time为:314ps, min arrival time为:122ps,两者的差值为192ps,而timing report中的CRPR值也是193(可能是小数点的原因);

    造成minimum/maximum arrival difference的原因在于:
    1、Minimum/maximum delay differences in the timing behavior of logic gates;
    2、Minimum/maximum arrival differences caused by logic reconvergence

    timing_clock_reconvergence_pessimism

    首先我们看下图
    在这里插入图片描述
    在激活CRPR后,由于U1和U2是common部分,max为2.2ns,min为1.8ns,而在实际情况下不能同时取fast和slow两种delay,因此工具在report timing时,会在slack中补偿0.4ns;
    但是我们需要注意的是,上面的情况针对的是cell rise的情况,那么如果cell fall delay和cell rise delay不一样呢?看下图
    在这里插入图片描述
    可以发现,cell fall delay相比于cell rise delay更小,由于这两者之间存在区别,工具在实际计算CRPR时是分两种情况的,由变量timing_clock_reconvergence_pessimism决定:
    1、normal,这种情况下,工具会分别计算rise crp和fall crp,并取这两者中的最小值;
    rise_CRP = (late_rise_arrival - early_rise_arrival)
    fall_CRP = (late_fall_arrival - early_fall_arrival)
    而CRP = MIN(rise_CRP, fall_CRP)
    2、same_transition,这种情况下,工具只会将相同transition的CRPR值;

    CRPR & Min_pulse_width

    CRPR对min pulse width也有影响,首先我们设置下面的constraints
    create_clock -period 4 [get_ports CLK]
    set_min_pulse_width -high 1.0 [get_clocks CLK]
    set_min_pulse_width -low 1.0 [get_clocks CLK]
    在看下图,是一个flop的clock tree,如下图所示

    在这里插入图片描述
    同时,考虑到cell的rise delay和fall delay不同,分别如下
    在这里插入图片描述
    为了保证flop的CP pin的pulse满足其要求,我们需要计算实际到达flop CP pin的pulse宽度;实际到达flop的CP pin的波形如下图所示
    在这里插入图片描述
    可以发现,对于rise edge来说,其max delay为3.3ns,min delay为2.7ns;对于fall edge,其max delay为3.6ns,min delay为2.4ns;
    根据上面的波形,可以算出,高电平的最小宽度为:
    (min fall edge+2)- (max rise edge)= 1.1ns
    而低电平为最小宽度则为:1.1ns;

    那么在计算min pulse width时,CRPR的影响是啥呢?
    首先看下图
    在这里插入图片描述
    对于min pulse来说,分两种情况,分别是:
    1、min pulse high width
    2、min pulse low width
    计算min pulse high width的方法为:
    1、open edge clock latency = (max_rise clock arrival)
    2、close edge clock latency = (min_fall clock arrival )
    3、actual pulse width (high) = open edge latency – close edge latency + conservative static CRP – clock uncertainty
    4、Slack = actual pulse width – required pulse width
    这里需要注意的是,对于min pulse high width,其open edge为rise edge,close edge则为fall edge;

    计算min pulse low width的方法为:
    1、open edge clock latency = (max_fall clock arrival)
    2、close edge clock latency = (min_rise clock arrival )
    3、actual pulse width (low) = open edge latency – close edge latency + conservative static CRP – clock uncertainty
    4、Slack = actual pulse width – required pulse width
    这里需要注意的是,对于min pulse low width,open edge指的是fall edge,close edge指的是rise edge;
    对于上面的design,设置下面的constraints:
    create_clock [get_ports clk] -n clk -period 0.2
    set_clock_latency -source -dynamic 0.0003 -late 0.003 clk
    set_clock_latency -source -dynamic 0.0002 -early 0.002 clk
    使用下面的命令可以查看min pulse width report:
    report_min_pulse_width -path_type full_clock_expanded [get_pin ff2/CP]
    产生的report如下
    1、min pulse low width
    在这里插入图片描述
    2、min pulse high width
    在这里插入图片描述
    这里需要关注具体要看CRPR是怎么计算出来的,可以使用命令:
    report_crpr -from ff2/CP -to ff2/CP -significant_digits 6
    产生的report如下:
    在这里插入图片描述
    由于是min pulse check,也就是0 cycle check,所以工具省去了dynamic latency,分别计算:rise_crp和fall_crp;
    rise_crp = late rise delay - early rise delay
    fall_crp = late fall delay - early fall delay
    计算后,取两者中的较小值,设置为min pulse wid

  • 相关阅读:
    一文4000字从0到1手把手教你基于Swagger实现接口自动化测试
    Visio文件编辑查看工具Visio Viewer for Mac
    Java 反射系列 —— 学习笔记
    关于Redis在windows上运行及fork函数问题
    markdown preview enhance修改预览及导出文字
    【微波工程学习记录1】功率分配器和定向耦合器
    C语言中volatile关键字的作用
    百度智能云千帆大模型平台2.0来了!从大模型到生产力落地的怪兽级平台!!
    v-charts,点击页面按钮,不能二次重绘,解决方案
    【面经】讲一下你对jvm和jmm的了解
  • 原文地址:https://blog.csdn.net/zhenhuagege/article/details/127845865