專利名稱:一種電路原理圖連線的生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電路自動設(shè)計軟件領(lǐng)域,特別涉及一種是電路原理圖連線的生成方法。
背景技術(shù):
電路原理圖作為表達電路設(shè)計思想的一種有力工具長期以來為眾多設(shè)計人員廣泛使用。在電路的設(shè)計過程中,設(shè)計人員通過信號線將標準的元器件圖形符號連接成電路原理圖,借以直觀表達電路的功能信息。電路原理圖可以說是設(shè)計人員交流思想的一種最方便和自然的媒介。然而,隨著集成電路的集成度越來越高,電路結(jié)構(gòu)日趨復(fù)雜,要求由設(shè)計人員完成從電路的網(wǎng)表結(jié)構(gòu)來人工繪制電路原理圖是不現(xiàn)實的。因此,有必要開發(fā)電路原理圖的自動生成系統(tǒng)。以實現(xiàn)電路原理圖生成的自動化,這不僅能夠提高繪圖的效率,而且還可減少人工繪圖無法避免的錯誤,從而在一定程度上可縮短電路系統(tǒng)的設(shè)計周期。所謂電路原理圖自動生成,指的是在接收某種電路描述(通常是電路網(wǎng)表文件)后,通過對電路中的元器件及其端口進行定位布局及其連接關(guān)系進行自動布線,將具有一定電路功能特征的電路原理圖正確輸出。并且輸出結(jié)果滿足一定的約束條件:I)任何元器件不與其它元器件重疊且邊緣應(yīng)有一定距離;2)連線以折角線形式連接元器件,不同端口引出的線路的任何一段都不能重疊且應(yīng)有一定距離,同一端口引出的線路在岔路分開后也不能重疊且應(yīng)有一定距離,岔路口必須標示;3)線路應(yīng)不與元器件重疊,如實在無法滿足以上要求時以直線連接;4)保證元件和線網(wǎng)連接關(guān)系正確,同時盡可能減少線網(wǎng)長度、連線交叉和拐角。目前,一些商用的電路仿真軟件都具有到電路原理圖的設(shè)計布圖功能,其電路原理圖的布圖功能的實現(xiàn)基本使用的都是通道布線的方法,該方法如下:將電路圖紙按一定的像素劃分為網(wǎng)格;并將元器件按網(wǎng)格線放置;對應(yīng)行列布局結(jié)果,通道布線將把元器件所在行與行之間以及列與列之間的空隙視為通道,采用基于經(jīng)驗規(guī)則的啟發(fā)式算法對每條連線進行通道分配,在一個通道之內(nèi)再進行軌道分配,同時還要進行同一線網(wǎng)的合并。上述的通道布線方法中,元器件必須與網(wǎng)格線對齊,所以元器件的大小是固定的,不能任意調(diào)整大小。此外,因為走線都必須經(jīng)過所述的通道,這就限制了可布線的范圍,使得元器件之間的布線難度增加。
發(fā)明內(nèi)容
本發(fā)明提供一種電路原理圖連線的生成方法。以解決現(xiàn)有的通道布線方法中上述的問題。針對上述問題,本發(fā)明的目的是提供一種電路原理圖連線的生成方法。為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案:本發(fā)明提供的一種電路原理圖連線的生成方法,其步驟包括:
I)接收電路描述的數(shù)據(jù);2)確定該數(shù)據(jù)中待連線的元器件的端口位置和方向;3)確定連線的轉(zhuǎn)折點;4)按位置存儲連線以及元器件位置;5)按需連接各個轉(zhuǎn)折點??蛇x的,,所述2)步驟包括如下子步驟:i)將所有帶連線的元器件按照對角位置排序;ii)按元器件大小和相對的端口位置求取端口絕對位置;iii)根據(jù)端口的坐標與元器件對角坐標比較來確定端口的方向。可選的,,步驟2)還包括如下步驟:iv)跟據(jù)端口在元器件的一側(cè)來確定引出的導(dǎo)線的方向??蛇x的,,所述步驟3)包括如下子步驟:a)用折線連接要連接的元器件的首末端口 ;b)判斷并選出與折線段重疊的元器件,將所述與折線段重疊的元器件的邊界按照所需距離進行擴充,再求取各擴充后元器件邊界交疊形成的區(qū)域,將該區(qū)域定義為連通區(qū)域;c)基于b)步驟所得連通區(qū)域和a)步驟所得折線,判斷并選取折線與聯(lián)通區(qū)域交疊后分割該連通區(qū)域邊界線產(chǎn)生的兩部分中的轉(zhuǎn)折點較少者,作為修改折線與重疊元器件部分的連線段的走線方式;d)檢查c步驟所得折線是否與已連折線重疊,如有重疊部分且所重疊折線并非出自同一端口,則將重疊部分往連通區(qū)域外平移,直到不與任何折線重疊為止??蛇x的,,所述步驟3)還包括:e)完成步驟d)后,判斷是否產(chǎn)生折線段與元器件重疊的情形,若是,返回至步驟
b),直至所述折線段不與任何元器件重疊,也不與其它非出自同一端口的折線所重疊為止。可選的,,所述步驟3)還包括:f)檢查是否可以減少拐角,去掉e)步完成后所得折線中得每一個拐角,如減少拐角后的折線仍滿足要求,則去掉該拐角,否則保持折線原來的走線方式??蛇x的,,判斷與折線段重疊的元器件的步驟通過判斷折線段是否與元器件的對角線以及邊界有交叉的方法實現(xiàn)??蛇x的,所述步驟4)中按位置存儲連線包括如下子步驟:I)按左邊為起點的方式存儲每一段橫線,并按起點位置排序;II)按上方為起點的方式存儲每一段豎線,并按起點位置排序??蛇x的,所述步驟4)中按位置存儲連線包括如下子步驟:I’ )按右邊為起點的方式存儲每一段橫線,并按起點位置排序;II’ )按上方為起點的方式存儲每一段豎線,并按起點位置排序。優(yōu)選的,該方法基于Flex4開發(fā),能夠在瀏覽器的Flash插件上使用。與現(xiàn)有技術(shù)相比,本發(fā)明的其中一個方面具有以下優(yōu)點:本發(fā)明利用像素為單位定位元器件和連線,所以元器件的大小可以隨意縮放,不受網(wǎng)格的限制;本發(fā)明能使用折線準確連接各元器件的端口,而且所求得的折線所用轉(zhuǎn)折點最少,減少了畫面的復(fù)雜度。此夕卜,本發(fā)明可以只計算可能發(fā)生重疊部分,大大減少了計算量,相對于傳統(tǒng)的通道布線算法,計算速度有明顯的上升。此外,在本發(fā)明的優(yōu)選技術(shù)方案中,本發(fā)明還可以基于Flex4開發(fā),可以在瀏覽器上的Flash插件直接使用,無需下載和安裝客戶端軟件;據(jù)此可以實現(xiàn)一個基于瀏覽器的電路設(shè)計仿真軟件,不需要專門設(shè)計客戶端即可使用,為實現(xiàn)虛擬電子實驗室奠定了基礎(chǔ)。
圖1為本發(fā)明的電路原理圖連線的生成方法的實施例的流程圖;圖2為本發(fā)明的實施例中步驟2)的子步驟流程圖;圖3為本發(fā)明的實施例中步驟3的子步驟流程圖;圖4至圖9為任意兩元器件之間6中不同的連線方式的示意圖;圖10和圖11為兩種連線拐角的去除方式。
具體實施例方式在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以很多不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣,因此本發(fā)明不受下面公開的具體實施的限制。下面結(jié)合附圖和實施例對本發(fā)明進行詳細的描述。圖1為本發(fā)明的電路原理圖連線的生成方法的實施例的流程圖。請參看圖1,本實施例中,電路原理圖連線的生成方法包括如下步驟步驟SI)接收電路描述的數(shù)據(jù)。本實施例中電路描述是通過網(wǎng)表文件來表達的。步驟S2)確定該數(shù)據(jù)中待連線的元器件的端口位置和方向。該步驟包括如下的子步驟,圖2中示出了所述子步驟執(zhí)行的流程圖:S21,將所有元器件按左上角至右下角的位置排序;每一個元器件在電路設(shè)計時都表現(xiàn)為一個矩形的圖形,邊界上有要引出數(shù)目不定的管腳。表征元器件的圖形的位置和大小可由其左上角和右下角的位置確定,因此記錄下左上角和右下角坐標即可確定該元器件在電路原理圖上得位置。此外,又因為在下面的步驟中需要盡快找到與連線重疊的元器件,所以可以將元器件按左上角坐標和右下角坐標分別排序,以便于將來用最快的速度找到重疊的元器件。S22按元器件大小和相對的端口位置求取端口絕對位置;元器件作為圖形在操作界面上是可以縮放的,縮放的比率會被存儲起來。端口的絕對位置可以通過原始位置乘以縮放比率的方式求得。S23根據(jù)端口的坐標與元器件對角坐標比較來確定端口的方向。通過比較端口的坐標與圖形邊角的坐標可得到端口在圖形上的方向。例如,如果端口的X坐標等于圖形的左上角點的X坐標,則端口在元器件的左側(cè)。其他方向的端口類似可求得。進一步的,跟據(jù)端口在元器件圖像的那一側(cè)來確定引出的導(dǎo)線的方向。例如,上述中如果端口的X坐標等于圖形左上角的X坐標,則可知端口在元器件的左側(cè),則端口的引出線向左,即引出導(dǎo)線的方向與端口的方向相同。
此外,上述的子步驟i)中,是將元器件按左上角至右下角的位置排序而排列。在其它的實施例中,將元器件按照右上角至左下角的位置排列同樣能夠?qū)崿F(xiàn)該子步驟的效果。這里不再贅述。在按照上述步驟2的方式排列元器件圖形以及確定端口向外引線的方向之后,進一步需要執(zhí)行的步驟即為元器件的連線的走向,即下面的步驟S3)步驟S3)確定連線的轉(zhuǎn)折點。該步驟S3)包括如下子步驟,圖3示出該一些了子步驟的流程:S31,不理會其它元器件和連線,直接用折線連接要首末端口 ;在不考慮重疊的情況下,直接連接兩個端口有以下六種模式:1.兩端口同方向,貝U在較遠端口處搭橋,如圖4 ;I1.兩端口同方向,但無法搭橋,則令折線繞過一個元器件,如圖5 ;II1.兩端口反方向,但端口相對,則在兩端口之間搭橋,如圖6 ;IV.兩端口反方向,但無法搭橋,則令折線繞過一個元器件,如圖7 ;V.兩端口方向垂直且引出射線有交點,可直接在交點處轉(zhuǎn)折,如圖8 ;V1.兩端口方向垂直且引出射線無交點,令折線繞過一個元器件,如圖9 ;按元器件坐標和端口坐標可直接計算屬于哪一種模式,然后按模式進行連線。將所有元器件之間用上述的方式連線之后,會有一些連線與其它元器件進行重疊。則執(zhí)行下面的步驟S32。S32,判斷并選出與折線段重疊的元器件,將所述與折線段重疊的元器件的邊界按照所需距離進行擴充,再求取各擴充后元器件邊界交疊形成的區(qū)域,將該區(qū)域定義為連通區(qū)域。所有元器件畫好后,按所需的間距擴展邊界后如果相交,則形成一個連通區(qū)域,在程序里以鏈表的形式將所有的連通區(qū)域存儲起來,以便于最快找到連通區(qū)域的邊界。連通區(qū)域已存儲為鏈表,只需要對S31步驟所得折線中的每一個線段求取與之重疊的元器件,即可從鏈表中得到連通區(qū)域。該步驟中,判斷與折線段重疊的元器件的步驟通過判斷折線段是否與元器件的對角線以及邊界有交叉的方法實現(xiàn)。S33,基于S31步驟所得連通區(qū)域和S32步驟所得折線,判斷并選取折線與聯(lián)通區(qū)域交疊后分割該連通區(qū)域邊界線產(chǎn)生的兩部分中的轉(zhuǎn)折點較少者,作為修改折線與重疊元器件部分的連線段的走線方式。也就是說,折線必與連通區(qū)域有兩個交點,這兩個交點將連通區(qū)域的邊界分為兩部分。所有邊界上的轉(zhuǎn)折點應(yīng)在檢查連通區(qū)域時求得,此時只需計算交點即可得到交點被切的兩部分,取轉(zhuǎn)折點數(shù)較少部分即可。S34,檢查S33步驟所得折線是否與已連折線重疊,如有重疊部分且所重疊折線并非出自同一端口,則執(zhí)行步驟S35,將重疊部分往連通區(qū)域外平移,直到不與任何折線重疊為止。因所有折線上得線段都按橫豎存儲為兩個數(shù)組并排序,則每一條線段都可以非常容易的找到所重疊的部分,再通過按某個步長平移線段的辦法,即可嘗試得到一個不跟任何元器件、連線重疊的線段,這個步長就是線和線之間的最小間距。
若沒有重疊部分,則執(zhí)行步驟S36,判斷是否產(chǎn)生折線段與元器件再次重疊的情形。若是,返回至步驟S32,直至所述折線段不與任何元器件重疊,也不與其它非出自同一端口的折線所重疊為止。若沒有產(chǎn)生折線段與元器件再次重疊的情形,則該子步驟結(jié)束。對于已經(jīng)確定的轉(zhuǎn)折點,則可以通過連接轉(zhuǎn)折點的方式形成連線。進一步的,還可以檢查是否可以減少拐角,嘗試去掉所得轉(zhuǎn)折點決定的折線中得每一個拐角,如減少拐角后的折線仍滿足要求,則去掉該拐角。去掉拐角時必須檢查要去掉的拐角屬于哪一種類型,如圖10和圖11。圖中實線表示去拐角前的樣子,虛線為去拐角后的樣子。通過檢查各個轉(zhuǎn)折點的關(guān)系,可以確定拐角屬于哪一種類型,然后再檢查去掉拐角后折線是否滿足要求即可。步驟S4,按位置存儲連線以及元器件位置。該步驟中存儲連線可以按照如下方式存儲:1)按左邊為起點的方式存儲每一段橫線,并按起點位置排序;11)按上方為起點的方式存儲每一段豎線,并按起點位置排序。該步驟中存儲連線也可以按照如下方式存儲:1’ )按右邊為起點的方式存儲每一段橫線,并按起點位置排序;II’)按上方為起點的方式存儲每一段豎線,并按起點位置排序。S5,按需連接各個轉(zhuǎn)折點,即可形成元器件之間的布線。完成布線之后,還可以通過載體輸出該電路原理圖(S6)。本發(fā)明的實施例利用像素為單位定位元器件和連線,所以元器件的大小可以隨意縮放,不受網(wǎng)格的限制;本發(fā)明的實施例能使用折線準確連接各元器件的端口,而且所求得的折線所用轉(zhuǎn)折點最少,減少了畫面的復(fù)雜度。此外,本發(fā)明可以只計算可能發(fā)生重疊部分,大大減少了計算量,相對于傳統(tǒng)的通道布線算法,計算速度有明顯的上升。本發(fā)明的實施例還可以基于Flex4開發(fā),可以在瀏覽器上的Flash插件直接使用,無需下載和安裝客戶端軟件;據(jù)此可以實現(xiàn)一個基于瀏覽器的電路設(shè)計仿真軟件,不需要專門設(shè)計客戶端即可使用,為實現(xiàn)虛擬電子實驗室奠定了基礎(chǔ)。本發(fā)明雖然以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護范圍應(yīng)當以本發(fā)明權(quán)利要求所界定的范圍為準。
權(quán)利要求
1.一種電路原理圖連線的生成方法,其步驟包括: 1)接收電路描述的數(shù)據(jù); 2)確定該數(shù)據(jù)中待連線的元器件的端口位置和方向; 3)確定連線的轉(zhuǎn)折點; 4)按位置存儲連線以及元器件位置; 5)按需連接各個轉(zhuǎn)折點。
2.根據(jù)權(quán)利要求1所述的電路原理圖連線的生成方法,其特征在于,所述2)步驟包括如下子步驟: i)將所有帶連線的元器件按照對角位置排序; ii)按元器件大小和 相對的端口位置求取端口絕對位置; iii)根據(jù)端口的坐標與元器件對角坐標比較來確定端口的方向。
3.根據(jù)權(quán)利要求2所述的電路原理圖連線的生成方法,其特征在于,還包括如下步驟: iv)跟據(jù)端口在元器件的一側(cè)來確定引出的導(dǎo)線的方向。
4.根據(jù)權(quán)利要求1所述的電路原理圖連線的生成方法,其特征在于,所述步驟3)包括如下子步驟: a)用折線連接要連接的元器件的首末端口; b)判斷并選出與折線段重疊的元器件,將所述與折線段重疊的元器件的邊界按照所需距離進行擴充,再求取各擴充后元器件邊界交疊形成的區(qū)域,將該區(qū)域定義為連通區(qū)域; c)基于b)步驟所得連通區(qū)域和a)步驟所得折線,判斷并選取折線與聯(lián)通區(qū)域交疊后分割該連通區(qū)域邊界線產(chǎn)生的兩部分中的轉(zhuǎn)折點較少者,作為修改折線與重疊元器件部分的連線段的走線方式; d)檢查c步驟所得折線是否與已連折線重疊,如有重疊部分且所重疊折線并非出自同一端口,則將重疊部分往連通區(qū)域外平移,直到不與任何折線重疊為止。
5.根據(jù)權(quán)利要求4所述的電路原理圖連線的生成方法,其特征在于,所述步驟3)還包括: e)完成步驟d)后,判斷是否產(chǎn)生折線段與元器件重疊的情形,若是,返回至步驟b),直至所述折線段不與任何元器件重疊,也不與其它非出自同一端口的折線所重疊為止。
6.根據(jù)權(quán)利要求5所述的電路原理圖連線的生成方法,其特征在于,所述步驟3)還包括: f)檢查是否可以減少拐角,去掉e)步完成后所得折線中得每一個拐角,如減少拐角后的折線仍滿足要求,則去掉該拐角,否則保持折線原來的走線方式。
7.根據(jù)權(quán)利要求4所述的電路原理圖連線的生成方法,其特征在于,判斷與折線段重疊的元器件的步驟通過判斷折線段是否與元器件的對角線以及邊界有交叉的方法實現(xiàn)。
8.根據(jù)權(quán)利要求1所述的電路原理圖連線的生成方法,其特征在于,所述步驟4)中按位置存儲連線包括如下子步驟: I)按左邊為起點的方式存儲每一段橫線,并按起點位置排序; II)按上方為起點的方式存儲每一段豎線,并按起點位置排序。
9.根據(jù)權(quán)利要求1所述的電路原理圖連線的生成方法,其特征在于:所述步驟4)中按位置存儲連線包括如下子步驟:I’)按右邊為起點的方式存儲每一段橫線,并按起點位置排序; II’)按上方為起點的方式存儲每一段豎線,并按起點位置排序。
10.根據(jù)權(quán)利要求1至 7任一所述的電路原理圖連線的生成方法,其特征在于,該方法基于Flex4開發(fā),能夠在瀏覽器的Flash插件上使用。
全文摘要
一種電路原理圖連線的生成方法,其步驟包括1)接收電路描述的數(shù)據(jù);2)確定該數(shù)據(jù)中待連線的元器件的端口位置和方向;3)確定連線的轉(zhuǎn)折點;4)按位置存儲連線以及元器件位置;5)按需連接各個轉(zhuǎn)折點。本發(fā)明的方法中,元器件的大小可以隨意縮放,不受網(wǎng)格的限制;且連線轉(zhuǎn)折少,計算速度快。
文檔編號G06F17/50GK103164546SQ201110409890
公開日2013年6月19日 申請日期2011年12月12日 優(yōu)先權(quán)日2011年12月12日
發(fā)明者申海偉, 李金平 申請人:北京聯(lián)合大學