靜態(tài)時(shí)序分析經(jīng)常會(huì)遇到基于鎖存器(latch)的設(shè)計(jì)從而引入了一個(gè)概念稱為“Time Borrowing”。這篇文章向大家解釋了什么是time borrowing,以及鎖存器(latch)設(shè)計(jì)和時(shí)序報(bào)告中關(guān)于time borrowing的處理方式。
下面的時(shí)鐘信號(hào)周期為10,占空比為50%:
同時(shí)我們引入一個(gè)簡(jiǎn)單的電路,如下所示:
為了更容易理解,我們假設(shè)每個(gè)觸發(fā)器的建立時(shí)間和保持時(shí)間均為“0”。
同樣假設(shè)時(shí)鐘偏移和時(shí)鐘延遲也為“0”。
F1在時(shí)刻0得到數(shù)據(jù),F(xiàn)2在時(shí)刻10對(duì)數(shù)據(jù)進(jìn)行了采樣。
因此如果數(shù)據(jù)在時(shí)刻10之后到達(dá)F2,那么F2就不能采集到正確的數(shù)據(jù)。
同理,從F2傳出的數(shù)據(jù)到達(dá)F3也需要10個(gè)時(shí)間單位,在下一個(gè)時(shí)鐘沿的時(shí)候被采樣。
現(xiàn)在我們用一個(gè)鎖存器(latch)L2替代F2,鎖存器的Gate也由同樣的時(shí)鐘信號(hào)驅(qū)動(dòng):
F1在時(shí)刻0發(fā)出數(shù)據(jù):
數(shù)據(jù)會(huì)在時(shí)刻10之前到達(dá)鎖存器的輸入端,數(shù)據(jù)會(huì)在鎖存器的D端口等待。
這與F2的效果非常相似。
但是如果數(shù)據(jù)在時(shí)刻10之后到達(dá)會(huì)發(fā)生什么呢?
在時(shí)刻10到15之間可以說(shuō)L2是透明的。
因此即使數(shù)據(jù)在時(shí)刻10之后到達(dá)L2,L2也能夠處理只要數(shù)據(jù)能夠在時(shí)刻15之前到達(dá)L2。
這意味著數(shù)據(jù)可以最多用15個(gè)時(shí)間單位到達(dá)鎖存器,而使用觸發(fā)器最多是10個(gè)時(shí)間單位。
舉個(gè)例子,如果數(shù)據(jù)在時(shí)刻12到達(dá)L2,這意味著與觸發(fā)器相比,鎖存器提供了2個(gè)時(shí)間單位的優(yōu)勢(shì)。
在這個(gè)例子中L2最多能提供5個(gè)時(shí)間單位的優(yōu)勢(shì)。
現(xiàn)在讓我們?cè)賮?lái)看一下L2到F3之間的路徑。
數(shù)據(jù)在時(shí)刻12從L2傳出,在時(shí)刻20被F3采樣。
那么從L2到F3僅花費(fèi)了8個(gè)時(shí)間單位。
在都是由觸發(fā)器組成的電路中,第二段路徑則需要10個(gè)時(shí)間單位。
這樣看來(lái)這個(gè)電路少用了2個(gè)時(shí)間單位。
從本質(zhì)上來(lái)說(shuō):
通往鎖存器的路徑多用了2個(gè)時(shí)間單位 因此,鎖存器后面的路徑必須在原來(lái)的基礎(chǔ)上(10個(gè)時(shí)間單位)少用2個(gè)時(shí)間單位。我們可以這樣來(lái)看,通往鎖存器的路徑向后面的路徑“借用”了2個(gè)時(shí)間單位。
因此,通往鎖存器的路徑可以從后續(xù)的路徑借用時(shí)間(相當(dāng)于鎖存器是透明的)。
時(shí)間借用的時(shí)間不需要全部都借。
實(shí)際借用的時(shí)間只需要滿足路徑時(shí)序要求的最小值(鎖存器全部透明時(shí)為最大界限)。
以我們這個(gè)例子來(lái)說(shuō):
可以借用的時(shí)間單位為5個(gè)時(shí)間單位。 實(shí)際借用的時(shí)間為2個(gè)時(shí)間單位。 默認(rèn)是10個(gè)時(shí)間單位,加上額外的2個(gè)時(shí)間單位,這段信號(hào)路徑需要12ns能夠滿足時(shí)序要求。我們要注意到F1到F3這段路徑仍然使用了20個(gè)時(shí)間單位,沒(méi)用改變。
只是時(shí)間分布改變了。
感謝Catalin Baetoniu,在實(shí)際的時(shí)序設(shè)計(jì)中驗(yàn)證了這些概念。
作者:Sanjay Churiwala,賽靈思公司工具與方法學(xué)應(yīng)用專(zhuān)家
評(píng)論
查看更多