自由IP Core資源的利用
摘 要:本文介紹了與免費(fèi)IP Core運(yùn)作有關(guān)的問題以及免費(fèi)資源的若干來源,然后通過對兩個不同來源的、免費(fèi)的八位RISC CPU進(jìn)行比較和分析,給出了若干選用免費(fèi)核時應(yīng)考慮的問題。
關(guān)鍵詞:IP Core; CPU
引言
隨著集成電路單位面積晶體管數(shù)量的激增和人們對縮短設(shè)計周期的追求,設(shè)計重用已經(jīng)成為有效的應(yīng)對方法,它不但適合于ASIC,也適合于CPLD/FPGA。在CPLD/FPGA的設(shè)計過程中,由于開發(fā)工具的通用性、設(shè)計語言的標(biāo)準(zhǔn)化,設(shè)計過程幾乎與所用器件的硬件結(jié)構(gòu)無關(guān),設(shè)計成功的邏輯功能塊也具有很好的兼容性和可移植性,從而使得產(chǎn)品設(shè)計效率大幅度提高。這些具有可再利用功能的邏輯功能模塊都可以成為IP Core,因此IP Core可以是算法核、加密核、微處理器等。TI公司認(rèn)為,一個ASIC設(shè)計80%的功能可用IP Core等現(xiàn)成邏輯合成,未來大系統(tǒng)的CPLD/FPGA設(shè)計將僅僅是各類再應(yīng)用邏輯與IP Core的拼裝。
自由IP Core
為何免費(fèi)
目前有許多商業(yè)公司出售IP Core ,但價格昂貴,原因之一是高昂的開發(fā)費(fèi)用。據(jù)測算,在IP Core的整個過程中,編寫源代碼所花費(fèi)的成本只占總成本的10%,而調(diào)試和修正則占50%,市場銷售和支持占到40%。如果將整個成本分?jǐn)偟蕉鄠€主體,那么對于單個主體而言成本就大大降低了,這就是設(shè)計開放共享的IP Core的初衷。由組織開放IP的機(jī)構(gòu)將自愿參加者的設(shè)計開放,使用者可以找到設(shè)計的錯誤,或加入新的內(nèi)容對原設(shè)計加以完善,使IP Core趨于成熟。同時CPLD/FPGA的生產(chǎn)商公布芯片的編程技術(shù)或者提供免費(fèi)的EDA設(shè)計工具,從而使開放式硬件的設(shè)計者可以將該公司的芯片應(yīng)用于新設(shè)計的系統(tǒng),由此達(dá)到“多贏”的目標(biāo)。
充分意義上的硬件開放必須達(dá)到三個條件:首先,硬件的接口必須清楚地公布出來,這樣才能由他人自由的使用;其次,硬件設(shè)計本身必須公布于眾,這樣他人才能將其在不同的應(yīng)用中加以實(shí)現(xiàn)或糾錯;最后,應(yīng)盡量采用免費(fèi)的設(shè)計工具,以便于其他使用者對設(shè)計進(jìn)行改進(jìn)。
知識產(chǎn)權(quán)歸屬和法律問題
免費(fèi)IP Core常用的認(rèn)證有GPL、LGPL等。這兩種認(rèn)證原來是用于自由軟件的,現(xiàn)已推廣到對自由 IP Core的認(rèn)證。大多數(shù)的軟件認(rèn)證都不允許對軟件共享與修改,而GPL認(rèn)證則旨在保證共享與修改軟件的自由,確保軟件對于所有的用戶都是共享的。GPL認(rèn)證為了確保用戶有傳播自由軟件副本、根據(jù)自己的需要進(jìn)行修改的自由,規(guī)定在傳播軟件的副本時,必須給予接受者同樣的權(quán)利。必須確定他們收到或者可以得到源代碼,并且知道這些條款,即自己的權(quán)利。
LGPL認(rèn)證應(yīng)用于某些特別指定的軟件包——共享庫。這一許可允許將這些庫連入某些非共享程序中。在法律上,當(dāng)程序中連入某個庫,不論是靜態(tài)的還是使用共享的庫,這兩者的結(jié)合都是原始庫的派生,因此,只有整個結(jié)合物符合共享的標(biāo)準(zhǔn),GPL認(rèn)證才允許這種鏈接。但LGPL認(rèn)證則以更寬松的準(zhǔn)則允許其它代碼和庫的連接,因此在與非共享軟件的競爭中,與GPL認(rèn)證相比,LGPL為共享軟件開發(fā)者提供的利益少一些。正是由于這一原因,許多庫使用GPL認(rèn)證,然而,在某些特殊情況下LGPL認(rèn)證是有利的。例如:在特殊的情況下,可能需要鼓勵某種庫的廣泛使用,以使其成為事實(shí)上的標(biāo)準(zhǔn)。為了達(dá)到這一目的,就會使用LGPL認(rèn)證,允許非共享程序使用這種庫。從另一個方面來看,允許非共享程序使用某種庫將可以促使大量使用共享軟件。例如,GNU C庫允許在非共享的軟件中使用促使了更多人使用GNU操作系統(tǒng),以及它的派生GNU/Linux操作系統(tǒng)。
免費(fèi)IP Core的部分來源
許多非盈利的組織提供免費(fèi)IP Core,有些CPLD/FPGA的芯片廠商也提供這類共享資源,而芯片廠商提供較多的是針對他們所生產(chǎn)的具體芯片的共享設(shè)計。下面介紹兩個免費(fèi)IP Core的非盈利機(jī)構(gòu)。
OpenIPCore工程
該機(jī)構(gòu)旨在推動開放式硬件的發(fā)展,其業(yè)務(wù)既包括提供開放核的平臺,也對開放硬件核的權(quán)益進(jìn)行認(rèn)證,定義設(shè)計的方法以及設(shè)計接口的標(biāo)準(zhǔn)化。該機(jī)構(gòu)收集經(jīng)其授權(quán)的設(shè)計以及免費(fèi)的開發(fā)工具例如gEDA、Savant等,供設(shè)計者自由選用。另外為已有的設(shè)計如編譯器、驅(qū)動器、外部電路提供工具、設(shè)計和文檔的支持。
OpenIPCore工程的基本條款包括:電路核是可以更改的,但必須修改文檔記錄;不能靠出售核本身來贏利,但是可以出售用核實(shí)現(xiàn)的設(shè)備,例如基于某些免費(fèi)核的集成電路、基于某些電路圖或版圖的電路板,甚至可以是文本模式驅(qū)動的圖形界面;任何更新都應(yīng)該備案,并反饋給原設(shè)計者;對核的更新、修改或加以完善等成果都應(yīng)該是共享的;將原封不動的共享核與其他模塊結(jié)合產(chǎn)生更大的設(shè)計,可以在OpenIPCore認(rèn)證下共享,也可以受其他認(rèn)證的保護(hù);該網(wǎng)站不保證在實(shí)際硬件實(shí)現(xiàn)中核的功能和性能。該工程采用OHGPL認(rèn)證,對基本原創(chuàng)性工作和導(dǎo)出性工作做了明確的定義。該機(jī)構(gòu)不排斥發(fā)布人采用其他認(rèn)證,但要求有明確的聲明。
Free-IP 工程
該機(jī)構(gòu)的目標(biāo)在于利用傳統(tǒng)工具發(fā)展自由的或成本較低的IP core。由Free-IP 工程提供的IP Core權(quán)益不歸公共所有而歸發(fā)布人所有。使用Free-IP核必須遵循以下幾點(diǎn):核的使用是自由的,但是必須遵循所注明的費(fèi)用項中的信息;不可以出售核,但可以收取復(fù)制的費(fèi)用,也可以對自己添加的有價值的部分收取費(fèi)用;允許對核修改,但是Free-IP工程不對所做的修改加以認(rèn)證;對于核的使用沒有任何限制,可用于軍用、商用、教育等領(lǐng)域。
八位RISC CPU
的比較和分析
核的使用者最關(guān)心的是其可靠性。想對所有免費(fèi)核做出可靠性評價是不可能的,本文通過對兩個8位(指數(shù)據(jù)總線的寬度,指令碼為12位)RISC核的對比和分析,給出了在使用免費(fèi)核時可靠性方面的大體概念。
RISC5X是一個用VHDL編寫的、與Microchip公司的PIC16C5系列兼容的CPU核,該系列CPU除了程序分支指令外,全部是單周期指令,所以RISC5X在40MHz單一時鐘下基本可以達(dá)到40MIPS的處理速度。 如采用Xilinx 公司的Virtex-E系列FPGA,該核占用110CLB單元,在E-6上速度可達(dá)33MHz,在E-8上可達(dá)40MHz。該核提供了VHDL源代碼和16進(jìn)制代碼,并且提供了一些不錯的免費(fèi)工具,包括編譯器、仿真器和匯編工具(gusim、guasm等)。該核所提供的每一個宏都采用兩種結(jié)構(gòu)體寫成,一種只適用于Virtex系列目標(biāo)芯片,另一種是用VHDL的RTL級描述,用戶必須根據(jù)需要在源程序中作出相應(yīng)選擇。但是存在的缺點(diǎn)是用于定義總線寬度的宏,在第二次使用時,有些綜合器并不按要求重復(fù)產(chǎn)生第二個硬件模塊。一個解決方法是將該宏轉(zhuǎn)換為EDIF格式,每次用到時使用與其對應(yīng)的EDIF文件名。另一個不足是該核對于雙周期指令未做處理,需要用戶自己對程序計數(shù)器做一定修改。
RISC8是與RISC5X很類似的免費(fèi)核,與Microchip公司的PIC16C57兼容。該核在ASIC和FPGA層面上都是可綜合的,并且已經(jīng)被使用過。該核提供了CPU、指令譯碼器、寄存器、累加器、RAM等基本部件,此外還提供了基本的測試向量。在該核的程序包里還可以找到“basic”和“DDS”兩個匯編程序,basic用來檢測RISC8的指令,DDS則是利用該核的一個應(yīng)用程序。此外還提供了關(guān)于16C57的第三方資源。但是與16C57相比,兩者是有明顯差別的。表1列出了兩者在功能方面的比較。與其他免費(fèi)核一樣,該核也有明顯的不足之處,如狀態(tài)字STATUS中的DC位功能沒有完成,以及TRIS不能影響I/O口等。
相比之下,RISC8應(yīng)該比較成熟,但是由于不能直接使用I/O口,對于有此需要的用戶來說,顯然尚有很多要做的補(bǔ)充工作。RISC5X的工作相對比較齊全,僅在測試方面稍嫌不足。雖然雙周期指令不能直接使用,但是可以用別的指令替代。
從以上比較可以看出,免費(fèi)核總是有缺陷的,但是工程師可以根據(jù)自己的需要找到較為合適的核和使用方法。一般說,一個核往往是由多個模塊組成的,有經(jīng)驗(yàn)的工程師完全可以自行“拼接”比較成熟的模塊,成為自己的核。本文的建議如下:
* 在決定選用某個核之前先仔細(xì)閱讀有關(guān)該核的評論(一般可以在核所在的網(wǎng)頁上找到),選用那些所存在的缺陷并不影響個人應(yīng)用的核。例如有些未完成的部分你恰好是不用的;
* 如有多個版本,則宜選用高版本核。高版本都會對核的BUG進(jìn)行修改,優(yōu)化后的核通常會有更高的可靠性,例如工作頻率的提高等,可以適應(yīng)更高性能的芯片。
* 如果使用FPGA實(shí)現(xiàn),應(yīng)盡量采用與發(fā)布人一樣系列的目標(biāo)芯片。隨核發(fā)布的說明文件中通常會指出該核使用何種語言、用何種軟件環(huán)境調(diào)試、曾經(jīng)綜合下載到何種芯片以及硬件調(diào)試設(shè)備等,在使用時,最好選用同樣的芯片和調(diào)試環(huán)境,而且最好選擇同時發(fā)布測試向量的核,這樣測試起來比較方便。
* 選擇時要考慮核使用何種總線標(biāo)準(zhǔn)。如果把不同的IP Core組成一個系統(tǒng),則需要這些IP Core具有標(biāo)準(zhǔn)的接口。通常情況下,要盡量避免使用三態(tài)總線,因?yàn)槿龖B(tài)總線技術(shù)依靠電路延時來避免時序沖突問題,這種對工藝的依賴性,不利于IP Core的復(fù)用。免費(fèi)IP Core通常使用Wishbone總線標(biāo)準(zhǔn),由于其開放性,擁有了不少的用戶。它的特點(diǎn)是同時支持高字節(jié)在后(BIG ENDIAN)和低字節(jié)在后(LITTLE ENDIAN)的字節(jié)編址方式;支持多個主單元;支持點(diǎn)對點(diǎn)、數(shù)據(jù)流、共享總線以及交叉開關(guān)等連接方式。尤其是其交叉方式使得多個主單元可以同時進(jìn)行數(shù)據(jù)交換,大大提高了數(shù)據(jù)吞吐率。
結(jié)語
免費(fèi)IP Core這一豐富的共享資源的有效利用將會帶來巨大的價值,開放式硬件的商業(yè)應(yīng)用也是有可能實(shí)現(xiàn)的?;陂_放式硬件設(shè)計的商業(yè)模式可以從設(shè)計的支持、實(shí)現(xiàn)、應(yīng)用等方面進(jìn)行,只要仔細(xì)研究開放機(jī)構(gòu)的宗旨和規(guī)定,使用者就可以發(fā)現(xiàn)很多商業(yè)應(yīng)用的渠道?!?/p>
參考文獻(xiàn)
1 潘松,黃繼業(yè). EDA技術(shù)實(shí)用教程. 科學(xué)出版社. 2002
評論