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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于EDA技術(shù)的單片機(jī)IP核設(shè)計(jì)

          基于EDA技術(shù)的單片機(jī)IP核設(shè)計(jì)

          作者: 時(shí)間:2009-03-17 來源:網(wǎng)絡(luò) 收藏

          5.讀內(nèi)部RAM和SFR,包括讀“字節(jié)”和讀“位”。此進(jìn)程為一純組合邏輯電路。RAM和SFR任何單元的內(nèi)容的改變均可以啟動(dòng)該進(jìn)程,同時(shí)地址信號(hào)也是進(jìn)程的敏感信號(hào)之一。每一次讀的過程會(huì)讀到兩個(gè)值,一個(gè)是“字節(jié)”數(shù)據(jù),一個(gè)是“位”數(shù)據(jù),至于狀態(tài)機(jī)在指令的執(zhí)行過程中會(huì)使用“字節(jié)”數(shù)據(jù)還是“位”數(shù)據(jù),由狀態(tài)機(jī)根據(jù)當(dāng)前指令自己決定。

          6.根據(jù)狀態(tài)機(jī)發(fā)出的各種多路選擇器的值,輸出相應(yīng)的地址和數(shù)據(jù)的值。多路選擇器的作用是根據(jù)狀態(tài)機(jī)的指示,即時(shí)的輸出內(nèi)部RAM的地址、內(nèi)部RAM數(shù)據(jù)(包括“位”數(shù)據(jù)和“字節(jié)”數(shù)據(jù))、外部RAM的地址等。

          7.計(jì)算下一個(gè)指令指針的值。它根據(jù)狀態(tài)機(jī)的指示,實(shí)現(xiàn)對(duì)程序計(jì)數(shù)器值的改寫。

          control_fsm模塊的作用則很單一,就是實(shí)現(xiàn)指令系統(tǒng)。不過需要說明的是,這個(gè)狀態(tài)機(jī)在接收到來自control_mem模塊的有關(guān)中斷源有變化的信號(hào)時(shí),它會(huì)優(yōu)先發(fā)出控制指令,指示control_mem模塊改變指令指針的值,進(jìn)入中斷。沒有中斷發(fā)生的時(shí)候,它就會(huì)根據(jù)程序存儲(chǔ)器的指令來運(yùn)作。關(guān)于指令狀態(tài)機(jī)的設(shè)計(jì)細(xì)節(jié)讀者可以參閱參考文獻(xiàn)【4】。

          3.5.外圍存儲(chǔ)器模塊的實(shí)現(xiàn)

          由于對(duì)存儲(chǔ)器容量在不同的場(chǎng)合有不同的要求,且實(shí)現(xiàn)的方式多種多樣,故本設(shè)計(jì)才把整個(gè)設(shè)計(jì)分為MCS-51內(nèi)核和存儲(chǔ)器兩個(gè)大的部分。這樣做一方面可以方便裁減,使可以在更多的可編程器件上綜合;另外實(shí)現(xiàn)起來也相對(duì)容易。

          MAX+ plusⅡ中為了增加原件庫(kù)的靈活性,為一些常用的功能模塊提供了參數(shù)化的元件,這些元件的規(guī)模以及具體功能可以由用戶直接指定,如同可編程元件。這一類元件就是MAX+ plusⅡ中的LPM,即――可調(diào)參數(shù)元件。利用LPM所提供的RAM、ROM例化設(shè)計(jì)文件,設(shè)計(jì)實(shí)現(xiàn)了128字節(jié)內(nèi)部RAM和4k ROM模塊,其中ROM模塊是一個(gè)空結(jié)構(gòu)實(shí)體,在有內(nèi)部程序時(shí)換成相應(yīng)的結(jié)構(gòu)。內(nèi)部程序必須以ASCII碼形式或十六進(jìn)制形式的文件寫入,表明每個(gè)地址的初始值,用于設(shè)計(jì)的仿真和綜合。

          4.功能仿真

          下面通過幾條簡(jiǎn)單的指令,來對(duì)所設(shè)計(jì)的進(jìn)行軟件仿真。幾條仿真的指令助記符和指令的操作碼、操作數(shù)、字節(jié)數(shù)、周期數(shù)如下表1所示。仿真的結(jié)果如圖5所示。圖中rom_data_i表示的程序存儲(chǔ)器中的數(shù)據(jù);rom_adr_o是程序計(jì)數(shù)器PC的值;state_i為芯片內(nèi)部信號(hào),指示的是指令執(zhí)行的狀態(tài),“7”表示在取指令狀態(tài),其他值為執(zhí)行狀態(tài)。acc_o是內(nèi)部寄存器ACC的值。從圖中可以清楚的看到各信號(hào)的變化。

          表1 仿真指令表

          指令助記符

          操作碼

          操作數(shù)

          指令字節(jié)

          指令周期

          AJMP FFH

          01H

          FFH

          2

          2

          CPL

          F4H

          /

          1

          1

          MOV A,#23H

          74H

          23H

          2

          2

          MOV R0,A

          F8H

          /

          1

          1

          MOV23H,#05H

          75H

          23H,5H

          3

          3

          ADDC A, @R0

          36H

          /

          1

          2


          圖4 8051-Core軟件仿真圖

          5 結(jié)束語(yǔ)

          嵌入式微處理器具有廣泛的應(yīng)用前景,特別是隨著信息技術(shù)的發(fā)展,信息安全性和可靠性正逐步受到人們的重視。在FPGA的可用門和性能對(duì)高檔功能的支持中,的價(jià)值正在充分展現(xiàn)。IP核已成為有效地進(jìn)行大規(guī)模設(shè)計(jì)和縮短設(shè)計(jì)時(shí)間的基礎(chǔ)。因此,積極開發(fā)具有自主知識(shí)產(chǎn)權(quán)的IP模塊,在SoC領(lǐng)域占有一席之地,即符合我國(guó)國(guó)情,有具有重要意義。本課題設(shè)計(jì)出的MSC-51系列IP核不僅通過了軟件仿真,而且其功能已經(jīng)通過了硬件測(cè)試,所以其不僅是一個(gè)成熟的軟IP核,也是一個(gè)成熟的硬IP核。

          本項(xiàng)目經(jīng)濟(jì)效益:本IP核主要應(yīng)用于SoC中,向相關(guān)有償機(jī)構(gòu)購(gòu)買類似IP核一次的使用價(jià)格在3美元左右,但是附帶開發(fā)工具在300美元左右,本IP核完全利用免費(fèi)版本的MAX+plusⅡ進(jìn)行設(shè)計(jì)以及后期使用,因此若本IP核應(yīng)用3000次,那么項(xiàng)目的經(jīng)濟(jì)效益在8萬(wàn)元左右。

          本文作者創(chuàng)新點(diǎn):本次要設(shè)計(jì)的兼容MCS-51IP核有以下特色:1.完全同步的設(shè)計(jì),系統(tǒng)在統(tǒng)一的時(shí)鐘下工作。2.指令集與工業(yè)標(biāo)準(zhǔn)的MCS-51系列完全兼容。3.指令周期較原MCS-51系列大幅提高,所有指令都可在1到4個(gè)時(shí)鐘周期內(nèi)完成,時(shí)鐘周期只與所選用的FPGA/CPLD芯片的延時(shí)有關(guān),而與設(shè)計(jì)無關(guān)。4.沒有復(fù)用的I/O口。5.IP核升級(jí)方便,對(duì)于不需要的部件可以任意裁減。


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

          關(guān)鍵詞: EDA 單片機(jī) IP核

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