FPGA時序約束學習筆記——IO約束


一、參考模型

  • 圖源來自《【搶先版】小梅哥FPGA時序約束從遙望到領悟》

二、參數分析

  • T(0)->(3) = Tclk1
  • T(3)->(4) = Tco
  • T(4)->(5) + T(5)->(6) = Tdata
    • T(4)->(5) = Tdata(Init)
    • T(5)->(6) = Tdata(Pcb)
  • T(5)->(6)
  • T(0)->(1) + T(1)->(7) = Tclk2
    • T(0)->(1) = Tclk2(Init)
    • T(1)->(7) = Tclk2(Pcb)

(4)->(5)的走線是在FPGA芯片內部(IC)
(5)->(6)的走線是在PCB板上

(0)->(1)的走線是在FPGA芯片內部(IC)
(1)->(7)的走線是在PCB板上

計算PCB板上電信號的傳輸時間,可以將電信號等效為光速,得到的電信號傳輸時間與長度關系的參數為5555mil/ns
1mil = 0.0254mm
5555mil/na -> 141.097mm/ns

三、建立時間余量分析 Slack(Tsu)

  • Data Require Time(數據要求時間) = Tclk2 - Tsu(芯片數據建立時間) + Latch edge(接收沿) = Tclk2(Init) + Tclk2(Pcb) - Tsu + Latch edge(接收沿)
  • Data Arrival Time(數據到達時間) = Tclk1 + Tco + Tdata + Launch edge(發送沿) = Tclk1 + Tco + Tdata(Init) + Tdata(Pcb) + Launch edge(發送沿)
  • Latch edge(接收沿) - Launch edge(發送沿) = Tclk(因為是一個時鍾,所以相減就是時鍾周期)
  • Slack(Tsu)
    • Data Require Time - Data Arrival Time = (Tclk2 - Tsu + Latch edge) - (Tclk1 + Tco + Tdata + Launch edge)
    • Data Require Time - Data Arrival Time = (Tclk2(Init) + Tclk2(Pcb) - Tsu + Latch edge) - (Tclk1 + Tco + Tdata(Init) + Tdata(Pcb) + Launch edge)
    • Data Require Time - Data Arrival Time = (Tclk2(Init) + Tclk2(Pcb) - Tsu) - (Tclk1 + Tco + Tdata(Init) + Tdata(Pcb)) + Tclk
    • Data Require Time - Data Arrival Time >= 0
    • Tclk2(Init) - Tclk1 -Tco - Tdata(Init) >= -Tclk2(Pcb) + Tsu +Tdata(Pcb) - Tclk (注:左邊是未知量,右邊是可知量)
    • Tclk2(Init) - Tclk1 -Tco - Tdata(Init) + Tclk >= -Tclk2(Pcb) + Tsu +Tdata(Pcb)
  • -Tclk2(Pcb) + Tsu +Tdata(Pcb)就是最大傳輸延遲:output delay max = Tdata(pcb) - Tclk2(pcb) + Tsu

四、保持時間余量分析 Slack(Th)

  • Data Require Time(數據要求時間) = Tclk2 + Th(芯片數據保持時間) + Latch edge(接收沿) = Tclk2(Init) + Tclk2(Pcb) + Th + Latch edge(接收沿)
  • Data Arrival Time(數據到達時間) = Tclk1 + Tco + Tdata + Launch edge(發送沿) = Tclk1 + Tco + Tdata(Init) + Tdata(Pcb) + Launch edge(發送沿)
  • Slack(Th)
    • Data Arrival Time(數據到達時間) - Data Require Time(數據要求時間)
    • 同樣的,可以算出,最小輸出延遲
    • Output delay min = Tdata(pcb) - Tclk2(pcb) - Th

五、綜上所述

  • output delay max = Tdata(pcb) - Tclk2(pcb) + Tsu
  • Output delay min = Tdata(pcb) - Tclk2(pcb) - Th
    如果,PCB板上的數據走線長度與時鍾走線長度一樣,即:(5)->(6) = (1)->(7)
    那么,Tdata(pcb) = Tclk2(pcb)
  • output delay max = Tsu
  • Output delay min = -Th

六、步驟

  • 設計時鍾約束

  • 設計輸出延遲
    最大延遲
    最小延遲

七、時鍾與數據反向輸出


Tsu

  • Data Require Time = Tclk2(Int) - Tsu + Latch Edge
  • Data Arrival Time = Tclk1(Pcb) + Tclk1(Int) + Tco + Tdata(Pcb) + Tdata(Int) + Lanch Edge
  • Slack(Tsu) = Data Require Time - Data Arrival Time
  • Slack(Tsu) = (Tclk2(Int) - Tsu + Latch Edge) - (Tclk1(Pcb) + Tclk1(Int) + Tco + Tdata(Pcb) + Tdata(Int) + Lanch Edge) >= 0
  • Tclk2(Int) - Tclk1(Int) -Tco - Tdata(Int) >= (Lanch Edge - Latch Edge) + Tsu + Tclk1(Pcb) + Tdata(Pcb)
  • output delay max = Tclk1(Pcb) - Tdata(Pcb) + Tsu

Th

  • Data Require Time = Tclk2(Int) + Th + Latch Edge
  • Data Arrival Time = Tclk1(Pcb) + Tclk1(Int) + Tco + Tdata(Pcb) + Tdata(Int) + Lanch Edge
  • Slack(Th) = Data Arrival Time - Data Require Time
  • Slack(Th) = (Tclk1(Pcb) + Tclk1(Int) + Tco + Tdata(Pcb) + Tdata(Int) + Lanch Edge) - (Tclk2(Int) + Th + Latch Edge) >= 0
  • (Lanch Edge - Latch Edge) + Tclk1(Pcb) + Tdata(Pcb) - Th >= -Tclk1(Int) - Tco - Tdata(Int) + Tclk2(Int)
  • output delay min = Tclk1(Pcb) + Tdata(Pcb) - Th

八、IO輸出通用約束模型分析

Tskew = Tclk2 - Tclk1
Tskew(Pcb) = Tclk2(Pcb) - Tclk1(Pcb)

時鍾與數據同向時

Tclk1(Pcb) = 0

  • output delay max = Tdata(pcb) - Tclk2(pcb) + Tsu = Tdata(pcb) - (Tclk2(pcb) - Tclk1(Pcb)) + Tsu = Tdata(pcb) - Tskew(Pcb) + Tsu
  • output delay min = Tdata(pcb) - Tclk2(pcb) - Th = Tdata(pcb) - (Tclk2(pcb) - Tclk1(Pcb)) - Th = Tdata(pcb) - Tskew(Pcb) - Th

時鍾與數據反向時

Tclk2(Pcb) = 0

  • output delay max = Tdata(Pcb) + Tclk1(Pcb) + Tsu = Tdata(Pcb) - (Tclk2(Pcb) - Tclk1(Pcb)) + Tsu = Tdata(pcb) - Tskew(Pcb) + Tsu
  • output delay min = Tdata(Pcb) + Tclk1(Pcb) - Th = Tdata(Pcb) -(Tclk2(Pcb) - Tclk1(Pcb)) - Th = Tdata(pcb) - Tskew(Pcb) - Th

綜上,IO輸出約束通用公式為

  • output delay max = Tdata(pcb) - Tskew(Pcb) + Tsu
  • output delay min = data(pcb) - Tskew(Pcb) - Th


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM