新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 自由IP Core資源的利用

自由IP Core資源的利用

作者:■ 鄭州大學(xué)信息工程學(xué)院 周明珠 王福源 時間:2005-04-28 來源:電子設(shè)計應(yīng)用2005年第2期 收藏

摘    要:本文介紹了與免費 運作有關(guān)的問題以及免費資源的若干來源,然后通過對兩個不同來源的、免費的八位RISC 進行比較和分析,給出了若干選用免費核時應(yīng)考慮的問題。
關(guān)鍵詞: ;

本文引用地址:http://m.butianyuan.cn/article/5496.htm

引言
隨著集成電路單位面積晶體管數(shù)量的激增和人們對縮短設(shè)計周期的追求,設(shè)計重用已經(jīng)成為有效的應(yīng)對方法,它不但適合于ASIC,也適合于CPLD/FPGA。在CPLD/FPGA的設(shè)計過程中,由于開發(fā)工具的通用性、設(shè)計語言的標準化,設(shè)計過程幾乎與所用器件的硬件結(jié)構(gòu)無關(guān),設(shè)計成功的邏輯功能塊也具有很好的兼容性和可移植性,從而使得產(chǎn)品設(shè)計效率大幅度提高。這些具有可再利用功能的邏輯功能模塊都可以成為 ,因此IP Core可以是算法核、加密核、微處理器等。TI公司認為,一個ASIC設(shè)計80%的功能可用IP Core等現(xiàn)成邏輯合成,未來大系統(tǒng)的CPLD/FPGA設(shè)計將僅僅是各類再應(yīng)用邏輯與IP Core的拼裝。

自由IP Core
為何免費
目前有許多商業(yè)公司出售IP Core ,但價格昂貴,原因之一是高昂的開發(fā)費用。據(jù)測算,在IP Core的整個過程中,編寫源代碼所花費的成本只占總成本的10%,而調(diào)試和修正則占50%,市場銷售和支持占到40%。如果將整個成本分攤到多個主體,那么對于單個主體而言成本就大大降低了,這就是設(shè)計開放共享的IP Core的初衷。由組織開放IP的機構(gòu)將自愿參加者的設(shè)計開放,使用者可以找到設(shè)計的錯誤,或加入新的內(nèi)容對原設(shè)計加以完善,使IP Core趨于成熟。同時CPLD/FPGA的生產(chǎn)商公布芯片的編程技術(shù)或者提供免費的EDA設(shè)計工具,從而使開放式硬件的設(shè)計者可以將該公司的芯片應(yīng)用于新設(shè)計的系統(tǒng),由此達到“多贏”的目標。
充分意義上的硬件開放必須達到三個條件:首先,硬件的接口必須清楚地公布出來,這樣才能由他人自由的使用;其次,硬件設(shè)計本身必須公布于眾,這樣他人才能將其在不同的應(yīng)用中加以實現(xiàn)或糾錯;最后,應(yīng)盡量采用免費的設(shè)計工具,以便于其他使用者對設(shè)計進行改進。
知識產(chǎn)權(quán)歸屬和法律問題
免費IP Core常用的認證有GPL、LGPL等。這兩種認證原來是用于自由軟件的,現(xiàn)已推廣到對自由 IP Core的認證。大多數(shù)的軟件認證都不允許對軟件共享與修改,而GPL認證則旨在保證共享與修改軟件的自由,確保軟件對于所有的用戶都是共享的。GPL認證為了確保用戶有傳播自由軟件副本、根據(jù)自己的需要進行修改的自由,規(guī)定在傳播軟件的副本時,必須給予接受者同樣的權(quán)利。必須確定他們收到或者可以得到源代碼,并且知道這些條款,即自己的權(quán)利。
LGPL認證應(yīng)用于某些特別指定的軟件包——共享庫。這一許可允許將這些庫連入某些非共享程序中。在法律上,當(dāng)程序中連入某個庫,不論是靜態(tài)的還是使用共享的庫,這兩者的結(jié)合都是原始庫的派生,因此,只有整個結(jié)合物符合共享的標準,GPL認證才允許這種鏈接。但LGPL認證則以更寬松的準則允許其它代碼和庫的連接,因此在與非共享軟件的競爭中,與GPL認證相比,LGPL為共享軟件開發(fā)者提供的利益少一些。正是由于這一原因,許多庫使用GPL認證,然而,在某些特殊情況下LGPL認證是有利的。例如:在特殊的情況下,可能需要鼓勵某種庫的廣泛使用,以使其成為事實上的標準。為了達到這一目的,就會使用LGPL認證,允許非共享程序使用這種庫。從另一個方面來看,允許非共享程序使用某種庫將可以促使大量使用共享軟件。例如,GNU C庫允許在非共享的軟件中使用促使了更多人使用GNU操作系統(tǒng),以及它的派生GNU/Linux操作系統(tǒng)。

