基于EDA軟件和FPGA的IP核保護(hù)技術(shù)
隨著電路規(guī)模不斷擴(kuò)大,以及競(jìng)爭(zhēng)帶來的上市時(shí)間的壓力,越來越多的電路設(shè)計(jì)者開始利用設(shè)計(jì)良好的、經(jīng)反復(fù)驗(yàn)證的電路功能模塊來加快設(shè)計(jì)進(jìn)程。這些電路功能模塊被稱為IP(Intellectual Property)核。IP核由相應(yīng)領(lǐng)域的專業(yè)人員設(shè)計(jì),并經(jīng)反復(fù)驗(yàn)證。IP核的擁有者可通過出售IP獲取利潤。利用IP核,設(shè)計(jì)者只需做很少設(shè)計(jì)就可實(shí)現(xiàn)所需系統(tǒng)。基于IP核的模塊化設(shè)計(jì)可縮短設(shè)計(jì)周期,提高設(shè)計(jì)質(zhì)量?,F(xiàn)場(chǎng)可編程門陣列FPGA具有可編程特性,用戶根據(jù)特定的應(yīng)用定制電路結(jié)構(gòu),因此其處理速度大大超過通用處理器。與ASIC相比,FPGA的缺點(diǎn)是在提供靈活的可編程同時(shí),則以芯片的面積、功耗和速度做為代價(jià)。
近年來,單個(gè)FPGA實(shí)現(xiàn)電路規(guī)模不斷擴(kuò)大,設(shè)計(jì)者可以在單個(gè)FPGA上實(shí)現(xiàn)一個(gè)完整的系統(tǒng)(System on Pro―grammablb Chip,簡(jiǎn)稱SoPC)。IP核的出現(xiàn)為SoPC的設(shè)計(jì)提供極大便利,利用IP核,設(shè)計(jì)者通過模塊化設(shè)計(jì)。輕松快速地實(shí)現(xiàn)系統(tǒng)復(fù)雜的功能。
當(dāng)設(shè)計(jì)者從第三方購買IP,需要一定的保護(hù)機(jī)制防止設(shè)計(jì)者在非授權(quán)IP核使用,以保護(hù)IP核所有者的利益。同時(shí),對(duì)于設(shè)計(jì)者完成的設(shè)計(jì),也需要相應(yīng)的保護(hù)機(jī)制防止設(shè)計(jì)被非法復(fù)制、竊取或篡改。為此,提出一種結(jié)合電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,簡(jiǎn)稱EDA)軟件和FPGA的IP核保護(hù)機(jī)制。通過在EDA工具中加入保護(hù)機(jī)制防止設(shè)計(jì)者非授權(quán)使用IP核,在FPGA中加入保護(hù)機(jī)制防止設(shè)計(jì)被非法復(fù)制、竊取或篡改。
2 EDA軟件中實(shí)現(xiàn)IP保護(hù)
FPGA的設(shè)計(jì)開發(fā)流程主要包括行為綜合、邏輯綜合、技術(shù)映射和布局布線。一般情況,設(shè)計(jì)者使用硬件描述語言(如VHDL,Velilog)描述電路,然后由EDA軟件對(duì)其處理。
在EDA軟件處理流程中,行為綜合把算法級(jí)或寄存器傳輸級(jí)(Register Transfer Level,簡(jiǎn)稱RTL)的電路描述轉(zhuǎn)換為門級(jí)的網(wǎng)表,邏輯綜合優(yōu)化門級(jí)網(wǎng)表,技術(shù)映射是將優(yōu)化后的網(wǎng)表映射為FPGA中的具體實(shí)現(xiàn)(查找表),布局布線工具則按照一定的評(píng)價(jià)標(biāo)準(zhǔn)來確定最終的電路單元在FPGA中的位置,并利用連線資源實(shí)現(xiàn)電路單元間的連接。
如果設(shè)計(jì)者利用第三方提供的IP核實(shí)現(xiàn)所需的設(shè)計(jì),為了避免設(shè)計(jì)者竊取IP核后,對(duì)其修改,并將其據(jù)為已有,需要有相應(yīng)的安全機(jī)制來保護(hù)第三方設(shè)計(jì)的IP核。
在EDA軟件的處理流程中,EDA軟件必須能夠正確解析設(shè)計(jì),才能完成處理,因此設(shè)計(jì)本身對(duì)于EDA軟件是公開的。這里假定EDA軟件是可信的。具有IP核保護(hù)機(jī)制的EDA流程如圖l所示。第三方設(shè)計(jì)的IP核要先向EDA軟件的開發(fā)用戶購買RTL級(jí)的IP核后,第三方將該IP核先用EDA開發(fā)商的公開密鑰對(duì)該IP核加密,再用設(shè)計(jì)者提供的公開密鑰加密。這樣,設(shè)計(jì)者雖然得到了第三方的IP核,但是并不知道EDA軟件開發(fā)商的私鑰,因此設(shè)計(jì)者無法知道該IP核中RTL級(jí)的描述。
設(shè)計(jì)者可將購買的IP核看作功能已知的黑盒子,在利用黑盒子和其他的電路模塊完成電路描述之后,設(shè)計(jì)者將設(shè)計(jì)導(dǎo)入EDA工具。EDA工具分別利用設(shè)計(jì)者輸入的密鑰和EDA開發(fā)商的密鑰對(duì)加密的IP核進(jìn)行兩次解密,從而得到整個(gè)設(shè)計(jì)完整的RTL表示。然后,EDA工具可以對(duì)設(shè)計(jì)進(jìn)行行為綜合、邏輯綜合和技術(shù)映射,最后生成技術(shù)映射后的網(wǎng)表。假定用于綜合和技術(shù)映射的工具是由某個(gè)EDA開發(fā)商提供,而FPGA布局布線工具是另外的EDA開發(fā)商,例如由FPGA的生產(chǎn)商提供。
評(píng)論