系統(tǒng)控制器免費(fèi)IP 核的應(yīng)用
1.前言
本文引用地址:http://cafeforensic.com/article/86125.htm隨著集成電路業(yè)工藝的發(fā)展,單位面積晶體管的數(shù)量急劇增加。按傳統(tǒng)的方法,能滿足芯片功能和時(shí)序要求設(shè)計(jì)的IC設(shè)計(jì)工程師,產(chǎn)能約為100門/天,要完成 1200萬門的芯片設(shè)計(jì)需要500人年。設(shè)計(jì)復(fù)用(Design Reuse)技術(shù)成為解決問題的有效方法。根據(jù)業(yè)界經(jīng)驗(yàn),任何模塊如果不作任何修改就可以在10個(gè)或更多項(xiàng)目中復(fù)用,都應(yīng)該開發(fā)成IP ?;贗P的數(shù)字IC設(shè)計(jì)方法是有效提高設(shè)計(jì)產(chǎn)能的關(guān)鍵技術(shù)。IP核又稱IP (Intellectual Property)Core指具有獨(dú)立知識產(chǎn)權(quán)的電路核。設(shè)計(jì)復(fù)用不但適用于ASIC設(shè)計(jì),也適用于CPLD/FPGA。在該類電路設(shè)計(jì)過程中,由于開發(fā)工具的通用性、設(shè)計(jì)語言的標(biāo)準(zhǔn)化,使得設(shè)計(jì)過程基本與器件硬件特性無關(guān),成功設(shè)計(jì)的各種功能電路模塊(core)具有很好的兼容性(Compliable)和移植性(Portable),恰當(dāng)?shù)膹?fù)用使設(shè)計(jì)效率大大提高。
用于系統(tǒng)集成(Integration)的IP Core通常是私有的,必須向開發(fā)商購買,這些花費(fèi)對資金短缺的設(shè)計(jì)團(tuán)體來說是很大的負(fù)擔(dān)。而特殊的設(shè)計(jì)及測試工具給私有IP Core的整合帶來一些困難。有時(shí)私有IP Core還可能缺乏足夠的文檔,且購買者無法得到源代碼使得整合工作更加困難。以上原因使IP core 的推廣沒有預(yù)想地那樣順利。
作為一種嘗試,國際上一些非盈利組織(如Opencores等)和個(gè)人致力于自由(或稱免費(fèi),Open 或Free)IP Core的發(fā)展,為設(shè)計(jì)者提供遵循GNU GPL或LGPL 協(xié)議的免費(fèi)開源IP core。本文以系統(tǒng)控制器(system controller)的IP核為例,介紹了免費(fèi)IP Core的使用,包括資源的獲取方式和工具,文檔的應(yīng)用,測試方法等問題,希望以此引起設(shè)計(jì)人員對免費(fèi)資源的關(guān)注。本文的資源來自O(shè)pencores組織。
2.資源的獲取
免費(fèi)IP Core資源通常由非盈利性組織或個(gè)人提供,有些CPLD/FPGA芯片廠家也提供部分類似資源,但因大多是針對某個(gè)特定的芯片,所以可移植性較差。本文主要關(guān)注以發(fā)展免費(fèi)開源IP核為宗旨的Opencores組織提供的資源,該組織也是免費(fèi)IP開發(fā)中最有影響的組織之一。
Opencores是國際上成立較早、比較有影響的組織,致力于LGPL(GNU Lesser Public License)協(xié)議下設(shè)計(jì)和發(fā)布IP Core,以保證設(shè)計(jì)資源能被自由免費(fèi)使用。該組織還制定和發(fā)展開放式IP Core設(shè)計(jì)標(biāo)準(zhǔn)及平臺(tái),為用戶提供關(guān)于設(shè)計(jì)資源和平臺(tái)完備的文檔支持。
該組織官方網(wǎng)站上的資源以CVS工具管理,設(shè)計(jì)人員可以直接通過CVS工具或HTTP下載該組織提供的所有資源。因其開發(fā)者會(huì)不斷更新資源,所以網(wǎng)站推薦使用CVS軟件整體下載資源 。該組織提供的資源包括算術(shù)模塊、微處理器、存儲(chǔ)器、協(xié)處理器、通信控制模塊、DSP 核、系統(tǒng)控制器、視頻控制器等電路模塊。該組織維護(hù)管理的Wishbone總線標(biāo)準(zhǔn)(由Sillivore公司開發(fā)并移交)因其具有開放性,且有豐富免費(fèi) IP Core資源支持,實(shí)際已成為免費(fèi)IP Core設(shè)計(jì)的互連標(biāo)準(zhǔn)。該組織提供的OR1000處理器已被數(shù)家公司的開發(fā)系統(tǒng)(SOPC)采用并在ASIC上實(shí)現(xiàn)。
CVS(Concurrent Versions System)是國際上最成熟的版本控制管理系統(tǒng)。版本管理工具是指在軟件開發(fā)過程中涉及到的各種軟件資源的自動(dòng)化管理工具。互連網(wǎng)上最大的開源社區(qū)SOURCEFORGE 就以它管理9萬個(gè)項(xiàng)目。該管理系統(tǒng)包括客戶端CVS和服務(wù)器端CVSNT。CVS最先只能工作于UNIX 或Linux平臺(tái),現(xiàn)已有Windows版本即WinCVS。WinCVS可從其官方網(wǎng)站下載。下載并安裝WinCVS后,就可以從WinCVS訪問 Opencores官方網(wǎng)站提供的資源,該網(wǎng)站提供相關(guān)資源所在服務(wù)器的配置信息和資源管理信息,使用者以所提供的信息,可以直接訪問所需網(wǎng)站的指定資源,執(zhí)行瀏覽、下載等操作。
完善的IP Core一般包含該電路核的源代碼文件(VHDL或者Verilog HDL)、說明文件、用于仿真的測試向量文件、仿真結(jié)果及綜合結(jié)果。以下以O(shè)pencores提供的系統(tǒng)控制器中的OCIDEC (OpenCores IDE Controller)為例,說明如何利用好該組織提供的免費(fèi)IP Core資源。
系統(tǒng)控制器廣泛應(yīng)用于現(xiàn)代微計(jì)算機(jī)系統(tǒng),控制特定電路設(shè)備與電路模塊之間能進(jìn)行正常工作,有時(shí)也稱為接口電路。Opencores官方網(wǎng)站提供的系統(tǒng)控制器有AC 97 Controller,IDE Controller,OCIDEC,Memory Controller,PCI Bridge,RS232 Sy stem Controller等。
首先用WinCVS工具下載所需要的資源(此例的Module名為ata),下載到本地后的文件目錄將有若干文件夾。其中CVS文件夾下文件由CVS版本控制系統(tǒng)自動(dòng)產(chǎn)生,使用者可不去理會(huì);bench文件夾下的文件為測試向量,用于對IP Core進(jìn)行功能仿真;doc文件夾下為說明文件;rtl文件夾下為該IP Core的源代碼,一般使用Verilog和/或VHDL語言書寫;sim和syn文件夾下分別為仿真和綜合的結(jié)果。由于應(yīng)用者可能使用各種不同的仿真和綜合軟件,為使讀者便于了解應(yīng)用的過程,本文使用較為通用的軟件Active-HDL和Synplify Pro作為處理工具。
3.資源的使用
3.1 了解IP Core的功能特性
要使一個(gè)他人所寫的IP Core為自己的設(shè)計(jì)所用,首先要對其文檔和特性做全面的了解。凡是Opencores組織提供的資源里均附有相應(yīng)IP Core的說明(specifICation),該SPEC文件一般包含變動(dòng)記錄(Revision History)、功能特性簡介(Introduction),IO及參數(shù)說明(IO Port & Parameter)、寄存器說明(Registers)、工作原理(Operation)、源代碼文件結(jié)構(gòu)(Architecture)等內(nèi)容。
本例的SPC文件表明了該IP Core是WISHBONE總線兼容的ATA/ATAPI-5主控器。
ATA(AT Attachment)接口也稱為IDE(Integrated Drive Electronic)接口,用來連接硬盤、CDROM/DVD、CF卡及PC卡等周邊設(shè)備,并且SPEC內(nèi)有詳細(xì)的IO和寄存器描述。
評論