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