TWI476422B - Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design - Google Patents
Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design Download PDFInfo
- Publication number
- TWI476422B TWI476422B TW099104882A TW99104882A TWI476422B TW I476422 B TWI476422 B TW I476422B TW 099104882 A TW099104882 A TW 099104882A TW 99104882 A TW99104882 A TW 99104882A TW I476422 B TWI476422 B TW I476422B
- Authority
- TW
- Taiwan
- Prior art keywords
- scan
- scan chain
- preference
- chain
- elements
- Prior art date
Links
Description
本發明是關於一種掃描鏈的結構重構方法與裝置,尤其是關於晶片實體設計中基於雙向最佳化選擇之掃描鏈的結構重構方法與裝置。
為了晶片的可測試性考慮,目前絕大多數晶片中都會設置用於測試的掃描鏈。由於掃描鏈是在晶片邏輯設計階段插入,插入時沒有計入實體資訊,導致在實體設計階段掃描鏈佔用過多的佈線資源,引起佈線擁塞甚至無法佈線的問題。因此,在實體設計階段對掃描鏈進行結構最佳化以儘可能減少其佔用的佈線資源,變得十分必要。
然而,現有的一些掃描鏈結構最佳化方法大都只著眼於一局部或單一指標的最佳化,如最佳化時間等,最佳化的方法過於粗略而無法取得理想的效果。例如,只考慮掃描元件的縱向位置或橫向位置,甚至不考慮掃描鏈的起點與終點位置。此外,業界也有少數全局考慮掃描元件和掃描鏈位置的最佳化方法,但是在最佳化效率或者最佳化時間上都存在一些不足。
因而,如何獲得一種更有效的掃描鏈結構最佳化方法一直是業界關注的問題。
本發明提供一種實體設計中基於雙向最佳化選擇的掃描鏈重構方法與裝置,在實體設計階段對全局的掃描鏈結構進行重構最佳化,在保證測試的同時解決了不合理的掃描鏈結構導致的佈線資源浪費問題。
本發明提供一種掃描鏈的結構重構方法,其用於重構若干條掃描鏈,該若干條掃描鏈共包含若干個掃描元件。該掃描鏈的結構重構方法包含:步驟一:針對該若干條掃描鏈中的每一條分別建立其對該若干掃描元件的第一偏好序列;步驟二:針對該若干掃描元件中的每一個分別建立其對該若干掃描鏈的第二偏好序列;步驟三:該若干掃描鏈與該若干掃描元件基於各自相應的該第一偏好序列與該第二偏好序列進行雙向選擇,從而將該若干掃描元件重新分配給該若干條掃描鏈。
其中,該若干掃描鏈中之每一個的該第一偏好序列是根據該若干掃描元件中的每一個與該掃描鏈的起點、終點的距離的和由小到大排列建立。該若干掃描元件中之每一個的第二偏好序列是根據該掃描元件至該若干掃描鏈中之每一個的起點、終點的距離和再加上該相應掃描鏈的起點至終點的距離由小到大排列建立。該步驟三進一步包含:步驟I:從一可用掃描元件集中選擇一個可用掃描元件;步驟II:基於該可用掃描元件的第二偏好序列找出其偏好最佳化順序最高的一掃描鏈;步驟III:步驟a:判斷該掃描鏈是否被分配滿,如果該掃描鏈未被分配滿,則執行步驟b:將該可用掃描元件分配給該掃描鏈,並將其從該可用掃描元件集中移除;否則進入步驟c:根據該掃描鏈的第一偏好序列判斷該掃描鏈中是否存在偏好最佳化順序低於該可用掃描元件的掃描元件。其中該步驟c進一步包含:如存在,則在步驟c1:將該掃描鏈中偏好最佳化順序最低的一掃描元件從該掃描鏈中移除,將其加入到該可用掃描元件集;同時將該可用掃描元件分配給該掃描鏈;如不存在,則至步驟c2:根據該可用掃描元件的第二偏好序列選擇其偏好最佳化順序較該掃描鏈次之的一掃描鏈,並返回步驟a。此外,該步驟III進一步包含在步驟b或步驟c1之後執行步驟d:檢查該可用掃描元件集是否為空,如空則該若干掃描鏈重構結束,否則返回步驟I。
在另一實施例中,該步驟三進一步包含:步驟I:在一待重構掃描鏈集中選擇一待重構掃描鏈;步驟II:根據該待重構掃描鏈的第一偏好序列選擇其偏好最佳化順序最高的一掃描元件;步驟III:在步驟a:檢查該掃描元件是否已被使用:如未被使用,則在步驟b:將該掃描元件分配該掃描鏈,並將其自一可用掃描元件集中移除;否則,在步驟c:根據該掃描元件的第二偏好序列檢查其所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序。其中該步驟c進一步包含:如該掃描元件所在之掃描鏈的偏好最佳化順序較低,則進入步驟c1:該掃描元件自所在掃描鏈中移除並將其分配給該待重構掃描鏈,將移除該掃描元件的掃描鏈加入該待重構掃描鏈集。如該掃描元件所在之掃描鏈的偏好最佳化順序更高,則進入步驟c2:根據該待重構掃描鏈的第一偏好序列找出其偏好最佳化順序較該掃描元件次之的一掃描元件,然後返回步驟a。此外,該步驟III進一步包含在步驟b或步驟c1之後執行步驟d:判斷該掃描鏈是否完成重構,如完成則進入步驟e檢查該待重構掃描鏈集是否為空;否則返回步驟II。該步驟e進一步包含:如該待重構掃描鏈集為空,則全部掃描鏈重構結束;否則,返回步驟I。
本發明還提供一種掃描鏈的結構重構裝置,包含:一第一偏好序列構建器,其針對該若干條掃描鏈中的每一條分別建立其對該若干掃描元件的第一偏好序列;一第二偏好序列構建器,其針對該若干掃描元件中的每一個分別建立其對該若干掃描鏈的第二偏好序列;一雙向選擇分配器,其使該若干掃描鏈與該若干掃描元件基於各自相應的該第一偏好序列與該第二偏好序列進行雙向選擇,從而將該若干掃描元件重新分配給該若干條掃描鏈。
其中,該雙向選擇分配器進一步包含:一選擇器、一掃描元件管理器及一掃描鏈管理器;該選擇器從該掃描元件管理器的一可用掃描元件集中選擇一個可用掃描元件;該第二偏好序列構建器找出該可用掃描元件的偏好最佳化順序最高的掃描鏈;該掃描鏈管理器判斷該掃描鏈是否被分配滿,如果該掃描鏈未被分配滿,則將該可用掃描元件分配給該掃描鏈,該掃描元件管理器將該可用掃描元件自可用掃描元件集中移除;否則該第一偏好序列構建器檢查該掃描鏈是否存在偏好最佳化順序低於該可用掃描元件的掃描元件。當該掃描鏈中存在偏好最佳化順序低於該可用掃描元件的掃描元件時,該掃描鏈管理器將其中偏好最佳化順序最低的掃描元件從該掃描鏈中移除,該掃描元件管理器將其加入可用掃描元件集;同時該掃描鏈管理器將該可用掃描元件分配給該掃描鏈。當該掃描鏈中不存在偏好最佳化順序低於該可用掃描元件的掃描元件時,該第二偏好序列構建器選擇該可用掃描元件的偏好最佳化順序較該掃描鏈次之的一掃描鏈,以再次分配該可用掃描元件。該掃描元件管理器在該可用掃描元件成功分配後,檢查是否仍有可用掃描元件,如無則該若干掃描鏈重構結束,否則選擇器再次選擇一可用掃描元件進行分配。
在另一實施例中,該雙向分配器進一步包含一選擇器、一掃描元件管理器及一掃描鏈管理器;該選擇器自該掃描鏈管理器的一待重構掃描鏈集中選擇一待重構掃描鏈;該第一偏好序列構建器找出該待重構掃描鏈的偏好最佳化順序最高的一掃描元件;該掃描元件管理器檢查該掃描元件是否可用;如可用,則該掃描鏈管理器將該掃描元件分配該掃描鏈,該掃描元件管理器將其移除;否則,該第二偏好序列構建器檢查其所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序。其中該掃描鏈管理器在該掃描元件所在之掃描鏈的偏好最佳化順序較低時,將該掃描元件自其所在掃描鏈中移除而分配給該待重構掃描鏈,並將移除該掃描元件的掃描鏈加入該待重構掃描鏈集。該第一偏好序列構建器在該掃描元件所在之掃描鏈的偏好最佳化順序更高時,找出偏好最佳化順序較該掃描元件次之的一掃描元件以再次嘗試重構該待重構掃描鏈。該掃描鏈管理器在將該掃描元件分配給該待重構掃描鏈後,進一步判斷其是否完成重構,如完成則檢查是否還有待重構掃描鏈;否則該選擇器繼續為該待重構掃描鏈選擇一掃描元件。當該掃描鏈管理器發現無待重構掃描鏈時,則全部掃描鏈重構結束;否則,該選擇器繼續選擇一待重構掃描鏈進行重構。
本發明的掃描鏈結構重構方法與裝置,其通過掃描鏈與掃描元件之間的雙向選擇,使得整個晶片設計中的掃描鏈結構得到最佳化,大幅度降低對佈線資源的需求。在提高測試性能的同時,提高了晶片的整體佈線率。
上文已經概略地敍述本發明之技術特徵,俾使下文之詳細描述得以獲得較佳瞭解。構成本發明之申請專利範圍標的之其它技術特徵將描述於下文。本發明所屬技術領域中具有通常知識者應可瞭解,下文揭示之概念與特定實施例可作為基礎而相當輕易地予以修改或設計其它結構或製程而實現與本發明相同之目的。本發明所屬技術領域中具有通常知識者亦應可瞭解,這類等效的建構並無法脫離後附之申請專利範圍所提出之本發明的精神和範圍。
為便於更好的理解本發明的精神,以下結合本發明的較佳實施例對其作進一步說明。
本發明是關於一種基於掃描鏈和掃描元件雙向選擇的掃描鏈結構重構方法及裝置,其對於新的資料壓縮的掃描鏈結構DFT(Design for Test)MAX的作用尤其顯著。所謂DFTMAX掃描鏈結構是通過片上掃描資料壓縮,顯著減少高品質製造測試所需的測試時間和測試資料,其已越來越多的被業界所採用。
本發明之掃描鏈的結構最佳化可以分為兩步:首先是所有掃描鏈的重構過程,即將同一時鐘域內的掃描元件重新分配給該時鐘域內的掃描鏈,同時保證每條掃描鏈的掃描時序長度不變;然後,對重構後的每條掃描鏈結構單獨進行最佳化。
其中在第一步的所有掃描鏈的結構重構問題是一個NP(nondeterministic polynomial time)問題,具體描述為:在晶片的邏輯設計階段生成同一時鐘域內的若干條掃描鏈,若干個掃描元件;其中每條掃描鏈的掃描時序長度確定,每條掃描鏈的起點位置和終點位置確定;每個掃描元件的位置確定。在晶片的實體設計階段,力圖通過最佳化將該若干個掃描元件重新分配給該若干條掃描鏈,從而在保證每條掃描鏈的掃描時序長度不變的前提下使每條掃描鏈長度盡可能短。
針對第一步,如圖1所示,本發明提供一種基於掃描鏈和掃描元件雙向選擇之掃描鏈的結構重構方法:在步驟10針對n條掃描鏈中的每一條C1......Cn分別建立其對m個掃描元件S1......Sm的第一偏好列表CL1......CLn(n、m均大於1)。其中,各第一偏好列表CL1......CLn是根據每一掃描元件S1......Sm與對應掃描鏈C1......Cn的起點、終點的距離的和,由小到大排列建立。如,第一偏好列表CL1是根據每一掃描元件S1......Sm至掃描鏈C1的起點的距離與至終點的距離的和,由小到大排列建立。
在步驟11針對每個掃描元件S1......Sm建立其對n條掃描鏈C1......Cn的第二偏好列表SL1......SLn。其中,該第二偏好列表SL1......SLn是根據對應掃描元件S1......Sm至各掃描鏈C1......Cn的起點、終點的距離和再加上相應掃描鏈的起點至終點的距離,由小到大排列建立。
接著在步驟12基於建立的第一偏好列表CL1......CLn與第二偏好列表SL1......SLn依雙向選擇方式將m個掃描元件S1......Sm分配給n條掃描鏈C1......Cn。
如圖2所示,根據本發明的一較佳實施例,該步驟12又具體包含如下步驟:首先在步驟120從一可用掃描元件列表S{S1 S2 ...... Sn}中選擇一個可用掃描元件,如S1。在步驟121基於該可用掃描元件S1對該n條掃描鏈C1......Cn的第二偏好列表SL1最佳化考慮該第二偏好列表SLm中的偏好最佳化順序最高的掃描鏈,如C1。
接著在步驟122判斷該偏好最佳化順序最高的掃描鏈C1是否被分配滿。如果該掃描鏈C1未被分配滿,則執行步驟123將該可用掃描元件S1分配給該掃描鏈C1,並將其從可用掃描元件列表S中移除。然後在步驟124檢查該可用掃描元件列表S是否為空,如空則結束,否則返回步驟120。如果該掃描鏈C1已被分配滿,則執行步驟125,考慮該掃描鏈C1對於掃描元件S1......Sm的第一偏好列表CL1,判斷在該掃描鏈C1中的掃描元件中是否存在偏好最佳化順序低於該可用掃描元件S1的掃描元件,如S2、S3。如存在,則在步驟126將該掃描鏈C1的第一偏好列表CL1中偏好最佳化順序最低的掃描元件,如S3,從掃描鏈C1中移除,並將其加入到可用掃描元件列表S的末尾;同時將該可用掃描元件S1分配給該掃描鏈C1;之後,需至步驟124檢查該可用掃描元件列表S是否為空,如空則結束,否則返回步驟120。如該掃描鏈C1中的掃描元件中不存在偏好最佳化順序低於該可用掃描元件S1的掃描元件,則至步驟127考慮該可用掃描元件S1的第二偏好列表SL1中偏好最佳化順序較該掃描鏈次之的一掃描鏈,如C2;並跳至步驟122。
本領域的技術人員應當瞭解,本發明的基於掃描鏈和掃描元件雙向選擇的掃描鏈結構重構方法並不侷限於上述內容。上述建立第一與第二偏好列表的步驟並沒有先後順序限定,各掃描鏈對掃描元件的第一偏好及各掃描元件對掃描鏈的第二偏好並不局限於列表的形式,可以是其他顯示排序的序列形式。同樣,可用掃描元件與待重構掃描鏈也不局限於列表的形式,可以是其他顯示狀態的集合形式。而後續掃描鏈與掃描元件間的雙向選擇也並不限於上述步驟。
例如,圖3描述了本發明的另一雙向選擇步驟13的實施例。在步驟130可先在一待重構掃描鏈列表中選擇一待重構掃描鏈。接著,在步驟131根據該掃描鏈的第一偏好列表選擇其偏好最佳化順序最高的一掃描元件。在步驟132根據可用掃描元件列表檢查該掃描元件是否已被使用:如未被使用,則在步驟133將該掃描元件分配該掃描鏈,並將其自可用掃描元件列表中刪除,然後在步驟134檢查該掃描鏈是否已重構完成,即獲得足夠需求量的掃描元件。如已完成重構,則進入步驟135檢查是否還有掃描鏈需要重構;如有則返回步驟130繼續,否則全部掃描鏈重構結束。如在步驟132的檢查中,如該掃描元件已被使用,則在步驟136根據該掃描元件的第二偏好列表判斷其所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序:如其所在之掃描鏈的偏好最佳化順序更高,則該待重構掃描鏈需重新根據其第一偏好列表選擇一偏好最佳化順序較該掃描元件次之的掃描元件,即返回步驟131;否則在步驟137將該掃描元件自其所在的掃描鏈移除,並分配給該待重構掃描鏈,並將該掃描元件之前所在掃描鏈加入待重構掃描鏈列表,以便後續為其選擇需要的掃描元件完成重構。接著步驟137進入步驟138判斷該掃描鏈是否完成重構,如完成則返回步驟130繼續選擇其他掃描鏈;否則返回步驟131繼續為其選擇掃描元件。
如圖4所示,本發明還提供一基於掃描鏈和掃描元件雙向選擇之掃描鏈的結構重構裝置2,其包含一第一偏好列表構建器20、一第二偏好列表構建器21,及一雙向選擇分配器22;該雙向選擇分配器22與該第一與第二偏好列表構建器21、22通信連接。該第一偏好列表構建器20針對n條掃描鏈中的每一條C1......Cn,分別建立並存儲其對m個掃描元件S1......Sm的第一偏好列表CL1......CLn(n、m均大於1)。該第二偏好列表構建器21針對每個掃描元件S1......Sm,建立並存儲其對n條掃描鏈C1......Cn的第二偏好列表SL1......SLn。該雙向選擇分配器22可隨時與該第一偏好列表構建器與第二偏好列表構建器21、22通信,從而基於建立的第一偏好列表CL1......CLn與第二偏好列表SL1......SLn,依雙向選擇方式將m個掃描元件S1......Sm分配給n條掃描鏈C1......Cn。
如圖5所示,根據本發明的一較佳實施例,該雙向選擇分配器22又具體包含一選擇器220、一掃描元件管理器221及一掃描鏈管理器222。該選擇器220具有若干介面,該雙向選擇分配器22是通過該選擇器220的介面與該第一、第二偏好列表構建器20、21通信連接;且該選擇器220還通過該若干介面與該掃描元件管理器221、掃描鏈管理器222通信連接。
首先該選擇器220請該掃描元件管理器221檢查其上的可用掃描元件列表S{S1 S2 ...... Sn}中是否有可用掃描元件。如有,則從中選擇一個可用掃描元件,如S1。接著該選擇器220請求該第二偏好列表構建器21基於該可用掃描元件S1對該n條掃描鏈C1......Cn的第二偏好列表SL1,找出其中偏好最佳化順序最高的掃描鏈,如C1。該選擇器220接收該第二偏好列表構建器21的資訊,並將該分配結果通知掃描鏈管理器222。
該掃描鏈管理器222檢查該偏好最佳化順序最高的掃描鏈C1是否被分配滿。如果該掃描鏈C1未被分配滿,則將該可用掃描元件S1分配給該掃描鏈C1,並通知該選擇器220分配成功。該選擇器220通知該掃描元件管理器221將該掃描元件S1從可用掃描元件列表S中移除及更新該掃描元件的分配資訊,然後開始選擇新的可用掃描元件。如果該掃描鏈C1已被分配滿,則該掃描鏈管理器222通知該選擇器220該掃描鏈C1已滿,並將該掃描鏈C1的現有的掃描元件資訊一併告知。該選擇器220轉而請求第一偏好列表構建器20基於該掃描鏈C1對於掃描元件S1......Sm的第一偏好列表CL1,檢查該掃描鏈C1中的掃描元件中是否存在偏好最佳化順序低於該可用掃描元件S1的掃描元件。如該第一偏好列表構建器20發現存在,如掃描元件S2、S3,則找出該掃描鏈C1的第一偏好列表CL1中偏好最佳化順序最低的掃描元件,如S3。選擇器220接收第一偏好列表構建器20的返回資訊後,通知掃描元件管理器221將其加入該可用掃描元件列表末尾,將該可用掃描元件S1自可用掃描元件列表中刪除,及更新該兩掃描元件的分配資訊;通知該掃描鏈管理器222將該可用掃描元件S1分配給該掃描鏈C1;然後開始選擇新的可用掃描元件進行分配。如果該第一偏好列表構建器20從中找不到偏好最佳化順序較該可用掃描元件低的掃描元件,則該選擇器220請求該第二偏好列表構建器21提供從該可用掃描元件S1的第二偏好列表SL1中選擇偏好最佳化順序較該掃描鏈C1次之的掃描鏈,如C2。該掃描鏈結構重構裝置2針對該掃描鏈C2再進行如上檢查該掃描鏈C2是否分配滿等一系列操作。
根據本發明的另一實施例,雙向選擇分配器22在分配掃描元件與掃描鏈時可採用不同的方式。該選擇器220先訪問掃描鏈管理器222,由其上的一待重構掃描鏈列表中選擇一待重構掃描鏈。接著,該選擇器220查詢該第一偏好列表構建器20,由該第一偏好列表構建器20根據該掃描鏈的第一偏好列表找出其偏好最佳化順序最高的掃描元件。該選擇器220收到資訊後,轉而通知該掃描元件管理器221。
該掃描元件管理器221檢查該掃描元件是否已被使用。如未被使用,則該選擇器220通知該掃描鏈管理器222將該掃描元件分配該掃描鏈,及請求該掃描鏈管理器222檢查該掃描鏈是否已重構完成,即獲得足夠需求量的掃描元件。該選擇器220還會通知該掃描元件管理器221自可用掃描元件列表中刪除及更新該掃描元件的分配資訊。如該掃描鏈管理器222檢查該掃描鏈已完成重構,則該選擇器220請其確認是否還有掃描鏈需要重構,如有則繼續選擇新的掃描鏈進行重構,否則全部掃描鏈重構結束。如該掃描元件管理器221發現該掃描元件已被使用,則選擇器220收到資訊後將請求第二偏好列表構建器21判斷其目前所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序。如其所在之掃描鏈的偏好最佳化順序更高,則選擇器220需重新請求第一偏好列表構建器20根據其第一偏好列表找出一偏好最佳化順序次之的掃描元件,即開始針對該新選擇的掃描元件執行一系列上述操作。否則,該選擇器220通知該掃描鏈管理器222將該掃描元件自其所在掃描鏈移除,轉而分配給該待重構掃描鏈,並將該掃描元件之前所在掃描鏈加入待重構掃描鏈列表以便後續為其選擇需要的掃描元件。該選擇器220還會通知該掃描元件管理器221更新該掃描元件的分配資訊,要求該掃描鏈管理器222判斷該掃描鏈是否完成重構。如完成,則選擇器220開始選擇其他掃描鏈進行重構;否則該選擇器220繼續為該掃描鏈選擇其需要的掃描元件。
如圖6所示,本發明的一具體實施例為一在晶片的實體設計階段進行掃描鏈結構重構的裝置2,其重構邏輯設計階段生成的若干掃描鏈50、51,該若干掃描鏈50、51包含若干時序長度為一的掃描元件60、61、62、63、64、65。其中第一條掃描鏈50包含三個掃描元件60、61、62,第二條掃描鏈51包含三個掃描元件63、64、65。其中一條掃描鏈50的結構為{60 61 62}(不考慮起點501與終點502,以下類似),另二條掃描鏈51的結構為{63 64 65},這意味著重構之後的兩條掃描鏈50、51中的每一條亦都應包含三個掃描元件,以保證時序長度不變。
第一偏好列表構建器20分別建立並存儲兩條掃描鏈50、51對於六個掃描元件60、61、62、63、64、65的第一偏好列表500、510。第二偏好列表構建器21建立並存儲六個掃描元件60、61、62、63、64、65對於兩條掃描鏈50、51的第二偏好列表600、610、620、630、640、650。
具體的,第一偏好列表構建器20對兩條掃描鏈50、51分別建立並存儲其對於六個掃描元件60、61、62、63、64、65的第一偏好列表500、510。以其中一條掃描鏈50對其中兩掃描元件60、61的偏好排列為例,如圖7所示,第一偏好列表構建器20計算掃描元件60至該掃描鏈50的起點501為距離D1,至該掃描鏈50的終點502為距離D2;計算另一掃描元件61至該掃描鏈50的起點501為距離D3,至該掃描鏈50的終點502為距離D4。依計算結果可知,D1+D2<D3+D4。因而該掃描鏈50對該兩掃描元件60、61的偏好排序為掃描元件60最佳化於掃描元件61,即在掃描鏈50的第一偏好列表500中掃描元件60排列於另一掃描元件61之前。依上述方法,該第一偏好列表構建器20最終得到並存儲該兩掃描鏈50、51分別對該六個掃描元件的第一偏好列表500、510如下:
掃描鏈50的第一偏好列表500:{65 64 63 60 61 62}
掃描鏈51的第一偏好列表510:{63 65 64 62 61 60}
第二偏好列表構建器21建立並存儲六個掃描元件60、61、62、63、64、65對於兩條掃描鏈50、51的第二偏好列表600、610、620、630、640、650。如圖7所示,以一掃描元件60為例,如前述,第二偏好列表構建器21計算掃描元件60至一掃描鏈50的起點501有一距離D1,至該掃描鏈50的終點502有一距離D2,該掃描鏈50的起點501至終點502有一距離D50;計算該掃描元件60至另一掃描鏈51的起點510存在一距離D5,至該掃描鏈51的終點511存在一距離D6,該掃描鏈51的起點510至終點511存在一距離D51。依計算結果,D1+D2+D50<D5+D6+D51。因而該掃描元件60對兩掃描鏈50、51的偏好排序為掃描元件60對掃描鏈50的偏好最佳化於另一掃描鏈51,即在掃描元件60的第二偏好列表600中掃描鏈50排列於另一掃描鏈51之前。依上述方法,最終該第二偏好列表構建器21得到並存儲該六個掃描元件60、61、62、63、64、65分別對該兩掃描鏈50、51的第二偏好列表600、610、620、630、640、650如下:
掃描元件60的第二偏好列表600:{50 51}
掃描元件61的第二偏好列表610:{51 50}
掃描元件62的第二偏好列表620:{51 50}
掃描元件63的第二偏好列表630:{50 51}
掃描元件64的第二偏好列表640:{50 51}
掃描元件65的第二偏好列表650:{50 51}
接著,基於上述第一偏好列表500、510與第二偏好列表600、610、620、630、640、650,雙向選擇分配器22對兩掃描鏈50和掃描元件60、61、62、63、64、65雙向選擇進行掃描鏈的結構重構,選取適當的掃描元件分配給各掃描鏈50、51,具體如下:選擇器220查詢一掃描元件管理器221,從其可用掃描元件列表6中選擇一個可用掃描元件60。接著該選擇器220請求第二偏好列表構建器21基於該可用掃描元件60對該若干條掃描鏈50、51的第二偏好列表600找出其中偏好最佳化順序最高的掃描鏈50。該選擇器220接收該第二偏好列表構建器21的資訊,並將該分配結果通知掃描鏈管理器222。該掃描鏈管理器222檢查得知該掃描鏈50未被分配滿,則將該可用掃描元件60分配給該掃描鏈50,並通知該選擇器220分配成功。該選擇器420通知該掃描元件管理器221將該掃描元件60從可用掃描元件列表6中移除及更新該掃描元件60的分配資訊。即,此時一掃描鏈50的結構為{60 },另一掃描鏈51的結構為空,掃描元件61、62、63、64、65為可用掃描元件。
然後該選擇器220繼續訪問該掃描元件管理器221上的可用掃描元件列表6,並選擇掃描元件61。如上,經過選擇器220查詢第二偏好列表構建器21及掃描鏈管理器222的判斷,掃描元件61分配給另一掃描鏈51,該掃描元件管理器221將其從可用掃描元件列表6中移除。即,此時一掃描鏈50的結構為{60 },另一掃描鏈51的結構為{61 },可用掃描元件為掃描元件62、63、64、65。
如此反復操作,該掃描鏈重構裝置2將掃描元件62、63、64分別分配給兩掃描鏈51、50、50。此時兩掃描鏈50、51分別為{60 63 64}、{61 62 },可用掃描元件為掃描元件65。
在分配掃描元件65時,根據選擇器220查詢第二偏好列表構建器21,得到其最佳化應考慮掃描鏈50。然掃描鏈管理器222收到選擇器220發送的該分配資訊時,經查詢發現此時掃描鏈50已滿,於是通知選擇器220該掃描鏈50已滿並告知該掃描鏈50目前使用的掃描元件60、63、64。選擇器220請求第一偏好列表構建器20提供該掃描鏈50使用的掃描元件60、63、64與該可用掃描元件65在該掃描鏈50的第一偏好列表500中的偏好最佳化順序狀況。該第一偏好列表構建器20發現該掃描鏈50中現有掃描元件60、63、64的偏好最佳化順序均低於該可用掃描元件65,其中掃描元件60的偏好最佳化順序最低。於是,選擇器220通知該掃描鏈管理器222將該偏好最佳化順序最低的掃描元件60自掃描鏈50中移除,將該可用掃描元件65分配給該掃描鏈50;並通知掃描元件管理器221將掃描元件60加入到可用掃描元件列表6的末尾。即,此時一掃描鏈50為{65 63 64},另一掃描鏈51為{61 62 },該可用掃描元件列表6為{60}。
然後該選擇器220選擇該掃描元件60,經查詢第二偏好列表構建器21其偏好最佳化順序最高的掃描鏈為掃描鏈50。掃描鏈管理器222發現該掃描鏈50已分配滿,將該資訊及該掃描鏈50的掃描元件65、63、64告知該選擇器220。選擇器220查詢該第一偏好列表構建器20得知該掃描鏈50中的掃描元件65、63、64的偏好最佳化順序均高於該可用掃描元件60,於是轉而查詢該第二偏好列表構建器21找出其第二偏好列表600中偏好最佳化順序次之的掃描鏈51。掃描鏈管理器222自選擇器220接收資訊後發現該掃描鏈51未分配滿,於是將該掃描元件60分配給該掃描鏈51,並通知選擇器220分配成功。選擇器220通知掃描元件管理器221將該掃描元件60自可用掃描元件列表6中刪除。即此時,一掃描鏈50含掃描元件65、63、64,另一掃描鏈51含掃描元件61、62、60,該可用掃描元件列表6為空;所有掃描鏈重構結束。
在將該若干掃描元件重新分配給各掃描鏈後,可再對各掃描鏈內的掃描元件進行排序最佳化。本領域技術人員應當瞭解現有技術中已有很多關於該單一掃描鏈內的掃描元件的擺放最佳化,本發明不再贅述。僅以一簡便的以掃描鏈的起點為初始參考位置,依次挑選相互間距離最短的掃描元件的最佳化方法為例,上述實施例經最佳化後得到的兩條掃描鏈50、51如圖8所示。與圖6相比較可以看出,經過最佳化的掃描鏈整體的長度較最佳化前有了明顯降低。
本發明之掃描鏈的結構重構方法與裝置將現有技術中僅由掃描鏈單向選擇掃描裝置,在全局範圍內通過掃描鏈與掃描元件的雙向選擇將掃描元件重新分配給各掃描鏈,使得整個晶片設計中的掃描鏈結構得到最佳化,大幅度降低對佈線資源的需求。在提高測試性能的同時,也提高了晶片的整體佈線率。
本發明的技術內容及技術特點已揭示如上,然而熟悉本領域的技術人員仍可能基於本發明的教示及揭示而作種種不背離本發明精神的替換及修飾。因此,本發明的保護範圍應不限於實施例所揭示的內容,而應包括各種不背離本發明的替換及修飾,並為本專利申請專利範圍所涵蓋。
2...結構重構裝置
10~12...步驟
20...第一偏好列表構建器
21...第二偏好列表構建器
22...雙向選擇分配器
50、51...掃描鏈
60...掃描元件
61...掃描元件
60~65...掃描元件
120~127...步驟
130~138...步驟
220...選擇器
221...掃描元件管理器
222...掃描鏈管理器
420...選擇器
501...起點
502...終點
600~650...第二偏好列表
圖1是本發明將所有掃描元件重新分配給各掃描鏈進行掃描鏈重構的流程圖;
圖2是本發明中基於第一與第二偏好列表經雙向選擇將掃描元件分配給各掃描鏈的一實施例的流程圖;
圖3是本發明中基於第一與第二偏好列表經雙向選擇將掃描元件分配給各掃描鏈的一實施例的流程圖;
圖4是本發明一實施例之掃描鏈的結構重構裝置的示意圖;
圖5是本發明一實施例之掃描鏈的結構重構裝置的雙向選擇分配器的示意圖;
圖6是本發明一實施例的掃描鏈重構前的示意圖;
圖7是本發明一實施例中建立第一與第二偏好序列的示意圖;
圖8是本發明一實施例中經重構和單獨最佳化之掃描鏈的示意圖。
130~138...步驟
Claims (24)
- 一種掃描鏈的結構重構方法,其包含:針對若干條掃描鏈中的每一條分別建立其對若干掃描元件的第一偏好序列;針對該若干掃描元件中的每一個分別建立其對該若干掃描鏈的第二偏好序列;基於各自相應的該第一偏好序列與該第二偏好序列雙向選擇該若干掃描鏈與該若干掃描元件,該若干掃描元件之至少部分可重新分配給該若干條掃描鏈。
- 如請求項1所述之掃描鏈的結構重構方法,其中該若干掃描鏈中之每一個的該第一偏好序列是根據該若干掃描元件中的每一個與該掃描鏈的起點、終點的一距離和,由小到大排列建立。
- 如請求項1所述之掃描鏈的結構重構方法,其中該若干掃描元件中之每一個的第二偏好序列是根據該掃描元件至該若干掃描鏈中之每一個的起點、終點的一距離和,再加上該相應掃描鏈的起點至終點的距離,由小到大排列建立。
- 如請求項1所述之掃描鏈的結構重構方法,其中雙向選擇進一步包含:從一可用掃描元件集中選擇一個可用掃描元件;基於該可用掃描元件的第二偏好序列找出其偏好最佳化順序最高的一掃描鏈;判斷該掃描鏈是否被分配滿,如果該掃描鏈未被分配 滿,將該可用掃描元件分配給該掃描鏈;且如果該掃描鏈已被分配滿,判斷是否存在偏好最佳化順序低於該可用掃描元件之偏好最佳化順序的一掃描元件。
- 如請求項4所述之掃描鏈的結構重構方法,其進一步包含:如存在偏好最佳化順序低於該可用掃描元件之偏好最佳化順序的該掃描元件,則將偏好最佳化順序最低的該掃描元件從該掃描鏈中移除;將被移除之該掃描元件加入到該等可用掃描元件;及將該可用掃描元件分配給該掃描鏈。
- 如請求項5所述之掃描鏈的結構重構方法,其進一步包含:如不存在偏好最佳化順序低於該可用掃描元件之偏好最佳化順序的該掃描元件,則根據該可用掃描元件的第二偏好序列選擇其偏好最佳化順序較該掃描鏈次之的一掃描鏈,並再次判斷該掃描鏈是否被分配滿。
- 如請求項5所述之掃描鏈的結構重構方法,其中判斷該掃描鏈是否被分配滿進一步包含:若該等可用掃描元件為空,則結束若干條掃描鏈之重構;及若該等可用掃描元件不為空,則再次選擇該可用掃描元件。
- 如請求項1所述之掃描鏈的結構重構方法,其進一步包含: 在一待重構掃描鏈集中選擇一待重構掃描鏈;根據該待重構掃描鏈的第一偏好序列選擇其偏好最佳化順序最高的一掃描元件;判斷該掃描元件是否已被使用;若該掃描元件未被使用,則將該掃描元件分配該掃描鏈,並將其自一可用掃描元件集中移除;若該掃描元件已被使用,則根據該掃描元件的第二偏好序列檢查其所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序。
- 如請求項8所述之掃描鏈的結構重構方法,其進一步包含:如該掃描元件所在之掃描鏈的偏好最佳化順序較低,則自所在掃描鏈中移除該掃描元件並將其分配給該待重構掃描鏈,並將原始的該掃描鏈加入該待重構掃描鏈集。
- 如請求項9所述之掃描鏈的結構重構方法,其進一步包含:如該掃描元件所在之掃描鏈的偏好最佳化順序更高,則根據該待重構掃描鏈的第一偏好序列找出其偏好最佳化順序較次於該掃描元件之偏好最佳化順序的一掃描元件。
- 如請求項9所述之掃描鏈的結構重構方法,其中判斷該掃描元件是否已被使用進一步包含:判斷該掃描鏈是否完成重構; 如該重構已完成,則檢查該等待重構掃描鏈是否為空;及如該重構未完成,則再次選擇一掃描元件。
- 如請求項11所述之掃描鏈的結構重構方法,其進一步包含:如該待重構掃描鏈集為空,則結束全部掃描鏈之重構;及如該待重構掃描鏈集不為空,則再次選擇一待重構掃描鏈。
- 一種掃描鏈的結構重構裝置,其包含:一第一偏好序列構建器,其針對該若干條掃描鏈中的每一條分別建立其對若干掃描元件的第一偏好序列;一第二偏好序列構建器,其針對該若干掃描元件中的每一個分別建立其對該若干掃描鏈的第二偏好序列;一雙向選擇分配器,其使該若干掃描鏈與該若干掃描元件基於各自相應的該第一偏好序列與該第二偏好序列進行雙向選擇,從而將該若干掃描元件重新分配給該若干條掃描鏈。
- 如請求項13所述之掃描鏈的結構重構裝置,其中該第一偏好序列構建器構建該若干掃描鏈中之每一個的該第一偏好序列係根據該若干掃描元件中的每一個與該掃描鏈的起點、終點的一距離和,由小到大排列建立。
- 如請求項13所述之掃描鏈的結構重構裝置,其中該第二偏好序列構建器構建該若干掃描元件中之每一個的第二 偏好序列係根據該掃描元件至該若干掃描鏈中之每一個的起點、終點的一距離和,再加上該相應掃描鏈的起點至終點的距離,由小到大排列建立。
- 如據請求項13所述之掃描鏈的結構重構裝置,其中該雙向選擇分配器進一步包含:一選擇器,一掃描元件管理器,及一掃描鏈管理器;其中該選擇器從該掃描元件管理器的一可用掃描元件集中選擇一個可用掃描元件;該第二偏好序列構建器找出該可用掃描元件的偏好最佳化順序最高的掃描鏈;該掃描鏈管理器判斷該掃描鏈是否被分配滿,如果該掃描鏈未被分配滿,則將該可用掃描元件分配給該掃描鏈,該掃描元件管理器將該可用掃描元件自可用掃描元件集中移除;否則該第一偏好序列構建器檢查該掃描鏈是否存在偏好最佳化順序低於該可用掃描元件之偏好最佳化順序的掃描元件。
- 如請求項16所述之掃描鏈的結構重構裝置,其中當一掃描鏈中存在偏好最佳化順序低於該可用掃描元件之偏好最佳化順序的掃描元件時,該掃描鏈管理器將其中偏好最佳化順序最低的掃描元件從該掃描鏈中移除,將其加入可用掃描元件集;並將該可用掃描元件分配給該掃描鏈。
- 如請求項16所述之掃描鏈的結構重構裝置,其中當該掃描鏈中不存在偏好最佳化順序低於該可用掃描元件之偏 好最佳化順序的掃描元件時,該第二偏好序列構建器選擇該可用掃描元件的偏好最佳化順序較該掃描鏈次之的一掃描鏈以進行再次分配。
- 如請求項17所述之掃描鏈的結構重構裝置,其中該掃描元件管理器在該可用掃描元件成功分配後,檢查是否仍有可用掃描元件,如無則該若干掃描鏈重構結束,否則選擇器再次選擇一可用掃描元件進行分配。
- 如請求項13所述之掃描鏈的結構重構裝置,其中該雙向選擇分配器進一步包含:一選擇器,一掃描元件管理器,及一掃描鏈管理器;其中該選擇器自該掃描鏈管理器的一待重構掃描鏈集中選擇一待重構掃描鏈;該第一偏好序列構建器找出該待重構掃描鏈的偏好最佳化順序最高的一掃描元件;該掃描元件管理器檢查該掃描元件是否可用;如可用,則該掃描鏈管理器將該掃描元件分配該掃描鏈,該掃描元件管理器將其移除;否則,該第二偏好序列構建器檢查其所在的掃描鏈是否較該待重構掃描鏈具有更高的偏好最佳化順序。
- 如請求項20所述之掃描鏈的結構重構裝置,其中該掃描鏈管理器在該掃描元件所在之掃描鏈的偏好最佳化順序較低時,將該掃描元件自其所在掃描鏈中移除而分配給該待重構掃描鏈,並將移除該掃描元件的掃描鏈加入該待重構掃描鏈集。
- 如請求項20所述之掃描鏈的結構重構裝置,其中該第一偏好序列構建器在該掃描元件所在之掃描鏈的偏好最佳化順序更高時,找出偏好最佳化順序較次於該掃描元件之偏好最佳化順序的一掃描元件,以再次嘗試重構該待重構掃描鏈。
- 如請求項21所述之掃描鏈的結構重構裝置,其中該掃描鏈管理器在將該掃描元件分配給該待重構掃描鏈後,進一步判斷其是否完成重構,如完成則檢查是否還有待重構掃描鏈;否則該選擇器繼續為該待重構掃描鏈選擇一掃描元件。
- 如請求項23所述之掃描鏈的結構重構裝置,其中當該掃描鏈管理器發現無待重構掃描鏈時,則全部掃描鏈重構結束;否則,該選擇器繼續選擇一待重構掃描鏈以進行重構。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099104882A TWI476422B (zh) | 2010-02-12 | 2010-02-12 | Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099104882A TWI476422B (zh) | 2010-02-12 | 2010-02-12 | Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201129815A TW201129815A (en) | 2011-09-01 |
TWI476422B true TWI476422B (zh) | 2015-03-11 |
Family
ID=50180053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099104882A TWI476422B (zh) | 2010-02-12 | 2010-02-12 | Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI476422B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200422811A (en) * | 2003-04-17 | 2004-11-01 | Advanced Risc Mach Ltd | Communication interface for diagnostic circuits of an integrated circuit |
US20050235182A1 (en) * | 2004-04-19 | 2005-10-20 | Chang Gung University | Method on scan chain reordering for lowering VLSI power consumption |
CN101183131A (zh) * | 2007-12-24 | 2008-05-21 | 北京航空航天大学 | 边界扫描环境下电路板互连故障的内建测试实现方法 |
-
2010
- 2010-02-12 TW TW099104882A patent/TWI476422B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200422811A (en) * | 2003-04-17 | 2004-11-01 | Advanced Risc Mach Ltd | Communication interface for diagnostic circuits of an integrated circuit |
US20050235182A1 (en) * | 2004-04-19 | 2005-10-20 | Chang Gung University | Method on scan chain reordering for lowering VLSI power consumption |
CN101183131A (zh) * | 2007-12-24 | 2008-05-21 | 北京航空航天大学 | 边界扫描环境下电路板互连故障的内建测试实现方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201129815A (en) | 2011-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011051788A2 (zh) | 物理设计中基于双向优先选择的扫描链重构方法与装置 | |
KR101607495B1 (ko) | 디펜던시 문제의 효율적인 병렬 계산 | |
WO2015117565A1 (en) | Methods and systems for dynamically allocating resources and tasks among database work agents in smp environment | |
US9405922B2 (en) | Computer-implemented method for role discovery and simplification in access control systems | |
TW201423401A (zh) | 動態改善邏輯分割區之記憶體親和性 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
TW201531060A (zh) | 資料中心伺服器資源的動態規劃方法 | |
CN109800058A (zh) | 一种虚拟机自动迁移方法 | |
CN110402432A (zh) | 分布式计算系统中的可用性管理 | |
TWI476422B (zh) | Scanning Chain Reconfiguration Method and Device Based on Bidirectional Optimization Selection in Entity Design | |
WO2011051784A1 (zh) | 考虑计划组的扫描链的重构方法与装置 | |
Zhao et al. | Power constrained test scheduling with dynamically varied TAM | |
US8479138B1 (en) | Global constraint optimization | |
JP6530811B2 (ja) | 画像処理装置 | |
CN107104829B (zh) | 一种基于网络拓扑数据的物理设备匹配分配方法及装置 | |
CN110515693A (zh) | 一种基于机架感知的虚拟机横向扩展的方法和系统 | |
CN109783220A (zh) | 内存分配方法、装置、计算机系统及存储介质 | |
TWI497328B (zh) | Consider the reconstruction method and device of the scan chain of the program group | |
CN109471726B (zh) | 一种利用三维模型分配硬件资源的方法及装置 | |
KR20160142102A (ko) | 분산 스트림 처리 서비스 병합 방법 및 장치 | |
CN105912379B (zh) | 一种编译任务管理方法及编译任务管理装置 | |
Cao et al. | DraXRouter: global routing in X-architecture with dynamic resource assignment | |
CN105978719B (zh) | 一种云主机服务质量的控制方法及装置 | |
CN116795554B (zh) | 虚拟网卡队列分配方法及可读存储介质 | |
CN112764918B (zh) | 云平台对可用区进行空间搜索的工作方法 |