免費IP Core的部分來源
許多非盈利的組織提供免費IP Core,有些CPLD/FPGA的芯片廠商也提供這類共享資源,而芯片廠商提供較多的是針對他們所生產(chǎn)的具體芯片的共享設(shè)計。下面介紹兩個免費IP Core的非盈利機構(gòu)。
OpenIPCore工程
該機構(gòu)旨在推動開放式硬件的發(fā)展,其業(yè)務(wù)既包括提供開放核的平臺,也對開放硬件核的權(quán)益進行認證,定義設(shè)計的方法以及設(shè)計接口的標準化。該機構(gòu)收集經(jīng)其授權(quán)的設(shè)計以及免費的開發(fā)工具例如gEDA、Savant等,供設(shè)計者自由選用。另外為已有的設(shè)計如編譯器、驅(qū)動器、外部電路提供工具、設(shè)計和文檔的支持。
OpenIPCore工程的基本條款包括:電路核是可以更改的,但必須修改文檔記錄;不能靠出售核本身來贏利,但是可以出售用核實現(xiàn)的設(shè)備,例如基于某些免費核的集成電路、基于某些電路圖或版圖的電路板,甚至可以是文本模式驅(qū)動的圖形界面;任何更新都應(yīng)該備案,并反饋給原設(shè)計者;對核的更新、修改或加以完善等成果都應(yīng)該是共享的;將原封不動的共享核與其他模塊結(jié)合產(chǎn)生更大的設(shè)計,可以在OpenIPCore認證下共享,也可以受其他認證的保護;該網(wǎng)站不保證在實際硬件實現(xiàn)中核的功能和性能。該工程采用OHGPL認證,對基本原創(chuàng)性工作和導(dǎo)出性工作做了明確的定義。該機構(gòu)不排斥發(fā)布人采用其他認證,但要求有明確的聲明。
Free-IP 工程
該機構(gòu)的目標在于利用傳統(tǒng)工具發(fā)展自由的或成本較低的IP core。由Free-IP 工程提供的IP Core權(quán)益不歸公共所有而歸發(fā)布人所有。使用Free-IP核必須遵循以下幾點:核的使用是自由的,但是必須遵循所注明的費用項中的信息;不可以出售核,但可以收取復(fù)制的費用,也可以對自己添加的有價值的部分收取費用;允許對核修改,但是Free-IP工程不對所做的修改加以認證;對于核的使用沒有任何限制,可用于軍用、商用、教育等領(lǐng)域。


