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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的簡易微型計算機結構分析與實現

          基于FPGA的簡易微型計算機結構分析與實現

          作者: 時間:2012-10-15 來源:網絡 收藏

          2.2 多路選擇器方式

          多路選擇器方式是對總線方式的一種改進,可以實現地址總線與數據總線分離,一條指令的執(zhí)行只需4個機器節(jié)拍,極大地提高了運行速度。對圖1進行略微改變,如圖3所示。其中程序計數器模塊duolu_PC及指令寄存器模塊duolu_IR不再有三態(tài)門,對其控制也相應簡化。增加了2個二選一多路選擇器。下面介紹其工作原理。

          狀態(tài)s0(第1節(jié)拍)時,首先判斷有沒有加減法指令,若有則發(fā)出控制信號,PC值同時送入MAR。如控制字順序為ErLrS3S2 S1S0EuLm LbEaLaEi LiCpEpLp,有加法時,其控制字為“0000 1011 0010 0010”,當S3S2S1S0為0001”時做加法運算;沒有加減法時則控制字為0000 0001 0000 0010”。狀態(tài)s1時,PC值加1,將存儲器單元中的內容讀人到IR,其控制字為“1000 0000 0000 1100”,注意當給程序計數器置數時,Lp才為l,多路選擇器選通由IR米置數。狀態(tài)s2和s3與總線方式的第4和第5節(jié)拍類似。整個周期可簡化為判斷與置地址、讀數、判斷與置地址、讀數4個步驟。

          這里的多路選擇器方式僅僅是略微改變,不是指全部,只是提出一種方法。

          2.3 功能描述方式

          功能描述方式是指充分利用VHDL語言的行為描述能力,從功能描述的角度來實現簡易。除了調用ROM模塊及OUTREG、DLEDDIS、DECL7S外,其余子模塊被包含在一個整體C_SIM_CPU模塊內,每一個狀態(tài)實現一定的功能。同樣,C_SIM_CPU模塊只需4個狀態(tài)即可實現相應功能。部分程序如以下所示,不再采用控制字的方式。

          C_SIM_CPU模塊由于強調實現功能,其語句不同用戶有著不同寫法,不同的綜合軟件也會生成不同的結構,因而這里不再展開討論。

          2.4 3種方式比較

          用QuartusⅡ4.0對總線方式、多路選擇器方式及功能描述方式分別進行編程下載,都可以實現一些簡單的計算程序,在數碼管上顯示出地址及相應結果。如果采用1 Hz的clkin頻率,動態(tài)掃描頻率單獨用1 kHz時,可以清楚地看到每一過程。

          QuartusⅡ4.0對總線方式、多路選擇器方式及功能描述方式編譯,其LE(邏輯單元)分別為:232、206、143。功能描述方式資源利用最優(yōu),但結構復雜。多路選擇器方式優(yōu)于總線方式,不僅是在資源利用上,還是在執(zhí)行速度上。當然,總線方式對于模塊的擴展方面要強于多路選擇器方式。

          如果想更深入了解其內部結構,可以使用Synplifypro軟件觀察這3種方式的RTL電路及門級電路。用Synplify pro軟件進行綜合,顯示所需的LE比QuartusⅡ4.0更少。

          3 結束語

          的原理及結構一般不易理解掌握,利用來學習并構建一個簡易無疑是一個好方法,對EDA的軟硬件學習也是一個不錯的選擇,可為將來進行相關ASIC沒計打下良好的基礎。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();