<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 系統(tǒng)控制器免費IP 核的應(yīng)用

          系統(tǒng)控制器免費IP 核的應(yīng)用

          作者:時偉 時間:2008-07-23 來源:微計算機(jī)信息 收藏

            1.前言

          本文引用地址:http://www.ex-cimer.com/article/86125.htm

            隨著業(yè)工藝的發(fā)展,單位面積的數(shù)量急劇增加。按傳統(tǒng)的方法,能滿足芯片功能和時序要求設(shè)計的工程師,產(chǎn)能約為100門/天,要完成 1200萬門的芯片設(shè)計需要500人年。設(shè)計復(fù)用(Design Reuse)技術(shù)成為解決問題的有效方法。根據(jù)業(yè)界經(jīng)驗,任何模塊如果不作任何修改就可以在10個或更多項目中復(fù)用,都應(yīng)該開發(fā)成IP ?;贗P的數(shù)字方法是有效提高設(shè)計產(chǎn)能的關(guān)鍵技術(shù)。IP核又稱IP (Intellectual Property)Core指具有獨立知識產(chǎn)權(quán)的電路核。設(shè)計復(fù)用不但適用于AS,也適用于CPLD/FPGA。在該類電路設(shè)計過程中,由于開發(fā)工具的通用性、設(shè)計語言的標(biāo)準(zhǔn)化,使得設(shè)計過程基本與器件硬件特性無關(guān),成功設(shè)計的各種功能電路模塊(core)具有很好的兼容性(Compliable)和移植性(Portable),恰當(dāng)?shù)膹?fù)用使設(shè)計效率大大提高。

            用于系統(tǒng)集成(Integration)的通常是私有的,必須向開發(fā)商購買,這些花費對資金短缺的設(shè)計團(tuán)體來說是很大的負(fù)擔(dān)。而特殊的設(shè)計及測試工具給私有的整合帶來一些困難。有時私有還可能缺乏足夠的文檔,且購買者無法得到源代碼使得整合工作更加困難。以上原因使IP core 的推廣沒有預(yù)想地那樣順利。

            作為一種嘗試,國際上一些非盈利組織(如Opencores等)和個人致力于自由(或稱免費,Open 或Free)IP Core的發(fā)展,為設(shè)計者提供遵循GNU GPL或LGPL 協(xié)議的免費開源IP core。本文以系統(tǒng)控制器(system controller)的IP核為例,介紹了免費IP Core的使用,包括資源的獲取方式和工具,文檔的應(yīng)用,測試方法等問題,希望以此引起設(shè)計人員對免費資源的關(guān)注。本文的資源來自O(shè)pencores組織。

            2.資源的獲取

            免費IP Core資源通常由非盈利性組織或個人提供,有些CPLD/FPGA芯片廠家也提供部分類似資源,但因大多是針對某個特定的芯片,所以可移植性較差。本文主要關(guān)注以發(fā)展免費開源IP核為宗旨的Opencores組織提供的資源,該組織也是免費IP開發(fā)中最有影響的組織之一。

            Opencores是國際上成立較早、比較有影響的組織,致力于LGPL(GNU Lesser Public License)協(xié)議下設(shè)計和發(fā)布IP Core,以保證設(shè)計資源能被自由免費使用。該組織還制定和發(fā)展開放式IP Core設(shè)計標(biāo)準(zhǔn)及平臺,為用戶提供關(guān)于設(shè)計資源和平臺完備的文檔支持。

            該組織官方網(wǎng)站上的資源以CVS工具管理,設(shè)計人員可以直接通過CVS工具或HTTP下載該組織提供的所有資源。因其開發(fā)者會不斷更新資源,所以網(wǎng)站推薦使用CVS軟件整體下載資源 。該組織提供的資源包括算術(shù)模塊、微處理器、存儲器、協(xié)處理器、通信控制模塊、DSP 核、系統(tǒng)控制器、視頻控制器等電路模塊。該組織維護(hù)管理的Wishbone總線標(biāo)準(zhǔn)(由Sillivore公司開發(fā)并移交)因其具有開放性,且有豐富免費 IP Core資源支持,實際已成為免費IP Core設(shè)計的互連標(biāo)準(zhǔn)。該組織提供的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和服務(wù)器端CVSNT。CVS最先只能工作于UNIX 或Linux平臺,現(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)為例,說明如何利用好該組織提供的免費IP Core資源。

            系統(tǒng)控制器廣泛應(yīng)用于現(xiàn)代微計算機(jī)系統(tǒng),控制特定電路設(shè)備與電路模塊之間能進(jìn)行正常工作,有時也稱為接口電路。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進(jìn)行功能仿真;doc文件夾下為說明文件;rtl文件夾下為該IP Core的源代碼,一般使用Verilog和/或VHDL語言書寫;sim和syn文件夾下分別為仿真和綜合的結(jié)果。由于應(yīng)用者可能使用各種不同的仿真和綜合軟件,為使讀者便于了解應(yīng)用的過程,本文使用較為通用的軟件Active-HDL和Synplify Pro作為處理工具。

            3.資源的使用

            3.1 了解IP Core的功能特性

            要使一個他人所寫的IP Core為自己的設(shè)計所用,首先要對其文檔和特性做全面的了解。凡是Opencores組織提供的資源里均附有相應(yīng)IP Core的說明(specifICation),該SPEC文件一般包含變動記錄(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和寄存器描述。

           


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();