本發(fā)明涉及集成電路技術(shù)領(lǐng)域,尤其涉及一種基于現(xiàn)場(chǎng)可編程門(mén)陣列芯片的工藝映射方法
背景技術(shù):
現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片是一種具有豐富硬件資源、強(qiáng)大并行處理能力和靈活可重配置能力的邏輯器件。這些特征使得FPGA在數(shù)據(jù)處理、通信、網(wǎng)絡(luò)等很多領(lǐng)域得到了越來(lái)越多的廣泛應(yīng)用。
然而,在現(xiàn)有的FPGA芯片的工藝映射過(guò)程中,總存在著一些問(wèn)題,如一些FPGA芯片由于對(duì)應(yīng)用的各種算法過(guò)于通用,從而失去了針對(duì)每款FPGA芯片架構(gòu)進(jìn)行訂制化支持的能力;一些FPGA芯片由于過(guò)于針對(duì)FPGA芯片架構(gòu)的細(xì)節(jié)進(jìn)行優(yōu)化,而當(dāng)FPGA芯片架構(gòu)發(fā)生變化時(shí),為了支持新的架構(gòu),需要花費(fèi)大量時(shí)間對(duì)該架構(gòu)下的算法進(jìn)行重新編寫(xiě)。
由此可知,現(xiàn)有的工藝映射過(guò)程不能針對(duì)不同的FPGA芯片架構(gòu)進(jìn)行及時(shí)、相應(yīng)的處理,從而導(dǎo)致耗時(shí)長(zhǎng),或不能完成映射流程等問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問(wèn)題,以實(shí)現(xiàn)最大限度的保留工藝映射算法的通用性,同時(shí)可以快速支持多款FPGA芯片新架構(gòu)的不同特性,由此本申請(qǐng)?zhí)峁┝艘环N基于現(xiàn)場(chǎng)可編程門(mén)陣列芯片的工藝映射方法。該方法包括:對(duì)用戶(hù)電路進(jìn)行邏輯綜合處理,獲取結(jié)構(gòu)級(jí)電路,結(jié)構(gòu)級(jí)電路包括宏單元。宏單元是至少具有運(yùn)算邏輯行為和選擇邏輯行為的功能單元。當(dāng)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),將宏單元映射到功能模塊上。
在一個(gè)可選的實(shí)現(xiàn)中,該方法還包括:當(dāng)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中不包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),將宏單元進(jìn)行邏輯單元拆分,獲取第一門(mén)級(jí)單元和第一寄存器,第一門(mén)級(jí)單元和所述第一寄存器構(gòu)成的邏輯結(jié)構(gòu)與宏單元有相同的邏輯行為。
在一個(gè)可選的實(shí)現(xiàn)中,該結(jié)構(gòu)級(jí)電路還包括門(mén)級(jí)電路,門(mén)級(jí)電路包括第二門(mén)級(jí)單元,根據(jù)結(jié)構(gòu)級(jí)電路的邏輯行為,對(duì)第二門(mén)級(jí)單元進(jìn)行查找表映射,獲取相應(yīng)查找表。
在一個(gè)可選的實(shí)現(xiàn)中,該結(jié)構(gòu)級(jí)電路還包括第二寄存器,根據(jù)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu),將宏單元映射到芯片對(duì)應(yīng)的功能模塊上之后,該方法還包括:將查找表、第一寄存器和第二寄存器,統(tǒng)一映射到現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中對(duì)應(yīng)的查找表和寄存器上。
通過(guò)本申請(qǐng)?zhí)峁┑姆椒梢越档蜁r(shí)間成本與空間(軟件內(nèi)存)成本,從而提高FPGA整體芯片的最高工作頻率fmax。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實(shí)施例提供的一種基于現(xiàn)場(chǎng)可編程門(mén)陣列芯片的工藝映射方法的流程圖;
圖2為現(xiàn)有技術(shù)邏輯綜合過(guò)程中加法器由行為級(jí)向結(jié)構(gòu)級(jí)的轉(zhuǎn)變過(guò)程;
圖3為本發(fā)明實(shí)施例提供的一種宏單元的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的另一種宏單元的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
本發(fā)明提供的基于現(xiàn)場(chǎng)可編程門(mén)陣列FPGA芯片的工藝映射方法應(yīng)用在FPGA芯片的工藝流程中邏輯綜合流程后的映射流程中,該方法可以最大限度的保留工藝映射算法的通用性,同時(shí)可以快速支持多款新FPGA芯片架構(gòu)各自不同的特性。下面將通過(guò)實(shí)施例進(jìn)行詳細(xì)介紹。
圖1為本發(fā)明實(shí)施例提供的一種基于現(xiàn)場(chǎng)可編程門(mén)陣列芯片的工藝映射方法的流程圖,如圖1所示,該方法可以包括:
步驟110、對(duì)用戶(hù)電路進(jìn)行邏輯綜合處理,獲取結(jié)構(gòu)級(jí)電路,該結(jié)構(gòu)級(jí)電路可以包括宏單元,宏單元可以是至少具有運(yùn)算邏輯行為和選擇邏輯行為的功能單元。
用戶(hù)電路是使用硬件描述語(yǔ)言(verilog或VHDL)編譯而成的電路,將使用高層次的硬件描述語(yǔ)言編譯而成的行為級(jí)用戶(hù)電路,經(jīng)邏輯綜合處理后,成為結(jié)構(gòu)化的結(jié)構(gòu)級(jí)電路。該結(jié)構(gòu)級(jí)電路可以包括宏單元、門(mén)級(jí)電路。其中,宏單元可以是具有運(yùn)算邏輯行為和選擇邏輯行為的功能單元,也可以是具有譯碼邏輯行為和解碼邏輯行為的功能單元。宏單元可以是加法器、減法器、乘法器、除法器、求余器、比較器、多路選擇器、選擇器、解碼器、存儲(chǔ)器,也可以是上述器件的任意組合。門(mén)級(jí)電路可以包括第二門(mén)級(jí)單元、寄存器和三態(tài)門(mén)等等,第二門(mén)級(jí)單元可以是與門(mén)、或門(mén)、非門(mén),也可以是與門(mén)、或門(mén)、非門(mén)的任意組合。
根據(jù)行為級(jí)硬件描述語(yǔ)言中的邏輯行為,綜合成具有相應(yīng)功能的結(jié)構(gòu)級(jí)宏單元。以宏單元為加法器為例進(jìn)行說(shuō)明。圖2為現(xiàn)有技術(shù)邏輯綜合過(guò)程中加法器由行為級(jí)向結(jié)構(gòu)級(jí)的轉(zhuǎn)變過(guò)程。如圖2所示,根據(jù)輸入信號(hào)A和B的加法邏輯行為,經(jīng)邏輯綜合處理后,將該加法邏輯行為轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化的加法器。
在一個(gè)例子中,用戶(hù)在寄存器轉(zhuǎn)換級(jí)電路(register transfer level,RTL)中寫(xiě)了一個(gè)乘法邏輯運(yùn)算,輸入信號(hào)分別為A和B,其中,輸入信號(hào)A和B都是35位信號(hào),即要實(shí)現(xiàn)35位與35位的乘法,將邏輯電路中完成上述運(yùn)算的部分電路封裝成一個(gè)宏單元,即該宏單元可以是完成乘法運(yùn)算功能的乘法器,如圖3所示,乘法器的輸入端A、B為該宏單元的輸入端,乘法器的輸出端mult為該宏單元的輸出端。
在一個(gè)例子中,宏單元可以是除法器與求余器的組合,如在圖4中,宏單元的輸入端為除法器的輸入端,該輸入端分別接入20位的輸入信號(hào)A和B,除法器的輸出端C連接至求余器的一個(gè)輸入端,求余器的另一個(gè)輸入端接入20位的輸入信號(hào)D,求余器的輸出端O為宏單元的輸出端。
由此可知,在實(shí)際FPGA芯片架構(gòu)中,對(duì)較大的乘法器或多路選擇器而言,對(duì)應(yīng)的門(mén)級(jí)電路的規(guī)模較大,運(yùn)算時(shí)耗時(shí)較長(zhǎng),而經(jīng)過(guò)獲取的宏單元處理后的門(mén)級(jí)電路,簡(jiǎn)化了結(jié)構(gòu)級(jí)電路的結(jié)構(gòu)。同時(shí)宏單元是與實(shí)際的具體器件無(wú)關(guān)的通用單元,對(duì)于同一個(gè)宏單元可以支持不同的FPGA芯片架構(gòu),也就是說(shuō),宏單元結(jié)構(gòu)中的功能單元是完全可以復(fù)用的。
步驟120、當(dāng)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),將宏單元映射到功能模塊上。
若在實(shí)際的FPGA芯片架構(gòu)中包含進(jìn)位鏈模塊或DSP模塊,則加法器、比較器、除法器等宏單元通常會(huì)被映射到進(jìn)位鏈上,乘法器構(gòu)成的宏單元通常會(huì)被映射到DSP模塊上。若實(shí)際架構(gòu)中沒(méi)有對(duì)應(yīng)的DSP模塊而存在進(jìn)位鏈,那么乘法器、除法器等宏單元會(huì)被映射到進(jìn)位鏈上。
可選地,該方法還包括:當(dāng)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中不包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),將宏單元進(jìn)行邏輯單元拆分,獲取第一門(mén)級(jí)單元和第一寄存器。其中,第一門(mén)級(jí)單元和第一寄存器構(gòu)成的邏輯結(jié)構(gòu)與宏單元有相同的邏輯行為。第一門(mén)級(jí)單元可以是與門(mén)、或門(mén)、非門(mén),也可以是與門(mén)、或門(mén)、非門(mén)的任意組合。
若在實(shí)際的FPGA芯片中沒(méi)有對(duì)應(yīng)處理獲取的宏單元的功能模塊時(shí),該宏單元會(huì)轉(zhuǎn)化為標(biāo)準(zhǔn)庫(kù)單元,標(biāo)準(zhǔn)庫(kù)單元可以包括門(mén)級(jí)單元(如與門(mén)、或門(mén))和寄存器等,并對(duì)標(biāo)準(zhǔn)庫(kù)單元中的門(mén)級(jí)單元進(jìn)行查找表映射,獲取相應(yīng)查找表,以及對(duì)標(biāo)準(zhǔn)庫(kù)單元中的寄存器進(jìn)行寄存器映射,獲取相應(yīng)物理層的寄存器。
圖2中的35位*35位的乘法運(yùn)算要對(duì)應(yīng)幾萬(wàn)甚至幾十萬(wàn)的邏輯門(mén)電路,然而對(duì)于有DSP模塊的FPGA芯片架構(gòu)來(lái)說(shuō),上述龐大的邏輯門(mén)數(shù)量是沒(méi)有意義的,因?yàn)槌朔ㄟ\(yùn)算可以直接通過(guò)DSP模塊來(lái)實(shí)現(xiàn)。根據(jù)FPGA芯片架構(gòu)的實(shí)際情況,若FPGA芯片架構(gòu)上有與宏單元功能對(duì)應(yīng)的DSP模塊,則將獲取的乘法宏單元映射在硬件DSP上;若FPGA芯片架構(gòu)中沒(méi)有與宏單元功能對(duì)應(yīng)的DSP模塊,但是有進(jìn)位鏈,則將獲取的乘法宏單元映射在進(jìn)位鏈上;若FPGA芯片架構(gòu)中既沒(méi)有相對(duì)應(yīng)的DSP模塊,也沒(méi)有進(jìn)位鏈,則此時(shí)將獲取的乘法宏單元轉(zhuǎn)化為標(biāo)準(zhǔn)庫(kù)單元,經(jīng)過(guò)查找表映射后轉(zhuǎn)化為查找表。
可以理解的是,當(dāng)映射到FPGA芯片架構(gòu)中對(duì)應(yīng)的功能模塊時(shí),通常映射結(jié)果已經(jīng)是最優(yōu)或是接近最優(yōu)的結(jié)構(gòu),因此往往不需要后續(xù)的步驟再進(jìn)行優(yōu)化;同時(shí)這些功能模塊都是從宏單元提取產(chǎn)生的,不需要從門(mén)級(jí)電路中提取這些功能模塊。
進(jìn)一步的,當(dāng)FPGA芯片架構(gòu)中包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),根據(jù)結(jié)構(gòu)級(jí)電路的邏輯行為,對(duì)第二門(mén)級(jí)單元進(jìn)行查找表映射,獲取相應(yīng)查找表。
當(dāng)FPGA芯片架構(gòu)中不包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),根據(jù)結(jié)構(gòu)級(jí)電路的邏輯行為,對(duì)第一門(mén)級(jí)單元和第二門(mén)級(jí)單元共同進(jìn)行查找表映射,獲取相應(yīng)查找表。
最后將獲取的所有查找表和所有寄存器,統(tǒng)一映射到所述現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中對(duì)應(yīng)的查找表和寄存器上,從而完成FPGA芯片的整體映射流程。
本發(fā)明實(shí)施例提供的基于現(xiàn)場(chǎng)可編程門(mén)陣列芯片的工藝映射方法,該方法可以通過(guò)對(duì)用戶(hù)電路進(jìn)行邏輯綜合處理,獲取結(jié)構(gòu)級(jí)電路,該結(jié)構(gòu)級(jí)電路包括宏單元。宏單元是至少具有運(yùn)算邏輯行為和選擇邏輯行為的功能單元。當(dāng)現(xiàn)場(chǎng)可編程門(mén)陣列芯片架構(gòu)中包括與宏單元相對(duì)應(yīng)的功能模塊時(shí),將宏單元映射到功能模塊上。該方法不僅可以最大限度的保留工藝映射算法的通用性,也可以快速支持多款新FPGA芯片架構(gòu)各自不同的特性,從而降低了時(shí)間成本與空間(軟件內(nèi)存)成本,提高了FPGA整體芯片的最高工作頻率fmax。
結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件指令可以由相應(yīng)的軟件模塊組成,軟件模塊可以被存放于隨機(jī)存取存儲(chǔ)器、閃存、只讀存儲(chǔ)器、可擦除可編程只讀寄存器(英文:erasable programmable read-only memory,EPROM)存儲(chǔ)器、電可擦可編程只讀存儲(chǔ)器存儲(chǔ)器(英文:electrically erasable programmable read-only memory,EEPROM)、硬盤(pán)、只讀光盤(pán)(英文:compact disc read-only memory,CD-ROM)或者本領(lǐng)域熟知的任何其它形式的存儲(chǔ)介質(zhì)中。一種示例性的存儲(chǔ)介質(zhì)耦合至處理器,從而使處理器能夠從該存儲(chǔ)介質(zhì)讀取信息,且可向該存儲(chǔ)介質(zhì)寫(xiě)入信息。當(dāng)然,存儲(chǔ)介質(zhì)也可以是處理器的組成部分。處理器和存儲(chǔ)介質(zhì)可以位于ASIC中。另外,該ASIC可以位于用戶(hù)設(shè)備中。當(dāng)然,處理器和存儲(chǔ)介質(zhì)也可以作為分立組件存在于用戶(hù)設(shè)備中。
本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。