Fpga配置文件的壓縮方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種現(xiàn)場(chǎng)可編程邏輯門陣列(FieldProgrammable Gate Array, FPGA)配置文件的壓縮方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中對(duì)FPGA配置文件進(jìn)行加載時(shí),當(dāng)配置文件的容量較大時(shí),往往需要花費(fèi)較長(zhǎng)的時(shí)間進(jìn)行配置文件的傳輸,導(dǎo)致配置文件加載的速率較慢,從而影響了 FPGA芯片的配置速度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是解決現(xiàn)有技術(shù)中在進(jìn)行FPGA配置文件加載時(shí),需要花費(fèi)較長(zhǎng)的時(shí)間進(jìn)行配置文件的傳輸,配置文件加載的速率較慢,F(xiàn)PGA芯片的配置速度慢的問(wèn)題。
[0004]第一方面,本發(fā)明實(shí)施例提供了一種FPGA配置文件的壓縮方法,所述方法包括:
[0005]接收處理器發(fā)送的壓縮指令;
[0006]對(duì)進(jìn)行寄存器傳輸級(jí)RTL編碼、綜合、布局布線時(shí)現(xiàn)場(chǎng)可編程邏輯門陣列FPGA芯片的第一配置文件進(jìn)行分割,生成多個(gè)子文件;
[0007]當(dāng)所述多個(gè)子文件中存在相同子文件時(shí),獲取所述相同子文件的相同值以及所述相同值的長(zhǎng)度,并添加標(biāo)識(shí)符,所述相同值、長(zhǎng)度和標(biāo)識(shí)符構(gòu)成查找表;
[0008]刪除所述第一配置文件中的相同子文件,將所述查找表和單獨(dú)子文件構(gòu)成第二配置文件單獨(dú)子文件。
[0009]可選地,遍歷所述子文件,以所述多個(gè)子文件中沒有出現(xiàn)過(guò)的組合字符作為標(biāo)識(shí)符。
[0010]可選地,所述對(duì)進(jìn)行RTL編碼、綜合、布局布線時(shí)FPGA芯片的第一配置文件進(jìn)行分害I],生成多個(gè)子文件具體包括:
[0011]根據(jù)所述第一配置文件的容量對(duì)所述第一配置文件進(jìn)行分割。
[0012]可選地,所述方法還包括:
[0013]將所述第二配置文件加載到FPGA芯片,以配置所述FPGA芯片。
[0014]可選地,所述方法之后還包括:對(duì)所述加載到FPGA芯片的第二配置文件解碼,以生成第一配置文件。
[0015]第二方面,本發(fā)明實(shí)施例提供了一種FPGA配置文件的壓縮裝置,所述裝置包括:接收單元,分割單元,獲取單元,刪除單元;
[0016]所述接收單元,用于接收處理器發(fā)送的壓縮指令;
[0017]所述分割單元,用于對(duì)進(jìn)行RTL編碼、綜合、布局布線時(shí)FPGA的第一配置文件進(jìn)行分割,生成多個(gè)子文件;
[0018]所述獲取單元,用于當(dāng)所述多個(gè)子文件中存在相同子文件時(shí),獲取所述相同子文件的相同值以及所述相同值的長(zhǎng)度,并添加標(biāo)識(shí)符,所述相同值、長(zhǎng)度和標(biāo)識(shí)符構(gòu)成查找表;
[0019]所述刪除單元,用于刪除所述第一配置文件中的相同子文件,將所述查找表和單獨(dú)子文件構(gòu)成第二配置文件。
[0020]可選地,所述獲取單元具體用于,遍歷所述子文件,以所述多個(gè)子文件中沒有出現(xiàn)過(guò)的組合字符作為標(biāo)識(shí)符。
[0021]可選地,所述分割單元具體用于,根據(jù)將所述第一配置文件的容量對(duì)所述第一配置文件進(jìn)行分割。
[0022]本發(fā)明通過(guò)對(duì)FPGA配置文件在加載時(shí),接收處理器發(fā)送的壓縮指令;對(duì)進(jìn)行RTL編碼、綜合、布局布線時(shí)FPGA芯片的第一配置文件進(jìn)行分割,生成多個(gè)子文件;當(dāng)所述多個(gè)子文件中存在相同子文件時(shí),獲取所述相同子文件的相同值以及所述相同值的長(zhǎng)度,并添加標(biāo)識(shí)符,所述相同值、長(zhǎng)度和標(biāo)識(shí)符構(gòu)成查找表;刪除所述第一配置文件中的相同子文件,將所述查找表和單獨(dú)子文件構(gòu)成第二配置文件單獨(dú)子文件進(jìn)行壓縮,減少了配置文件的傳輸時(shí)間,從而進(jìn)一步解決了配置文件加載的速率較慢,F(xiàn)PGA芯片的配置速度慢的問(wèn)題。
【附圖說(shuō)明】
[0023]圖1為本發(fā)明實(shí)施例一提供的FPGA配置文件的壓縮方法流程圖;
[0024]圖2為本發(fā)明實(shí)施例一提供的FPGA配置文件加載的架構(gòu)圖;
[0025]圖3為本發(fā)明實(shí)施例二提供的FPGA配置文件的壓縮裝置示意圖。
【具體實(shí)施方式】
[0026]為使本發(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ù)的范圍。
[0027]為便于對(duì)本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例做進(jìn)一步的解釋說(shuō)明,實(shí)施例并不構(gòu)成對(duì)本發(fā)明實(shí)施例的限定。
[0028]本發(fā)明應(yīng)用于將FPGA配置文件加載到FPGA芯片時(shí)的場(chǎng)景,通過(guò)對(duì)FPGA配置文件進(jìn)行壓縮,加快了配置文件的加載速度。
[0029]圖1為本發(fā)明實(shí)施例一提供的FPGA配置文件的加載方法流程圖。如圖1所示,本實(shí)施例包括以下步驟:
[0030]S110,接收處理器發(fā)送的壓縮指令。
[0031]S120,對(duì)進(jìn)行RTL編碼、綜合、布局布線時(shí)FPGA芯片的第一配置文件進(jìn)行分割,生成多個(gè)子文件。
[0032]具體地,如圖2所示,圖2為本發(fā)明的FPGA配置文件加載的架構(gòu)圖。圖2中的壓縮后的比特流即為第二配置文件,比特流解碼器也可以簡(jiǎn)稱為解碼器,配置存儲(chǔ)器可以作為FPGA芯片中的字典的載體。
[0033]利用電子設(shè)計(jì)自動(dòng)化(Electronic Design Automat1n, EDA)工具,在經(jīng)過(guò)寄存器傳輸級(jí)(register-transfer level,RTL)編碼,綜合,布局布線后,生成第一配置文件,當(dāng)該第一配置文件較大時(shí),加載到FPGA芯片時(shí)的加載速率不高,為了減小配置文件的大小,提高FPGA芯片的配置速度,可以通過(guò)按壓EDA軟件的“壓縮”按鍵,向處理器發(fā)送壓縮指令,處理器接收到壓縮指令后,將第一配置文件進(jìn)行壓縮。
[0034]其中,該EDA工具為我司自主研發(fā),該EDA工具的界面上有如上所述可以進(jìn)行觸發(fā)處理器進(jìn)行壓縮的按鍵。
[0035]在對(duì)第一配置文件壓縮時(shí),可以先對(duì)第一配置文件進(jìn)行分割時(shí),在對(duì)第一配置文件進(jìn)行分割時(shí),可以根據(jù)第一配置文件的容量對(duì)所述第一配置文件進(jìn)行分割,將第一配置文件分割為多個(gè)子文件。示例而非限定,可以按照Sbit —個(gè)子文件對(duì)第一配置文件進(jìn)行分害I],在另一個(gè)實(shí)施例中,也可以以16bit —個(gè)子文件對(duì)第一配置文件進(jìn)行分割。
[0036]S130,當(dāng)所述多個(gè)子文件中存在相同子文件時(shí),獲取所述相同子文件的相同值以及所述相同值的長(zhǎng)度,并添加標(biāo)識(shí)符,所述相同值、長(zhǎng)度和標(biāo)識(shí)符構(gòu)成查找表。
[0037]當(dāng)多個(gè)子文件中的至少兩個(gè)子文件相同時(shí),可以獲取該至少兩個(gè)子文件中的任一子文件的相同值,并且獲取該相同值的長(zhǎng)度,并給該相同值和相同值的長(zhǎng)度添加標(biāo)識(shí)符,該相同值、相同值的長(zhǎng)度和標(biāo)識(shí)符構(gòu)成查找表。其中,在添加標(biāo)識(shí)符時(shí),可以遍歷全部子文件,以所述多個(gè)子文件中沒有出現(xiàn)過(guò)的組合字符作為標(biāo)識(shí)符。
[0038]在將相同的子文件做上述處理后,對(duì)于剩余的單獨(dú)子文件,可以不做處理。
[0039]S140,刪除所述第一配置文件中的相同子文件,將所述查找表和單獨(dú)子文件構(gòu)成第二配置文件。
[0040]對(duì)所有子文件中的相同子文件進(jìn)行S120-130的處理,對(duì)于子文件中的單獨(dú)的子文件,其和查找表一起,構(gòu)成第二配置文件。其中,所述單獨(dú)子文件為所述多個(gè)子文件中不存在相同子文件的子文件。
[0041]可選地,在對(duì)FPGA芯片的第一配置文件進(jìn)行壓縮后,將生成的第二配置文件加載到FPGA芯片,以配置所述FPGA芯片。
[0042