010 静态时序分析

    科技2025-04-25  8

    抖动(Jitter)

    偏斜(Skew)

    {signal: [ {name: 't1', wave: '1.0..1..0..1..0', period: 1, node: '.....a'}, {name: 't2', wave: '10101', period: 3, node: '..b'} ], edge:[ 'a~b skew' ]}

    扇出

    扇出:单个逻辑门能够驱动的数字信号数量。一个典型的TTL逻辑门有10个扇出信号 扇入:单个逻辑门被驱动的数字信号数量,扇入越大,表示该模块被更多的上级模块共享

    静态时序分析

    {signal: [ {name: 'clk', wave: '01..0..1..0', period: 1, node: '.a.....h'}, {name: 'clk_reg1', wave: '0.1..0..1..0', period: 1, node: '..b'}, {name: 'data', wave: '2..3.....4..', period: 1, node: '...c', data: ['d1', 'd2', 'd3']}, {name: 'comb', wave: '2...3.....4..', period: 1, node: '....d.....g', data: ['d1', 'd2', 'd3']}, {name: 'clk_reg2', wave: '0.1..0..1..0', period: 1, node: '......e.f'}, ], edge:[ 'a~b Tclk1', 'b~c Tco', 'c~d Tcomb', 'd~e setup stack', 'e<-|->f Tsu', 'f~g Th', 'h~f Tclk2' ]}

    a:launch edge,静态时序分析的起点,第一个寄存器的有效沿f:latch edge,静态时序分析的终点,数据锁存的有效沿Tclk1,Tclk2:时钟到达两级触发器的偏斜(skew)Tco:Clock-to-Output Delay,有效沿开始后到数据从触发器输入到输出的时间Tcomb:组合逻辑时延Tsu、Tsetup:建立时间,触发器有效沿到来之前,数据需要保持稳定的最小时间Th、Thold:保持时间:触发器有效沿到来之后,数据需要保持稳定的最小时间Data Arrival Time:数据到达下一个触发器的时间,a + Tclk1 + Tco + TcombClock Arrival Time:时钟到达下一个触发器的时间,h + Tclk2setup slack:建立时间裕量,数据要比有效沿早到Tsu,等有效沿到了,还要维持Thold,这样系统才是稳定的setup slack = Clock Arrival Time - Data Arrival Timesetup slack = (T + Tclk2)-(Tclk1 + Tco + Tcomb - Tsu)>= 0,其中T是时钟周期

    最高频率

    (T + Tclk2)-(Tclk1 + Tco + Tcomb - Tsu)>= 0(1),数据要提前时钟有效沿Tsu到达Tco + Tcomb <= Th(2),数据在有效沿来临后,从触发器输入端D传到输出端Q,要经历Tco(b->c),这段时间输入数据不能变,经历Tcomb(c->d),输入端D的数据也不能变,因为组合逻辑电平敏感,传过了组合逻辑才可以变化,所以(Tco + Tcomb)要小于保持时间频率越高,T越小,(Tco + Tcomb)要变小才能满足(1),(Tco + Tcomb)太小,不能满足(2),这个存疑,不过大多数时候是建立时间违背,也就是Tcomb太复杂,建立时间不够

    建立时间违背时的解决方案

    降低频率,提高T调整布局布线修改组合逻辑,降低复杂度,插入流水线等重新设计时钟树改变工艺,减少器件或通路延时

    https://wavedrom.com/editor.html https://blog.csdn.net/fzhykx/article/details/80172034

    Processed: 0.009, SQL: 8