八位RISC
的比較和分析
核的使用者最關(guān)心的是其可靠性。想對所有免費核做出可靠性評價是不可能的,本文通過對兩個8位(指數(shù)據(jù)總線的寬度,指令碼為12位)RISC核的對比和分析,給出了在使用免費核時可靠性方面的大體概念。
RISC5X是一個用VHDL編寫的、與Microchip公司的PIC16C5系列兼容的CPU核,該系列CPU除了程序分支指令外,全部是單周期指令,所以RISC5X在40MHz單一時鐘下基本可以達到40MIPS的處理速度。 如采用Xilinx 公司的Virtex-E系列FPGA,該核占用110CLB單元,在E-6上速度可達33MHz,在E-8上可達40MHz。該核提供了VHDL源代碼和16進制代碼,并且提供了一些不錯的免費工具,包括編譯器、仿真器和匯編工具(gusim、guasm等)。該核所提供的每一個宏都采用兩種結(jié)構(gòu)體寫成,一種只適用于Virtex系列目標芯片,另一種是用VHDL的RTL級描述,用戶必須根據(jù)需要在源程序中作出相應(yīng)選擇。但是存在的缺點是用于定義總線寬度的宏,在第二次使用時,有些綜合器并不按要求重復(fù)產(chǎn)生第二個硬件模塊。一個解決方法是將該宏轉(zhuǎn)換為EDIF格式,每次用到時使用與其對應(yīng)的EDIF文件名。另一個不足是該核對于雙周期指令未做處理,需要用戶自己對程序計數(shù)器做一定修改。
RISC8是與RISC5X很類似的免費核,與Microchip公司的PIC16C57兼容。該核在ASIC和FPGA層面上都是可綜合的,并且已經(jīng)被使用過。該核提供了CPU、指令譯碼器、寄存器、累加器、RAM等基本部件,此外還提供了基本的測試向量。在該核的程序包里還可以找到“basic”和“DDS”兩個匯編程序,basic用來檢測RISC8的指令,DDS則是利用該核的一個應(yīng)用程序。此外還提供了關(guān)于16C57的第三方資源。但是與16C57相比,兩者是有明顯差別的。表1列出了兩者在功能方面的比較。與其他免費核一樣,該核也有明顯的不足之處,如狀態(tài)字STATUS中的DC位功能沒有完成,以及TRIS不能影響I/O口等。
相比之下,RISC8應(yīng)該比較成熟,但是由于不能直接使用I/O口,對于有此需要的用戶來說,顯然尚有很多要做的補充工作。RISC5X的工作相對比較齊全,僅在測試方面稍嫌不足。雖然雙周期指令不能直接使用,但是可以用別的指令替代。
從以上比較可以看出,免費核總是有缺陷的,但是工程師可以根據(jù)自己的需要找到較為合適的核和使用方法。一般說,一個核往往是由多個模塊組成的,有經(jīng)驗的工程師完全可以自行“拼接”比較成熟的模塊,成為自己的核。本文的建議如下:
* 在決定選用某個核之前先仔細閱讀有關(guān)該核的評論(一般可以在核所在的網(wǎng)頁上找到),選用那些所存在的缺陷并不影響個人應(yīng)用的核。例如有些未完成的部分你恰好是不用的;
* 如有多個版本,則宜選用高版本核。高版本都會對核的BUG進行修改,優(yōu)化后的核通常會有更高的可靠性,例如工作頻率的提高等,可以適應(yīng)更高性能的芯片。
* 如果使用FPGA實現(xiàn),應(yīng)盡量采用與發(fā)布人一樣系列的目標芯片。隨核發(fā)布的說明文件中通常會指出該核使用何種語言、用何種軟件環(huán)境調(diào)試、曾經(jīng)綜合下載到何種芯片以及硬件調(diào)試設(shè)備等,在使用時,最好選用同樣的芯片和調(diào)試環(huán)境,而且最好選擇同時發(fā)布測試向量的核,這樣測試起來比較方便。
* 選擇時要考慮核使用何種總線標準。如果把不同的IP Core組成一個系統(tǒng),則需要這些IP Core具有標準的接口。通常情況下,要盡量避免使用三態(tài)總線,因為三態(tài)總線技術(shù)依靠電路延時來避免時序沖突問題,這種對工藝的依賴性,不利于IP Core的復(fù)用。免費IP Core通常使用Wishbone總線標準,由于其開放性,擁有了不少的用戶。它的特點是同時支持高字節(jié)在后(BIG ENDIAN)和低字節(jié)在后(LITTLE ENDIAN)的字節(jié)編址方式;支持多個主單元;支持點對點、數(shù)據(jù)流、共享總線以及交叉開關(guān)等連接方式。尤其是其交叉方式使得多個主單元可以同時進行數(shù)據(jù)交換,大大提高了數(shù)據(jù)吞吐率。

結(jié)語
免費IP Core這一豐富的共享資源的有效利用將會帶來巨大的價值,開放式硬件的商業(yè)應(yīng)用也是有可能實現(xiàn)的?;陂_放式硬件設(shè)計的商業(yè)模式可以從設(shè)計的支持、實現(xiàn)、應(yīng)用等方面進行,只要仔細研究開放機構(gòu)的宗旨和規(guī)定,使用者就可以發(fā)現(xiàn)很多商業(yè)應(yīng)用的渠道?!?/p>

參考文獻
1 潘松,黃繼業(yè). EDA技術(shù)實用教程. 科學(xué)出版社. 2002



關(guān)鍵詞: CPU IP Core

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