新闻中心

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 下一页

评论


相关推荐

技术专区

关闭