本技術(shù)實施例涉及計算機領(lǐng)域,具體而言,涉及一種優(yōu)化目標(biāo)時序路徑的方法及裝置、存儲介質(zhì)、電子設(shè)備。
背景技術(shù):
1、目前的集成電路物理設(shè)計主要包括兩種設(shè)計流程,展平式物理設(shè)計和層次化物理設(shè)計。其中,層次化物理設(shè)計的設(shè)計思路是自上而下,根據(jù)整個器件要實現(xiàn)的功能,劃分為不同的功能模塊,因此在設(shè)計初期需要對每個功能模塊進行充分精確的預(yù)估,否則可能會導(dǎo)致后端綜合過程中無法做到時序路徑的時序收斂。相關(guān)技術(shù)大多通過增加電子元件或替換電子元件,以實現(xiàn)時序收斂,但存在增加器件面積,增大功耗的問題。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種優(yōu)化目標(biāo)時序路徑的方法及裝置、存儲介質(zhì)、電子設(shè)備,以至少解決相關(guān)技術(shù)中優(yōu)化時序路徑的成本較高的問題。
2、根據(jù)本技術(shù)的一個實施例,提供了一種優(yōu)化目標(biāo)時序路徑的方法,應(yīng)用于片上系統(tǒng),上述片上系統(tǒng)中包括多個系統(tǒng)組件,上述方法包括:從多個上述系統(tǒng)組件之間的多條時序路徑中確定第一系統(tǒng)組件和第二系統(tǒng)組件之間的時序違例路徑,其中,每條上述時序路徑中均包括多個時序節(jié)點,一個上述時序節(jié)點對應(yīng)一個上述系統(tǒng)組件的功能模塊,上述時序違例路徑的延時大于預(yù)設(shè)延時,且上述時序違例路徑的起始時序節(jié)點是上述第一系統(tǒng)組件的功能模塊,結(jié)束時序節(jié)點是上述第二系統(tǒng)組件的功能模塊,上述第一系統(tǒng)組件和上述第二系統(tǒng)組件均是多個上述系統(tǒng)組件中的組件;確定上述時序違例路徑中包括的多個中間時序節(jié)點中,與上述起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點;基于對上述目標(biāo)中間時序節(jié)點的功能模塊和上述起始時序節(jié)點的功能模塊執(zhí)行的合并操作確定目標(biāo)時序節(jié)點的功能模塊;將上述目標(biāo)時序節(jié)點與上述結(jié)束時序節(jié)點之間的時序路徑確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的目標(biāo)時序路徑。
3、在一個示例性實施例中,將上述目標(biāo)時序節(jié)點與上述結(jié)束時序節(jié)點之間的時序路徑確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的目標(biāo)時序路徑之后,上述方法還包括:基于第一預(yù)設(shè)信號從上述目標(biāo)時序節(jié)點傳輸至上述結(jié)束時序節(jié)點的時間,計算上述目標(biāo)時序路徑的路徑總延時;在上述目標(biāo)時序路徑的路徑總延時大于上述預(yù)設(shè)延時的情況下,將上述目標(biāo)時序路徑確定為目標(biāo)時序違例路徑。
4、在一個示例性實施例中,在上述目標(biāo)時序路徑的路徑總延時大于上述預(yù)設(shè)延時的情況下,將上述目標(biāo)時序路徑確定為目標(biāo)時序違例路徑之后,上述方法還包括:確定上述目標(biāo)時序違例路徑中包括的多個目標(biāo)中間時序節(jié)點中,與目標(biāo)起始時序節(jié)點最近的時序節(jié)點,得到第一目標(biāo)中間時序節(jié)點;基于對上述第一目標(biāo)中間時序節(jié)點的功能模塊和上述目標(biāo)起始時序節(jié)點的功能模塊執(zhí)行的合并操作,確定第一目標(biāo)時序節(jié)點的功能模塊;將上述第一目標(biāo)時序節(jié)點與目標(biāo)結(jié)束時序節(jié)點之間的時序路徑,確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的第一目標(biāo)時序路徑,其中,上述第一目標(biāo)時序路徑的延時小于上述預(yù)設(shè)延時。
5、在一個示例性實施例中,從多個上述系統(tǒng)組件之間的多條時序路徑中確定第一系統(tǒng)組件和第二系統(tǒng)組件之間的時序違例路徑,包括:基于第二預(yù)設(shè)信號的傳輸方向,識別多個上述系統(tǒng)組件之間的多條時序路徑,其中,上述第二預(yù)設(shè)信號的傳輸方向包括以下至少之一:第一輸入系統(tǒng)組件傳輸至第一輸出系統(tǒng)組件,第一輸入系統(tǒng)組件傳輸至第一觸發(fā)器系統(tǒng)組件,第一觸發(fā)器系統(tǒng)組件傳輸至第二觸發(fā)器系統(tǒng)組件,第一觸發(fā)器系統(tǒng)組件傳輸至第一輸出系統(tǒng)組件,上述第一輸入系統(tǒng)組件,上述第一輸出系統(tǒng)組件,上述第一觸發(fā)器系統(tǒng)組件以及上述第二觸發(fā)器系統(tǒng)均是多個上述系統(tǒng)組件中的組件;基于上述第二預(yù)設(shè)信號從起始系統(tǒng)組件傳輸至結(jié)束系統(tǒng)組件的時間,計算每個上述時序路徑的路徑總延時,其中,上述起始系統(tǒng)組件中包括上述第一輸入系統(tǒng)組件、上述第一觸發(fā)器系統(tǒng)組件,上述結(jié)束系統(tǒng)組件包括上述第二觸發(fā)器系統(tǒng)組件、上述第一輸出系統(tǒng)組件;將上述路徑總延時大于上述預(yù)設(shè)延時的時序路徑,確定為上述時序違例路徑。
6、在一個示例性實施例中,確定上述時序違例路徑中包括的多個中間時序節(jié)點中,與上述起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點之前,上述方法還包括:遍歷上述時序違例路徑中與上述起始時序節(jié)點連接的n個中間時序節(jié)點,并將訪問到的n個上述中間時序節(jié)點均存儲至訪問隊列中,其中,上述訪問隊列用于存儲訪問的上述中間時序節(jié)點,n個上述中間時序節(jié)點是按照訪問順序存儲至上述訪問隊列中的時序節(jié)點,上述n是大于或等于1的自然數(shù)。
7、在一個示例性實施例中,確定上述時序違例路徑中包括的多個中間時序節(jié)點中,與上述起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點,包括:獲取上述起始時序節(jié)點的坐標(biāo)和多個上述中間時序節(jié)點的坐標(biāo);分別計算每個上述中間時序節(jié)點與上述起始時序節(jié)點之間的曼哈頓距離,得到多個曼哈頓距離,其中,上述曼哈頓距離d(i,j)=|xi-xj|+|yi-yj|,上述(xi,yi)為上述起始時序節(jié)點的坐標(biāo),上述(xj,yj)為上述中間時序節(jié)點的坐標(biāo);將與上述起始時序節(jié)點距離最近的中間時序節(jié)點,確定為上述目標(biāo)中間時序節(jié)點。
8、在一個示例性實施例中,基于對上述目標(biāo)中間時序節(jié)點的功能模塊和上述起始時序節(jié)點的功能模塊執(zhí)行的合并操作確定目標(biāo)時序節(jié)點的功能模塊,包括:獲取上述目標(biāo)中間時序節(jié)點的功能模塊的多個第一接口信息和上述起始時序節(jié)點的功能模塊的多個第二接口信息,其中,上述第一接口信息中包括上述目標(biāo)中間時序節(jié)點的功能模塊的第一接口的輸入輸出功能,上述第二接口信息中包括上述起始時序節(jié)點的功能模塊的第二接口的輸入輸出功能;基于上述第一接口信息和上述第二接口信息,合并第一目標(biāo)接口和第二目標(biāo)接口,以確定目標(biāo)接口,其中,上述第一目標(biāo)接口與上述第二目標(biāo)接口的輸入輸出功能相同,且上述第一目標(biāo)接口是多個上述第一接口中的接口,上述第二目標(biāo)接口是多個上述第二接口中的接口;基于上述目標(biāo)接口,合并第一目標(biāo)系統(tǒng)組件和第二目標(biāo)系統(tǒng)組件,以確定上述目標(biāo)時序節(jié)點的功能模塊,其中,上述第一目標(biāo)系統(tǒng)組件是上述目標(biāo)中間時序節(jié)點的功能模塊中的組件,上述第二目標(biāo)系統(tǒng)組件是上述起始時序節(jié)點的功能模塊中的組件。
9、根據(jù)本技術(shù)的另一個實施例,提供了一種優(yōu)化目標(biāo)時序路徑的裝置,應(yīng)用于片上系統(tǒng),上述片上系統(tǒng)中包括多個系統(tǒng)組件,上述裝置包括:第一確定模塊,用于從多個上述系統(tǒng)組件之間的多條時序路徑中確定第一系統(tǒng)組件和第二系統(tǒng)組件之間的時序違例路徑,其中,每條上述時序路徑中均包括多個時序節(jié)點,一個上述時序節(jié)點對應(yīng)一個上述系統(tǒng)組件的功能模塊,上述時序違例路徑的延時大于預(yù)設(shè)延時,且上述時序違例路徑的起始時序節(jié)點是上述第一系統(tǒng)組件的功能模塊,結(jié)束時序節(jié)點是上述第二系統(tǒng)組件的功能模塊,上述第一系統(tǒng)組件和上述第二系統(tǒng)組件均是多個上述系統(tǒng)組件中的組件;第二確定模塊,用于確定上述時序違例路徑中包括的多個中間時序節(jié)點中,與上述起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點;第三確定模塊,用于基于對上述目標(biāo)中間時序節(jié)點的功能模塊和上述起始時序節(jié)點的功能模塊執(zhí)行的合并操作確定目標(biāo)時序節(jié)點;第四確定模塊,用于將上述目標(biāo)時序節(jié)點與上述結(jié)束時序節(jié)點之間的時序路徑確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的目標(biāo)時序路徑。
10、在一個示例性實施例中,上述裝置還包括:第一計算模塊,用于將上述目標(biāo)時序節(jié)點與上述結(jié)束時序節(jié)點之間的時序路徑確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的目標(biāo)時序路徑之后,基于第一預(yù)設(shè)信號從上述目標(biāo)時序節(jié)點傳輸至上述結(jié)束時序節(jié)點的時間,計算上述目標(biāo)時序路徑的路徑總延時;第五確定模塊,用于在上述目標(biāo)時序路徑的路徑總延時大于上述預(yù)設(shè)延時的情況下,將上述目標(biāo)時序路徑確定為目標(biāo)時序違例路徑。
11、在一個示例性實施例中,上述裝置還包括:第六確定模塊,用于在上述目標(biāo)時序路徑的路徑總延時大于上述預(yù)設(shè)延時的情況下,將上述目標(biāo)時序路徑確定為目標(biāo)時序違例路徑之后,確定上述目標(biāo)時序違例路徑中包括的多個目標(biāo)中間時序節(jié)點中,與目標(biāo)起始時序節(jié)點最近的時序節(jié)點,得到第一目標(biāo)中間時序節(jié)點;第七確定模塊,用于基于對上述第一目標(biāo)中間時序節(jié)點的功能模塊和上述目標(biāo)起始時序節(jié)點的功能模塊執(zhí)行的合并操作,確定第一目標(biāo)時序節(jié)點的功能模塊;第八確定模塊,用于將上述第一目標(biāo)時序節(jié)點與目標(biāo)結(jié)束時序節(jié)點之間的時序路徑,確定為上述第一系統(tǒng)組件和上述第二系統(tǒng)組件之間的第一目標(biāo)時序路徑,其中,上述第一目標(biāo)時序路徑的延時小于上述預(yù)設(shè)延時。
12、在一個示例性實施例中,上述第一確定模塊,包括:第一識別子模塊,用于基于第二預(yù)設(shè)信號的傳輸方向,識別多個上述系統(tǒng)組件之間的多條時序路徑,其中,上述第二預(yù)設(shè)信號的傳輸方向包括以下至少之一:第一輸入系統(tǒng)組件傳輸至第一輸出系統(tǒng)組件,第一輸入系統(tǒng)組件傳輸至第一觸發(fā)器系統(tǒng)組件,第一觸發(fā)器系統(tǒng)組件傳輸至第二觸發(fā)器系統(tǒng)組件,第一觸發(fā)器系統(tǒng)組件傳輸至第一輸出系統(tǒng)組件,上述第一輸入系統(tǒng)組件,上述第一輸出系統(tǒng)組件,上述第一觸發(fā)器系統(tǒng)組件以及上述第二觸發(fā)器系統(tǒng)均是多個上述系統(tǒng)組件中的組件;第一計算子模塊,用于基于上述第二預(yù)設(shè)信號從起始系統(tǒng)組件傳輸至結(jié)束系統(tǒng)組件的時間,計算每個上述時序路徑的路徑總延時,其中,上述起始系統(tǒng)組件中包括上述第一輸入系統(tǒng)組件、上述第一觸發(fā)器系統(tǒng)組件,上述結(jié)束系統(tǒng)組件包括上述第二觸發(fā)器系統(tǒng)組件、上述第一輸出系統(tǒng)組件;第一確定子模塊,用于將上述路徑總延時大于上述預(yù)設(shè)延時的時序路徑,確定為上述時序違例路徑。
13、在一個示例性實施例中,上述裝置還包括:第一遍歷模塊,用于確定上述時序違例路徑中包括的多個中間時序節(jié)點中,與上述起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點之前,遍歷上述時序違例路徑中與上述起始時序節(jié)點連接的n個中間時序節(jié)點,并將訪問到的n個上述中間時序節(jié)點均存儲至訪問隊列中,其中,上述訪問隊列用于存儲訪問的上述中間時序節(jié)點,n個上述中間時序節(jié)點是按照訪問順序存儲至上述訪問隊列中的時序節(jié)點,上述n是大于或等于1的自然數(shù)。
14、在一個示例性實施例中,上述第二確定模塊,包括:第一獲取子模塊,用于獲取上述起始時序節(jié)點的坐標(biāo)和多個上述中間時序節(jié)點的坐標(biāo);第二計算子模塊,用于分別計算每個上述中間時序節(jié)點與上述起始時序節(jié)點之間的曼哈頓距離,得到多個曼哈頓距離,其中,上述曼哈頓距離d(i,j)=|xi-xj|+|yi-yj|,上述(xi,yi)為上述起始時序節(jié)點的坐標(biāo),上述(xj,yj)為上述中間時序節(jié)點的坐標(biāo);第二確定子模塊,用于將與上述起始時序節(jié)點距離最近的中間時序節(jié)點,確定為上述目標(biāo)中間時序節(jié)點。
15、在一個示例性實施例中,上述第三確定模塊,包括:第二獲取子模塊,用于獲取上述目標(biāo)中間時序節(jié)點的功能模塊的多個第一接口信息和上述起始時序節(jié)點的功能模塊的多個第二接口信息,其中,上述第一接口信息中包括上述目標(biāo)中間時序節(jié)點的功能模塊的第一接口的輸入輸出功能,上述第二接口信息中包括上述起始時序節(jié)點的功能模塊的第二接口的輸入輸出功能;第三確定子模塊,用于基于上述第一接口信息和上述第二接口信息,合并第一目標(biāo)接口和第二目標(biāo)接口,以確定目標(biāo)接口,其中,上述第一目標(biāo)接口與上述第二目標(biāo)接口的輸入輸出功能相同,且上述第一目標(biāo)接口是多個上述第一接口中的接口,上述第二目標(biāo)接口是多個上述第二接口中的接口;第一合并子模塊,用于基于上述目標(biāo)接口,合并第一目標(biāo)系統(tǒng)組件和第二目標(biāo)系統(tǒng)組件,以確定上述目標(biāo)時序節(jié)點的功能模塊,其中,上述第一目標(biāo)系統(tǒng)組件是上述目標(biāo)中間時序節(jié)點的功能模塊中的組件,上述第二目標(biāo)系統(tǒng)組件是上述起始時序節(jié)點的功能模塊中的組件。
16、根據(jù)本技術(shù)的又一個實施例,還提供了一種計算機可讀存儲介質(zhì),上述計算機可讀存儲介質(zhì)中存儲有計算機程序,其中,上述計算機程序被設(shè)置為運行時執(zhí)行上述任一項方法實施例中的步驟。
17、根據(jù)本技術(shù)的又一個實施例,還提供了一種電子設(shè)備,包括存儲器和處理器,上述存儲器中存儲有計算機程序,上述處理器被設(shè)置為運行上述計算機程序以執(zhí)行上述任一項方法實施例中的步驟。
18、根據(jù)本技術(shù)的又一個實施例,還提供了一種計算機程序產(chǎn)品,包括計算機程序,上述計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項方法實施例中的步驟。
19、通過本技術(shù),確定時序違例路徑中包括的多個中間時序節(jié)點中,與起始時序節(jié)點最近的時序節(jié)點,得到目標(biāo)中間時序節(jié)點;基于對目標(biāo)中間時序節(jié)點的功能模塊和起始時序節(jié)點的功能模塊執(zhí)行的合并操作確定目標(biāo)時序節(jié)點的功能模塊;將目標(biāo)時序節(jié)點與結(jié)束時序節(jié)點之間的時序路徑確定為第一系統(tǒng)組件和第二系統(tǒng)組件之間的目標(biāo)時序路徑。由于本技術(shù)通過確定時序違例路徑中,與起始時序節(jié)點最近的時序節(jié)點,并將與起始時序節(jié)點最近的時序節(jié)點的功能模塊與起始時序節(jié)點的功能模塊進行模塊合并,合并后的模塊可以進行邏輯共享與邏輯優(yōu)化,因此,可以解決相關(guān)技術(shù)中優(yōu)化時序路徑的成本較高的問題,實現(xiàn)了低成本優(yōu)化時序路徑,達(dá)到時序收斂的效果。