如何有效的管理FPGA設(shè)計中的時序問題
當(dāng)
二、導(dǎo)言
FPGA的設(shè)計與高速接口技術(shù)可以幫助你滿足今天的市場要求,但也提出了一些有趣的設(shè)計挑戰(zhàn)。為了確保存儲器接口的數(shù)據(jù)傳輸準(zhǔn)確,在超過200兆赫茲以上,進行時序分析將發(fā)揮更突出的作用,以識別和解決系統(tǒng)運行的問題。在這些頻率內(nèi),最重要的是創(chuàng)建和控制時序空余,留下最小的空余,以確保數(shù)據(jù)采集和演示窗口的準(zhǔn)確。更快的邊緣速率同時也放大物理設(shè)計的影響,造成信號完整性問題,對此則需要更多的沉降時間及縮小時序空余。歡迎轉(zhuǎn)載,本文來自電子發(fā)燒友網(wǎng)(http://www.elecfans.com )
FPGA器件現(xiàn)在還包括某些先進的功能,如支持帶有I/O單元接口的雙通道數(shù)據(jù)(DDR)和板上鎖相環(huán)(PLL)網(wǎng)絡(luò)進行精確時鐘控制等等。這些在FPGA技術(shù)中的高級功能均提供先進的接口模塊,從而有助于減少界面設(shè)計,再加上TimingDesigner軟件的獨特能力,在最短的時序中提供最準(zhǔn)確、有力的解決方案。本文主要探討了DDR型存儲器接口設(shè)計中必要的時鐘偏移及數(shù)據(jù)采集的時序空余。
圖1:TimingDesigner軟件便于捕獲設(shè)計特點的圖形界面窗口。
三、DDR/QDR存儲器接口的設(shè)計問題
DDR或四倍數(shù)據(jù)速率(QDR)存儲設(shè)備可以提供和接受兩倍于器件時鐘頻率的源同步數(shù)據(jù),這意味著數(shù)據(jù)在時鐘的上升緣和下降緣傳輸。此外,需要捕捉時鐘偏移和進行適當(dāng)?shù)卣{(diào)整,以確保適當(dāng)?shù)臅r鐘與數(shù)據(jù)關(guān)系。
如前所述,現(xiàn)在一些FPGA裝置包括DDR接口的I/O單元和板上的PLL網(wǎng)絡(luò)。這意味著,你必須有一個方式來控制模塊的準(zhǔn)確和可靠。為了說明這一點,讓我們來讀取QDR II SRAM源同步接口的設(shè)計要求看看實例。
在同步存儲器系統(tǒng)例如QDR SRAM中,數(shù)據(jù)是與時鐘同步的,所以存儲器數(shù)據(jù)的相位必須旋轉(zhuǎn)90度。這種相位旋轉(zhuǎn)通常在有效數(shù)據(jù)窗口中進行時鐘中心調(diào)整,這是QDR實現(xiàn)準(zhǔn)確數(shù)據(jù)采集的一個重要設(shè)計特點(見下文圖2)。如果要改變時鐘中心,我們可以通過對板上FPGA的PLL網(wǎng)絡(luò)進行簡單的延時時鐘信號來達到。
圖2:中心對齊的時鐘/數(shù)據(jù)關(guān)系。
獲取數(shù)據(jù)
延遲時鐘信號可以實現(xiàn)中心對齊以避免各種溫度變化和其他類似的設(shè)計影響,可能會對時鐘或數(shù)據(jù)方面帶來一些影響,但不會很大,但違背了接收存儲器的建立或保持時序的要求。在理論上,對于大部分器件,中心對齊的時鐘邊緣將最大限度地建立和保持時序,留出足夠的安全空余。然而,除非建立的需求合適于保持的需求,時鐘信號的中心對齊將提供更多的時序空余。
理想的解決辦法是為器件的建立和保持提供一個最大的安全空余,可以通過轉(zhuǎn)化平衡空余,為二者都提供相同的安全空余。為了平衡空余,我們?yōu)榻邮掌骷_定最低的有效數(shù)據(jù)窗口,在實際有效數(shù)據(jù)窗口的中心窗內(nèi)可以給我們的存儲器提供設(shè)計參數(shù)。
利用接收器件最小的建立和保持時間,我們可以利用下面的公式確定最小的"安全"的有效數(shù)據(jù)窗口:
最小創(chuàng)建時間+最低保持時間=最低有效數(shù)據(jù)窗口
如圖3所示,在存儲器器件中可以看出,實際結(jié)果是在有效數(shù)據(jù)窗口中間。為了確保獲取數(shù)據(jù),總線必須在接收器最小的有效數(shù)據(jù)窗口外的"安全"區(qū)域內(nèi)進行轉(zhuǎn)換。根據(jù)時鐘與數(shù)據(jù)的關(guān)系,信號設(shè)計在任一區(qū)域內(nèi),在獲取數(shù)據(jù)時,我們確保盡可能多的安全空余。
圖3:平衡實際有效數(shù)據(jù)窗口中的最小有效數(shù)據(jù)窗口。
實現(xiàn)適當(dāng)?shù)臅r鐘偏移
源同步時鐘的相位偏移將有效地改變存儲控制器接收寄存器的最小有效數(shù)據(jù)窗口,因此將形成平衡有效數(shù)據(jù)窗口。時鐘偏移調(diào)整是FPGA裝置中PLL器件的一個組成部分。要確定偏移的值,我們必須考慮到影響信號的布線延遲和任何外部延遲。[!--empirenews.page--]
首先,我們使用TimingDesigner軟件通過存儲器數(shù)據(jù)表為QDR SRAM創(chuàng)造一個圖表(圖4)。我們利用此圖確定存儲器與有效數(shù)據(jù)窗口中的時鐘和數(shù)據(jù)信號時序的關(guān)系。目的是精確定義存儲器的信號關(guān)系,并在PCB到FPGA的設(shè)計中傳遞這種關(guān)系。
圖4:QDR存儲器讀取時序圖-MT54W1MH18J。
從圖4可以看出在FPGA的管腳上,PCB傳播延遲與時鐘(CQ_FPGA)和數(shù)據(jù)(Q_FPGA)信號間的關(guān)系。在TimingDesigner軟件的動態(tài)鏈接參數(shù)表中使用單獨的變量可以輕松地獲得PCB板的延時及延遲值對相關(guān)的信號的影響?,F(xiàn)在,我們可以在適當(dāng)?shù)腇PGA裝置中,為獲取時鐘而得到內(nèi)部布線延遲和確定正確的相位偏移。
四、FPGA設(shè)計要素
大多數(shù)的FPGA利用約束驅(qū)動進行布局和布線。時序約束為關(guān)鍵信號提供時序信息。TimingDesigner軟件提供獨特的時序參考圖如測量和計算變量結(jié)果,從行內(nèi)文字到文件都支持廠商特定的約束語法。例如,在一個FPGA約束布線中,對符合其動態(tài)文字窗口的語法要求中,可以通過時序圖中為特定信號計算延遲誤差。然后,我們可以將這些語法通過一個文本文件導(dǎo)入到FPGA的開發(fā)系統(tǒng)中,或者我們可以直接將數(shù)值復(fù)制到FPGA的約束編輯器中。
對于高速存儲器接口設(shè)計,數(shù)據(jù)存儲器被放置在FPGA裝置I/O單元的附近,以盡量減少布線延時的影響。該I/O單元只有一個布線路徑為輸入數(shù)據(jù)信號,因此在數(shù)據(jù)總線的每一部分都存在數(shù)據(jù)路徑延遲。FPGA的PLL也被用來進行適當(dāng)?shù)臅r鐘控制,并通常有幾種可能的從輸入焊盤到捕捉寄存器的路徑。制造商通過控制特定的屬性,使PLL的特點包括相位偏移,相乘,或相除等因素,無論是原始示例的設(shè)計代碼或約束都可以帶入模塊。因此,時鐘和數(shù)據(jù)路徑的布線和延誤必須確定,以實現(xiàn)適當(dāng)?shù)臅r鐘相位偏移。
圖5:TimingDesigner軟件為FPGA設(shè)計流程提供直觀的界面。
在FPGA的最初布局和布線完成后,時序報告提供數(shù)據(jù)總線中每個時序的詳細延時信息。如果有必要,可為FPGA開發(fā)系統(tǒng)的關(guān)鍵信號設(shè)定延時路徑,TimingDesigner軟件可以提取相關(guān)信息和利用圖表更新。在這個設(shè)計實例中,我們需要輸入數(shù)據(jù)總線和相關(guān)時鐘信號的時序報告。
導(dǎo)入布線后的時序到TimingDesigner軟件中
導(dǎo)入FPGA的時序報告信息,我們需要規(guī)劃最壞的情況從而確定在圖表(Q_FPGA)中相關(guān)的波形圖。信號設(shè)計規(guī)范定義在同一個時序圖表中不能帶有同名的波形圖。通過規(guī)劃端口, TimingDesigner軟件可以過濾時序報告并提取有用的信息。這些規(guī)劃被存儲在圖表文件內(nèi)并可預(yù)先解決的布局和布線問題。
提供可視化的捕捉寄存器
從導(dǎo)入時序報告文件開始, TimingDesigner軟件為關(guān)鍵信號延時創(chuàng)建變量,并在電子數(shù)據(jù)表中規(guī)劃和分配這些信號端口。變量過去是用來在時序圖中更新時鐘與數(shù)據(jù)關(guān)系。現(xiàn)在,可確定在FPGA器件內(nèi)捕捉寄存器中的邊緣關(guān)系。
內(nèi)部寄存器建立和保持是從時序報告和相關(guān)的約束中提取所需的時序。下一步,在時序圖表中添加另外兩個信號和偏移時序報告中的布線延時;在捕捉寄存器中添加數(shù)據(jù)和時鐘,然后建立和保持FPGA器件適用的約束。用時鐘邊緣和有效數(shù)據(jù)窗口邊緣的補償確定必要的相位偏移,來平衡設(shè)計中有效的數(shù)據(jù)窗口。
平衡有效數(shù)據(jù)窗口
我們可以使用下列公式來確定PLL時鐘信號產(chǎn)生的相位偏移:
1、從設(shè)計的實際有效數(shù)據(jù)窗口減少FPGA裝置I/O部分的最小有效數(shù)據(jù)窗口,然后結(jié)果除于2,實際結(jié)果為這2個有效數(shù)據(jù)窗口的差額(DlyDVW)。(參考圖3)
DlyDVW=(DVWdata-DVWdev)/2
2、I/O寄存器數(shù)據(jù)建立時間加上DlyDVW值,就確定了相對時鐘邊緣的有效數(shù)據(jù)窗口(DlyRelSU)。
DlyRelSU=DlyDVW+IOEsu
3、最后,從相對建立時間(上面第2步得到的數(shù)值),減去時鐘信號與捕捉寄存器的有效數(shù)據(jù)窗口(從時序圖測量)之間的補償。
Clk_offset=DlyRelSU-EdgeOffset
利用上述公式,我們可以確定FPGA開發(fā)系統(tǒng)中PLL的相位偏移量,并執(zhí)行到下一步的布局和布線。
驗證結(jié)果
再次導(dǎo)入做過以上修改的布線后時序文件,TimingDesigner軟件會自動更新需要的數(shù)值,并更正及重新定位I/O單元的時鐘信號CQ_intPLL。如圖6所示。依靠改變PLL,確切的平衡建立和保持空余將是不可能的。對于這些情況下,應(yīng)該在FPGA裝置的PLL中獲取平衡增量以解決這個問題。
圖6:在改變時鐘和平衡建立及保持空余后,獲取數(shù)據(jù)分析的時序圖表。
五、綜述
高速設(shè)計往往有嚴格的規(guī)范和嚴謹?shù)陌l(fā)布時間表,所以需要一個交互式的時序規(guī)劃和分析工具,來獲得快速和完整的時序空余,以分析并解決可能影響到最終設(shè)計成功的因素。本文說明了如何利用TimingDesigner軟件對FPGA設(shè)計流程進行準(zhǔn)確地捕捉和交換時序信息,以幫助在整個設(shè)計過程中管理時序空余,并提供可視化的界面驗證設(shè)計,并預(yù)測設(shè)計性能。今天的FPGA器件產(chǎn)品都帶有多功能的時鐘配置和豐富的I/O資源,并且?guī)в懈邤?shù)據(jù)傳輸能力,TimingDesigner軟件為高速存儲器如DDR & QDR SRAM提供精確的關(guān)鍵路徑時序分析功能。