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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > IP模塊是方便集成的關(guān)鍵

          IP模塊是方便集成的關(guān)鍵

          ——
          作者: 時間:2005-07-22 來源: 收藏

          設(shè)有Bluetooth功能的SoC設(shè)計通常是由幾個高度復(fù)雜分系統(tǒng)組成的。每個分系統(tǒng)兼?zhèn)溆杏布M件和軟件組件兩個方面,總體設(shè)計環(huán)境中實現(xiàn)專用功能。理想地,這些分系統(tǒng)應(yīng)這樣設(shè)計,其硬件和軟件兩者邊界的定義是十分清晰的,讓各個獨立功能得到充分的驗證,便于集成到SoC設(shè)計中。這些分系統(tǒng)的商品化IP產(chǎn)品已在進行中。
          化IP結(jié)構(gòu)充分考慮了硬件/軟件設(shè)計、軟件應(yīng)用設(shè)計、以及快速原型的需要,因而便于集成和系統(tǒng)的驗證。本文以現(xiàn)成的無線SoC設(shè)計(如GSM手機)中增加一個復(fù)雜的無線功能,即Bluetooth功能,的實例來說明這一原理。Bluetooth實例充分體現(xiàn)確切地定義了硬件與軟件接口化協(xié)議的優(yōu)勢,帶來了諸多靈活性,且可優(yōu)化每個組件的成本和功率。
          SoC選擇
          目前,市場上有兩類產(chǎn)品;單片IC器件和IP內(nèi)核,它們在即插即用上是等效的。SoC設(shè)計者也有兩種選擇,或連接一個外部IC;或為了降低總系統(tǒng)成本,采用IP內(nèi)核將Bluetooth功能歸入片內(nèi)。
          Synopsys Designware Blue IQ 是一個可合成的Bluetooth內(nèi)核,通過標準4線UART(H4)接品連接至主CPU,例如ARM9嵌入式微處理器,管理上層Bluetooth協(xié)議載,另一方面,Bluetooth IP內(nèi)核通過通用 14引腳“Bluetooth RF”接口連接至RF器件,例如Silicon Wave。
          Bluetooth功能在Bluetooth IP內(nèi)核是完全自給自足的,它的內(nèi)部基帶處理器可以主CPU處下載全部實時Bluetooth 工作程序。對SoC軟件組,這類體系結(jié)構(gòu)確保Bluetooth 不會干擾與手機其余部分相關(guān)聯(lián)的任何定時關(guān)鍵的軟件,從而簡化了Bluetooth 功能的集成。
          手持式手機設(shè)計
          圖1是2.5G手機(GSH/GRPS/EDGE)的方框圖。一條AMBA總線構(gòu)成了SoC的骨架,它由高速AHB(高級硬件總線)段和低速APB(高級外設(shè)總線)段組成。連接在AMBA結(jié)構(gòu)上有蜂窩分系統(tǒng)以及 RTOS用和控制手機上各種按鍵和顯示屏用低速外設(shè)。一個GPS單元也連接在APB上,為手機提供符合新E911/E112要求的位置信息。Bluetooth分系統(tǒng)則是將Bluetooth IP內(nèi)核連接在APB UART 外設(shè)添加到SoC設(shè)計的,并由主CPU的Bluetooth 協(xié)議棧軟件進行控制。
          從硬件集成觀點,附加Bluetooth分系統(tǒng)就象手機設(shè)計增加一個UART一樣簡單。從軟件集成透視,同樣十分簡單。Bluetooth規(guī)范清晰地定義了協(xié)議棧上級與下級之間的邊界。定時關(guān)鍵軟件例程放置在棧的下層,靠近硬件并遠離應(yīng)用層。上層和下層通過確切定義的API連接的,HCI(主控制器接口)不僅定義了棧上層和下層之間的協(xié)議,而且也定義了諸如UART、RS-323和USB各種標準物理傳輸協(xié)議。這種化硬件與軟件方案給SoC設(shè)計組帶來了顯著的即插即用好處。
          組建設(shè)計組
          圖2表示典型的 SoC設(shè)計組,它由下屬三個小組組成,分別承擔不同的工作。 ASIC組負責硬件的實施,在UNIX工作平臺上使用各類工具來生成制作SoC 的最終GDSII文件。軟件組負責在SoC上運行的軟件的實施。設(shè)計原型組使用FPGA原型平臺(如ARM集成開發(fā)系統(tǒng))將硬件和軟件整合在一起,以便在最終GDSII向代工廠發(fā)布前驗證SoC的功能。
          ASIC組向設(shè)計原型組提供手機設(shè)計的FPGA文件,在此實例,包括要增加的Bluetooth分系統(tǒng)文件。ASIE組將Bluetooth IP內(nèi)核配置在手機設(shè)計用系統(tǒng)結(jié)構(gòu)(例如語音通道的數(shù)量和支持的服務(wù))中,并生成可以下載到Bluetooth開發(fā)工具(如:DesignWare BlueQ DevelopmentKit)的FPGA文件。
          在軟件開發(fā)早期階段,ASIC組將Bluetooth RTL代碼集成在ASIC設(shè)計中,進行合成和模擬,確保它能正確地連接。
          套裝工具確保設(shè)計成功
          在開發(fā)階段的早期,軟件組的絕大部分工作是在PC上完成的。如圖2所示,軟件組的工程師們將Bluetooth開發(fā)套裝工具連接對PC的串口,在合式機上精確地執(zhí)行可設(shè)置在最終SoC上的 Bluetooth協(xié)議棧的上層,以及創(chuàng)建啟用手機Bluetooth功能應(yīng)用軟件所必需的應(yīng)用配置文件。
          Mezoe Interface Express工具套件是一套實施Bluetooth配置文件的軟件,這一PC基工具可用來生成工作框架應(yīng)用軟件,任意地組合各類Bluetooth配置文件。得到的軟件奠定了最終嵌入式SoC應(yīng)用的基礎(chǔ),讓軟件工程師在PC上充分地設(shè)計嵌入式Bluetooth應(yīng)用的原型,相對SoC設(shè)計是獨立地進行的,當設(shè)計完成并糾錯后,它能重新定位到主CPU并下載到FPGA原型平臺。
          硬件手機
          在 ASIC組和軟件組在各自的環(huán)境中開發(fā)后,最終的硬件和軟件映象由原型組傳送至FPGA原型平臺,在此平臺上整合SoC總體設(shè)計。有了完全包含在原型平臺硬件的完整手機,在設(shè)計用磁帶輸出公布前,原型組使用各種傳統(tǒng)的硬件與軟件糾錯工具來完善并驗證SoC。
          設(shè)計潮流向著IP形成的高度模塊化和高度自給自及分系統(tǒng)發(fā)展,這種Bluetooth IP和軟件模塊體系結(jié)構(gòu)正處于潮流的前沿。隨著SoC設(shè)計規(guī)模的日益擴大并開始匯集性能各異又高度復(fù)雜的功能,IP公司要對集成進行全方位的預(yù)測。他們在規(guī)劃產(chǎn)品的體系結(jié)構(gòu)和封裝時,要考慮用戶易于集成,減少風險的要求,只有IP提供商充分了解ASIC設(shè)計組的要求,同時也了解軟件開發(fā)者的要求以及設(shè)計硬件和軟件兩者原型的要求,IP用戶才能真正領(lǐng)略采用商品化Bluetooth IP產(chǎn)品的好處。

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


          圖1、2.5G GSM/GPRS/EDGE手機的方框圖
          原文Figure1


          圖2、由SAIC組、軟件和原型組所組成的典型SoC 設(shè)計組。



          關(guān)鍵詞: 模塊

          評論


          相關(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); })();