• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
69
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

對於時脈差異最小化之時序限制暫存器重 設定

Timing-Constrained Register Reassignment for Clock Skew Minimization

系 所 別:資訊工程學系碩士班 學號姓名:M10002025 張鈞強 指導教授:顏 金 泰 博 士

中 華 民 國 103 年 8 月

(2)

I

中文摘要

隨著製程技術的微縮,製程變異對時脈差異所產生的影響變得越來越明顯。在過 去採用樹狀結構的時脈網路設計方式已經無法滿足時脈差異的需求。時脈網格多重路 徑特性的設計方式可以改善對製程變異的容忍度以及電路的可靠度,並且減少時脈差 異。

以網格為基礎的時脈網路中,時脈差異的降低可以藉由支線長度差異的降低作為 估計。在本篇論文中,再給定擺置過後的電路、網格大小、以及暫存器的準備時間與 保持時間後,藉由二階段式反覆重設定的演算法,將暫存器的位置重設定達成在時脈 網格中時脈差異的最小化。在重設定的方法中,藉由時序限制式建構出一個時序限制 的安全區域,使得在此區域中的暫存器會滿足時序限制式。在這二階段中,最長支線 長度的暫存器會先被重設定,藉以縮短支線的長度,此外在第二階段為將最短支線長 度的暫存器進行重設定,藉以增長支線的長度。支線的長度差異會在經過二階段式反 覆重設定的演算法後而有所減少。由測試電路的實驗結果可以得知,我們的演算法將 暫存器的位置重設定後,平均減少 9.98%的時脈差異。

關鍵字:時序限制、時脈網格、時脈差異最小化。

(3)

II

Abstract

As technology scale down, process variation impacts on clock skew. In general, tree-based clock network cannot satisfy the skew requirement. Hence, routing redundancy in a mesh-based clock network must be applied to improve the tolerance and reliability for process variation. Besides that, clock skew can be further reduced in a mesh-based clock network.

In a mesh-based clock network, the skew reduction can be estimated by using the skew reduction of the stub lengths on registers. In this paper, given a placement of connecting registers in a circuit inside a clock mesh and the setup and hold timing constrains of registers, a two-phase iterative reassignment algorithm is proposed to reassign the locations of all the registers under timing constrains for skew reduction in a mesh-based clock network. In the reassignment approach, based on the extraction of a safe timing-constrained region under setup and hold constrains, the registers with longer stub length are firstly reassigned to decrease the stub lengths on registers. Furthermore, the registers with shorter stub length are reassigned to increase the stub lengths on registers.

After running two-phase iterative register reassignment, the skew of the stub lengths on register can be reduced. The experimental results show that our proposed algorithm can reassignment the locations of some registers to reduce 9.98% of the clock skew for the tested examples on the average.

Keywords: Timing constraint, Clock mesh, Clock skew minimization.

(4)

III

致謝

在研究所學習研究的過程中,能夠順利的完成學業並完成論文,在此先特別感謝 我的指導教授顏金泰老師,不只是在課業上或者是生活中,遇到問題時,都能適時給 予我最大的幫助以及建議,讓我可以順利的將問題解決。

除了師長的協助外,也特別感謝每位學長、學弟以及同學的支持及幫助。感謝志 瑋學長對於課業上的指導與幫助,及學長和同學建榮、聖凱、銘群、智偉、昱仁、書 延、孟苓的關心與建議;還有學弟戎佩的協助與支持。有你們的陪伴,讓我在研究所 的期間度過各種難關。

最後,謹將此論文獻給我最愛的家人、師長以及協助過我的所有人,與大家分享 這份得來不易的榮耀,並致上十二萬分的感謝。

(5)

IV

目錄

中文摘要 ... I Abstract ... II 致謝 ... III 表目錄 ... VII 圖目錄 ... VIII

第一章 簡介 ... 1

1.1 積體電路的發展 ... 1

1.2 時脈信號 ... 2

1.3 時脈信號的不確定性 ... 4

1.3.1 動態變異-時脈抖動... 4

1.3.2 靜態變異-時脈差異... 4

1.4 在時序限制式中的時脈差異 ... 5

1.5 時脈分送網路 ... 6

1.5.1 樹狀結構的設計 ... 7

1.5.2 非樹狀結構的設計 ... 7

1.5.3 時脈網格的技術 ... 8

1.6 時脈網格的設計 ... 10

1.6.1 網格的產生 ... 10

1.6.2 前端驅動樹的產生 ... 11

第二章 相關研究 ... 12

(6)

V

2.1 時脈差異的估計 ... 12

2.2 網格尺寸對時脈差異之改善 ... 12

2.3 暫存器的移動改善時脈差異 ... 13

第三章 研究動機與問題描述 ... 16

3.1 研究動機 ... 16

3.1.1 少量暫存器的移動 ... 16

3.1.2 時序限制安全區域的建構 ... 17

3.2 問題描述 ... 18

第四章 二階段反覆式重設定演算法 ... 20

4.1 演算法流程 ... 20

4.2 縮短支線長度階段流程 ... 21

4.2.1 最長支線長度暫存器之集合 ... 22

4.2.2 縮短支線長度之暫存器的分群 ... 24

4.2.3 縮短支線長度之時序限制安全區域的建構 ... 26

4.2.4 縮短支線長度之暫存器位置重設定 ... 38

4.3 增長支線長度階段流程 ... 40

4.3.1 最短支線長度暫存器之集合 ... 41

4.3.2 增長支線長度之暫存器的分群 ... 42

4.3.3 增長支線長度之時序限制安全區域的建構 ... 42

4.3.4 增長支線長度之暫存器位置重設定 ... 45

第五章 實驗結果 ... 47

(7)

VI

5.1 實驗範例設計 ... 47

5.2 實驗結果與比較 ... 52

第六章 結論 ... 55

參考文獻 ... 56

(8)

VII

表目錄

表 1-1 樹狀結構和網狀結構的比較 ... 10

表 3-1 不同減少時脈差異的方式... 17

表 3-2 不同減少時脈差異方式的總結 ... 17

表 5-1 實驗參數 ... 48

表 5-2 實驗輸入資訊分析 ... 49

表 5-3 總移動量之比較 ... 53

表 5-4 時脈差異減少之比較 ... 54

(9)

VIII

圖目錄

圖 1-1 時脈信號的週期性循環 ...2

圖 1-2 同步電路與非同步電路差異 ...3

圖 1-3 時脈信號的抖動現象 ...4

圖 1-4 時脈差異 ...5

圖 1-5 組合路徑 ...6

圖 1-6 時脈樹與 H-tree ...7

圖 1-7 跨接的設計方式...8

圖 1-8 時脈網格架構 ...9

圖 1-9 不同網格的設計方式 ... 11

圖 1-10 前端驅動樹的設計 ... 11

圖 2-1 支線長度在不同密度網格的變化 ... 13

圖 2-2 將暫存器靠近網格 ... 14

圖 2-3 暫存器 FFj的合法移動區域 ... 15

圖 3-1 未考量時脈差異的安全區域 ... 18

圖 3-2 輸入及輸出資訊... 19

圖 4-1 演算法的設計流程 ... 21

圖 4-2 縮短支線長度階段流程 ... 22

圖 4-3 暫存器支線長度的計算 ... 23

圖 4-4 決定最長支線長度暫存器集合 ... 24

圖 4-5 共用資源的競爭... 25

圖 4-6 縮短階段中暫存器的分群 ... 26

圖 4-7 二個暫存器之間的參考點 ... 26

圖 4-8 電路的分解 ... 28

圖 4-9 在縮短支線長度階段暫存器 FFi到暫存器 FFj之間的參考點 ... 30

(10)

IX

