本發(fā)明涉及集成電路版圖布局技術(shù)領(lǐng)域,尤其涉及一種FPGA邏輯塊陣列的版圖布局方法及版圖布局。
背景技術(shù):
在FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)內(nèi)部,邏輯塊是由互連線資源塊和CIM(Configuration Interface Module,可配置接口模塊)拼在一起構(gòu)成的,其中CIM包括和I/O(Input/Output,輸入輸出)模塊進(jìn)行連接的相關(guān)接口。
在布局時(shí),邏輯塊是以陣列形式分布,互連線資源塊可以布在CIM左邊,也可以布在CIM右邊,現(xiàn)以互連線資源塊位于CIM左邊為例,一種簡(jiǎn)單的FPGA結(jié)構(gòu)示意圖如圖1所示,圖中邏輯塊以3X3陣列形式分布。
邏輯塊與I/O模塊進(jìn)行連接時(shí),在邏輯塊陣列的右邊界,邏輯塊內(nèi)的CIM離I/O模塊很近,二者之間的信號(hào)可以很方便地連接,如圖2所示;同樣地,在邏輯塊陣列的上下邊界,CIM和I/O模塊連接也很容易,但是在邏輯塊陣列的左邊界,邏輯塊內(nèi)的CIM需要穿過互連線資源塊才能和I/O模塊連接,如圖3所示,因此在設(shè)計(jì)互連線資源塊的時(shí)候,需要提前考慮到CIM和I/O模塊的連線,預(yù)留一些走線空間。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問題:
在互連線資源塊中為CIM和I/O模塊連線預(yù)留走線空間,當(dāng)互連線資源塊布在CIM左邊時(shí),只對(duì)位于邏輯塊陣列左邊界的邏輯塊有意義,同理當(dāng)互連線資源塊布在CIM右邊時(shí),只對(duì)位于邏輯塊陣列右邊界的邏輯塊有意義,因此非常浪費(fèi)走線資源。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供的FPGA邏輯塊陣列的版圖布局方法及版圖布局,能夠提高互連線資源塊走線資源的利用率。
第一方面,本發(fā)明提供一種FPGA邏輯塊陣列的版圖布局方法,包括:
將所述FPGA邏輯塊陣列的左起第一列邏輯塊或右起第一列邏輯塊水平翻轉(zhuǎn)180°,使得翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰,翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰;
將翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM與其相鄰的左邊界的I/O模塊連接,將翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM與其相鄰的右邊界的I/O模塊連接。
可選地,將所述FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°后,將翻轉(zhuǎn)后的左起第一列邏輯塊向左側(cè)移動(dòng),以滿足布線在豎直方向的線道需求。
可選地,對(duì)翻轉(zhuǎn)前位于所述FPGA邏輯塊陣列的左起第一列邏輯塊左邊界處的回轉(zhuǎn)線進(jìn)行調(diào)整,使所述回轉(zhuǎn)線位于所述FPGA邏輯塊陣列的左起第二列邏輯塊左邊界處。
可選地,利用所述FPGA邏輯塊陣列的左起第一列邏輯塊和左起第二列邏輯塊之間的空間完成跳線連接,以使所述FPGA邏輯塊陣列的左起第一列邏輯塊在翻轉(zhuǎn)前后具有相同的連線關(guān)系。
可選地,將所述FPGA邏輯塊陣列的右起第一列邏輯塊水平翻轉(zhuǎn)180°后,將翻轉(zhuǎn)后的右起第一列邏輯塊向右側(cè)移動(dòng),以滿足布線在豎直方向的線道需求。
可選地,對(duì)翻轉(zhuǎn)前位于所述FPGA邏輯塊陣列的右起第一列邏輯塊右邊界處的回轉(zhuǎn)線進(jìn)行調(diào)整,使所述回轉(zhuǎn)線位于所述FPGA邏輯塊陣列的右起第二列邏輯塊右邊界處。
可選地,利用所述FPGA邏輯塊陣列的右起第一列邏輯塊和右起第二列邏輯塊之間的空間完成跳線連接,以使所述FPGA邏輯塊陣列的右起第一列邏輯塊在翻轉(zhuǎn)前后具有相同的連線關(guān)系。
第二方面,本發(fā)明提供一種FPGA邏輯塊陣列的版圖布局,所述版圖布局包括:所述FPGA邏輯塊陣列的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰并與其連接;所述FPGA邏輯塊陣列的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰并與其連接。
本發(fā)明提供的FPGA邏輯塊陣列的版圖布局方法及版圖布局,將所述FPGA邏輯塊陣列的左起第一列邏輯塊或右起第一列邏輯塊水平翻轉(zhuǎn)180°,使得翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰,翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰,在連接CIM和I/O模塊時(shí),不用穿過互連線資源塊,因此不需要在互連線資源塊中為CIM和I/O模塊連線預(yù)留走線空間,與現(xiàn)有技術(shù)相比,提高了互連線資源塊走線資源的利用率,解決了由于信號(hào)線過長(zhǎng)引起的信號(hào)速度慢的問題。
附圖說明
圖1為現(xiàn)有技術(shù)中互連線資源塊位于CIM左邊時(shí),一種簡(jiǎn)單的FPGA結(jié)構(gòu)示意圖;
圖2為現(xiàn)有技術(shù)中互連線資源塊位于CIM左邊時(shí),F(xiàn)PGA邏輯塊陣列的右起第一列邏輯塊中的CIM與右邊界的I/O模塊連接示意圖;
圖3為現(xiàn)有技術(shù)中互連線資源塊位于CIM左邊時(shí),F(xiàn)PGA邏輯塊陣列的左起第一列邏輯塊中的CIM與左邊界的I/O模塊連接示意圖;
圖4為本發(fā)明一實(shí)施例FPGA邏輯塊陣列的版圖布局方法的流程圖;
圖5為本發(fā)明一實(shí)施例當(dāng)互連線資源塊位于CIM左邊時(shí),將FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°后,所述FPGA邏輯塊陣列的左起第一列邏輯塊中的CIM與左邊界的I/O模塊連接示意圖;
圖6為本發(fā)明一實(shí)施例當(dāng)互連線資源塊位于CIM左邊時(shí),將FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°后,回轉(zhuǎn)線及跳線的示意圖;
圖7為本發(fā)明一實(shí)施例當(dāng)互連線資源塊位于CIM右邊時(shí),將FPGA邏輯塊陣列的右起第一列邏輯塊水平翻轉(zhuǎn)180°后,回轉(zhuǎn)線及跳線的示意圖;
圖8為本發(fā)明一實(shí)施例當(dāng)互連線資源塊位于CIM左邊時(shí),將FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°后,所述FPGA邏輯塊陣列的版圖布局的結(jié)構(gòu)示意圖;
圖9為本發(fā)明一實(shí)施例當(dāng)互連線資源塊位于CIM右邊時(shí),將FPGA邏輯塊陣列的右起第一列邏輯塊水平翻轉(zhuǎn)180°后,所述FPGA邏輯塊陣列的版圖布局的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種FPGA邏輯塊陣列的版圖布局方法,如圖4所示,所述方法包括:
S11、將所述FPGA邏輯塊陣列的左起第一列邏輯塊或右起第一列邏輯塊水平翻轉(zhuǎn)180°,使得翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰,翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰;
S12、將翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM與其相鄰的左邊界的I/O模塊連接,將翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM與其相鄰的右邊界的I/O模塊連接。
具體地,當(dāng)所述FPGA邏輯塊陣列中的邏輯塊的互連線資源塊位于CIM左邊時(shí),將所述FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°,翻轉(zhuǎn)后,所述左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰,將所述左起第一列邏輯塊中的CIM與其相鄰的左邊界的I/O模塊連接,如圖5所示;當(dāng)所述FPGA邏輯塊陣列中的邏輯塊的互連線資源塊位于CIM右邊時(shí),將所述FPGA邏輯塊陣列的右起第一列邏輯塊水平翻轉(zhuǎn)180°,翻轉(zhuǎn)后,所述右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰,將所述右起第一列邏輯塊中的CIM與其相鄰的右邊界的I/O模塊連接,連接效果等同于互連線資源塊位于CIM左邊時(shí),將所述FPGA邏輯塊陣列的右起第一列邏輯塊中的CIM與右邊界的I/O模塊連接,如圖2所示。
可選地,因?yàn)檫壿媺K有方向性,將所述FPGA邏輯塊陣列的左起第一列邏輯塊水平翻轉(zhuǎn)180°后,之前的連線會(huì)發(fā)生錯(cuò)位,為了保證邏輯塊翻轉(zhuǎn)前后具有相同的連線關(guān)系,需要對(duì)連線進(jìn)行調(diào)整。如果在互連線資源塊內(nèi)部調(diào)整連線,不僅工作量較大,而且會(huì)增加互連線資源塊的版圖版本,同時(shí)走線的一致性較差,尤其會(huì)對(duì)敏感的時(shí)鐘線產(chǎn)生較大影響,所以選擇在互連線資源塊外部進(jìn)行跳線。由于邏輯塊是水平翻轉(zhuǎn),不影響豎直方向的連線關(guān)系,只需要跳線能保證水平方向的連線關(guān)系在翻轉(zhuǎn)前后保持一致即可。為了完成跳線,左起第一列邏輯塊需要有足夠的水平方向的線道和豎直方向的線道來布線。根據(jù)單個(gè)互連線資源塊內(nèi)布線所占線道及其走線規(guī)律,水平方向的跳線線道足夠,豎直方向的跳線線道可以通過調(diào)整所述左起第一列邏輯塊和左起第二列邏輯塊之間的距離來保證。因此,在所述左起第一列邏輯塊水平翻轉(zhuǎn)后,會(huì)將其向左側(cè)移動(dòng)一定距離,以滿足布線在豎直方向的線道需求。
可選地,對(duì)翻轉(zhuǎn)前位于所述FPGA邏輯塊陣列的左起第一列邏輯塊左邊界處的回轉(zhuǎn)線進(jìn)行調(diào)整,使所述回轉(zhuǎn)線位于所述FPGA邏輯塊陣列的左起第二列邏輯塊左邊界處。如圖6所示,上半部分表示翻轉(zhuǎn)前連線,下半部分表示翻轉(zhuǎn)后連線,根據(jù)連線屬性,在邏輯塊陣列的四個(gè)邊界處都有回轉(zhuǎn)區(qū),翻轉(zhuǎn)前W1-W2-W3-E4-E5構(gòu)成一條連線,分成W1、W2、W3、E4、E5五段,其中W1、E5和所在互連線資源塊有連接關(guān)系,并確定連線的方向性,61為起點(diǎn),62為終點(diǎn),其余W2、W3、E4三段只是穿過互連線資源塊但與各自穿過的互連線資源塊沒有連接關(guān)系。該連線在左起第一列邏輯塊左邊界處進(jìn)行回轉(zhuǎn),回轉(zhuǎn)線601連接W3和E4,邏輯塊翻轉(zhuǎn)后,將回轉(zhuǎn)線601進(jìn)行調(diào)整,使所述回轉(zhuǎn)線601位于所述FPGA邏輯塊陣列的左起第二列邏輯塊左邊界處,即回轉(zhuǎn)線601連接W2和E5,相當(dāng)于回轉(zhuǎn)線601提前回轉(zhuǎn),此時(shí)W3和E4會(huì)成為懸空的線,可以作為其他連線的跳線。
可選地,利用所述FPGA邏輯塊陣列的左起第一列邏輯塊和左起第二列邏輯塊之間的空間完成跳線連接,以使所述FPGA邏輯塊陣列的左起第一列邏輯塊在翻轉(zhuǎn)前后具有相同的連線關(guān)系,如圖6所示,翻轉(zhuǎn)前W11和E21構(gòu)成一條連線,分成W11和E21兩段,63為起點(diǎn),64為終點(diǎn),回轉(zhuǎn)線602連接W11和E21,邏輯塊翻轉(zhuǎn)后,回轉(zhuǎn)線602不起作用,可以刪掉,為保證邏輯塊翻轉(zhuǎn)前后連線關(guān)系保持不變,需用跳線603連接W11和E21。
類似地,將所述FPGA邏輯塊陣列的右起第一列邏輯塊水平翻轉(zhuǎn)180°后,將翻轉(zhuǎn)后的右起第一列邏輯塊向右側(cè)移動(dòng),以滿足布線在豎直方向的線道需求。
可選地,對(duì)翻轉(zhuǎn)前位于所述FPGA邏輯塊陣列的右起第一列邏輯塊右邊界處的回轉(zhuǎn)線進(jìn)行調(diào)整,使所述回轉(zhuǎn)線位于所述FPGA邏輯塊陣列的右起第二列邏輯塊右邊界處。如圖7所示,上半部分表示翻轉(zhuǎn)前連線,下半部分表示翻轉(zhuǎn)后連線,根據(jù)連線屬性,在邏輯塊陣列的四個(gè)邊界處都有回轉(zhuǎn)區(qū),翻轉(zhuǎn)前E1-E2-E3-W4-W5構(gòu)成一條連線,分成E1、E2、E3、W4、W5五段,其中E1、W5和所在互連線資源塊有連接關(guān)系,并確定連線的方向性,71為起點(diǎn),72為終點(diǎn),其余E2、E3、W4三段只是穿過互連線資源塊但與各自穿過的互連線資源塊沒有連接關(guān)系。該連線在右起第一列邏輯塊右邊界處進(jìn)行回轉(zhuǎn),回轉(zhuǎn)線701連接E3和W4,邏輯塊翻轉(zhuǎn)后,將回轉(zhuǎn)線701進(jìn)行調(diào)整,使所述回轉(zhuǎn)線701位于所述FPGA邏輯塊陣列的右起第二列邏輯塊右邊界處,即回轉(zhuǎn)線701連接E2和W5,相當(dāng)于回轉(zhuǎn)線701提前回轉(zhuǎn),此時(shí)E3和W4會(huì)成為懸空的線,可以作為其他連線的跳線。
可選地,利用所述FPGA邏輯塊陣列的右起第一列邏輯塊和右起第二列邏輯塊之間的空間完成跳線連接,以使所述FPGA邏輯塊陣列的右起第一列邏輯塊在翻轉(zhuǎn)前后具有相同的連線關(guān)系,如圖7所示,翻轉(zhuǎn)前E11和W21構(gòu)成一條連線,分成E11和W21兩段,73為起點(diǎn),74為終點(diǎn),回轉(zhuǎn)線702連接E11和W21,邏輯塊翻轉(zhuǎn)后,回轉(zhuǎn)線702不起作用,可以刪掉,為保證邏輯塊翻轉(zhuǎn)前后連線關(guān)系保持不變,需用跳線703連接E11和W21。
本發(fā)明實(shí)施例提供的FPGA邏輯塊陣列的版圖布局方法,將所述FPGA邏輯塊陣列的左起第一列邏輯塊或右起第一列邏輯塊水平翻轉(zhuǎn)180°,使得翻轉(zhuǎn)后的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰,翻轉(zhuǎn)后的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰,在連接CIM和I/O模塊時(shí),不用穿過互連線資源塊,因此不需要在互連線資源塊中為CIM和I/O模塊連線預(yù)留走線空間,與現(xiàn)有技術(shù)相比,提高了互連線資源塊走線資源的利用率,解決了由于信號(hào)線過長(zhǎng)引起的信號(hào)速度慢的問題。
本發(fā)明實(shí)施例還提供一種FPGA邏輯塊陣列的版圖布局,所述版圖布局包括:所述FPGA邏輯塊陣列的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰并與其連接;所述FPGA邏輯塊陣列的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰并與其連接。
當(dāng)所述FPGA邏輯塊陣列中的邏輯塊的互連線資源塊位于CIM左邊時(shí),所述FPGA邏輯塊陣列的版圖布局的結(jié)構(gòu)示意圖如圖8所示;當(dāng)所述FPGA邏輯塊陣列中的邏輯塊的互連線資源塊位于CIM右邊時(shí),所述FPGA邏輯塊陣列的版圖布局的結(jié)構(gòu)示意圖如圖9所示。
本發(fā)明實(shí)施例提供的FPGA邏輯塊陣列的版圖布局,所述FPGA邏輯塊陣列的左起第一列邏輯塊中的CIM和左邊界的I/O模塊相鄰并與其連接;所述FPGA邏輯塊陣列的右起第一列邏輯塊中的CIM和右邊界的I/O模塊相鄰并與其連接,在連接CIM和I/O模塊時(shí),不用穿過互連線資源塊,因此不需要在互連線資源塊中為CIM和I/O模塊連線預(yù)留走線空間,與現(xiàn)有技術(shù)相比,提高了互連線資源塊走線資源的利用率,解決了由于信號(hào)線過長(zhǎng)引起的信號(hào)速度慢的問題。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。