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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > JavaCard指令處理器的FPGA設(shè)計(jì)

          JavaCard指令處理器的FPGA設(shè)計(jì)

          作者: 時(shí)間:2012-01-30 來源:網(wǎng)絡(luò) 收藏

            3.5 Verilog表述的微碼核心邏輯

            下面是主控邏輯框架代碼的一部分。本段代碼體現(xiàn)了如何處理數(shù)據(jù)型微碼和型微碼,可以在YOUR_MICRO_CODE_INSTR處添加需要的微碼以及對應(yīng)的操作。

            always@(posedge clk or posedge reset)

            begin

            if(reset)

            begin

            new_mcp[15:0]=init_ADDR;//初始化微碼

            //序列首地址

            {pop,push,alu_calc,memrd,memwr,load_mcp,hold_mcp,remap_mcp}=8′b00000000;

            H_READED=1′b0;//表示是否讀過了一次

            //數(shù)據(jù)型微碼

            state[1:0]=EXEC_MC;

            end

            else

            begin

            case(state[1:0])

            EXEC_MC:

            begin//首先根據(jù)mcr的位15判斷是數(shù)據(jù)型

            //微碼還是型微碼

            if(mcr[15])//mcr中存放微碼,位15==1表示

            //此微碼是數(shù)據(jù)型,先保存高8位,再低8位

            begin

            if(H_READED==1′b0)//首個(gè)數(shù)據(jù)型

            //微碼,數(shù)據(jù)保存到高8位

            begin

            {mcdata[15:8]}=mcr[7:0];

            //mcdata是內(nèi)部數(shù)據(jù)寄存器

            H_READED=1′b1;

            end

            else

            begin

            {mcdata[7:0]}=mcr[7:0];

            H_READED=1′b0;

            end

            end

            else//表示此微碼是指令,根據(jù)后面的15位

            //分支操作

            begin

            case(mcr[15:0])

            YOUR_MICRO_CODE_INSTR://

            begin

            ……//定義的微碼操作

            end

            ……//其他微碼指令處理

            endcase

            end//end for mcr為指令處理

            end

            HLT://state[1:0]=HLT,宕機(jī)狀態(tài)處理

            …

            endcase//end for state[1:0]

            end//end for reset

            end//end for always@(posedge clk or posedge reset)

            系統(tǒng)采用微碼實(shí)現(xiàn),用微碼序列控制讀取Java指令、存儲數(shù)據(jù),實(shí)現(xiàn)Java指令。指令被解釋執(zhí)行的過程如下:

            讀取 PC處的指令至指令寄存器Instr,發(fā)出remap信號給微碼指針調(diào)整模塊MCPC,微碼指針寄存器MCP得到新的JavaCard指令對應(yīng)的微碼序列首地址,MCP的變化使微碼指令寄存器MCR變?yōu)樵撐⒋a序列的首個(gè)微碼指令,再由微碼執(zhí)行此MCR中的微碼。

          4 JavaCard CPU測試平臺的實(shí)現(xiàn)

            4.1 外圍接口和模塊

            測試平臺是以一塊xc2s200芯片為核心的簡單開發(fā)板,全部都在此芯片內(nèi)實(shí)現(xiàn),包括CPU邏輯、存儲單元等,板上的8位led指示燈用作I/O輸出端口。

            4.2 測試平臺框架

            測試平臺框架結(jié)構(gòu)如圖2所示。

            

            4.3 結(jié)果說明

            是用Verilog語言實(shí)現(xiàn)的,內(nèi)部使用16位數(shù)據(jù)總線,對外是8位的wishbone總線,微碼ROM為4KB,外接512B的ROM和512B的RAM。


          上一頁 1 2 下一頁

          評論


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