<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201706/360808.htm

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

              

            圖 1 基本的電子系統(tǒng)

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

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

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

              

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

            2.時(shí)鐘偏斜

            時(shí)序偏斜分析圖如圖 3所示。時(shí)鐘的分析起點(diǎn)是源寄存器(Reg1),終點(diǎn)是目標(biāo)寄存器(Reg2)。時(shí)鐘在圖中的結(jié)構(gòu)中傳輸也會(huì)有延遲,時(shí)鐘信號(hào)從時(shí)鐘源傳輸?shù)皆醇拇嫫鞯难訒r(shí)為Tc2s,傳輸?shù)侥繕?biāo)寄存器的延時(shí)為Tc2d。時(shí)鐘網(wǎng)絡(luò)的延時(shí)為Tc2s與Tc2d之差,即Tskew=Tc2d-Tc2s。

              

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

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

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

              

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

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

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

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

            “信號(hào)跳變抵達(dá)窗口”:對(duì)latch寄存器來說,從previous時(shí)鐘對(duì)應(yīng)的Hold Time開始,到current 時(shí)鐘對(duì)應(yīng)的Setup Time 結(jié)束。

            “信號(hào)電平采樣窗口”:對(duì)latch寄存器來說,從current時(shí)鐘對(duì)應(yīng)的Setup Time開始,到current時(shí)鐘對(duì)應(yīng)的Hold Time結(jié)束。

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

              

            圖 5 Launch Edge和Latch Edge

            四、數(shù)據(jù)和時(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è)時(shí)鐘clk周期為T,這里分析數(shù)據(jù)的建立時(shí)間和保持時(shí)間。

              

            圖 6 基本電路圖

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

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

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

            假設(shè)△T = Tclk2-Tclk1,則:

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

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

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

              

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

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

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

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

            假設(shè)△T = Tclk2-Tclk1,則:

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

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

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

              

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

            五、DT6000S項(xiàng)目實(shí)例

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

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

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

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

              

            圖 9 MII時(shí)序圖

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



          關(guān)鍵詞: FPGA ASIC

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();