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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 針對FPGA的完全可配置嵌入式32位RISC處理器

          針對FPGA的完全可配置嵌入式32位RISC處理器

          作者: 時間:2010-12-19 來源:網(wǎng)絡(luò) 收藏

            Mico32可以用于各種存儲系統(tǒng),同時使用內(nèi)嵌存儲器用于存儲指令和數(shù)據(jù)。內(nèi)嵌存儲器可以建立一個本地哈佛結(jié)構(gòu),并允許單周期訪問指令和數(shù)據(jù)。對于更大的存儲器需求,通過一個仲裁器連接到其他的存儲器模塊或接口。這可以是用的存儲器資源來實現(xiàn)的 “片上”存儲器,或接口至外部存儲器,諸如SSRAM、Flash和DRAM。處理所有訪問協(xié)議至外部存儲器的合適接口模塊是由MSB提供的。提供可選的指令和數(shù)據(jù)高速緩存,能夠成各種選擇(高速緩存的大小,高速緩存塊的大小等等)。

            通過一個開放源碼Wishbone總線接口,該連接到各種外圍元件。快速周轉(zhuǎn)周期,圖形用戶界面可以輕松和快速地創(chuàng)建平臺。除了標(biāo)準(zhǔn)存儲器控制器,這可能包括各種接口,不僅支持I2C、通用IO、定時器,UART以及SPI,還能支持更復(fù)雜的模塊,如PCI接口或TriSpeed以太網(wǎng)MAC。

            直接存儲器訪問(DMA)控制器是可用的,添加主器件(master)至Wishbone總線,以免除處理器的數(shù)據(jù)傳輸工作。這也允許有DMA功能的外設(shè)高效地直接傳輸數(shù)據(jù)到存儲系統(tǒng),從而節(jié)省了片上總線的帶寬。

            除了外圍元件和DMA,用戶可以自定義仲裁方案??偩€結(jié)構(gòu)產(chǎn)生器支持主器件(master)方和從器件(Slave)方的總線仲裁。如果能夠滿足系統(tǒng)性能的要求,主器件方總線仲裁提供了一個簡單的低成本解決方案。然而,如果在設(shè)計中有多個總線主器件和多個從器件,在任何時間主器件方總線仲裁限制與單總線主器件通信。在許多設(shè)計中,通過兩個或兩個以上的總線主器件同時與獨立的從器件進(jìn)行通信,從器件方仲裁改進(jìn)了性能。圖3展示了可用的仲裁方案?!?p align="center">仲裁方案


          圖3 仲裁方案

            用戶還可以創(chuàng)建自己的基于Wishbone總線的外設(shè)元件,然后通過整合到MSB自動連接到總線。因此,LatticeMico32的架構(gòu)提供了兩種可能性:第一,人們可以創(chuàng)建定制的元件,將它放人MSB中的可用元件列表(圖4)。第二,可以構(gòu)建出所謂的Passthru元件,可以將Wishbone接口引出到核的外面,因此,用戶可以在的其他部分添加任何邏輯塊。   

           創(chuàng)建定制的外圍組件

          圖4 創(chuàng)建定制的外圍組件

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