Ic設(shè)計數(shù)據(jù)的比較與合并的制作方法
【專利說明】IC設(shè)計數(shù)據(jù)的比較與合并
[0001]相關(guān)申請
[0002]本申請是于2013年9月25日提交的美國專利申請14/036,734的繼續(xù)申請,并且要求其優(yōu)先權(quán)。在此通過引用的方式將上面的申請的全部示教并入本文。
【背景技術(shù)】
[0003]隨著任何數(shù)據(jù)隨時間而發(fā)展,潛在地由工作于單獨的副本上的多個人生成了數(shù)據(jù)的多個版本(例如,數(shù)據(jù)文件、數(shù)據(jù)庫、數(shù)據(jù)存儲)。在各種時刻,期望比較數(shù)據(jù)的不同版本,并且潛在地將由不同的編輯工作做出的改變合并到數(shù)據(jù)的每一個版本中。
[0004]對于以一個或多個“文本”文件形式的數(shù)據(jù)(例如,簡單的文本文檔),已經(jīng)開發(fā)了許多工具,它們使用各種算法用于識別做出了什么改變,并且用于提供接口以組合這些改變。所有這些算法一般都通過識別相同的或不同的文件“區(qū)域”來進行操作。這些“區(qū)域”一般采取文件的一行或多行的形式。一旦識別出差異,合并通常涉及從“結(jié)果”文件簡單地增加和/或刪除行,以更好地匹配源文件。
[0005]在集成電路(IC)設(shè)計環(huán)境中,IC數(shù)據(jù)通常不采取簡單的“文本”文件的形式,而是代替為以“數(shù)據(jù)庫”的形式,例如,一個或多個二進制文件、數(shù)據(jù)存儲、數(shù)據(jù)庫或者其它類型的IC數(shù)據(jù)。IC數(shù)據(jù)可以包括具有各種不同“屬性”的(非常)大量的各種類型的“對象”。從其本質(zhì)而言,與“文本”文件截然不同的是,IC設(shè)計通常是是三維的,其具有多個層(例如,金屬1、金屬2和金屬3),這進一步增加了需要被存儲的“對象”的數(shù)量。用戶一般通過使用圖形設(shè)計工具來與這樣的IC數(shù)據(jù)進行交互。因此,需要用于管理用于IC的這樣的復(fù)雜數(shù)據(jù)的方法,所述方法超出了標準文本文件數(shù)據(jù)管理。
【發(fā)明內(nèi)容】
[0006]非常有挑戰(zhàn)的是,將用于對文本文件進行比較以及合并的現(xiàn)有的解決方案應(yīng)用到數(shù)據(jù)庫(或數(shù)據(jù)存儲、通用的數(shù)據(jù)存儲、一個或多個二進制文件、數(shù)據(jù)庫或其它類型的文件或數(shù)據(jù)存儲裝置)中,至少有以下四個主要原因:
[0007]第一,對“行”進行簡單的“線性”比較不能轉(zhuǎn)換為數(shù)據(jù)庫,其中“對象”不一定以連續(xù)的方式進行“排列”。即使數(shù)據(jù)庫對象具有位置坐標,但是也傾向于不基于此來進行比較,因為對于對象而言改變位置是非常普遍的,并且這需要被正確地識別出(而不是例如,刪除對象,并且添加新的對象。)
[0008]第二,在數(shù)據(jù)庫中可以存在“相同”但是“修改”的對象。以相同的方式,文件的兩行可能看來是相同的,但是具有不同的一個或兩個特性,在數(shù)據(jù)庫中,可以存在相同的,但是一些“屬性”不同的兩個對象。然而在文本比較中,這樣的情況可能會被處理成整行都是不同的,在數(shù)據(jù)庫中這樣做將會非常低效。
[0009]第三,用于比較的設(shè)計數(shù)據(jù)庫的大小通常比文本文件大幾個數(shù)量級。例如,然而可以“合理”期望的是比較/合并幾千行的文本文件,常見的是比較/合并包括成百上千個對象的數(shù)據(jù)庫。
[0010]第四,需要識別數(shù)據(jù)庫的兩個對象中的“差異”的步驟,以及需要“合并”這些差異的步驟,與簡單地比較文本的兩行并且利用另一行來替換一行相比更加復(fù)雜得多。實際上,對于數(shù)據(jù)庫而言,可能存在需要以不同的方式來進行處理的多種類型的對象。
[0011]綜上所述,非常挑戰(zhàn)的是,將在數(shù)據(jù)庫中找到的差異作為文本的簡單行來呈現(xiàn)給用戶。需要替代的方法來描述數(shù)據(jù)的改變,并且允許用戶對其可視化,并且然后允許用戶查看任何“合并”的結(jié)果。
[0012]鑒于對替代的方法的需要,下面所提出的方法包括至少以下四個元素(以及要遵循的附加的元素),其克服了呈現(xiàn)數(shù)據(jù)庫差異的上面提到的挑戰(zhàn)。
[0013]第一,數(shù)據(jù)庫被劃分為分區(qū)。這給出了用于比較的對象的更小的集合,并且因此允許用于比較的更大的數(shù)據(jù)集。
[0014]第二,基于對象的某個方面,數(shù)據(jù)庫中的對象被分配了“關(guān)鍵字”。然后對兩個數(shù)據(jù)庫中的關(guān)鍵字進行比較以識別出“相同”的對象。這允許對是否添加/刪除或只是改變了項目進行準確的識別。然后可以對具有同一關(guān)鍵字的兩個對象進行更詳細的檢查以識別出它們是否被“修改”。
[0015]第三,然后將兩個數(shù)據(jù)庫之間的差異呈現(xiàn)給用戶,或者作為差異的文本摘要,或者通過突出顯示存在差異的數(shù)據(jù)庫的圖形表示。這使得用戶容易查看差異,并且檢查差異對數(shù)據(jù)庫的其余的上下文的影響。
[0016]第四,然后可以一個接一個地或成組地選擇一個或多個差異,并且可以修改兩個數(shù)據(jù)庫中的一個,使得它與另一個數(shù)據(jù)庫相匹配(即,可以合并所選擇的改變。)
[0017]可以由一個或多個用戶對整個過程(比較與合并二者)進行定制,以便滿足所述一個或多個用戶使用的數(shù)據(jù)庫的任何具體要求或具體方面。
[0018]所提出的方法包括用于管理集成電路(IC)設(shè)計信息的計算機實現(xiàn)的方法。該計算機實現(xiàn)的方法可以呈現(xiàn)第一數(shù)據(jù)存儲中的主體IC設(shè)計信息的第一版本,并且呈現(xiàn)第二數(shù)據(jù)存儲中的主體IC設(shè)計信息的第二版本。該方法可以將第一數(shù)據(jù)存儲劃分為多個分區(qū),每一個分區(qū)保留了呈現(xiàn)第一版本中的主體IC設(shè)計信息的部分的相應(yīng)的對象。該方法可以將第二數(shù)據(jù)存儲劃分為與第一數(shù)據(jù)存儲的多個分區(qū)相對應(yīng)的分區(qū),第二數(shù)據(jù)存儲的每一個分區(qū)保留了呈現(xiàn)第二版本中的主體IC設(shè)計信息的部分的相應(yīng)的對象。
[0019]對于每一個分區(qū),該方法可以根據(jù)對象的方面來將關(guān)鍵字分配給分區(qū)中的每一個對象,使得所述對關(guān)鍵字的分配引起下面的動作:(a)可以將同一關(guān)鍵字分配給(i)第一數(shù)據(jù)存儲的分區(qū)中的主體對象以及Qi)第二數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的對象,該對象是與第一數(shù)據(jù)存儲中的主體對象相對應(yīng)的對象,并且引起(b)將相應(yīng)的關(guān)鍵字分配給沒有被分配關(guān)鍵字的每一個對象。
[0020]對于每一個給定的分區(qū),該方法可以通過基于第一數(shù)據(jù)存儲的分區(qū)中的對象的關(guān)鍵字,和第二數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的對象的關(guān)鍵字來執(zhí)行第一比較,從而確定是否添加、刪除或修改了該分區(qū)的對象。對于第一數(shù)據(jù)存儲中每一個給定的對象,以及第二數(shù)據(jù)存儲中共享同一關(guān)鍵字的其相對應(yīng)的對象,該方法可以執(zhí)行確定了一個或多個對象差異的第二比較。基于第一和第二比較的結(jié)果,該方法可以呈現(xiàn)第一數(shù)據(jù)存儲中主體IC設(shè)計信息的第一版本與第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本之間的一個或多個差異。
[0021]所述計算機實現(xiàn)的方法可以使終端用戶能夠選擇所述一個或多個差異中的至少一個的差異集,并且可以使終端用戶能夠?qū)⑺x擇的差異集應(yīng)用于第二數(shù)據(jù)存儲中的主體IC設(shè)計信息的第二版本。所述計算機實現(xiàn)的方法可以包括以文本格式將所述一個或多個差異呈現(xiàn)給終端用戶。所述計算機實現(xiàn)的方法可以包括通過在圖形表示上突出顯示每一個差異來將所述一個或多個差異呈現(xiàn)給終端用戶。所述計算機實現(xiàn)的方法可以將關(guān)鍵字分配給每一個對象,包括基于對象的位置信息和屬性信息的任何組合來分配關(guān)鍵字。
[0022]所述計算機實現(xiàn)的方法可以呈現(xiàn)祖先數(shù)據(jù)存儲中的主體IC設(shè)計信息的祖先版本,第一版本和第二版本都來自該祖先版本。所述計算機實現(xiàn)的方法可以進一步包括將祖先數(shù)據(jù)存儲劃分為與第一數(shù)據(jù)存儲和第二數(shù)據(jù)存儲的多個分區(qū)相對應(yīng)的分區(qū),祖先數(shù)據(jù)存儲中的每一個分區(qū)都保留了呈現(xiàn)祖先版本中的IC設(shè)計信息的部分的相應(yīng)的對象。
[0023]對于祖先數(shù)據(jù)存儲中的每一個分區(qū),該方法可以根據(jù)對象的方面來將關(guān)鍵字分配給每一個對象,使得對于祖先數(shù)據(jù)存儲的每一個分區(qū):(I)將同一關(guān)鍵字分配給祖先數(shù)據(jù)存儲的分區(qū)中給定的對象以及第一數(shù)據(jù)存儲和第二數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的相對應(yīng)的對象,所述相對應(yīng)的對象與祖先數(shù)據(jù)存儲中給定的對象相對應(yīng),以及(2)將相應(yīng)的關(guān)鍵字分配給祖先數(shù)據(jù)存儲的分區(qū)中剩余的對象。
[0024]對于每一個給定的分區(qū),該方法可以通過執(zhí)行第三比較,來確定是否添加、刪除或修改了分區(qū)的對象。第三比較可以基于第一和第二數(shù)據(jù)存儲的分區(qū)中的對象的關(guān)鍵字以及祖先數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的對象的關(guān)鍵字。對于第一和第二數(shù)據(jù)存儲中的每一個給定的對象,以及在祖先數(shù)據(jù)存儲中共享同一關(guān)鍵字的其相對應(yīng)的對象,該方法可以執(zhí)行確定了一個或多個相應(yīng)的對象差異的第四比較。
[0025]基于第三和第四比較的結(jié)果,該方法可以呈現(xiàn)祖先數(shù)據(jù)存儲中主體IC設(shè)計信息的祖先版本之間的至少一個差異。該方法還可以呈現(xiàn)第一數(shù)據(jù)存儲中主體IC設(shè)計信息的第一版本和第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本中的至少一個。該方法可以使終端用戶能夠選擇所述至少一個差異中的至少一個的相應(yīng)的差異集。該方法可以使終端用戶能夠?qū)⑺x擇的相應(yīng)的差異集應(yīng)用于第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本。
[0026]所提出的方法包括用于管理集成電路(IC)設(shè)計信息的計算機實現(xiàn)的系統(tǒng)。所述計算機實現(xiàn)的系統(tǒng)可以包括數(shù)據(jù)模塊,所述數(shù)據(jù)模塊被配置為呈現(xiàn)第一數(shù)據(jù)存儲中主體IC設(shè)計信息的第一版本。所述數(shù)據(jù)模塊可以進一步被配置為呈現(xiàn)第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本。劃分模塊可以被配置為將第一數(shù)據(jù)存儲劃分為多個分區(qū),每一個分區(qū)都保留了呈現(xiàn)第一版本中主體IC設(shè)計信息的部分的相應(yīng)的對象。劃分模塊可以進一步被配置為將第二數(shù)據(jù)存儲劃分為與第一數(shù)據(jù)存儲的多個分區(qū)相對應(yīng)的分區(qū)。第二數(shù)據(jù)存儲的每一個分區(qū)可以保留呈現(xiàn)第二版本中主體IC設(shè)計信息的部分的相應(yīng)的對象。
[0027]控制模塊可以被配置為對于每一個分區(qū),根據(jù)對象的方面來將關(guān)鍵字分配給分區(qū)中的每一個對象,使得通過控制模塊對關(guān)鍵字的分配引起:(a)通過控制模塊來將同一關(guān)鍵字分配給,(i)第一數(shù)據(jù)存儲的分區(qū)中的主體對象,以及(ii)第二數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的對象,所述對象是與第一數(shù)據(jù)存儲中的主體對象相對應(yīng)的對象,并且引起(b)通過控制模塊來將相應(yīng)的關(guān)鍵字分配給沒有通過控制模塊分配關(guān)鍵字的每一個對象。
[0028]控制模塊還可以進一步被配置為,對于每一個給定的分區(qū),通過基于第一數(shù)據(jù)存儲的分區(qū)中的對象的關(guān)鍵字和第二數(shù)據(jù)存儲的相對應(yīng)的分區(qū)中的對象的關(guān)鍵字來執(zhí)行第一比較,從而確定是否添加、刪除或修改了分區(qū)的對象。控制模塊可以進一步被配置為對于第一數(shù)據(jù)存儲中每一個給定的對象以及在第二數(shù)據(jù)存儲中共享同一關(guān)鍵字的其相對應(yīng)的對象,來執(zhí)行第二比較,所述第二比較確定一個或多個對象差異。
[0029]所述系統(tǒng)可以包括顯示模塊,其被配置為基于所述第一和第二比較的結(jié)果,來呈現(xiàn)第一數(shù)據(jù)存儲中主體IC設(shè)計信息的第一版本和第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本之間的一個或多個差異。
[0030]控制模塊可以進一步被配置為使終端用戶能夠選擇所述一個或多個差異中的至少一個的差異集??刂颇K可以進一步被配置為使終端用戶能夠?qū)⑺x擇的差異集應(yīng)用于第二數(shù)據(jù)存儲中主體IC設(shè)計信息的第二版本。
[003