天天看點

010 靜态時序分析

抖動(Jitter)

010 靜态時序分析

偏斜(Skew)

010 靜态時序分析
{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'
]}
           
010 靜态時序分析

扇出

扇出:單個邏輯門能夠驅動的數字信号數量。一個典型的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'
]}
           
010 靜态時序分析
  • 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 + Tcomb
  • Clock Arrival Time:時鐘到達下一個觸發器的時間,h + Tclk2
  • setup slack:建立時間裕量,資料要比有效沿早到Tsu,等有效沿到了,還要維持Thold,這樣系統才是穩定的
  • setup slack = Clock Arrival Time - Data Arrival Time
  • setup 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

繼續閱讀