專利名稱:多封裝fpga芯片輸入輸出模塊類型自動(dòng)分配的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計(jì)領(lǐng)域,可編程門陣列(Field Programmable Gate Army簡(jiǎn)稱FPGA)設(shè)計(jì)領(lǐng)域,以及設(shè)計(jì)自動(dòng)化領(lǐng)域,具體涉及到FPGA芯 片輸入輸出模塊類型的安排,以及FPGA芯片設(shè)計(jì)自動(dòng)化方面。本發(fā)明提 供了一種自動(dòng)排布FPGA輸入輸出模塊類型的方法,并利用計(jì)算機(jī)程序自 動(dòng)實(shí)現(xiàn)該方法。
背景技術(shù):
FPGA需要針對(duì)的應(yīng)用各異,這些應(yīng)用需要的輸入輸出管腳數(shù)目也各不 相同。通常情況下,同一款FPGA芯片會(huì)被封裝到大小不同的封裝內(nèi)。這 使得同一封裝的FPGA包含有從小到大不同邏輯容量的型號(hào)。為了在應(yīng)用 中升級(jí)邏輯容量而不用改動(dòng)任何其他設(shè)計(jì),這些不同邏輯容量而同封裝的 FPGA必須滿足引腳兼容。因此FPGA的封裝都預(yù)先規(guī)定好引腳的定義。
可作為邏輯輸入輸出使用的FPGA芯片的輸入輸出模塊能被配置成各 種工作方式,其中一般包括有普通的邏輯輸入輸出,2個(gè)輸入輸出模塊組 成一對(duì)差分的輸入輸出,以及一些其他規(guī)格的輸入輸出。
除去邏輯輸入輸出外,F(xiàn)PGA的輸入輸出模塊還包括供電電源。供電電 源分為兩種, 一種給FPGA的核心供電,另一種給輸入輸出模塊供電。通 過(guò)給輸入輸出模塊提供不同的供電電壓,可以將輸入輸出模塊的工作電壓 配置成不同電平。通常FPGA每邊的引腳分作兩個(gè)組,每個(gè)組里的輸入輸 出引腳共用一組供電電源,和供電電源具有相同的輸入輸出電壓。組與組 之間的電壓可以互不相同,分別由各自組內(nèi)輸入輸出模塊的供電電壓決 定。
將FPGA的輸入輸出模塊連接到FPGA封裝時(shí),需要遵守以下原則1)連接用的綁定金屬線不能交叉;2)供電電源類型的輸入輸出模塊可以和 同組內(nèi)同類型的管腳連接。3)邏輯的普通輸入輸出模塊可以和同組內(nèi)的 同類型的管腳連接。4)差分的輸入輸出模塊必須和封裝上同名的管腳連接。
不同封裝引腳定義的不同,以及輸入輸出模塊分組的限制,使手工排 布FPGA芯片輸入輸出模塊的類型非常困難,成為一項(xiàng)非常耗時(shí)而且容易 出錯(cuò)的工作。當(dāng)多到3, 4種不同封裝需要同時(shí)考慮的時(shí)候,反復(fù)修改的時(shí) 間會(huì)非常長(zhǎng)。而且對(duì)于較大的FPGA芯片,手工排放很容易產(chǎn)生錯(cuò)誤。檢 查錯(cuò)誤也會(huì)耗費(fèi)大量的時(shí)間和精力。
發(fā)明內(nèi)容
針對(duì)以上問(wèn)題,本發(fā)明提供一種自動(dòng)為FPGA芯片排布輸入輸出模塊 類型的方法,并可以方便的利用計(jì)算機(jī)程序完成FPGA芯片輸入輸出模塊 類型的自動(dòng)排布。
本發(fā)明提供了 一種多封裝FPGA芯片自動(dòng)分配輸入輸出模塊類型的方 法,包括以下步驟結(jié)構(gòu)的創(chuàng)建,該結(jié)構(gòu)用于按順序存儲(chǔ)FPGA芯片要適 應(yīng)的所有封裝的管腳;封裝的管腳信息的存儲(chǔ),將FPGA芯片所針對(duì)的所 有封裝的管腳信息存入所述結(jié)構(gòu)中;FPGA芯片輸入輸出模塊的類型的分 配,將所述結(jié)構(gòu)所記錄的管腳按分組一一對(duì)應(yīng)到同組的FPGA芯片的輸入 輸出模塊上,按照管腳的定義為每個(gè)輸入輸出模塊分配類型。
進(jìn)一步,所述結(jié)構(gòu)需要保證如下特點(diǎn)任何封裝的所有管腳在該結(jié)構(gòu) 中都被按順序存儲(chǔ),以此保證FPGA芯片的輸入輸出模塊和各封裝管腳的 連接不產(chǎn)生交叉。同時(shí),所述結(jié)構(gòu)中所存管腳均互不相同,不同封裝中相 同的管腳在所述結(jié)構(gòu)中僅存儲(chǔ)一次。
進(jìn)一步,所述封裝的管腳信息的存儲(chǔ)包括存儲(chǔ)各封裝的管腳,管腳所 在的組,以及管腳在每一封裝下的具體信息。
進(jìn)一步,所述管腳所在的組是指與該管腳連接的輸入輸出模塊所在的 組。所述輸入輸出模塊的組是指共用一個(gè)電源且輸入輸出電平相同的若干 輸入輸出模塊。
進(jìn)一步,所述在管腳在每一封裝下的信息包括封裝的名稱,管腳的該
5封裝中的序號(hào),以及管腳該封裝中的名稱。
進(jìn)一步,所述封裝的管腳信息的存儲(chǔ)包括以下步驟首先將最大封裝 的管腳信息存入所述結(jié)構(gòu)。然后依次選取剩下封裝,將所有非供電電源以 及普通輸入輸出的管腳的信息存入所述結(jié)構(gòu),再利用該封裝中己經(jīng)存入所 述結(jié)構(gòu)的管腳以及分組信息的限制確定剩下管腳在所述結(jié)構(gòu)中的存儲(chǔ)位 置區(qū)間,并將其存入該結(jié)構(gòu)。
進(jìn)一步,所述FPGA芯片輸入輸出模塊的類型的分配包括將FPGA
芯片每邊上所有可用的輸入輸出模塊均分為2個(gè)組,整個(gè)FPGA芯片的輸 入輸出模塊共被分為8組。按照所述結(jié)構(gòu)存儲(chǔ)的管腳分組信息將每組中的 各個(gè)管腳依次序?qū)?yīng)到同組的輸入輸出模塊上,即可根據(jù)各輸入輸出模塊 所對(duì)應(yīng)的管腳確定輸入輸出模塊的類型。
進(jìn)一步,利用計(jì)算機(jī)程序完成FPGA芯片輸入輸出模塊類型的自動(dòng)分配。
本發(fā)明的有益效果:使用本發(fā)明自動(dòng)排布FPGA芯片輸入輸出模塊的類 型可以克服由于不同封裝引腳定義的不同,以及輸入輸出模塊分組的限制 造成的困難。當(dāng)多種不同封裝需要同時(shí)考慮的時(shí)候,縮短了反復(fù)修改和檢 查錯(cuò)誤的時(shí)間。
圖l是用于存儲(chǔ)所有管腳信息的結(jié)構(gòu)的一個(gè)例子; 圖2是在上述結(jié)構(gòu)中插入一個(gè)普通輸入輸出管腳的一個(gè)例子; 圖3是按照上述結(jié)構(gòu)存儲(chǔ)的管腳信息為FPGA芯片輸入輸出模塊分配類 型的一個(gè)例子。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí) 施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
步驟一創(chuàng)建一個(gè)三維數(shù)組B,用于按序存儲(chǔ)FPGA芯片要適用的所 有封裝的管腳以及相應(yīng)的信息,每一個(gè)管腳將確定與之相連的FPGA芯片 輸入輸出模塊的類型。此三維數(shù)組B如圖l所示,其中第一列是管腳的名稱;第二列是指向一個(gè)一維數(shù)組A的指針,此一維數(shù)組A用于存儲(chǔ)管腳 所在的具體封裝的信息,包括三項(xiàng)1.該封裝的名稱,2.管腳在該封裝 中的序號(hào),3.管腳在該封裝中的名稱。如果管腳同時(shí)屬于多個(gè)封裝,則將
管腳在每個(gè)封裝中的上敘三項(xiàng)信息依次存入此管腳對(duì)應(yīng)的數(shù)組A中;第三
列用于存儲(chǔ)管腳所在的組。將FPGA芯片所要適用的最大封裝的每個(gè)管腳 依次做如下操作將管腳以及管腳所在的組分別存入三維數(shù)組B中,將該
管腳在當(dāng)前封裝下的信息存入該管腳指向的數(shù)組A中。
步驟二在剩下的封裝中任選一個(gè)。從數(shù)組B中必然能找到和當(dāng)前所
選封裝中每一個(gè)非供電電源以及普通輸入輸出管腳相同的管腳,將該管腳
在當(dāng)前所選封裝下的信息存入該管腳對(duì)應(yīng)的數(shù)組A。完成此步驟后所選封
裝中未處理管腳均為供電電源管腳和普通輸入輸出管腳。
步驟三依次處理剩下的供電電源管腳和普通輸入輸出管腳,按照如
下操作將其加入三維數(shù)組B中
1. 如圖2所示,找到所選封裝中當(dāng)前處理管腳的前一個(gè)非供電電源 以及普通輸入輸出管腳,將找到的管腳在三維數(shù)組B中的序號(hào)記作C。 如果找到的管腳和當(dāng)前處理的管腳不同組,則將三維數(shù)組B中當(dāng)前處 理管腳同組的第一個(gè)管腳的序號(hào)記作D。將步驟三中上一個(gè)加入數(shù)組 B的管腳在三維數(shù)組B中的序號(hào)記做E,比較C, D, E,取此三序號(hào) 中較大的序號(hào),并記作F。
2. 查找到當(dāng)前處理管腳的后一個(gè)不是供電電源以及普通輸入輸出的 管腳。如果找到的管腳和當(dāng)前處理管腳在同一組內(nèi),則將找到的管腳 在數(shù)組B中的序號(hào)記做G。如找到的管腳和當(dāng)前處理管腳不在同」 組內(nèi),則將數(shù)組B中與當(dāng)前處理管腳同組的最后一個(gè)管腳的序號(hào)記 作G。
3. 搜尋數(shù)組B中序號(hào)F和序號(hào)G之間的所有管腳,如果發(fā)現(xiàn)與當(dāng)前 處理管腳相同類型的管腳,則將要加入管腳在當(dāng)前封裝下的信息(封 裝的名稱,管腳的序號(hào),以及管腳在當(dāng)前封裝下的名稱)依次存儲(chǔ)到 發(fā)現(xiàn)的管腳所對(duì)應(yīng)的數(shù)組A中。如果數(shù)組B中在序號(hào)F和序號(hào)G之 間找不到與當(dāng)前處理管腳類型相同的管腳,則在數(shù)組B中的序號(hào)F 后插入當(dāng)前處理的管腳,然后將該管腳在當(dāng)前封裝下的信息存入此管
7腳所指向的數(shù)組A中。 步驟四重復(fù)步驟二和步驟三,直到FPGA芯片所針對(duì)的封裝全部處
理完畢。此時(shí)得到的三維數(shù)組B即為所有封裝的管腳無(wú)重復(fù)的依次序排列。
步驟五如圖3所示,將FPGA芯片每邊上所有可用的輸入輸出模塊 均分為2個(gè)組,則整個(gè)FPGA芯片的輸入輸出模塊被分為8組。按照數(shù)組 B第三列所記載的管腳分組信息將每組中的各個(gè)管腳依次序?qū)?yīng)到同組的 輸入輸出模塊上,即可根據(jù)各輸入輸出模塊所對(duì)應(yīng)的管腳確定輸入輸出模 塊的類型。同時(shí),各輸入輸出模塊所對(duì)應(yīng)管腳指向的數(shù)組A中存儲(chǔ)的信息 指明了該輸入輸出模塊在不同封裝下連接的管腳。
以上所述,僅為本發(fā)明中的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想 到的變換或替換,都應(yīng)涵蓋在本發(fā)明的包含范圍之內(nèi)。因此,本發(fā)明的保 護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1. 一種多封裝FPGA芯片自動(dòng)分配輸入輸出模塊類型的方法,其特征在于,包括以下步驟結(jié)構(gòu)的創(chuàng)建,用于按順序存儲(chǔ)FPGA芯片要適應(yīng)的所有封裝的管腳;封裝的管腳信息的存儲(chǔ),將FPGA芯片所針對(duì)的所有封裝的管腳信息存入所述結(jié)構(gòu)中;FPGA芯片輸入輸出模塊的類型的分配,將所述結(jié)構(gòu)所記錄的管腳按分組一一對(duì)應(yīng)到同組的FPGA芯片的輸入輸出模塊上,按照管腳的定義為每個(gè)輸入輸出模塊分配類型。
2. 如權(quán)利要求l所述的方法,其特征在于,所述結(jié)構(gòu)具有如下特征 所述封裝的所有管腳在所述結(jié)構(gòu)中被按順序存儲(chǔ),以此保證FPGA芯片的 輸入輸出模塊和各封裝管腳的連接不產(chǎn)生交叉,同時(shí),所述結(jié)構(gòu)中所存管 腳均互不相同,不同封裝中相同的管腳在所述結(jié)構(gòu)中僅存儲(chǔ)一次。
3. 如權(quán)利要求1所述的方法,其特征在于,所述結(jié)構(gòu)存儲(chǔ)的封裝管腳 的信息包括各封裝的管腳,管腳所在的組,以及管腳在每一封裝下的具體"(曰息。
4. 如權(quán)利要求2所述的方法,其特征在于,所述輸入輸出模塊被分組, 同一組里面的輸入輸出模塊共用一個(gè)電源且輸入輸出電平相同。
5. 如權(quán)利要求2所述的方法,其特征在于,存入所述結(jié)構(gòu)的所述管腳 在每一封裝下的信息包括封裝的名稱,管腳的序號(hào),以及管腳的該封裝中 的名稱。
6. 如權(quán)利要求1所述的方法,其特征在于,所述封裝管腳的信息的存 儲(chǔ)步驟包括依次將FPGA芯片最大封裝的每個(gè)管腳和管腳分組信息,以及管腳在 該封裝下的信息存入所述結(jié)構(gòu)中;從FPGA芯片剩下的封裝類型里每次任選一個(gè),在所述結(jié)構(gòu)中找到所 選封裝中的每一個(gè)不是供電電源以及普通輸入輸出的管腳,將該管腳在當(dāng) 前封裝下的信息存入所述結(jié)構(gòu)中;通過(guò)己經(jīng)存入所述結(jié)構(gòu)中的所選封裝的管腳的定位以及管腳分組的限制,確定剩下的管腳存入所述結(jié)構(gòu)中的位置區(qū)間;如區(qū)間內(nèi)有同類型的管腳,則將該管腳在當(dāng)前封裝下的信息存入所述 結(jié)構(gòu)中;如區(qū)間內(nèi)沒(méi)有同類型的管腳,則在所述結(jié)構(gòu)中的此區(qū)間內(nèi)插入該 封裝管腳的信息。
7. 如權(quán)利要求6所述的方法,其特征在于,所述每個(gè)管腳在當(dāng)前封裝 下的信息包括封裝的名稱,管腳的序號(hào),以及管腳的當(dāng)前封裝下的名稱。
8. 如權(quán)利要求l所述的方法,其特征在于,所述FPGA芯片輸入輸出 模塊的類型的分配包括將所述結(jié)構(gòu)所記錄的管腳分配給FPGA芯片上可用的輸入輸出模塊, 每邊上所有可用的輸入輸出模塊被均分為2個(gè)組,所有同組內(nèi)的輸入輸出 模塊使用公共的供電電源,具有相同的輸入輸出電平;整個(gè)FPGA芯片被分為8個(gè)組,將所述結(jié)構(gòu)內(nèi)存儲(chǔ)的每一組內(nèi)的管腳 均勻分配到FPGA芯片上同組的輸入輸出模塊,從而確定FPGA輸入輸出 模塊的類型。
9. 如權(quán)利要求l所述的方法,其特征在于,利用計(jì)算機(jī)程序完成所述 FPGA芯片輸入輸出模塊類型的自動(dòng)分配。
全文摘要
本發(fā)明提供了一種為多封裝FPGA芯片自動(dòng)分配輸入輸出模塊類型的方法,包括以下步驟結(jié)構(gòu)的創(chuàng)建,該結(jié)構(gòu)用于按序存儲(chǔ)FPGA芯片所要適應(yīng)的所有封裝的管腳,不同封裝中相同的管腳在此結(jié)構(gòu)中僅存儲(chǔ)一次,任何封裝的管腳都可以從該結(jié)構(gòu)中依次選取相應(yīng)管腳構(gòu)成。封裝管腳信息的存儲(chǔ),將FPGA芯片所針對(duì)的封裝的管腳信息存入所述結(jié)構(gòu)中;FPGA芯片輸入輸出模塊的類型的分配,將所述結(jié)構(gòu)所記錄的管腳對(duì)應(yīng)到FPGA芯片的輸入輸出模塊上,按照管腳類型為每個(gè)輸入輸出模塊分配類型。使用本發(fā)明自動(dòng)排布FPGA芯片輸入輸出模塊的類型可以克服由于不同封裝管腳定義的不同,以及輸入輸出模塊分組的限制造成的困難。當(dāng)多種不同封裝需要同時(shí)考慮的時(shí)候,縮短了反復(fù)修改和檢查錯(cuò)誤的時(shí)間。
文檔編號(hào)G06F17/50GK101452494SQ200710178329
公開日2009年6月10日 申請(qǐng)日期2007年11月29日 優(yōu)先權(quán)日2007年11月29日
發(fā)明者倪明浩, 周華斌, 陳凌都 申請(qǐng)人:中國(guó)科學(xué)院半導(dǎo)體研究所