信號(hào)在FPGA之間傳輸?shù)墓潭〞r(shí)間通常比留在給定FPGA內(nèi)的信號(hào)線(xiàn)傳輸時(shí)間長(zhǎng),因此FPGA間固定時(shí)間可能成為整個(gè)原型驗(yàn)證系統(tǒng)時(shí)鐘速率的限制因素,特別是在使用TDM的情況下。如果我們專(zhuān)注于FPGA的IO和關(guān)鍵路徑的時(shí)序約束,將對(duì)原型性能產(chǎn)生更大的影響。
SoC的頂層的約束適用于FPGA到其各自時(shí)鐘域中的各個(gè)Flip_Flop,如果定義了跨時(shí)鐘域,也適用于FPGA之間。當(dāng)我們可以確保每個(gè)FPGA邊界都有一個(gè)IOFF,它與SoC中相應(yīng)的元素對(duì)齊時(shí),這一點(diǎn)對(duì)于性能而言非常重要。
在這里不會(huì)詳細(xì)說(shuō)明FPGA工具中的時(shí)序約束,因?yàn)樵万?yàn)證供應(yīng)商的用戶(hù)指南才是此類(lèi)信息的最佳來(lái)源,以下是最相關(guān)的簡(jiǎn)短說(shuō)明:
綜合工具將使用相應(yīng)FPGA的估計(jì)時(shí)序和最大延遲模型。
布局布線(xiàn)工具使用精確的時(shí)間模型來(lái)獲得最大時(shí)間,使用統(tǒng)計(jì)估計(jì)來(lái)獲得最小時(shí)間。
綜合、布局布線(xiàn)工具是時(shí)序驅(qū)動(dòng)的,因此FPGA中的所有路徑都受到約束,即使僅受全局默認(rèn)值的約束,除非使用錯(cuò)誤的路徑約束或其他方法來(lái)中斷定時(shí)路徑,明確給出寬松的定時(shí)。
黑盒將打斷時(shí)序路徑,因此建議為所有黑盒提供時(shí)序信息,以限制任何連接路徑。
FPGA IO引腳被認(rèn)為受到適用時(shí)鐘約束的約束。
一般來(lái)說(shuō),任何FPGA設(shè)計(jì)都得益于大量準(zhǔn)確的時(shí)序約束,但有時(shí)設(shè)計(jì)者可能對(duì)最終環(huán)境或時(shí)鐘域關(guān)系沒(méi)有足夠的理解來(lái)創(chuàng)建它們,這對(duì)于IO約束尤其如此。在基于FPGA的原型設(shè)計(jì)中,我們的優(yōu)勢(shì)在于: ? ? ? ?對(duì)每個(gè)FPGA引腳的邊界和外部條件有很好的理解。例如,我們知道電路板trace性能、電路板上采取的確切路線(xiàn),甚至驅(qū)動(dòng)信號(hào)的源FPGA中的邏輯。這些邊界條件可以自動(dòng)轉(zhuǎn)換為驅(qū)動(dòng)每個(gè)FPGA的綜合、布局布線(xiàn)所需的時(shí)間約束。這個(gè)過(guò)程叫做預(yù)估時(shí)間。
FPGA時(shí)序邊界的預(yù)估時(shí)間
可以通過(guò)確保路徑上的FPGA引腳處有FF來(lái)改善任何FPGA間路徑的時(shí)序。這是因?yàn)樵碏PGA輸出引腳上的時(shí)鐘到輸出延遲和目標(biāo)FPGA輸入引腳上的設(shè)置時(shí)間被最小化。 每個(gè)FPGA的IO板都有多個(gè)嵌入式FF,這些FF“免費(fèi)”提供給我們,所以為什么不使用它們呢?如果我們可以在原型中使用這些IO FF,那么它們還將提供一個(gè)額外的好處,即SoC頂級(jí)約束將默認(rèn)應(yīng)用于所有FF。
使用上述理想映射的FPGA到FPGA的時(shí)序受到頂層約束的約束,除非本地覆蓋,否則頂層約束會(huì)自動(dòng)傳播到任何路徑(內(nèi)部或外部)兩端的FF。因此,應(yīng)用于映射到IO 的FF的SoC FF的約束被簡(jiǎn)化,F(xiàn)PGA可以更容易地被隔離約束。這有助于我們的EDA工具流程,因?yàn)轫攲蛹s束將在每次設(shè)計(jì)迭代期間自動(dòng)重新應(yīng)用于FPGA。
如果分割軟件或SoC設(shè)計(jì)不提供可輕易放置在FPGA IO 中的FF,那么手動(dòng)或通過(guò)腳本化網(wǎng)表編輯添加這些FF是否可行?將額外的FF添加到SoC路徑中,以便將其映射到IO FF中,當(dāng)然,這會(huì)在該路徑中引入流水線(xiàn)延遲,從而改變其系統(tǒng)級(jí)調(diào)度。出于原型設(shè)計(jì)的目的,我們不能隨意添加這些額外的FF,因?yàn)檫@可能是為了提高性能,而不與原始設(shè)計(jì)人員進(jìn)行檢查,也可能在其他地方添加補(bǔ)償FF,以保持整個(gè)設(shè)計(jì)的進(jìn)度。因此,最好在每個(gè)SoC的模塊邊界處都有FF,并且僅在這些塊邊界處作為分割邊界。 ?
FPGA組合邊界的預(yù)估時(shí)間
如果在FPGA邊界處插入FF或?qū)F(xiàn)有FF移動(dòng)到這些邊界對(duì)于所有信號(hào)都是不可能的,則必須對(duì)跨越FPGA邊界的組合路徑進(jìn)行仔細(xì)的時(shí)序約束。在這種情況下,我們需要根據(jù)路徑的每個(gè)部分的復(fù)雜性來(lái)評(píng)估和劃分FPGA之間的預(yù)估時(shí)間。
考慮到一個(gè)FPGA上的內(nèi)部FF中的典型路徑起始于另一個(gè)FPGA中的內(nèi)部FF,我們需要打破適用的FF到FF約束,可能源自上述頂層SoC約束。由于只有總路徑受系統(tǒng)級(jí)約束控制,我們需要確定映射到兩個(gè)FPGA的路徑的兩部分應(yīng)應(yīng)用多少約束。然后,生成的IO約束將傳遞給每個(gè)FPGA的后續(xù)綜合、布局布線(xiàn)工具。
這對(duì)于要求最高性能的設(shè)計(jì)尤為重要,因?yàn)榇嬖诨虿淮嬖诰_的IO約束將導(dǎo)致位置和路線(xiàn)工具中的結(jié)果截然不同。默認(rèn)情況下,分割后在隔離FPGA上工作的綜合、布局布線(xiàn)都將假設(shè)各個(gè)時(shí)鐘的整個(gè)周期可用于將信號(hào)從IO引腳傳播到內(nèi)部FF。然而,這種假設(shè)幾乎肯定是不正確的。
例如,如果信號(hào)來(lái)自另一個(gè)FPGA中的內(nèi)部FF,則數(shù)據(jù)必須經(jīng)過(guò)該FPGA的內(nèi)部布線(xiàn)、其輸出焊盤(pán)延遲加上電路板跟蹤延遲,才能到達(dá)接收FPGA的引腳。接收FF的時(shí)鐘可能已經(jīng)在接收FPGA內(nèi)部生成。因此,我們可以看到,為了滿(mǎn)足其設(shè)置定時(shí)要求,可用于將信號(hào)通過(guò)輸入焊盤(pán)傳播到接收FF的時(shí)間大大少于整個(gè)時(shí)鐘周期。依賴(lài)默認(rèn)值是有風(fēng)險(xiǎn)的,因此我們需要在組合邊界處提供更好的IO約束,但這些值應(yīng)該是什么?
值得注意的是,可以采用半手動(dòng)方法:從第一遍FPGA時(shí)序分析中提取延遲信息,然后使用電子表格計(jì)算更精確的IO約束。然而,在組合分區(qū)邊界處為數(shù)百甚至數(shù)千個(gè)信號(hào)創(chuàng)建IO約束將是一種長(zhǎng)期且可能容易出錯(cuò)的方法。它還需要在每次設(shè)計(jì)迭代中重復(fù)。
另一種解決方法是應(yīng)用接收FF時(shí)鐘的半個(gè)時(shí)鐘周期的默認(rèn)值,并且該粗略值對(duì)于低性能目標(biāo)可能是足夠的。
好消息是,在組合分區(qū)邊界上進(jìn)行自動(dòng)和精確的預(yù)測(cè)時(shí)間是可能的。例如,使用一個(gè)簡(jiǎn)單的算法,根據(jù)總FF到FF的間隙來(lái)預(yù)算IO約束。該綜合以快速通過(guò)模式運(yùn)行,以估計(jì)考慮IO焊盤(pán)延遲甚至跟蹤延遲的路徑的時(shí)間。路徑中的多個(gè)FPGA邊界和不同的時(shí)鐘域也包含在時(shí)序計(jì)算中。結(jié)果是每個(gè)多FPGA路徑的松弛值,我們可以看到FPGA之間共享的路徑延遲的比例。這方面的一個(gè)例子如圖所示,為了便于求和,用了夸張的數(shù)字。我們看到,時(shí)序預(yù)算合成已經(jīng)估計(jì),100ns的總時(shí)鐘約束中的40ns用于遍歷第一FPGA,而10ns用于第二FPGA。FPGA之間的軌跡上也有“飛行時(shí)間”的時(shí)間余量。
允許的總路徑延遲(通常是時(shí)鐘周期)在設(shè)備之間按照每個(gè)FPGA在總路徑延遲中所占的比例進(jìn)行預(yù)算。因此,如果啟動(dòng)或捕獲FPGA在總路徑延遲中占有更大的份額,那么該FPGA的布局布線(xiàn)也將受到更寬松的IO定時(shí)約束,即路徑被給予更多的時(shí)間。對(duì)于EDA工具來(lái)說(shuō),這是一個(gè)相對(duì)簡(jiǎn)單的過(guò)程,但只有在工具對(duì)整個(gè)路徑具有自上而下的知識(shí)時(shí)才能完成。這一切都假設(shè)我們的板上的源FPGA和目標(biāo)FPGA之間存在理想的時(shí)鐘關(guān)系,我們可能需要采取額外的步驟來(lái)確保這一點(diǎn)。
?
編輯:黃飛
?
評(píng)論