圖 4-10 距離差關係:二個固定點 A、B 與移動點 C 之示意圖 ... 30

圖 4-11 在尤拉平面中所形成的中垂線點集合 ... 31

圖 4-12 在尤拉平面中所形成的半曲線點集合 ... 31

圖 4-13 在曼哈頓平面中所形成的三個區段點集合 ... 32

圖 4-14 在二個界線之間所形成的範圍... 32

圖 4-15 暫存器 FFj到暫存器 FFk之間的參考點 ... 33

圖 4-16 距離和關係:二個固定點 A、B 與移動點 C 之示意圖 ... 33

圖 4-17 在尤拉平面中所形成的橢圓外圍點集合 ... 34

圖 4-18 在曼哈頓平面中所形成的八角形外圍點集合 ... 35

圖 4-19 在二個八角形外圍之間所形成的範圍 ... 35

圖 4-20 範例:平面上的參考點位置 ... 36

圖 4-21 FFj在時序限制下的安全區域之範例 ... 37

圖 4-22 在縮短支線長度階段中暫存器 D 的三個固定參考點之轉換... 37

圖 4-23 在縮短支線長度階段中暫存器 D 二個區域的交集 ... 38

圖 4-24 在縮短支線長度階段中單一暫存器的重新分配 ... 39

圖 4-25 在縮短支線長度階段中的相互連接暫存器群集 ... 40

圖 4-26 增長支線長度階段流程 ... 40

圖 4-27 決定最短支線長度暫存器集合... 41

圖 4-28 在增長支線長度階段中暫存器的分群 ... 42

圖 4-29 在增長支線長度階段中暫存器 E 上的三個固定參考點之轉換 ... 43

圖 4-30 在增長支線長度階段中暫存器 E 二個區域的交集 ... 44

圖 4-31 在增長支線長度階段中單一暫存器的重新分配 ... 45

圖 4-32 在增長支線長度階段中的相互連接暫存器群集 ... 46

圖 5-1 RC 電路延遲模型 ... 48

圖 5-2 Circuit 01 ... 49

(11)

X

圖 5-3 Circuit 02 ... 50

圖 5-4 Circuit 03 ... 50

圖 5-5 Circuit 04 ... 51

圖 5-6 Circuit 05 ... 51

圖 5-7 整體支線長度減少的演算法之流程 ... 52

圖 5-8 時脈差異比較 ... 54

(12)

1

第一章 簡介

隨著科技的進步,生活周遭的設備與產品逐漸的趨向於電子與資訊化,數十年前 人們每日所看的映像管電視、聽音樂用的錄音卡帶隨身聽、出門旅遊攜帶的傻瓜相機、

學校上課用的幻燈片投影機、黑白畫面的傳統手機…等等;直到今日發展出的智慧型 電視、MP3 隨身聽、數位相機、數位單槍投影機、智慧型手機。這些科技的進步,

都使許多產品不只侷限於單一化的功能,並且能與更多的設備相互連結,這些功能都 提升了我們生活的品質與效率。在這些電子設備當中的核心就是積體電路(Integrated Circuit, IC)。

1.1 積體電路的發展

