新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > JavaCard指令處理器的FPGA設計

        JavaCard指令處理器的FPGA設計

        作者: 時間:2012-01-30 來源:網絡 收藏

          3.5 Verilog表述的微碼核心邏輯

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

          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;//表示是否讀過了一次

          //數據型微碼

          state[1:0]=EXEC_MC;

          end

          else

          begin

          case(state[1:0])

          EXEC_MC:

          begin//首先根據mcr的位15判斷是數據型

          //微碼還是型微碼

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

          //此微碼是數據型,先保存高8位,再低8位

          begin

          if(H_READED==1′b0)//首個數據型

          //微碼,數據保存到高8位

          begin

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

          //mcdata是內部數據寄存器

          H_READED=1′b1;

          end

          else

          begin

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

          H_READED=1′b0;

          end

          end

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

          //分支操作

          begin

          case(mcr[15:0])

          YOUR_MICRO_CODE_INSTR://

          begin

          ……//定義的微碼操作

          end

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

          endcase

          end//end for mcr為指令處理

          end

          HLT://state[1:0]=HLT,宕機狀態處理

          …

          endcase//end for state[1:0]

          end//end for reset

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

          系統采用微碼實現,用微碼序列控制讀取Java指令、存儲數據,實現Java指令。指令被解釋執行的過程如下:

          讀取 PC處的指令至指令寄存器Instr,發出remap信號給微碼指針調整模塊MCPC,微碼指針寄存器MCP得到新的JavaCard指令對應的微碼序列首地址,MCP的變化使微碼指令寄存器MCR變為該微碼序列的首個微碼指令,再由微碼執行此MCR中的微碼。

        4 JavaCard CPU測試平臺的實現

          4.1 外圍接口和模塊

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

          4.2 測試平臺框架

          測試平臺框架結構如圖2所示。

          

          4.3 結果說明

          是用Verilog語言實現的,內部使用16位數據總線,對外是8位的wishbone總線,微碼ROM為4KB,外接512B的ROM和512B的RAM。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 固安县| 柏乡县| 兰考县| 汪清县| 杭锦旗| 眉山市| 定襄县| 和静县| 滁州市| 怀集县| 尼勒克县| 阳山县| 衡山县| 盐津县| 井陉县| 沭阳县| 开化县| 龙游县| 饶阳县| 思南县| 崇仁县| 五大连池市| 淮北市| 吴堡县| 新余市| 静海县| 绥宁县| 大宁县| 沁阳市| 紫云| 晴隆县| 温泉县| 项城市| 景泰县| 宁津县| 临夏市| 化德县| 宜章县| 泸水县| 楚雄市| 大城县|