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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 兼容51指令的8位MCU IPCORE設(shè)計(jì)

          兼容51指令的8位MCU IPCORE設(shè)計(jì)

          作者: 時(shí)間:2012-10-24 來(lái)源:網(wǎng)絡(luò) 收藏

          利用Mentor Graphics 的工具M(jìn)ODELSIM SE/對(duì)模型進(jìn)行了模擬驗(yàn)證。此處僅給出了一個(gè)簡(jiǎn)單的執(zhí)行后的模擬結(jié)果(見(jiàn)圖4)。圖中所示為ADD A RN的波形圖,可以看出,模擬結(jié)果與執(zhí)行結(jié)果一致。該模型也通過(guò)了MODELSIM的可綜合性檢查。

          圖4 指令A(yù)DD A RN 執(zhí)行結(jié)果

          5.2 時(shí)序測(cè)試

          在時(shí)序測(cè)試中我們選用了ALTERA 公司的不同系列FPGA 芯片來(lái)對(duì)次 進(jìn)行綜合,綜合后的性能如下表所示:

          從上表我們可以看出雖然不同的器件綜合后的結(jié)果不相同,但是本文的8 位 可以完全可以容納到一個(gè)相對(duì)門數(shù)為20 萬(wàn)門以上的FPGA 中,并且具有較好的時(shí)鐘頻率特性。

          6 結(jié)論

          雖然這里只了一款八位的 IP CORE,但我們所提出的架構(gòu)和模塊新思路可以推廣到16位、32位以及64位的設(shè)計(jì)中。因?yàn)椴还苁嵌嗌傥坏腗CU CORE,設(shè)計(jì)中需要重點(diǎn)考慮的架構(gòu)以及指令系統(tǒng)基本上是一致的,所不同的只是一些總線位數(shù)以及寄存器的位數(shù)而已。當(dāng)然隨著位數(shù)的增加,一些驗(yàn)證和測(cè)試的復(fù)雜度也將顯著增加,但從設(shè)計(jì)思路的角度來(lái)講,它們是一樣的。在具體的推廣中,要根據(jù)應(yīng)用領(lǐng)域的不同,對(duì)這些方法進(jìn)行適當(dāng)?shù)娜∩峄蜻m當(dāng)?shù)母倪M(jìn),以更加符合某些具體應(yīng)用領(lǐng)域的要求。

          本文創(chuàng)新點(diǎn):本文設(shè)計(jì)了一種新結(jié)構(gòu)的51指令的MCU 。設(shè)計(jì)中引入了純組合的ALU單元,增加了并行乘除法器,重新設(shè)計(jì)了外圍組件,在設(shè)計(jì)控制單元的時(shí)候,重新設(shè)計(jì)了指令的時(shí)序,并且把指令狀態(tài)機(jī)的時(shí)序和組合部分分開(kāi)設(shè)計(jì),提高了狀態(tài)機(jī)的執(zhí)行效率。從結(jié)果上看,時(shí)鐘頻率提高了很多,可由用戶根據(jù)需要選擇合適的ROM和RAM 的大小,并且完全可以把此核放在一個(gè)相對(duì)門數(shù)在20萬(wàn)門以上的FPGA的中。


          上一頁(yè) 1 2 3 下一頁(yè)

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