積體電路的發展最早起源於西元 1946 年,由莫屈里和艾克特二位學者利用真空 管元件發明出的第一台名為 ENIAC 的電腦。而在發明這一台計算機之後,計算機以 相當驚人的速度發展,並且隨著時代製造技術的進步,所設計出的電子產品也變得越 來越小,功能也越來越多樣與強大。在西元 1965 年,由 Intel 創辦人高登‧摩爾提出 了摩爾定律(Moore's Law),其大意為在特定大小的晶片上,每隔 18~24 個月,該晶片 上電晶體的數目會增加一倍。

在早期的 IC 中,電晶體數量只有上百或上千顆,在當時的設計還可以透過人工 合成的方式來完成,一直發展至今,IC 裡的電晶體數量將以億為單位做計算,增加 了電路設計的複雜度,並且因為製程技術的微縮,這使得設計電路的複雜性大為的增 加,造成在設計過程當中容易出錯,因此,無法使用一般人工邏輯閘的電路設計方式 來完成。由於工程師設計晶片的生產力的速度無法滿足電路設計的複雜度上升的速度,

於是藉由計算機輔助設計軟體(Computer-Aided Design, CAD),使得設計電路的工程 師只頇專注於晶片內各模組之間的描述,以便增加設計的生產力。這些計算機輔助設

(13)

2

計軟體協助 IC 設計的工程師來對這些數以千萬、億計的電路進行合成、擺置、繞線、

驗證以及測試,以便完成超大型積體電路(Very-Large-Scale Integration, VLSI)晶片的設 計。

1.2 時脈信號

隨著資訊科技的快速發展,電腦所需要處理的運算要比以前更為複雜,因此電路 計算速度的要求也變得越來越高,除了內部核心時脈的提升外並且也增加單一晶片裡 的核心數量來提升處理器的運作效能,而時脈信號就決定這個電路的運算速度。

在電路的設計中,主要有二種電路:一種為組合邏輯電路,另一種為循序電路。

組合邏輯電路與前次的輸出狀態無關,然而循序電路的輸出結果會與前次電路的輸出 狀態有關係,在同樣的輸入其結果不一定會相同,還必頇考量前次輸出的結果。為了 要保存此電路的狀態,此電路的設計會有回饋的特徵,將電流以迴路的方式儲存於電 路中,當要對此電路進行儲存或讀取時,就必需要有一個訊號做為控制,此控制訊號 就稱為時脈信號。

時脈信號是一個有週期且規律性的電壓信號,如下圖 1-1。藉由時脈訊號決定循 序電路資料存取的時間,而存取的時間是在時脈訊號的邊緣,所以有邊緣觸發之稱,

而時脈週期則是指完成一次時脈訊號所必頇花費的時間,所以,越短的時脈週期則代 表電路的運行速度越快。

圖 1-1 時脈信號的週期性循環

. . . .

時脈週期的循環

時脈週期 時脈邊緣

(14)

3

在電路的設計架構上可以分為同步(Synchronous)電路與非同步(Asynchronous)電 路。同步電路的所有元件是透過一個共同的時脈產生器來產生高低電位的時脈訊號,

藉由電位的改變來讀取或儲存循序電路,而產生的訊號提供給所有的同步元件。在理 想的設計之下,時脈信號從時脈來源端至所有目的端的到達時間必頇是一致的,才能 確保電路設計的正確性。另一種為非同步電路設計的方式,非同步電路的元件時脈源 並不相同,而是透過各個元件彼此之間溝通的方式進行元件的觸發,這樣設計的好處 是降低電磁干擾以及較為省電,由於測試非同步電路的困難度較高以及輔助工具的不 成熟,所以現階段仍然以同步電路的設計方式為主。

如圖 1-2(a)在同步電路中暫存器 FF1、FF2與 FF3皆由時脈信號 CLK 所驅動,在 圖 1-2(b)非同步電路設計的方式當中,各個暫存器之間並不是用相同的時脈來源所觸 發。

圖 1-2 同步電路與非同步電路差異

在電腦的作業系統中可以觀察到時脈信號運作頻率的數值,此數值通常以赫茲單 位來顯示,更高的赫茲數代表了單位時間內有更多的時脈邊緣,也就是代表處理器的 運行速度就越快,在實際的設計當中,在計算上通常以週期為單位,其意義為二個時 脈邊緣之間的時間間隔,跟赫茲表示方式不太相同的是,因為週期與赫茲相互為倒數 關係,所以越低的週期數則代表處理器的效能越好。

FF1 FF2 FF3

FF1 FF2 FF3

CLK

CLK

(a)同步電路

(b)非同步電路

(15)

4

1.3 時脈信號的不確定性

時脈信號會週期性地將時脈訊號從同一個時脈來源端送至各個循序元件,但是這 些信號抵達時間會因為製程、環境、溫度…等變化產生訊號抵達時間的不確定性。這 種不確定的因素可以被歸納分類為靜態與動態的變異。

1.3.1 動態變異-時脈抖動

在動態的變異中主要由電路環境造成的變以及溫度有關,電路功率的消耗,造成 晶片上溫度的不相同為造成動態變異的主要原因。由於溫度的差異會造成在時脈路徑 上的緩衝器其電壓或是活動度的變動,因此在每一個路徑上的延遲時間會因為溫度的 不同而產生相當大的差異,造成時脈差異的問題。這種現象會使得信號產生抖動的現 象,而這種影響在設計時是無法被預期的,這現象被稱為時脈抖動(Clock jitter)。

如下圖 1-3 中,因為受到外在環境干擾的影響,使得原本規律週期的時脈信號產 生不穩定的現象;靜態的影響是在設計的過程中就已經存在的現象,這種現象是可以 被預期的,例如時脈差異(Clock skew)。

圖 1-3 時脈信號的抖動現象

1.3.2 靜態變異-時脈差異

從時脈產生器到各端點的路徑中,會經過一些組合邏輯運算。在理想的狀況下,

時脈訊號從時脈來源端出發,經由各路徑抵達各個終端點所需要的時間是相同的。但

時脈抖動

(16)

5

是在實體設計的階段中會存在著抵達時間的差異於時脈路徑中,會產生這些差異主要 的原因是因為,路徑上導線的長度或寬度的不同,導致時脈路徑上產生不同的延遲,

即使在所有的路徑當中都使用相同的材質,但是因為受到環境或製程變異的影響,也 會導致這些路徑上延遲時間的不一致。而各個暫存器的延遲時間為從時脈來源端到各 個時脈終端點上累計的延遲時間,此為時序分析上重要的議題。

如圖 1-4 所示,時脈來源端會產生固定的時脈信號傳送到各個暫存器中,而在某 一個輸入的暫存器 FFi,經由組合邏輯電路傳送資料至另一個輸出的暫存器 FFj,這些 暫存器之間的資料傳送與接收的動作皆由同一個時脈信號控制。假設最晚接收到時脈 訊號的暫存器為 FFi,假設最早接收到時脈訊號的暫存器為 FFj,而時脈差異的值為,

暫存器 FFi與暫存器 FFj之間,接收到時脈訊號時間的差異|ti - tj|。

圖 1-4 時脈差異

在同步電路的設計當中,時脈差異會產生準備時間(Setup time)和保持時間(Hold time)的變異性,而產生電路無法預期的錯誤。由於在每一個時脈路徑之間會存在著不 同的延遲時間,所以在電路的設計上,將時脈差異最小化或者限制在可容忍的界限值 之內,而此問題在高效能的電路設計中已是一個非常重要的課題。

1.4 在時序限制式中的時脈差異

為了要使電路能夠正常運作,元件之間的延遲時間必頇要符合時序限制式,在時 序限制式當中有二項條件,分別為準備時間與保持時間,而時脈差異的這種現象會影 響到時序限制式。

組合邏輯電路 Cp

FFi FFj

tj

ti

(17)

6

在圖 1-5 中,在暫存器 FFi與暫存器 FFj之間的時序限制式可以用以下二個公式 來表示,其中Cp為時脈週期,TFFi為暫存器 FFi的內部延遲,Ti→jdmax為二暫存器之間的 最大傳遞延遲時間,Ti→jdmin為二暫存器之間的最小傳遞延遲時間,ti為訊號抵達暫存器 FFi的時間,tj為訊號抵達暫存器 FFj的時間,Tsetupj 為暫存器 FFj的準備時間,Tholdj 為 暫存器 FFj的保持時間。

Cp - TFFi - Ti→jdmax + tj ≥ Tsetupj + ti TFFi + Ti→jdmin + ti ≥ Tholdj + tj

圖 1-5 組合路徑

根據時序限制式,將此限制式改寫成具有時脈差異現象的關係式,分別為Cp - TFFi - Ti→jdmax + (tj - ti) ≥ Tsetupj 以及TFFi + Ti→jdmin + (ti - tj) ≥ Tholdj 。從這二個式子中可以看出,當 ti > tj時將會對準備時間的限制式產生不利的影響,然而卻有利於保持時間的限制式;

相反的,當ti < tj時則是有利於準備時間的限制式,卻不利於保持時間的限制式。因此 為了要同時不對此二限制式產生不良的影響,在設計上通常考慮的是 ti與 tj相減的絕 對值,當|ti - tj|越小時,無論是在準備時間或是保持時間的限制式之下都是較為有利 的。

1.5 時脈分送網路

在同步電路系統的電路當中存在著許多需要經由時脈信號所驅動的元件,將這時 脈的信號送至各元件所形成的網路稱之為時脈分送網路,而時脈分送網路的設計會直 接地影響到系統的效能和可靠度。由於時脈分送網路占了大部分的繞線資源,因此它

組合邏輯電路

Cp

FFi FFj

ti tj

(18)

7

是電路中功率消耗的主要來源。時脈分送網路的設計主要有二大類:一種為以樹為基 礎的設計(Tree-based),另一種為以非樹為基礎的設計(Non-tree based)。

1.5.1 樹狀結構的設計

以樹為基礎的時脈分送網路設計,又稱為時脈樹(Clock tree),這是一種較為節省 設計時脈訊號分佈的方式,當採用時脈樹狀結構的設計方式時,一個具有 h 階層的樹 狀結構,至多可以分配時脈訊號給 2h個暫存器,此設計減少了繞線的資源,同時也 降低了電源功率的消耗,並且因為來源端到目的端路徑單一的特性,因此,在時序分 析上也較為容易。H-tree 為樹狀結構的一種設計方式,其建構方式為在每一個階層都 以 H 的形狀作為分布,圖 1-6 展示了時脈樹與 H-tree 的拓樸結構設計方式。

圖 1-6 時脈樹與 H-tree

但是由於製程變異的影響,造成變異過大時,會導致時序良率的下降,另外,由 於樹狀結構缺少了多重路徑(Redundancy)的特性,這種結構在時脈的來源端與目的端 之間只有存在著一條路徑,因此,當在製造的過程當中,其中一條線段損壞時,則此 電路就無法運作。

1.5.2 非樹狀結構的設計

會有非樹狀結構設計方式的產生,主要是受到製程技術微縮的影響。隨著積體電

時脈來源端

(19)

8

路製程技術的微縮,製程的變異導致時脈差異的影響越來越明顯,另外電路也越來越 容易受到雜訊及溫度的干擾。時脈樹提供了一種時脈訊號分送的方法,但是電路上有 許多分佈較為疏遠的元件,這些元件更容易因為製程的變化而產生了延遲時間的不確 定性。其中一種改善方式為跨接二個子樹之間的導線(Crosslink、Spine),因此被這導 線彼此相連接的節點在時脈訊號來源端至目的端多出了一條路徑。

如圖 1-7 展示了使用跨接改善的方式,使得時脈來源端到目的端多出一條路徑。

當跨接上的節點在製程上發生了過大的變異時,時脈訊號會從另一條變異較小的路徑 傳送至目的端,因此改善了變異上的影響,甚至在製程的過程中發生了線路斷裂,也 因為增加了此段落,訊號也會從另一個沒有斷裂的路徑傳送訊號。但是這種設計方式 只能區域性的改善變異,而無法覆蓋到電路的整個區域。因此有另一種改善時脈差異 的方式為時脈網格的設計方式。

圖 1-7 跨接的設計方式

1.5.3 時脈網格的技術

隨著製程發展到 65 奈米製程以下,在製程變異、電源供應與雜訊干擾以及溫度 的變異對時脈差異的影響越來越明顯。因此,為了要解決變異因素的問題,在先前的 時脈合成方式進行改良,時脈網格的分佈方式改善了時脈樹單一路徑的問題,並且也 解決了跨接方式無法覆蓋整個晶片區域的問題。

時脈網格是由數個垂直與水平金屬線段所組成的一個網狀金屬物。典型的時脈網

(20)

9

格的架構大致可以分成三個部分:

(1) 前端驅動時脈樹:主要是要提供足夠的驅動力來驅動底下的網格,不足的 驅動力會使得電路無法在短時間之內對網格進行充放電,導致會延遲過久 甚至無法將訊號分配至網格上。

(2) 網格區段:主要提供了時脈來源端至目的端多重路徑,減少在變異之下的 影響。

(3) 為將時脈信號從網格送往各目的端點的段落。

如圖 1-8(a)展示了一個時脈網格的立體圖,圖 1-8(b)則為俯視圖,可以看出網格 並不是直接連到終端點上,而是會由網格延伸出一小段,才會在向下連接到終端點上,

此一小段的延伸區段通常稱之為支線(stub)。

圖 1-8 時脈網格架構

時脈網格的設計優點為有更明顯多重路徑的特性,由於多重路徑的特性使得電路 對於製程變異的容忍度比傳統的樹狀結構設計高,但由於這種設計必頇消耗更多的繞 線資源,導致了更多功率的消耗,並且從時脈來源端到目的端的路徑並不單一,因此 在時序的分析上並不容易。

表 1-1 為樹狀(Tree)結構及網狀(Mesh)結構兩種時脈分佈網路的比較。綜合比較 來看,樹狀結構為基礎的設計,因為所使用的線段資源較少,因此功耗相對的也比較

前端驅動時脈樹

網格區段 信號接收端

(a)網格架構圖 (b)網格架構俯視圖

(21)

10

少,另外單一路徑的特性也使得時序也比較容易被分析。相對的,為了要減少對製程 變異的影響,非樹狀結構利用了多重路徑的特性來達成,使得增加變異的容忍度以及 降低時脈差異,但因多重路徑的特性使得時序不易被分析。

表 1-1 樹狀結構和網狀結構的比較

樹狀結構 網狀結構

時脈分佈網路的類型 單一路徑 多重路徑

製程變異容忍度 較低 較高

時脈差異 較高 較低

繞線資源 較少 較多

功率消耗 較少 較多

時序分析 較為容易 較為不易

1.6 時脈網格的設計

時脈網格的設計方式相較於過去以時脈樹的設計改善了電路對變異容忍度的增 加,因此改善了時脈差異。在設計整個時脈網格的架構當中,通常可以分成二個部分 做設計,分別為網格尺寸的設計以及緩衝器的擺置。以下分別為此二部分做說明。

1.6.1 網格的產生

時脈網格的尺寸將會影響到線段長度以及電路容忍度之間相互影響的關係,因為 當增加網格的密度時,網格上的多重路徑將會有所增加,增加了電路對製程變異的容 忍度,使得在光罩的過程中,若發生線路失真或縮減的狀況時,能有更多其他的線路 可以進行補償,因此可以降低時脈差異變大的可能,但是一旦增加了線段,也就會增 加了繞線的成本,並且也增加了功率的消耗。

在設計網格時可以採用長寬大小一致的網格進行設計[11-13],為了能夠有效的減 少支線的長度使用了長寬大小不相等的網格[14-15],另外也可以根據電路上的關鍵路 徑(Critical path)設計出在不同的區塊中因關鍵路徑的關鍵性程度不相同而產生混合 密度型的網格[17],下圖 1-9 為不同網格的設計方式。

(22)

11

圖 1-9 不同網格的設計方式

1.6.2 前端驅動樹的產生

經由前一階段所設計出的網格,使得電路的多重路徑增加,但是為了要能夠驅動 這一大片網格,必頇要有足夠的緩衝器才能夠在短時間之內對此片網格進行充放電。

因此會在網格上方放置適量的緩衝器來放大電流量,使緩衝器能夠驅動此網格。若緩 衝器分配不足則會使得電路無法在一定的時間內對此網格進行充放電;如果緩衝器分 配的過多則又會造成資源的浪費,此階段的設計就是要來解決如何用較少量的緩衝器 驅動網格電路。如下圖 1-10 為從一個已經完成網格的設計,會在該網格上放置適量 的緩衝器用來驅動此片網狀金屬物。較典型的方法為將此問題轉換為一個集合覆蓋 (Set cover)的問題[18]來解決。在產生適量的緩衝器之後,接著以這些緩衝器為終端點 產生出前端驅動樹。

圖 1-10 前端驅動樹的設計 緩衝器的置入

時脈來源端

(23)

12

第二章 相關研究

不同時脈網格的設計除了會影響到電路的可靠度也會影響到支線的長度,在本篇 論文中參考了 Rajaram 等人以及 Lu 等人所做的研究,在這些研究中包含了時脈差異 的估計、網格尺寸對時脈差異之改善以及暫存器的移動改善時脈差異,以下分別為此 三部分做介紹。

2.1 時脈差異的估計

時脈網格的時脈分送方式,改善了過去所設計出來的時脈網路從時脈來源端至目 的端單一路徑的問題,減少製程上的變異而造成時脈差異的影響,多重路徑的特性使 得 時 序 不 易 被 分 析 , 因 此 Rajaram 等 人 提 出 了 分 析 時 脈 差 異 的 估 計 公 式 為 Skbound = *Max (Dp(CLpmax) - Min (Dq(CLq-1max)))+ + Delay(Dmax) + IntDel(Lstubmax, CLmax)

[12],此公式主要分為三個部份分別為:(1) Max(Dp(CLpmax) - Min (Dq(CLq-1max))):

前端驅動樹所產生的最大延遲與最小延遲。(2) Delay(Dmax):從前端驅動樹的最後一 個緩衝器到暫存器連接到網格的連接點所產生的最大延遲。(3) IntDel(Lstubmax, CLmax):所 有的網格連接點到暫存器當中的最大延遲。

由 Rajaram 等人所提出的公式可以看出,在支線長度縮小時可以減少時脈差異的 上限值,因此對於時脈差異的下降,減少支線長度為設計網格的其中一個目標,因此 為了要能夠減少支線的長度,使用了較為密集的網格來減少時脈差異[11-12]。

2.2 網格尺寸對時脈差異之改善

Rajaram 等人 在 當中 採 用降 低 時 脈差異 的 方法中 類似 於爬山演算 法的 概念 (Hill-Climbing Algorithm),在設計網格時,先以一個時脈差異較高的網格做為初始值,

當此網格無法滿足時脈差異的需求時,則增加網格密度,當網格的密度逐漸變高時,

(24)

13

會使得支線的長度逐漸縮減,減少時脈差異。

如下圖 2-1(a)與 2-1(b)為暫存器的支線長度在不同密度網格時暫存器支線長度的 變化,可以發現到,網格的尺寸與支線的長度成反比,而網格的尺寸從 3×3 增加到 4×4,

這會使得網格的繞線資源增加,產生更多的功耗。

圖 2-1 支線長度在不同密度網格的變化

2.3 暫存器的移動改善時脈差異

由於在 Rajaram[11-12]等人的研究中使用了更高密度的網格,降低時脈差異,因 此會增加在網格上線段的資源,並且會產生更多的功耗,Lu[13-15] 等人 提出在後擺 置階段當中,藉由暫存器的移動改善時脈差異的方法,使得能夠不需要增加網格的密 度,也能夠減少時脈差異[13-15]。

Lu 等人所提出的方法是在後擺置移動的過程中減少支線的長度,跟傳統方法不 同的是,在傳統上會用更密的網格減少支線的長度,但是,由於在繞線與時脈樹合成 完成後,還可以在後擺置階段再進行元件位置的調整,因此,在進行時脈樹合成時,

不需要將網格設計的過於緊密。

首先,他們先利用了二元搜尋的方式找到適當的初始網格大小,接著藉由初始的 網格大小將電路上的暫存器進行移動,使得每一個暫存器移動到最鄰近網格的段落上 並且不重疊,如圖 2-2(a)為一個重新擺置前的電路,圖 2-2(b)為將暫存器移動到最鄰

(a)3×3 尺寸網格 (b)4×4 尺寸網格

(25)

14

近網格的邊上,使得暫存器支線的長度減少。

圖 2-2 將暫存器靠近網格

但是雖然他們在產生時脈網格時,有先依據所有暫存器可以移動的最大上限值作 為初始網格大小的評估,但是尚未考量暫存器的準備時間以及保持時間。因此考量了 暫存器的準備時間,並將問題以線性規劃進行求解[14],然而在移動的過程中若二個 暫存器移動到相同的位置上時,會發生暫存器重疊的現象,因此在線性規劃的限制條 件中多加入了避免重疊的限制[15]。

Lu[14]等人所提出的方法為將時序限制式帶入線性規劃求解,主要目標是將所有 支線的長度最小化以減少最長的那一條支線長度,因為是暫存器之間的移動,所以會 被改變的繞線為暫存器的前一個邏輯閘到暫存器的段落以及暫存器到下一個邏輯閘 的段落,而在二個暫存器之間,第一個邏輯閘到最後一個邏輯閘這一段的延遲時間是 不會因為暫存器的移動而有所改變,因此這二段被改變的繞線就會改變電路的延遲時 間,影響到時序限制式的條件。

如圖 2-3 在暫存器 FFi到 FFj之間,FFj的前一個邏輯閘到 FFj這一段延遲時間會 隨 著 FFj 的 移 動 而 有 所 改 變 , 根 據 時 序 限 制 式Cp- TFFi-Ti→jdmax ≥ Tsetupj 可 以 得 到

Ti→jdmax ≤ Cp-TFFi-Tsetupj ,因此在這一個段落的大小會有一個上限值,將此界限圍成一個

類似於菱形的區域,同樣地,在暫存器 FFj到 FFk之間根據了時序限制式也可以得到

(b)重新擺置過後的暫存器位置 (a)重新擺置前的暫存器位置

(26)

15

Tj→kdmax ≤ Cp-TFFj-Tsetupk ,在 FFj到下一個邏輯閘的延遲時間也會有一個上限值,此界限

同樣也形成一個菱形的區域,而在暫存器 FFi到 FFj之間的菱形區域與暫存器 FFj到 FFk之間的菱形區域所共同灰色部分的區域即為 FFj可以移動的合法區域。

圖 2-3 暫存器 FFj的合法移動區域

在此方法階段總結了優缺點,在優點的部分,由於他們使用密度較低的網格,達 成時脈差異的下降,此種方式的好處是能夠在低密度的網格之下,得到符合時脈差異 目標的網格,因此減少了導線的資源以及功率的消耗;在缺點方面,為了要縮短所有 暫存器支線的長度,他們將大部份的暫存器進行移動,這種方式會造成要改變的連線 變多,導致重新繞線的可能性增大。另外,他們將時序限制式做為線性規劃的限制函 數中,尚未考量到時脈差異對時序限制式的影響。

(27)

16

第三章 研究動機與問題描述

在前面介紹完先前學者所提出不同設計網格的方式,說明了時脈差異的估計以及 時脈網格的設計架構。在先前研究改善時脈差異的公式中,雖然能夠改善最長支線的 總長度,但是在最長支線長度縮減程度小於最短支線長度的縮減程度時,卻無法得到 較少的時脈差異。

3.1 研究動機

本篇論文中,假設了各元件之間在前端驅動樹與網格上的延遲時間是相同的。以 下將對本篇論文的二個研究動機做說明,分別為減少暫存器移動的數量以及建構一個 有考量時脈差異對時序限制影響的區域。

3.1.1 少量暫存器的移動

由於過多暫存器的移動,會導致要改變的連線變多,當連線的改變過多時,會導 致重新繞線的可能性增加。在第一個動機為減少暫存器的移動改善時脈差異。藉由增 長最短支線長度,縮短最長支線長度來降低時脈差異。因此,所需要被移動的暫存器,

只需要考慮最長支線長度的暫存器,以及最短支線長度的暫存器,不需要將所有的暫 存器都進行移動,以下分別說明本篇論文的研究動機,分別為減少暫存器移動的數量 以及建構一個有考量時脈差異對時序限制影響的區域。

在表 3-1 的範例當中可以看到,當採用降低所有支線長度改善時脈差異時,可以 發現到,雖然能夠減少整體的支線線段總長度,減少到各個元件的延遲時間,但是,

當最短支線長度縮減程度超過最長支線長度的縮減程度時,此時無法減少時脈差異。

由於最長支線長度的下降量為 15,最短支線長度的下降量為 25,反而增加了在這些 元件當中的時脈差異;當採用減少最長與最短支線長度之間的差異時,此時雖然有較

(28)

17

大的支線長度,但由於最長支線與最短支線的長度差異減小,因此能夠獲得的時脈差 異也比較小。

另外,在表 3-1 中也可以看到,當降低所有支線長度時,所需要被移動位置的暫 存器也比較多。在表 3-2 中整理出了在降低總支線長度與減少支線長度差異二種減少 時脈差異的方式中,分別在時脈差異、所有支線長度的總長度以及暫存器移動量的總 整理。

表 3-1 不同減少時脈差異的方式

A B C D E F 長度 差異

總支線 長度 原始支線長度 40 100 85 65 70 50 60 470 降低總支線長度 15 85 60 35 55 30 70 350 減少支線長度差異 60 85 85 65 70 60 25 450

表 3-2 不同減少時脈差異方式的總結

降低總支線長度 減少支線長度差異

長度差異 較大 較小

所有支線長度的總長度 較短 較長

暫存器的移動量 較多 較少

3.1.2 時序限制安全區域的建構

在前一章節介紹了先前學者時脈網格的設計方式,利用了在後擺置階段對暫存器 進行移動,藉以達到時脈差異的下降[13-15],因此,本篇論文也採用該方式,利用微 調暫存器位置的方式以減少時脈差異。但是,他們將時序限制式做為線性規劃的限制 函數中,未考量到時脈差異對時序限制式的影響,因此,本篇論文將此現象形成一個 有考量時脈差異時序限制的安全區域。

先前研究中所形成的安全區域,在線性規劃的限制式當中以Cp為時脈週期,Ti→jdmax 為二暫存器間的最大傳遞延遲時間Tsetupj 為暫存器 j 的準備時間,Tsetupk 為暫存器 k 的準

(29)

18

備時間,TFFi與TFFj為暫存器 FFi與暫存器 FFj內部延遲時間,在三個暫存器 FFi、FFj 與 FFk之間所使用的時序限制式為Cp - TFFi - Ti→jdmax ≥ Tsetupj 與Cp - TFFj - Tj→kdmax ≥ Tsetupk ,而 此限制式未考量到時脈差異對時序限制的影響,並且也未考量保持時間的限制式,因 此所形成的安全區域會類似於菱形區域的集合如圖 3-1(a)。但由於此篇論文尚未考量 到時脈差異對時序限制的影響,並且也未考量到暫存器的保持時間,因此所形成的安 全區域不會是菱形區域的集合。

圖 3-1 未考量時脈差異的安全區域

3.2 問題描述

本篇論文的主要目的是透過暫存器的移動來減少所有支線長度之間的差異,使得 時脈差異最小化,由於在電路中必頇要滿足時序限制式,因此暫存器可以移動的範圍 會被限制在一個區域中。另外,除了電路必頇要滿足時序限制式之外,由於是擺置過 後的電路,所以在此問題中也希望能夠藉由少量暫存器的移動達成時脈差異的最小 化。

而此問題所需要的輸入為網格尺寸、暫存器的規格以及擺置過後的電路。在網格 的尺寸中以一顆 1cm × 1cm 大小的 IC 來說,由於網格會分佈在整的 IC 上,因此當網 格的尺寸為 n 時,此網格的長與寬會被切割出 n 個段落,而每一個段落的大小為 1cm n⁄ 個長度的時脈網格。在暫存器的規格當中包含了暫存器所需要的準備時間與

FFj

FFk

FFi

(30)

19

保持時間,在擺置過後的電路中,包含了暫存器的位置、暫存器彼此之間的連線關係、

在二暫存器之間的最大傳遞延遲與最小傳遞延遲時間以及中間組合電路的輸入點與 輸出點的位置,在此問題中假設了每一條支線所負載暫存器的電容大小是相等的。

在限制條件的部分則會如前一小節所述,利用時序限制式建構出一個安全區域,

而暫存器合法的移動為必頇要在此安全區域中進行移動,若移動中超出了此區域則代 表違反了時序限制式的條件。在輸出的部分則為移動過後暫存器的位置。

如圖 3-2(a),代表了一個 3 × 3 大小的網格,在此平面中包含了 6 個暫存器,並 且每一個暫存器會有所需要的準備時間與保持時間,在中間組合電路的部分,在輸入 檔中則是以組合電路的輸入點位置以及輸出點位置做為代表,並且包含了從輸入點到 輸出點所需要的最大延遲時間與最小延遲時間。圖 3-2(b)代表為在最後的輸出則得到 暫存器的位置,根據輸出的資訊在計算出暫存器的總移動量、減少的支線差異長度以 及時脈差異的改善量。

圖 3-2 輸入及輸出資訊

(a)輸入資訊 (b)輸出資訊

(31)

20

第四章 二階段反覆式重設定演算法

在二階段反覆式移動演算法方法中,會逐漸不斷地移動暫存器的位置,使得最長 支線長度與最短支線長度差異逐漸地減少,支線長度會直接影響到訊號的延遲時間,

若能夠減少最長支線長度與最短支線長度的差異也就能夠減少電路的時脈差異。以下 先為整體的設計流程做介紹,接著對縮短支線長度的流程以及增長支線長度的流程做 說明,介紹完上述的流程後,接著在為流程中的各個階段分別做說明。

4.1 演算法流程

演算法的設計目標為減少最長支線長度與最短支線長度之間的差異。在此方法當 中主要分成二個階段,分別為縮短支線長度階段以及增長支線長度階段。在圖 4-1 演 算法的流程當中,暫存器的移動主要分成二大階段,第一階段是要縮短所有最長支線 長度,而在縮短階段的過程中將會影響到其他暫存器可以移動的範圍,因此,在此階 段會不斷地找出所有最長支線長度的暫存器,直到所有最長支線長度的暫存器皆無法 再被移動。接著就是要增長所有最短支線長度的暫存器,同樣地,在縮短支線長度的 過程中,一旦暫存器的位置發生改變,也將會影響到其他暫存器可以移動的範圍,因 此,在此階段也必頇不斷的尋找所有最短支線長度的暫存器進行移動,直到所有最短 支線長度的暫存器皆無法再被增長為止。

經過增長支線長度階段後,如果此階段有暫存器的位置發生改變,雖然此時所有 最短支線長度的暫存器皆無法再移動,但由於暫存器的位置發生改變,所以必頇要再 一次的檢查所有最長支線長度的暫存器是否可再進行移動,也就是要再一次的執行縮 短支線長度階段,直到所有最長與最短支線長度的暫存器皆無法再移動時則完成此演 算法。

(32)

21

圖 4-1 演算法的設計流程

4.2 縮短支線長度階段

在下圖 4-2 當中展示了縮短支線長度階段的流程,在進行縮短暫存器支線長度階 段的流程當中,首先會先找出所有最長支線長度的暫存器。接著對這些最長支線長度 的暫存器將有相互連接關係的暫存器進行分群。接著判斷在所有群集當中的暫存器是 否皆有被重新設定過。當所有最長支線長度的暫存器尚未設定完成時,必頇從這些群 集當中取出一個暫存器,接著對此暫存器進行重設定,而在重設定的過程中必頇要考 慮到暫存器在時序限制之下的安全區域。在完成時序限制的安全區域計算後,根據可 以移動的範圍,以及最長與第二長支線長度之間的差異,對暫存器進行移動量的分配,

最後將暫存器的位置重新設定。直到當所有暫存器的位置都被重新設定時,判斷在此 階段的暫存器是否有被改變位置,若此階段暫存器的位置有發生改變,再一次反覆的

輸入資訊

縮短支線長度階段

增長支線長度階段

輸出結果

沒有暫存器可以在

時序條件下再被重 新設定?

(33)

22

執行縮短支線長度階段的步驟,若此階段暫存器的位置皆無發生改變,則進入到下一 個增長支線長度階段。

圖 4-2 縮短支線長度階段流程

4.2.1 最長支線長度暫存器之集合

暫存器支線的長度為暫存器連接到最鄰近的網格上之距離,此段距離的長度將會 代表時脈訊號從網格到暫存器的延遲時間,在最長與最短支線長度之間的差異會影響 到時脈差異的大小。

在找出最長的支線長度時,必頇先計算出每一暫存器支線的長度,以下將說明如 何計算出支線的長度。以一顆 1cm × 1cm 的 IC 來說,當採用尺寸為 n 的網格時,此 時網格上的水平區段之間的距離與垂直區段之間的距離會被平分為1cm n⁄ ,計算出 暫存器與左邊垂直區段的距離以及與下邊水平區段的距離,在左邊垂直區段的部分是 將暫存器上的 x 座標除以平分的區段取餘數。由於暫存器會連接到最鄰近網格的區段

輸入資訊

縮短支線長度階段

增長支線長度階段

輸出結果 沒有暫存器可以 在時序條件下再 被重新設定?

決定有最長支線長 度的暫存器集合

暫存器在所 有群集都已 被重設定過?

暫存器的分群

決定時序限制下 的安全區域

暫存器的重設定

沒有暫存器 支線可以再 被縮短?

否 是

否 是

(34)

23

上,若此數值超過了平分區段的一半也就代表著暫存器到左邊區段的距離大於到右邊 區段的距離,此時則必頇將平分的區段減掉所得到的數值,此數值為暫存器連接到最 鄰近垂直區段的距離,將此數值定義為 Vmin;同樣的,在下邊水平區段的部分是將暫 存器上的 y 座標除以平分的區段取餘數,若此數值超過了平分區段的一半則必頇要將 平分的區段減掉所得到的數值,此數值為暫存器連接到最鄰近水平區段的距離將此數 值定義為 Hmin。最後將 Vmin與 Hmin取最小值即為暫存器支線的長度。

在下圖 4-3 中,以一個 4 × 4 大小的網格為例,因此,在 1cm × 1cm 的 IC 中,此 網格長與寬的每個段落會被平分為 2500um 大小的段落。以暫存器 A 為例,將暫存器 A 的 x 軸座標除以平分的段落得到的餘數為 200,得到與垂直區段的最近距離為 200um,y 軸座標除以平分的段落得到的餘數為 1600,由於超過了段落一半的大小因 此與水平區段的網格最近距離為 2500 - 1600 = 900(um),將與垂直區段的最近距離 200um 與水平區段的最近距離 900um 取最小值 200um 即為暫存器 A 的支線長度。同 樣的暫存器 B 也進行計算,可以得到支線長度為 300um。

圖 4-3 暫存器支線長度的計算

完成暫存器支線的長度計算後,接著決定出暫存器之集合,為了能夠有效的減少 0 2500 5000 7500 10000

10000

7500

5000

2500

A

B

(2700, 6600)

(6400, 2800)

(um) (um)

(35)

24

最長與最短支線長度的差異,因此在演算法流程中的第一步驟為找出所有最長支線長 度的暫存器,將最長支線進行縮減。

因為支線的長度會不斷的縮減至與第二長支線長度相等的位置上,所以,在暫存 器移動的過程中,最長支線長度的暫存器數量不只為一個,因此,在此步驟中會先對 所有的支線長度進行排序,再取出暫存器集合。當此階段為縮短支線長度階段,則取 出的暫存器為所有最長支線長度的暫存器並儲存於暫存器集合 Rmax中。

舉例說明,如下圖 4-4 假設暫存器 A 到 M 的支線長度分別為{35, 40, 40, 80, 25, 25, 80, 80, 35, 75, 80, 80, 80},暫存器支線長度經過排序後得到{80, 80, 80, 80, 80, 80, 75, 40, 40, 35, 35, 25, 25},將取出所有最長支線長度的暫存器{D, G, H, K, L, M}並儲存到 Rmax中。

圖 4-4 決定最長支線長度暫存器集合

4.2.2 縮短支線長度之暫存器的分群

在 4.2.1 節中決定了暫存器集合,此階段中主要是要先將暫存器進行分群,這些 經過分群的暫存器會在重設定階段當中,根據暫存器所屬的群集決定移動的分配量。

由於共用連線資源的搶奪只有在當群集中暫存器的數量為二個以上時才會發生,若群 集中的暫存器數量為 1 個,代表此群集裡的暫存器不需進行分配。

在暫存器集合中的暫存器連接關係有以下二種,一種為暫存器為單一群集的暫存 器,另一種為暫存器相互連接的群集,以下定義此二種暫存器的群集。在單一群集暫

D, G, H, K, L, M Rmax

(36)

25

存器裡的暫存器,只存在一個暫存器,並且與該暫存器連接的暫存器,並不存在於暫 存器集合中。在暫存器相互連接的群集中,該群集裡的暫存器所連接的暫存器當中,

至少有一個為存在於暫存器集合裡,並且這些暫存器具有最長支線長度,在此群集裡 暫存器移動的過程中,同一條路徑上的終端點使用共用的連線資源(Slack),其中一個 暫存器的移動將會影響到其他在此路徑上暫存器可以移動的範圍,若暫存器一次移動 的距離過大時,將會導致在同一條路徑上的另一個暫存器無法再被移動。

如下圖 4-5,暫存器 A 與暫存器 B 在同一條路徑的二側,這一條路徑為這二個暫 存器共用的連線資源,若暫存器 B 一次移動過多時,當中間共用區段的資源不足時,

則會導致暫存器 A 無法再進行移動。

圖 4-5 共用資源的競爭

在圖 4-6 為將暫存器集合裡的暫存器進行分群,在圖中存在於暫存器集合裡的暫 存器為{D, G, H, K, L, M},實心的點為暫存器集合裡的暫存器。在此例當中可以看到,

在暫存器 D 與暫存器 K 這二個暫存器所連接的其他暫存器並不存在於暫存器集合當 中,因此,這二個暫存器屬於單一暫存器的群集。在暫存器 H 和 G 當中,這二個暫 存器所連接的暫存器當中,至少有一個是存在於暫存器集合當中,因此這二個暫存器 屬於連接暫存器群集,並且因為這二個暫存器在同一個拓樸當中,所以這二個暫存器 被歸類到同一群集當中。同樣的,在暫存器 L 和 M 也是屬於連接暫存器群集。由於

A

B

共用連線資源

A

B

共用連線資源

(37)

26

L 和 M 所屬的拓樸與 H 和 G 不相同,所以 L 和 M 被歸類為另一個群集當中。

圖 4-6 縮短階段中暫存器的分群

4.2.3 縮短支線長度之時序限制安全區域的建構

在分群完成之後,接著要計算出暫存器的安全區域,這些安全區域的範圍,會與 暫存器之間的電路延遲以及時序限制有關。以下將說明如何將暫存器之間的傳遞延遲 進行分解,接著根據分解出的段落將原始的時序限制式進行改寫,再假定哪ㄧ個暫存 器位置會改變,得到不同表示形式的時序限制式,再根據這些不同表示形式對應到幾 何平面上的關係,計算出暫存器的安全區域。

圖 4-7 二個暫存器之間的參考點

i j

時脈來源端

前參考點(Pre-reference point)

後參考點(Post-reference point) 單一暫存器群集

D F B

K J I

連接暫存器群集 G H

E I

L M J

(38)

27

首先,在暫存器 i 到暫存器 j 之間先定義出二個參考點,分別為前參考點與後參 考點,如圖 4-7 來表示暫存器 i 與暫存器 j 之間的關係。在暫存器 i 到暫存器 j 之間,

用前參考點(Pre-reference point)代表為暫存器 i 的下一個邏輯閘輸入的位置。後參考 點(Post-reference point)代表為暫存器 j 的前一個邏輯閘輸出的位置,這二個參考點也 代表了中間組合電路輸入點與輸出點的位置。

在電路延遲的部分,這二個暫存器之間的電路,可以分成三個段落,此三個段落 分別為:第一段為從暫存器 i 到前參考點的延遲時間、第二段為中間組合電路的延遲 時間(從前參考點到後參考點的延遲時間)以及第三段為後參考點到暫存器 j 的延遲時 間。在這三段之中,因為是暫存器之間的移動,只有與暫存器相連接的段落才會發生 延遲時間的改變,所以,中間組合電路的延遲時間是不會因為暫存器的移動而有所改 變。

時序限制式當中有二項條件限制,分別為準備時間的限制條件,代表了在電路中 最長路徑訊號的傳送能夠延遲時間的最大上限值,與保持時間的限制條件,代表了在 電路中最短路徑訊號能夠延遲時間的最小下限值。在原始的時序限制式當中,準備時 間與保持時間當中的最長傳遞延遲時間,以及最短傳遞延遲時間,可以根據前面所敘 述的,將此延遲時間的段落分成三個部份分別做計算。以下二式分別為原始的準備時 間與保持時間的時序限制式。其中Cp為時脈週期,Ti→jdmax為二暫存器之間的最大傳遞 延遲時間,Ti→jdmin為二暫存器之間的最小傳遞延遲時間,ti為時脈訊號抵達暫存器 i 的 時間,tj為時脈訊號抵達暫存器 j 的時間,Tsetupj 為暫存器 j 的準備時間,Tholdj 為暫存 器 j 的保持時間,為了簡化時序限制式的表示形式,假設暫存器的內部延遲已經計算 到Ti→jdmax與Ti→jdmin當中。

Cp - Ti→jdmax + tj - ti ≥ Tsetupj Ti→jdmin + ti - tj ≥ Tholdj

在上面二個公式當中的Ti→jdmax代表為二個暫存器之間傳遞延遲的最大延遲時間,

(39)

28

經過分解後得到Ti→jpre、Ti→jmax與Ti→jpost,Ti→jpre代表為暫存器 i 到前參考點的延遲時間,Ti→jmax

中間組合電路最大的延遲時間,Ti→jpost為後參考點到暫存器 j 的延遲時間。同樣地,Ti→jdmin 代表為二個暫存器之間傳遞延遲的最小延遲時間,經過分解後可以得到Ti→jpre、Ti→jmin

Ti→jpost,其中Ti→jmin為中間組合電路最小的延遲時間,如圖 4-8 所示,將中間的組合電路 分解成三個段落的延遲時間總和。將中間傳遞延遲分解出的三部分改寫到時序限制式 當中的Ti→jdmax與Ti→jdmin,其餘的保持不變,得到以下二個將原始時序限制式分解的公式。

Cp - (Ti→jpre + Ti→jmax + Ti→jpost) + tj - ti ≥ Tsetupj (Ti→jpre + Ti→jmin + Ti→jpost) + ti - tj ≥ Tholdj

圖 4-8 電路的分解

由於在暫存器移動的過程中,一次只會進行一個暫存器的移動,在此階段分別來 觀察暫存器 i 與暫存器 j 分別固定不動的狀況下所獲得的時序限制式。

首先,先假設暫存器 i 為固定不動,暫存器 j 為可移動,在暫存器 j 移動的過程 中,會改變時脈訊號抵達暫存器 j 的時間,並且從後參考點到暫存器 j 的延遲時間也 會改變,其他段落的延遲時間不會因為暫存器 j 的位置改變而受到影響,這些不變段 落的延遲時間視為常量,獲得以下二個公式:

Cp - (Ti→jpre + Ti→jmax) - ti - Tsetupj ≥ Ti→jpost - tj Ti→jpost - tj ≥ Tholdj - (Ti→jpre + Ti→jmin) - ti

i j

Ti→jmax

Ti→jmin Cp

時脈訊號

(40)

29

從上面二個公式當中可以觀察到,Ti→jpost與tj這二個變動量延遲時間的差值,會落 在一個固定的常量範圍內。接著,若假設暫存器 j 為固定不動的暫存器,暫存器 i 可 移動,此時在暫存器 i 移動的過程中,會改變時脈訊號抵達暫存器 i 的時間,並且從 暫存器 i 到前參考點的延遲時間也會改變,同樣地,其他段落的延遲時間也不會因為 暫存器 i 的位置改變而受到影響,這些不變的段落視為常量,跟前述固定暫存器 i 的 做法相同,將時序限制式當中的變數與常量分開放置於不等式的二側,獲得以下二個 公式:

Cp - (Ti→jpost + Ti→jmax) + tj - Tsetupj ≥ Ti→jpre + ti

Ti→jpre + ti ≥ Tholdj - (Ti→jpost + Ti→jmin) + tj

從上面二個公式當中可以觀察到,這二個變動量延遲時間的總和會落在一個固定 的常量範圍之內,由於延遲時間可以藉由導線的延遲時間計算得到,並且導線延遲是 由導線的長度所計算出,所以可以藉由導線的長度來替代延遲時間的關係,因此以下 就分別探討在平面上二個固定點與一個移動點,在這一個移動點到二個固定點的距離 總和以及距離差值落在一個範圍內所形成的幾何圖形。

在圖 4-9 當中將此公式應用於三個暫存器 FFi、FFj與 FFk之間的關係,因為一次 只會移動一個暫存器,其他的暫存器被假設為固定不動,以下先找出當暫存器 FFj為 目的端時可以移動的範圍,接著在找出當暫存器為來源端時可以移動的範圍,而合法 的移動範圍為必頇同時落在上述的二個範圍之內。

在考慮三個暫存器之間的關係中,首先,先看暫存器 FFi到 FFj之間的關係。在 在這三個暫存器 FFi、FFj以及 FFk中,假設暫存器 FFj為一個可移動的點,在 FFi到 FFj之間的後參考點(將此點標示為 BRPi,j)和暫存器 FFj連接到網格上的點(將此點標示 為 CPj)是不動的,以下分別來討論在尤拉平面與曼哈頓平面中,二個固定點與一個可 移動點之間的關係。

(41)

30

圖 4-9 在縮短支線長度階段暫存器 FFi到暫存器 FFj之間的參考點

下圖 4-10 中,標示了 A、B、C 三點的位置座標,A 點為(x1, y1) B 點為(x2, y2) C 點為(x0, y0)。在此階段當中要討論的是一個移動點到二個固定點的距離差的關係,因 此假設移動點 C 到固定點 A 的距離減掉移動點 C 到固定點 B 的距離為一個常數 d,

也就是線段AC - BC = d,以下分別探討在尤拉平面與曼哈頓平面當中 C 點所形成的 點集合。

4-10 距離差關係:二個固定點 A、B 與移動點 C 之示意圖

在尤拉平面當中,二點(xa, ya)與(xb, yb)間的距離運算為√(xa - xb)2 + (ya - yb)2,因 此 在 C 點 與 到 A 和 B 二 點 的 距 離 差 為 d 的 表 示 運 算 式 , 可 以 表 示 為

√(x0- x1)2 + (y0- y1)2 - √(x0- x2)2 + (y0- y2)2 = d。

當 d = 0 時,此時√(x0 - x1)2 + (y0 - y1)2 = √(x0 - x2)2 + (y0 - y2)2,代表線段 AC = BC,因此在平面上的△ABC 會形成一個等腰三角形,在滿足所有此條件下,C

A(x1, y1)

C(x0, y0)

B(x2, y2) FFi FFj

FFk

BRPi,j CPj

(42)

31

點所形成的點集合,會是一個AB的中垂線。如下圖 4-11,在AB的中垂線上任意一點 到 A 點與到 B 點的距離皆相等,可以做為移動點 C。

4-11 在尤拉平面中所形成的中垂線點集合

當 d ≠ 0 時 , 此 時 √(x0 - x1)2 + (y0 - y1)2 > √(x0 - x2)2 + (y0 - y2)2 , 或 者

√(x0 - x1)2 + (y0 - y1)2 < √(x0 - x2)2 + (y0 - y2)2,代表線段AC > BC或者AC < BC,此 時,在平面上會形成一個半曲線,當AC > BC此時該半曲線會較接近於 B 點,所形成 的半曲線會類似於下圖 4-12,相反的,當AC < BC此時該半曲線則是會較接近於 A點。

4-12 在尤拉平面中所形成的半曲線點集合

在曼哈頓平面當中,在二點(xa, ya)與(xb, yb)間的距離運算為|xa - xb| + |ya - yb|,因 此 在 C 點 與 到 A 和 B 二 點 的 距 離 差 為 d 的 表 示 運 算 式 , 可 以 表 示 為 (|x1 - x0| + |y1 - y0|) - (|x2 - x0| + |y2 - y0|) = d。

首先,先以線段AB為對角線,形成一個矩形,在矩形內的任意一點 C 到 A 點與

B(x2, y2) C(x0, y0)

A(x1, y1)

B(x2, y2) C(x0, y0)

A(x1, y1)

參考文獻

相關文件

circuit sat: Given a circuit, is there a truth assignment such that the circuit outputs true?. • circuit sat ∈ NP: Guess a truth assignment and then evaluate the

circuit sat: Given a circuit, is there a truth assignment such that the circuit outputs true?.. • circuit sat ∈ NP: Guess a truth assignment and then evaluate the

circuit sat: Given a circuit, is there a truth assignment such that the circuit outputs true?.. • circuit sat ∈ NP: Guess a truth assignment and then evaluate the

circuit sat: Given a circuit, is there a truth assignment such that the circuit outputs truea. • circuit sat ∈ NP: Guess a truth assignment and then evaluate

In summary, the main contribution of this paper is to propose a new family of smoothing functions and correct a flaw in an algorithm studied in [13], which is used to guarantee

Miroslav Fiedler, Praha, Algebraic connectivity of graphs, Czechoslovak Mathematical Journal 23 (98) 1973,

In digital systems, a register transfer operation is a basic operation that consists of a transfer of binary information from one set of registers into another set of

files Controller Controller Parser Parser.