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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Xtensa的ASIP開發(fā)流程研究

          基于Xtensa的ASIP開發(fā)流程研究

          作者:徐欣鋒 中國科學(xué)院微電子研究所專用集成電路與系統(tǒng)研究室 時(shí)間:2009-06-15 來源:電子產(chǎn)品世界 收藏

            現(xiàn)在設(shè)計(jì)可編程處理器,很少是全新定制指令,普遍采用的方式是在已有的某指令集基礎(chǔ)上進(jìn)行部分定制(或說擴(kuò)展/自定義/優(yōu)化指令)。理論上,為了研發(fā)一款式處理器,需要在已有GPP、、ASIC的基礎(chǔ)上調(diào)整數(shù)據(jù)通路(Datapath),即增加功能單元,如圖1所示的5級(jí)Pipeline處理器中添加自定義功能單元(Custom Unit),同時(shí)需要專用指令將操作數(shù)調(diào)入此自定義單元進(jìn)行數(shù)據(jù)處理。為了實(shí)現(xiàn)指令擴(kuò)展,首先需要分析應(yīng)用目標(biāo)數(shù)據(jù)處理算法的特性,從中找出那些經(jīng)常出現(xiàn)且可以綁定的基本操作包;然后從眾多實(shí)現(xiàn)方式(或大設(shè)計(jì)空間)如:(1)FLIX(VLIW或Multi-slot);(2)Vector(SIMD);(3)FUSED(Add-with-Shift-by-1)中選擇最合適的途徑[9-10]。因?yàn)樵O(shè)計(jì)者很難一次性找到最優(yōu)途徑,常常需要不同方式之間進(jìn)行比較,因此一般需要某些EDA工具幫助快速實(shí)現(xiàn)指令自定義以及分析當(dāng)前對(duì)性能的影響。圖2采用Top-down方式示意出ASIP設(shè)計(jì)的理論步驟。

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

            開發(fā)工具集

            目前,可用于ASIP及指令系統(tǒng)開發(fā)的EDA工具,包括Tensilica的開發(fā)工具集(、XCC、、XTMS、),CoWare的Processor Design,University of Campinas的ArchC等。但Tensilica 的開發(fā)工具集因功能強(qiáng)大而得到廣泛應(yīng)用。

            Tensilica針對(duì)SoC應(yīng)用而設(shè)計(jì)的Xtensa系列可配置處理器及其開發(fā)工具,提供了一種自動(dòng)化程度非常高的開發(fā)流程,該流程包括仿真C/SystemC級(jí)算法、調(diào)整處理器、向基本處理器添加專用指令、自動(dòng)生成硬件RTL代碼和與之相匹配的軟件工具鏈(如等),通過可配置處理器技術(shù)和TIE(Tensilica Instruction Extension)指令擴(kuò)展技術(shù)替代了RTL開發(fā)。和ASIP相關(guān)的具體功能如下。



          評(píng)論


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