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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式微處理器IP core設(shè)計與分析

          嵌入式微處理器IP core設(shè)計與分析

          作者: 時間:2012-02-07 來源:網(wǎng)絡(luò) 收藏

          (1)控制器模塊的狀態(tài)機實現(xiàn)
          根據(jù)本文中多數(shù)輸出要保持一個完整的時鐘周期,此時鐘周期內(nèi)輸出不能受時鐘信號的影響,所以采用Moore型有限狀態(tài)機來完成控制器模塊的。整個控制模塊的通過主狀態(tài)機和子狀態(tài)機兩步來完成。注狀態(tài)機模型如圖3所示。

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

          d.JPG


          以中斷處理子狀態(tài)機為例,對子狀態(tài)機的設(shè)計進行說明,狀態(tài)轉(zhuǎn)換圖如圖4所示。

          e.JPG


          (2)存儲器模塊的設(shè)計
          存儲器是數(shù)字系統(tǒng)的重要組成部分,數(shù)據(jù)處理單元的處理結(jié)果需要存儲,許多處理單元的初始化數(shù)據(jù)也需要存放在存儲器中。本文的存儲器結(jié)構(gòu),采用的是將程序存儲器和數(shù)據(jù)存儲器分開尋址的哈佛結(jié)構(gòu)。同時又將數(shù)據(jù)存儲器分為內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器兩部分來設(shè)計。
          (3)中斷系統(tǒng)設(shè)計
          本文中的中斷系統(tǒng)在控制通路來完成,共提供了5個中斷源,同時通過對中斷優(yōu)先級寄存器中的某位的置位或清除,可以把每個中斷源分別編程為高優(yōu)先級或低優(yōu)先級。如表1所示。

          f.JPG


          (4)定時器/計數(shù)器模塊的設(shè)計
          定時器/計數(shù)器是中重要的外圍模塊,它主要是完成作為定時器和事件計數(shù)器的功能。在作為定時器工作時,每一個機器周期使定時寄存器加1計數(shù)。在作為事件計數(shù)器工作時,是對外部輸入負跳變信號做加法計數(shù),規(guī)定在每個機器周期的某一狀態(tài)采樣此信號,在前一個周期采樣到“1”,后一個周期采樣到“0”時計數(shù)加1,而在檢測到跳變信號后的那個周期的下一個狀態(tài)時,新的計數(shù)值裝入計數(shù)寄存器。

          3 系統(tǒng)綜合、仿真驗證與性能
          在整個核的設(shè)計過程中,利用可編程邏輯器件進行電路驗證對于保證設(shè)計的正確性和投片成功十分重要。在FPGA的設(shè)計流程中包括三種基本的驗證方法:HDL、RTL級描述仿真,門級仿真和布線后的時序仿真。具體驗證流程如圖5所示。仿真的目的就是要確認設(shè)計的正確性。如果出錯的話,則通過仿真器的輸出波形,找出出錯的原因,并對原設(shè)計進行修改。

          g.JPG

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


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