如何利用FPGA進(jìn)行時(shí)序分析設(shè)計(jì)
發(fā)布時(shí)間:2017-06-23 責(zé)任編輯:susan
【導(dǎo)讀】FPGA即現(xiàn)場(chǎng)可編程門(mén)陣列,它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。對(duì)于時(shí)序如何用FPGA來(lái)分析與設(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í)間稱(chēng)為時(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í)為T(mén)c2s,傳輸?shù)侥繕?biāo)寄存器的延時(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í)鐘信號(hào)上升沿到來(lái)以前,數(shù)據(jù)和使能信號(hào)穩(wěn)定不變的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器,使能信號(hào)無(wú)效,也就是說(shuō)在這個(gè)時(shí)鐘周期對(duì)數(shù)據(jù)的操作時(shí)無(wú)效的;保持時(shí)間(Hold Time)常用Th表示,指的是在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以后,數(shù)據(jù)和使能信號(hào)穩(wěn)定不變的時(shí)間,如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器,對(duì)數(shù)據(jù)的操作同樣是無(wú)效的,使能信號(hào)無(wú)效。數(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寄存器來(lái)說(shuō),從previous時(shí)鐘對(duì)應(yīng)的Hold Time開(kāi)始,到current 時(shí)鐘對(duì)應(yīng)的Setup Time 結(jié)束。
“信號(hào)電平采樣窗口”:對(duì)latch寄存器來(lái)說(shuō),從current時(shí)鐘對(duì)應(yīng)的Setup Time開(kāi)始,到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(mén),這里分析數(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)
可見(jiàn)△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),并通過(guò)寄存器傳輸下去。
圖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
可見(jiàn)△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),并通過(guò)寄存器傳輸下去。
圖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通過(guò)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)過(guò)分析得到是FPGA通MII接口和PHY的時(shí)序不滿足。如圖 9所示為MII接口的時(shí)序圖,時(shí)序不滿足分為T(mén)X_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í)序滿足要求,約束的條件為T(mén)XD[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ǔ),說(shuō)明概念的同時(shí)進(jìn)行了時(shí)序分析,通過(guò)時(shí)序分析理解建立時(shí)間和保持時(shí)間。希望大家閱讀本文之后可以對(duì)FPGA時(shí)序分析有進(jìn)一步的了解。
特別推薦
- 增強(qiáng)視覺(jué)傳感器功能:3D圖像拼接算法幫助擴(kuò)大視場(chǎng)
- PNP 晶體管:特性和應(yīng)用
- 使用IO-Link收發(fā)器管理數(shù)據(jù)鏈路如何簡(jiǎn)化微控制器選擇
- 用好 DMA控制器這兩種模式 MCU效率大大提高!
- 深入分析帶耦合電感多相降壓轉(zhuǎn)換器的電壓紋波問(wèn)題
- Honda(本田)與瑞薩簽署協(xié)議,共同開(kāi)發(fā)用于軟件定義汽車(chē)的高性能SoC
- 第13講:超小型全SiC DIPIPM
技術(shù)文章更多>>
- 解決模擬輸入IEC系統(tǒng)保護(hù)問(wèn)題
- 當(dāng)過(guò)壓持續(xù)較長(zhǎng)時(shí)間時(shí),使用開(kāi)關(guān)浪涌抑制器
- 用于狀態(tài)監(jiān)測(cè)的振動(dòng)傳感器
- 解鎖多行業(yè)解決方案——AHTE 2025觀眾預(yù)登記開(kāi)啟!
- 汽車(chē)智造全“新”體驗(yàn)——AMTS 2025觀眾預(yù)登記開(kāi)啟!
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開(kāi)發(fā)工具
開(kāi)關(guān)
開(kāi)關(guān)電源
開(kāi)關(guān)電源電路
開(kāi)關(guān)二極管
開(kāi)關(guān)三極管
科通
可變電容
可調(diào)電感
可控硅
空心線圈
控制變壓器
控制模塊
藍(lán)牙
藍(lán)牙4.0
藍(lán)牙模塊
浪涌保護(hù)器
雷度電子
鋰電池
利爾達(dá)
連接器
流量單位
漏電保護(hù)器
濾波電感
濾波器