<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 如何利用FPGA進(jìn)行時(shí)序分析設計

如何利用FPGA進(jìn)行時(shí)序分析設計

作者:ZLG致遠電子 時(shí)間:2017-06-21 來(lái)源:電子產(chǎn)品世界 收藏

  (Field-Programmable Gate Array),即現場(chǎng)可編程門(mén)陣列,它是作為專(zhuān)用集成電路()領(lǐng)域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數有限的缺點(diǎn)。對于時(shí)序如何用來(lái)分析與設計,本文將詳細介紹。

本文引用地址:http://dyxdggzs.com/article/201706/360808.htm

  基本的電子系統如圖 1所示,一般自己的設計都需要時(shí)序分析,如圖 1所示的Design,上部分為時(shí)序組合邏輯,下部分只有組合邏輯。而對其進(jìn)行時(shí)序分析時(shí),一般都以時(shí)鐘為參考的,因此一般主要分析上半部分。在進(jìn)行時(shí)序分析之前,需要了解時(shí)序分析的一些基本概念,如時(shí)鐘抖動(dòng)、時(shí)鐘偏斜(Tskew)、建立時(shí)間(Tsu)、保持時(shí)間(Th)等。時(shí)序分析也就是分析每一個(gè)觸發(fā)器(寄存器)是否滿(mǎn)足建立時(shí)間/保持時(shí)間,而時(shí)序的設計的實(shí)質(zhì)就是滿(mǎn)足每一個(gè)觸發(fā)器的建立時(shí)間/保持時(shí)間的要求。

    

  圖 1 基本的電子系統

  一、時(shí)鐘抖動(dòng)和時(shí)鐘偏斜

  1.時(shí)鐘抖動(dòng)

  時(shí)鐘信號邊沿變化的不確定時(shí)間稱(chēng)為時(shí)鐘抖動(dòng),如圖 2所示。一般情況下的時(shí)序分析是不考慮時(shí)鐘抖動(dòng),如果考慮時(shí)鐘抖動(dòng),則建立時(shí)間應該是Tsu+T1,保持時(shí)間應該是Th+T2。

    

  圖 2 時(shí)鐘抖動(dòng)時(shí)序圖

  2.時(shí)鐘偏斜

  時(shí)序偏斜分析圖如圖 3所示。時(shí)鐘的分析起點(diǎn)是源寄存器(Reg1),終點(diǎn)是目標寄存器(Reg2)。時(shí)鐘在圖中的結構中傳輸也會(huì )有延遲,時(shí)鐘信號從時(shí)鐘源傳輸到源寄存器的延時(shí)為T(mén)c2s,傳輸到目標寄存器的延時(shí)為T(mén)c2d。時(shí)鐘網(wǎng)絡(luò )的延時(shí)為T(mén)c2s與Tc2d之差,即Tskew=Tc2d-Tc2s。

    

  圖 3 時(shí)鐘偏斜時(shí)序圖

  二、建立時(shí)間和保持時(shí)間

  建立時(shí)間(Setup Time)常用Tsu表示,指的是在觸發(fā)器的時(shí)鐘信號上升沿到來(lái)以前,數據和使能信號穩定不變的時(shí)間,如果建立時(shí)間不夠,數據將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器,使能信號無(wú)效,也就是說(shuō)在這個(gè)時(shí)鐘周期對數據的操作時(shí)無(wú)效的;保持時(shí)間(Hold Time)常用Th表示,指的是在觸發(fā)器的時(shí)鐘信號上升沿到來(lái)以后,數據和使能信號穩定不變的時(shí)間,如果保持時(shí)間不夠,數據同樣不能被打入觸發(fā)器,對數據的操作同樣是無(wú)效的,使能信號無(wú)效。數據要能穩定傳輸,就必須滿(mǎn)足建立時(shí)間和保持時(shí)間的關(guān)系,圖 4標識了它們間的關(guān)系。

    

  圖 4 建立時(shí)間/操持時(shí)間的概念

  三、發(fā)送沿和捕獲沿

  (1)發(fā)送沿(Launch Edge):前級寄存器發(fā)送數據對應的時(shí)鐘沿,是時(shí)序分析的起點(diǎn);

  (2)捕獲沿(Latch Edge):后記寄存器捕獲數據對應的時(shí)鐘沿,是時(shí)序分析的終點(diǎn)。相對于launch Edge通常為一個(gè)時(shí)鐘周期,但不絕對,如多周期。

  “信號跳變抵達窗口”:對latch寄存器來(lái)說(shuō),從previous時(shí)鐘對應的Hold Time開(kāi)始,到current 時(shí)鐘對應的Setup Time 結束。

  “信號電平采樣窗口”:對latch寄存器來(lái)說(shuō),從current時(shí)鐘對應的Setup Time開(kāi)始,到current時(shí)鐘對應的Hold Time結束。

  launch寄存器必須保證驅動(dòng)的信號跳變到達latch寄存器的時(shí)刻處于“信號跳變抵達窗口”內,才能保證不破壞latch寄存器的“信號電平采樣窗口”。

    

  圖 5 Launch Edge和Latch Edge

  四、數據和時(shí)鐘的時(shí)序分析

  如圖 6所示,為分析建立時(shí)間/保持時(shí)間的基本電路圖。Tclk1為Reg1的時(shí)鐘延時(shí),Tclk2為Reg2的時(shí)鐘延時(shí),Tco為Reg1固有延時(shí),Tdata為Reg1的到Reg2之間組合邏輯的延時(shí),Tsu為Reg2的建立時(shí)間,Th為Reg2的保持時(shí)間,設時(shí)鐘clk周期為T(mén),這里分析數據的建立時(shí)間和保持時(shí)間。

    

  圖 6 基本電路圖

  1、建立時(shí)間的分析

  如圖 7所示,建立時(shí)間的分析是以第一個(gè)launch Edge為基準,在Latch Edge查看結果。建立時(shí)間的裕量(T為時(shí)鐘周期):

  Setup Stack = (T+Tclk2) – Tsu – (Tclk1+Tco+Tdata)

  假設△T = Tclk2-Tclk1,則:

  Setup Stack = (T+△T) – Tsu – (Tco+Tdata)

  可見(jiàn)△T<0影響建立時(shí)間,使建立時(shí)間的要求更加苛刻。因此對于△T盡量避免,采用同步單時(shí)鐘,并且盡量采用全局的時(shí)鐘信號,這樣△T幾乎為0,,△T的影響幾乎不存在,可以忽略不計。

  如果建立時(shí)間的裕量Setup Stack小于0,則不滿(mǎn)足建立時(shí)間,也就會(huì )產(chǎn)生不穩定態(tài),并通過(guò)寄存器傳輸下去。

    

  圖 7 建立時(shí)間時(shí)序分析圖

  2、保持時(shí)間的分析

  如圖 8所示,保持時(shí)間的分析是以第二個(gè)launch Edge為基準,在Latch Edge查看結果。保持時(shí)間的裕量:

  Hold Stack = (Tclk1+Tco+Tdata) – Tclk2 – Th

  假設△T = Tclk2-Tclk1,則:

  Hold Stack = (Tco+Tdata) – △T – Th

  可見(jiàn)△T>0影響保持時(shí)間,使保持時(shí)間的要求更加苛刻。。因此對于△T盡量避免,采用同步單時(shí)鐘,并且盡量采用全局的時(shí)鐘信號,這樣△T幾乎為0,,△T的影響幾乎不存在,可以忽略不計。

  如果保持時(shí)間的裕量Hold Stack小于0,則不滿(mǎn)足保持時(shí)間,也就會(huì )產(chǎn)生不穩定態(tài),并通過(guò)寄存器傳輸下去。

    

  圖 8 保持時(shí)間時(shí)序分析圖

  五、DT6000S項目實(shí)例

  DT6000S項目上有4路光以太網(wǎng)接口連接到,由FPGA進(jìn)行實(shí)現MAC層和解碼IEC61850的SV和GOOSE。以太網(wǎng)PHY通過(guò)MII接口和FPGA,因此FPGA與外部的接口有4路MII接口。項目初期是實(shí)現1路光以太網(wǎng)接口,并且驗證功能正確之后,但是后期變成的4路光以太網(wǎng)時(shí),總會(huì )存在1路光以太網(wǎng)通信不正常。經(jīng)過(guò)分析得到是FPGA通MII接口和PHY的時(shí)序不滿(mǎn)足。如圖 9所示為MII接口的時(shí)序圖,時(shí)序不滿(mǎn)足分為T(mén)X_CLK和RX_CLK。

  其一是PHY輸出的TX_CLK和FPGA依據TX_CLK產(chǎn)生的TXD[3:0]&TX_EN延時(shí)大,主要延時(shí)為內部邏輯的延時(shí),PCB延時(shí)小并且一致,導致PHY的TX_CLK的建立時(shí)間不滿(mǎn)足,從而導致發(fā)送數據錯誤。

  其二是PHY輸出的RX_CLK和RXD[3:0]&RX_DV&RX_ER到FPGA內部同步觸發(fā)器的延時(shí)之差太大,導致FPGA內部同步觸發(fā)器的RX_CLK的建立時(shí)間不滿(mǎn)足,從而導致接收數據錯誤。

  因此FPGA在綜合時(shí)需要添加約束,使之時(shí)序滿(mǎn)足要求,約束的條件為T(mén)XD[3:0]和TX_EN的輸出延時(shí)要少。RX_CLK和RXD[3:0]&RX_DV&RX_ER路徑延時(shí)之差要小。添加約束之后,4路MII接口的光以太網(wǎng)數據通信就正常了。

    

  圖 9 MII時(shí)序圖

  這里闡述了時(shí)序分析基礎,說(shuō)明概念的同時(shí)進(jìn)行了時(shí)序分析,通過(guò)時(shí)序分析理解建立時(shí)間和保持時(shí)間。希望大家閱讀本文之后可以對FPGA時(shí)序分析有進(jìn)一步的了解。



關(guān)鍵詞: FPGA ASIC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>