如何利用FPGA進(jìn)行時(shí)序分析設(shè)計(jì)
發(fā)布時(shí)間:2017-06-23 責(zé)任編輯:susan
【導(dǎo)讀】FPGA即現(xiàn)場可編程門陣列,它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。對(duì)于時(shí)序如何用FPGA來分析與設(shè)計(jì),本文將詳細(xì)介紹。
基本的電子系統(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,由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)一步的了解。
特別推薦
- 音頻放大器的 LLC 設(shè)計(jì)注意事項(xiàng)
- 服務(wù)器電源設(shè)計(jì)中的五大趨勢(shì)
- 電子技術(shù)如何助力高鐵節(jié)能?
- 利用創(chuàng)新FPGA技術(shù):實(shí)現(xiàn)USB解決方案的低功耗、模塊化與小尺寸
- 加速度傳感器不好選型?看這6個(gè)重要參數(shù)!
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十三)——使用熱系數(shù)Ψth(j-top)獲取結(jié)溫信息
- IGBT并聯(lián)設(shè)計(jì)指南,拿下!
技術(shù)文章更多>>
- 解鎖AI設(shè)計(jì)潛能,ASO.ai如何革新模擬IC設(shè)計(jì)
- 汽車拋負(fù)載Load Dump
- 50%的年長者可能會(huì)聽障?!救贖的辦法在這里
- ADI 多協(xié)議工業(yè)以太網(wǎng)交換機(jī)
- 攻略:7種傾斜傳感器的設(shè)計(jì)選擇
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)