一種PCB差分對自動布線方法、裝置、設備、存儲介質與流程
一種pcb差分對自動布線方法、裝置、設備、存儲介質
技術領域
1.本發明涉及pcb自動布線技術領域,具體涉及一種pcb差分對自動布線方法、裝置、設備、存儲介質。
背景技術:
2.布線是pcb設計中的一個關鍵且重要的步驟及過程,pcb布線的好壞將直接影響到后續pcb板的可用性,因此,pcb的布線結果也十分重要。在一般的布線任務中,采用導線將器件的pin腳,按照一定的規則約束連接起來即可。但是在高速電路中,也存在一種差分布線的情況,所謂差分布線,就是兩根信號完全一致的線,在進行布線時要保存平行,線寬、線間距保持不變,同時需要注意的是,在布線的過程中,兩條線的長度要盡量保持一樣長,線間距不能變,要保持平行。
3.因為差分布線有以上的特點,在工程師進行差分布線時,需要通過軟件來進行一些規則的設置等,從而盡可能獲取到更好的差分布線結果,如專利cn202010108082.7中提出的一種pcb設計中差分布線的方法及系統,該方法通過第一布線模塊、粗線生成模塊、移動模塊和第二布線模塊,提高了pcb設計中差分布線的效率和準確性。
4.但是專利cn202010108082.7也是在人工布線的基礎,輔助進行的差分布線。如何通過自動布線的方式,根據線寬、間隙寬度等約束情況實現自動的差分布線,也是當前自動布線領域需要思考和解決的問題。
技術實現要素:
5.針對如何通過自動布線的方式,根據線寬、間隙寬度等約束情況實現自動的差分布線的問題,本發明提供一種pcb差分對自動布線方法、裝置、設備、存儲介質。
6.第一方面,本發明技術方案提供一種pcb差分對自動布線方法,包括如下步驟:
7.確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;
8.按照排序對兩個網絡上的pin腳進行配對;
9.獲取配對pin腳的合并點;
10.對獲取的合并點依次進行自動布線;
11.對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。
12.進一步的,確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序的步驟包括:
13.從導出的dsn文件中獲取需要進行差分走線的網絡對;成對的網絡中每個網絡包含的pin腳的數量相同,均為m;
14.分別對網絡對中的第一個網絡中的pin腳以第一個網絡連接的總長度最小為原則,獲得第一個網絡的最小連接的pin腳排序,生成第一個網絡的排序集合;
15.在對應網絡對中的第二個網絡的pin腳中分別獲取與第一個網絡的pin腳排序集
合中的pin腳最近的pin腳,生成第二個網絡的排序集合。
16.進一步的,按照排序對兩個網絡上的pin腳進行配對的步驟包括:
17.對第一個網絡的排序集合中的pin腳和第二個網絡的排序集合中的pin腳依次進行組對,即將第一個網絡的排序集合中的第一個pin腳與第二個網絡的排序集合中的第一個pin腳組對,依次將第一個網絡的排序集合中的第m個pin腳與第二個網絡的排序集合中的第m個pin腳組對。
18.進一步的,獲取配對pin腳的合并點的步驟包括:
19.計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;
20.計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;
21.計算第一個配對中pin腳的候選合并點;
22.同樣方式計算出所有配對的pin腳的候選合并點;
23.計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點。
24.進一步的,計算第一個配對中pin腳的候選合并點的步驟包括:
25.將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求和得到第一個pin腳第一候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求和得到第一個pin腳第一候選合并點的y坐標;
26.將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求差得到第一個pin腳第二候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求差得到第一個pin腳第二候選合并點y坐標;
27.根據第一個pin腳第一候選合并點的x坐標和第一個pin腳第一候選合并點的y坐標得到第一個pin腳第一候選合并點;根據第一個pin腳第二候選合并點的x坐標和第一個pin腳第二候選合并點的y坐標得到第一個pin腳第二候選合并點。
28.進一步的,對獲取的合并點依次進行自動布線的步驟包括:
29.對計算得到的合并點從第一個合并點開始,依次與下一個合并點進行自動布線,其中,設置線寬為r,差分對的間隙為g,自動布線需要在2*r+g的空間進行路徑搜索,搜索到的路徑為path。
30.進一步的,對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線的步驟包括:
31.確定布線的兩個合并點的相對位置是水平的還是垂直的;
32.若是水平,將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;
33.若是垂直,將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;
34.將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
35.第二方面,本發明技術方案提供一種pcb差分對自動布線裝置,包括數據預處理模塊、自動布線模塊、后處理模塊;
36.數據預處理模塊,用于確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;按照排序對兩個網絡上的pin腳進行配對;獲取配對pin腳的合并點;
37.自動布線模塊,用于對獲取的合并點依次進行自動布線;
38.后處理模塊,用于對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。
39.進一步的,數據預處理模塊包括差分網絡對獲取單元、排序處理單元;
40.差分網絡對獲取單元,用于從導出的dsn文件中獲取需要進行差分走線的網絡對;成對的網絡中每個網絡包含的pin腳的數量相同,均為m;
41.排序處理單元,用于分別對網絡對中的第一個網絡中的pin腳以第一個網絡連接的總長度最小為原則,獲得第一個網絡的最小連接的pin腳排序,生成第一個網絡的排序集合;在對應網絡對中的第二個網絡的pin腳中分別獲取與第一個網絡的pin腳排序集合中的pin腳最近的pin腳,生成第二個網絡的排序集合。
42.進一步的,數據預處理模塊包括配對處理單元,用于對第一個網絡的排序集合中的pin腳和第二個網絡的排序集合中的pin腳依次進行組對,即將第一個網絡的排序集合中的第一個pin腳與第二個網絡的排序集合中的第一個pin腳組對,依次將第一個網絡的排序集合中的第m個pin腳與第二個網絡的排序集合中的第m個pin腳組對。
43.進一步的,數據預處理模塊還包括合并點計算單元,用于計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;計算第一個配對中pin腳的候選合并點;同樣方式計算出所有配對的pin腳的候選合并點;計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點。
44.進一步的,合并點計算單元,還用于將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求和得到第一個pin腳第一候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求和得到第一個pin腳第一候選合并點的y坐標;將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求差得到第一個pin腳第二候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求差得到第一個pin腳第二候選合并點y坐標;根據第一個pin腳第一候選合并點的x坐標和第一個pin腳第一候選合并點的y坐標得到第一個pin腳第一候選合并點;根據第一個pin腳第二候選合并點的x坐標和第一個pin腳第二候選合并點的y坐標得到第一個pin腳第二候選合并點。
45.進一步的,自動布線模塊,用于對計算得到的合并點從第一個合并點開始,依次與下一個合并點進行自動布線,其中,設置線寬為r,差分對的間隙為g,自動布線需要在2*r+g
的空間進行路徑搜索,搜索到的路徑為path。
46.進一步的,后處理模塊包括pin腳位置關系確定單元、解耦設置單元、連接布線單元;
47.pin腳位置關系確定單元,用于確定布線的兩個合并點的相對位置是水平的還是垂直的;
48.解耦設置單元,用于若是水平,將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;若是垂直,將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;
49.連接布線單元,用于將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
50.第三方面,本發明技術方案還提供一種電子設備,所述電子設備包括:
51.至少一個處理器;以及,
52.與所述至少一個處理器通信連接的存儲器;其中,
53.存儲器存儲有可被至少一個處理器執行的計算機程序指令,所述計算機程序指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行如第一方面所述的pcb差分對自動布線方法。
54.第四方面,本發明技術方案還提供一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令使所述計算機執行如第一方面所述的pcb差分對自動布線方法。
55.從以上技術方案可以看出,本發明具有以下優點:根據差分對布線的特定,將差分對布線的點進行合并,采用自動布線的方式進行自動布線,然后對得到的結果信息解耦得到兩條平行的布線,最后再與真實的管腳連接,從而完成了差分對的自動布線過程。整個布線過程無需人工參與便可自動完成,從而節省了工程的時間,同時,布線的結果也是可用、可靠的。
56.此外,本發明設計原理可靠,結構簡單,具有非常廣泛的應用前景。
57.由此可見,本發明與現有技術相比,具有突出的實質性特點和顯著地進步,其實施的有益效果也是顯而易見的。
附圖說明
58.為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
59.圖1是本發明一個實施例的方法的示意性流程圖。
60.圖2是本發明一個實施例的裝置的示意性框圖。
61.圖3是本發明一個實施例裝置的后處理模塊的具體處理流程示意圖。
具體實施方式
62.在進行pcb布線時,會存在差分對布線的情況,即兩條網絡需要等長、平行,根據差
分對布線的特點,將每個網絡的pin腳進行排序,組對,然后進行合并,對合并點進行自動布線操作,得到合并點之間的路徑,然后再根據網絡的線寬、間距等參數,對得到的合并點之間的路徑進行移動,得到差分對布線,最后將實際的pin點再與解耦后的合并點進行連接,從而完成差分對自動布線任務。整個布線過程無需人工參與便可自動完成,從而節省了工程的時間,同時,布線的結果也是可用、可靠的。為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
63.如圖1所示,本發明實施例提供一種pcb差分對自動布線方法,包括如下步驟:
64.步驟1:確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;
65.步驟2:按照排序對兩個網絡上的pin腳進行配對;
66.步驟3:獲取配對pin腳的合并點;
67.步驟4:對獲取的合并點依次進行自動布線;
68.步驟5:對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。
69.需要說明的是,在有些實施例中,確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序的步驟包括:
70.步驟11:從導出的dsn文件中獲取需要進行差分走線的網絡對;成對的網絡中每個網絡包含的pin腳的數量相同,均為m;得到一對需要進行差分對走線的網絡對,分別記為net1,net2,其中net1中所包含的pin腳有m個,net2中所包含的pin腳也有m個;
71.步驟12:分別對網絡對中的第一個網絡中的pin腳以第一個網絡連接的總長度最小為原則,獲得第一個網絡的最小連接的pin腳排序,生成第一個網絡的排序集合;分別對net1中的m個pin以net1連接的總長度最小為原則,獲得最小連接的排序,將其記為{n1_pin1,n1_pin2,
…
,n1_pinm};
72.步驟13:在對應網絡對中的第二個網絡的pin腳中分別獲取與第一個網絡的pin腳排序集合中的pin腳最近的pin腳,生成第二個網絡的排序集合;在net2的m個pin中,分別獲取n1_pin1,n1_pin2,
…
,n1_pinm最近的pin腳,即為net2的最小連接排序,將其記為{n2_pin1,n2_pin2,
…
,n2_pinm}。
73.對第一個網絡的排序集合中的pin腳和第二個網絡的排序集合中的pin腳依次進行組對,即將第一個網絡的排序集合中的第一個pin腳與第二個網絡的排序集合中的第一個pin腳組對,依次將第一個網絡的排序集合中的第m個pin腳與第二個網絡的排序集合中的第m個pin腳組對;也就是,對步驟12獲得的net1的pin和步驟13獲得的net2的pin依次進行組對,即(n1_pin1,n2_pin1),(n1_pin2,n2_pin2),
…
,(n1_pinm,n2_pinm);
74.相應的,pin腳x坐標表示為pin.x,pin腳的y坐標表示為pin.y,獲取配對pin腳的合并點的步驟包括:
75.步驟31:計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;
76.計算n1_pin1和n2_pin1在x軸和y軸上的差分點,diff_x=|n1_pin1.x
–
n2_pin1.x
|/2,diff_y=|n1_pin1.y
–
n2_pin1.y|/2;
77.步驟32:計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;
78.計算n1_pin1和n2_pin1的中心點,median_x=(n1_pin1.x+n2_pin1.x)/2,median_y=(n1_pin1.y+n2_pin1.y)/2;
79.步驟33:計算第一個配對中pin腳的候選合并點;具體包括:將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求和得到第一個pin腳第一候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求和得到第一個pin腳第一候選合并點的y坐標;
80.將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求差得到第一個pin腳第二候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求差得到第一個pin腳第二候選合并點y坐標;
81.根據第一個pin腳第一候選合并點的x坐標和第一個pin腳第一候選合并點的y坐標得到第一個pin腳第一候選合并點;根據第一個pin腳第二候選合并點的x坐標和第一個pin腳第二候選合并點的y坐標得到第一個pin腳第二候選合并點;
82.具體的,pin1_meg1_x=median_x+diff_y,pin1_meg1_y=median_y+diff_x,pin1_meg2_x=median_x
–
diff_y,pin1_meg2_y=median_y
–
diff_x,則候選合并點有[pin1_meg1,pin1_meg2];
[0083]
步驟34:同樣方式計算出所有配對的pin腳的候選合并點;
[0084]
步驟35:計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點;記為pin_meg,對于有m個組對的情況,即有m個合并點,分別記為pin1_meg,pin2_meg,
…
,pinm_meg。
[0085]
進一步的,對獲取的合并點依次進行自動布線的步驟包括:
[0086]
對計算得到的合并點從第一個合并點開始,依次與下一個合并點進行自動布線,其中,設置線寬為r,差分對的間隙為g,自動布線需要在2*r+g的空間進行路徑搜索,搜索到的路徑為path。
[0087]
相應的,對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線的步驟包括:
[0088]
步驟51:確定布線的兩個合并點的相對位置是水平的還是垂直的;
[0089]
若是水平,執行步驟52,若是垂直,執行步驟53;
[0090]
步驟52:將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;執行步驟54;
[0091]
步驟53:將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;執行步驟54;
[0092]
步驟54:將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
[0093]
本發明根據差分對布線的特定,將差分對布線的點進行合并,采用自動布線的方
式進行自動布線,然后對得到的結果信息解耦得到兩條平行的布線,最后再與真實的管腳連接,從而完成了差分對的自動布線過程。整個布線過程無需人工參與便可自動完成,從而節省了工程的時間,同時,布線的結果也是可用、可靠的。
[0094]
如圖2所示,本發明實施例提供一種pcb差分對自動布線裝置,包括數據預處理模塊、自動布線模塊、后處理模塊;
[0095]
數據預處理模塊,用于確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;按照排序對兩個網絡上的pin腳進行配對;獲取配對pin腳的合并點;
[0096]
自動布線模塊,用于對獲取的合并點依次進行自動布線;
[0097]
后處理模塊,用于對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。
[0098]
需要說明的是,數據預處理模塊包括差分網絡對獲取單元、排序處理單元;
[0099]
差分網絡對獲取單元,用于從導出的dsn文件中獲取需要進行差分走線的網絡對;成對的網絡中每個網絡包含的pin腳的數量相同,均為m;
[0100]
排序處理單元,用于分別對網絡對中的第一個網絡中的pin腳以第一個網絡連接的總長度最小為原則,獲得第一個網絡的最小連接的pin腳排序,生成第一個網絡的排序集合;在對應網絡對中的第二個網絡的pin腳中分別獲取與第一個網絡的pin腳排序集合中的pin腳最近的pin腳,生成第二個網絡的排序集合。
[0101]
數據預處理模塊包括配對處理單元,用于對第一個網絡的排序集合中的pin腳和第二個網絡的排序集合中的pin腳依次進行組對,即將第一個網絡的排序集合中的第一個pin腳與第二個網絡的排序集合中的第一個pin腳組對,依次將第一個網絡的排序集合中的第m個pin腳與第二個網絡的排序集合中的第m個pin腳組對。
[0102]
數據預處理模塊還包括合并點計算單元,用于計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;計算第一個配對中pin腳的候選合并點;同樣方式計算出所有配對的pin腳的候選合并點;計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點。
[0103]
合并點計算單元,還用于將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求和得到第一個pin腳第一候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求和得到第一個pin腳第一候選合并點的y坐標;將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求差得到第一個pin腳第二候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求差得到第一個pin腳第二候選合并點y坐標;根據第一個pin腳第一候選合并點的x坐標和第一個pin腳第一候選合并點的y坐標得到第一個pin腳第一候選合并點;根據第一個pin腳第二候選合并點的x坐標和第一個pin腳第二候選合并點的y坐標得到第一個pin腳第二候選合并點。
[0104]
自動布線模塊,用于對計算得到的合并點從第一個合并點開始,依次與下一個合并點進行自動布線,其中,設置線寬為r,差分對的間隙為g,自動布線需要在2*r+g的空間進行路徑搜索,搜索到的路徑為path。
[0105]
后處理模塊的具體處理流程如圖3所示,具體包括:確定布線的兩個合并點的相對位置是水平的還是垂直的;若是水平,將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;若是垂直,將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
[0106]
本裝置的具體實現步驟如下:
[0107]
s1:從allegro軟件導出的dsn文件中,獲取到需要進行差分走線的網絡對,這里以一對網絡作為說明示例,分別將其記為net1,net2,為了說明清楚,這里以每個網絡均有3個pin為例,其中net1中所包含的pin有3個,net2中所包含的pin也有3個;
[0108]
s2:分別對net1中的3個pin以net1連接的總長度最小為原則,獲得最小連接的排序,將其記為n1_pin1,n1_pin2,n1_pin3;
[0109]
s3:根據步驟s2的排序,獲取每個pin最近的net2的pin的排序,得到n2_pin1,n2_pin2,n2_pin3;
[0110]
s4:對步驟s2獲得的net1的pin和步驟s3獲得的net2的pin依次進行組對,即(n1_pin1,n2_pin1),(n1_pin2,n2_pin2),(n1_pin3,n2_pin3);
[0111]
s5:對步驟s4的組對獲取其對應的合并點,合并點的獲取步驟為:分別計算每個組對的候選合并點,具體步驟為:a.計算n1_pin和n2_pin在x軸和y軸上的差分點,diff_x=|n1_pin.x
–
n2_pin.x|/2,diff_y=|n1_pin.y
–
n2_pin.y|/2;b.計算n1_pin和n2_pin的中心點,median_x=(n1_pin.x+n2_pin.x)/2,median_y=(n1_pin.y+n2_pin.y)/2;c.計算候選合并點:pin_meg1_x=median_x+diff_y,pin_meg1_y=median_y+diff_x,pin_meg2_x=median_x
–
diff_y,pin_meg2_y=median_y
–
diff_x,得到候選合并點[pin_meg1,pin_meg2],分別得到三個組對的候選合并點后,計算每個組對的候選合并點與下一個組對的候選合并點曼哈頓距離最短的候選合并點作為最終的合并點,即計算第一組對與第二組對的候選合并點曼哈頓距離最短的候選合并點,得到第一組對的合并點和第二組對的合并點,計算第二組對與第三組對的候選合并點曼哈頓距離最短的候選合并點,得到第二組對的合并點和第三組對的合并點,分別記為meg1,meg2,meg3;
[0112]
s6:對步驟s5得到的合并點進行自動布線,meg1與meg2的布線結果為path1,meg2與meg3的布線結果為path2,其中需要考慮差分對的線寬和間隙,記線寬為r,間隙為g,則自動布線需要在2*r+g的空間進行路徑搜索。
[0113]
s7:判斷meg1與meg2相對位置是水平的還是垂直的,如果為水平的,則解耦操作為,將s6得到的path1路徑,分別向上和向下平移(2*r+g)/2,分別將上移的左端點記為n1_pin1_meg,右端點記為n1_pin2_meg,下移的左端點記為n2_pin1_meg,右端點記為n2_pin2_meg,如果是垂直的,則解耦操作為,將s6得到的path1路徑,分別向左和向有平移(2*r+g)/2,分別將左移的下端的記為n1_pin1_meg,上端點記為n1_pin2_meg,右移的下端點記為n2_pin1_meg,上端點記為n2_pin2_meg;將每個網絡解耦之后的合并點與實際的pin腳進行自
動連接,即n1_pin1_meg與n1_pin1,n1_pin2_meg與n1_pin2,n2_pin1_meg與n2_pin1,n2_pin2_meg與n2_pin2進行自動連接;后面的meg2與meg3的操作與上述步驟相同,即可完成該差分對的自動布線任務。
[0114]
這樣一來,即可實施完成pcb差分對自動布線。
[0115]
本發明實施例還提供一種電子設備,所述電子設備包括:處理器、通信接口、存儲器和總線,其中,處理器,通信接口,存儲器通過總線完成相互間的通信??偩€可以用于電子設備與傳感器之間的信息傳輸。處理器可以調用存儲器中的邏輯指令,以執行如下方法:步驟1:確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;步驟2:按照排序對兩個網絡上的pin腳進行配對;步驟3:獲取配對pin腳的合并點;具體包括計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;計算第一個配對中pin腳的候選合并點;同樣方式計算出所有配對的pin腳的候選合并點;計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點;步驟4:對獲取的合并點依次進行自動布線;步驟5:對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線;具體包括:步驟51:確定布線的兩個合并點的相對位置是水平的還是垂直的;若是水平,執行步驟52,若是垂直,執行步驟53;步驟52:將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;執行步驟54;步驟53:將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;執行步驟54;步驟54:將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
[0116]
此外,上述的存儲器中的邏輯指令可以通過軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-only memory)、隨機存取存儲器(ram,random access memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0117]
本發明實施例提供一種非暫態計算機可讀存儲介質,該非暫態計算機可讀存儲介質存儲計算機指令,該計算機指令使計算機執行上述方法實施例所提供的方法,例如包括:步驟1:確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;步驟2:按照排序對兩個網絡上的pin腳進行配對;步驟3:獲取配對pin腳的合并點;具體包括計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;計算第一個配對中pin腳的候選合并點;同樣方式計算出所有配對的pin腳的候選合并點;計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點;步驟4:對獲取的合并點依次進行自動布線;步驟5:對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線;具體包括:步驟51:確定布線的兩個合并點的相對位置是水平的還是垂直的;若是水平,執行步驟52,若是垂直,執行步驟53;步驟52:將得到的路徑path,分
別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;執行步驟54;步驟53:將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;執行步驟54;步驟54:將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。
[0118]
盡管通過參考附圖并結合優選實施例的方式對本發明進行了詳細描述,但本發明并不限于此。在不脫離本發明的精神和實質的前提下,本領域普通技術人員可以對本發明的實施例進行各種等效的修改或替換,而這些修改或替換都應在本發明的涵蓋范圍內/任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。
技術特征:
1.一種pcb差分對自動布線方法,其特征在于,包括如下步驟:確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;按照排序對兩個網絡上的pin腳進行配對;獲取配對pin腳的合并點;對獲取的合并點依次進行自動布線;對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。2.根據權利要求1所述的pcb差分對自動布線方法,其特征在于,確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序的步驟包括:從導出的dsn文件中獲取需要進行差分走線的網絡對;成對的網絡中每個網絡包含的pin腳的數量相同,均為m;分別對網絡對中的第一個網絡中的pin腳以第一個網絡連接的總長度最小為原則,獲得第一個網絡的最小連接的pin腳排序,生成第一個網絡的排序集合;在對應網絡對中的第二個網絡的pin腳中分別獲取與第一個網絡的pin腳排序集合中的pin腳最近的pin腳,生成第二個網絡的排序集合。3.根據權利要求2所述的pcb差分對自動布線方法,其特征在于,按照排序對兩個網絡上的pin腳進行配對的步驟包括:對第一個網絡的排序集合中的pin腳和第二個網絡的排序集合中的pin腳依次進行組對,即將第一個網絡的排序集合中的第一個pin腳與第二個網絡的排序集合中的第一個pin腳組對,依次將第一個網絡的排序集合中的第m個pin腳與第二個網絡的排序集合中的第m個pin腳組對。4.根據權利要求3所述的pcb差分對自動布線方法,其特征在于,獲取配對pin腳的合并點的步驟包括:計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸和y軸上的差分點;計算第一個配對中第一個網絡的pin腳和第二個網絡的pin腳的中心點;計算第一個配對中pin腳的候選合并點;同樣方式計算出所有配對的pin腳的候選合并點;計算當前pin腳與下一個pin腳所有候選合并點曼哈頓距離最近的合并點,作為最終的合并點。5.根據權利要求4所述的pcb差分對自動布線方法,其特征在于,計算第一個配對中pin腳的候選合并點的步驟包括:將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求和得到第一個pin腳第一候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求和得到第一個pin腳第一候選合并點的y坐標;將計算出的第一個配對中pin腳的中心點的x坐標與計算出的第一個配對中第一個網絡的pin腳和第二個網絡的pin腳在y軸上的差分點求差得到第一個pin腳第二候選合并點的x坐標;將計算出的第一個配對中pin腳的中心點的y坐標與計算出的第一個配對中第一
個網絡的pin腳和第二個網絡的pin腳在x軸上的差分點求差得到第一個pin腳第二候選合并點y坐標;根據第一個pin腳第一候選合并點的x坐標和第一個pin腳第一候選合并點的y坐標得到第一個pin腳第一候選合并點;根據第一個pin腳第二候選合并點的x坐標和第一個pin腳第二候選合并點的y坐標得到第一個pin腳第二候選合并點。6.根據權利要求5所述的pcb差分對自動布線方法,其特征在于,對獲取的合并點依次進行自動布線的步驟包括:對計算得到的合并點從第一個合并點開始,依次與下一個合并點進行自動布線,其中,設置線寬為r,差分對的間隙為g,自動布線需要在2*r+g的空間進行路徑搜索,搜索到的路徑為path。7.根據權利要求6所述的pcb差分對自動布線方法,其特征在于,對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線的步驟包括:確定布線的兩個合并點的相對位置是水平的還是垂直的;若是水平,將得到的路徑path,分別向上和向下平移(2*r+g)/2,分別將上移/下移的左端點記為pin_start,右端點記為pin_end;若是垂直,將得到的路徑path,分別向左和向右平移(2*r+g)/2,分別將左移/右移的下端點記為pin_start,上端點記為pin_end;將pin_start和pin_end與實際的pin腳進行自動連接,完成了差分對的自動布線。8.一種pcb差分對自動布線裝置,其特征在于,包括數據預處理模塊、自動布線模塊、后處理模塊;數據預處理模塊,用于確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;按照排序對兩個網絡上的pin腳進行配對;獲取配對pin腳的合并點;自動布線模塊,用于對獲取的合并點依次進行自動布線;后處理模塊,用于對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。9.一種電子設備,其特征在于,所述電子設備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,存儲器存儲有可被至少一個處理器執行的計算機程序指令,所述計算機程序指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行如權利要求1至7中任一項權利要求所述的pcb差分對自動布線方法。10.一種非暫態計算機可讀存儲介質,其特征在于,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令使所述計算機執行如權利要求1至7任一項權利要求所述的pcb差分對自動布線方法。
技術總結
本發明屬于PCB自動布線技術領域,具體提供一種PCB差分對自動布線方法、裝置、設備、存儲介質,所述方法包括如下步驟:確定需要進行差分布線的網絡對,并對每個網絡上的pin腳按照最短連接路徑原則進行排序;按照排序對兩個網絡上的pin腳進行配對;獲取配對pin腳的合并點;對獲取的合并點依次進行自動布線;對自動布線結果進行解耦操作,得到解耦后的兩條平行的差分對布線。將差分對布線的點進行合并,采用自動布線的方式進行自動布線,對得到的結果信息解耦得到兩條平行的布線,最后再與真實的管腳連接,從而完成了差分對的自動布線過程。整個布線過程無需人工參與便可自動完成,從而節省了工程的時間。節省了工程的時間。節省了工程的時間。
