FPGA設(shè)計(jì)中的時(shí)序管理
首先,我們使用TimingDesigner軟件通過(guò)存儲(chǔ)器數(shù)據(jù)表為QDR SRAM創(chuàng)造一個(gè)圖表(圖4)。我們利用此圖確定存儲(chǔ)器與有效數(shù)據(jù)窗口中的時(shí)鐘和數(shù)據(jù)信號(hào)時(shí)序的關(guān)系。目的是精確定義存儲(chǔ)器的信號(hào)關(guān)系,并在PCB到FPGA的設(shè)計(jì)中傳遞這種關(guān)系。
圖4:QDR存儲(chǔ)器讀取時(shí)序圖-MT54W1MH18J。
從圖4可以看出在FPGA的管腳上,PCB傳播延遲與時(shí)鐘(CQ_FPGA)和數(shù)據(jù)(Q_FPGA)信號(hào)間的關(guān)系。在TimingDesigner軟件的動(dòng)態(tài)鏈接參數(shù)表中使用單獨(dú)的變量可以輕松地獲得PCB板的延時(shí)及延遲值對(duì)相關(guān)的信號(hào)的影響。現(xiàn)在,我們可以在適當(dāng)?shù)腇PGA裝置中,為獲取時(shí)鐘而得到內(nèi)部布線延遲和確定正確的相位偏移。
四、FPGA設(shè)計(jì)要素
大多數(shù)的FPGA利用約束驅(qū)動(dòng)進(jìn)行布局和布線。時(shí)序約束為關(guān)鍵信號(hào)提供時(shí)序信息。TimingDesigner軟件提供獨(dú)特的時(shí)序參考圖如測(cè)量和計(jì)算變量結(jié)果,從行內(nèi)文字到文件都支持廠商特定的約束語(yǔ)法。例如,在一個(gè)FPGA約束布線中,對(duì)符合其動(dòng)態(tài)文字窗口的語(yǔ)法要求中,可以通過(guò)時(shí)序圖中為特定信號(hào)計(jì)算延遲誤差。然后,我們可以將這些語(yǔ)法通過(guò)一個(gè)文本文件導(dǎo)入到FPGA的開發(fā)系統(tǒng)中,或者我們可以直接將數(shù)值復(fù)制到FPGA的約束編輯器中。
對(duì)于高速存儲(chǔ)器接口設(shè)計(jì),數(shù)據(jù)存儲(chǔ)器被放置在FPGA裝置I/O單元的附近,以盡量減少布線延時(shí)的影響。該I/O單元只有一個(gè)布線路徑為輸入數(shù)據(jù)信號(hào),因此在數(shù)據(jù)總線的每一部分都存在數(shù)據(jù)路徑延遲。FPGA的PLL也被用來(lái)進(jìn)行適當(dāng)?shù)臅r(shí)鐘控制,并通常有幾種可能的從輸入焊盤到捕捉寄存器的路徑。制造商通過(guò)控制特定的屬性,使PLL的特點(diǎn)包括相位偏移,相乘,或相除等因素,無(wú)論是原始示例的設(shè)計(jì)代碼或約束都可以帶入模塊。因此,時(shí)鐘和數(shù)據(jù)路徑的布線和延誤必須確定,以實(shí)現(xiàn)適當(dāng)?shù)臅r(shí)鐘相位偏移。
圖5:TimingDesigner軟件為FPGA設(shè)計(jì)流程提供直觀的界面。
在FPGA的最初布局和布線完成后,時(shí)序報(bào)告提供數(shù)據(jù)總線中每個(gè)時(shí)序的詳細(xì)延時(shí)信息。如果有必要,可為FPGA開發(fā)系統(tǒng)的關(guān)鍵信號(hào)設(shè)定延時(shí)路徑,TimingDesigner軟件可以提取相關(guān)信息和利用圖表更新。在這個(gè)設(shè)計(jì)實(shí)例中,我們需要輸入數(shù)據(jù)總線和相關(guān)時(shí)鐘信號(hào)的時(shí)序報(bào)告。
導(dǎo)入布線后的時(shí)序到TimingDesigner軟件中
導(dǎo)入FPGA的時(shí)序報(bào)告信息,我們需要規(guī)劃最壞的情況從而確定在圖表(Q_FPGA)中相關(guān)的波形圖。信號(hào)設(shè)計(jì)規(guī)范定義在同一個(gè)時(shí)序圖表中不能帶有同名的波形圖。通過(guò)規(guī)劃端口, TimingDesigner軟件可以過(guò)濾時(shí)序報(bào)告并提取有用的信息。這些規(guī)劃被存儲(chǔ)在圖表文件內(nèi)并可預(yù)先解決的布局和布線問(wèn)題。
提供可視化的捕捉寄存器
從導(dǎo)入時(shí)序報(bào)告文件開始, TimingDesigner軟件為關(guān)鍵信號(hào)延時(shí)創(chuàng)建變量,并在電子數(shù)據(jù)表中規(guī)劃和分配這些信號(hào)端口。變量過(guò)去是用來(lái)在時(shí)序圖中更新時(shí)鐘與數(shù)據(jù)關(guān)系。現(xiàn)在,可確定在FPGA器件內(nèi)捕捉寄存器中的邊緣關(guān)系。
內(nèi)部寄存器建立和保持是從時(shí)序報(bào)告和相關(guān)的約束中提取所需的時(shí)序。下一步,在時(shí)序圖表中添加另外兩個(gè)信號(hào)和偏移時(shí)序報(bào)告中的布線延時(shí);在捕捉寄存器中添加數(shù)據(jù)和時(shí)鐘,然后建立和保持FPGA器件適用的約束。用時(shí)鐘邊緣和有效數(shù)據(jù)窗口邊緣的補(bǔ)償確定必要的相位偏移,來(lái)平衡設(shè)計(jì)中有效的數(shù)據(jù)窗口。
平衡有效數(shù)據(jù)窗口
我們可以使用下列公式來(lái)確定PLL時(shí)鐘信號(hào)產(chǎn)生的相位偏移:
1、從設(shè)計(jì)的實(shí)際有效數(shù)據(jù)窗口減少FPGA裝置I/O部分的最小有效數(shù)據(jù)窗口,然后結(jié)果除于2,實(shí)際結(jié)果為這2個(gè)有效數(shù)據(jù)窗口的差額(DlyDVW)。(參考圖3)
DlyDVW=(DVWdata-DVWdev)/2
2、I/O寄存器數(shù)據(jù)建立時(shí)間加上DlyDVW值,就確定了相對(duì)時(shí)鐘邊緣的有效數(shù)據(jù)窗口(DlyRelSU)。
DlyRelSU=DlyDVW+IOEsu
3、最后,從相對(duì)建立時(shí)間(上面第2步得到的數(shù)值),減去時(shí)鐘信號(hào)與捕捉寄存器的有效數(shù)據(jù)窗口(從時(shí)序圖測(cè)量)之間的補(bǔ)償。
Clk_offset=DlyRelSU-EdgeOffset
利用上述公式,我們可以確定FPGA開發(fā)系統(tǒng)中PLL的相位偏移量,并執(zhí)行到下一步的布局和布線。
驗(yàn)證結(jié)果
再次導(dǎo)入做過(guò)以上修改的布線后時(shí)序文件,TimingDesigner軟件會(huì)自動(dòng)更新需要的數(shù)值,并更正及重新定位I/O單元的時(shí)鐘信號(hào)CQ_intPLL。如圖6所示。依靠改變PLL,確切的平衡建立和保持空余將是不可能的。對(duì)于這些情況下,應(yīng)該在FPGA裝置的PLL中獲取平衡增量以解決這個(gè)問(wèn)題。
圖6:在改變時(shí)鐘和平衡建立及保持空余后,獲取數(shù)據(jù)分析的時(shí)序圖表。
五、綜述
高速設(shè)計(jì)往往有嚴(yán)格的規(guī)范和嚴(yán)謹(jǐn)?shù)陌l(fā)布時(shí)間表,所以需要一個(gè)交互式的時(shí)序規(guī)劃和分析工具,來(lái)獲得快速和完整的時(shí)序空余,以分析并解決可能影響到最終設(shè)計(jì)成功的因素。本文說(shuō)明了如何利用TimingDesigner軟件對(duì)FPGA設(shè)計(jì)流程進(jìn)行準(zhǔn)確地捕捉和交換時(shí)序信息,以幫助在整個(gè)設(shè)計(jì)過(guò)程中管理時(shí)序空余,并提供可視化的界面驗(yàn)證設(shè)計(jì),并預(yù)測(cè)設(shè)計(jì)性能。今天的FPGA器件產(chǎn)品都帶有多功能的時(shí)鐘配置和豐富的I/O資源,并且?guī)в懈邤?shù)據(jù)傳輸能力,TimingDesigner軟件為高速存儲(chǔ)器如DDR QDR SRAM提供精確的關(guān)鍵路徑時(shí)序分析功能。
評(píng)論