微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > JavaCard指令处理器的FPGA设计和实现

JavaCard指令处理器的FPGA设计和实现

时间:06-05 来源:互联网 点击:

4 JavaCard CPU测试平台的FPGA实现

4.1 外围接口和模块

测试平台是以一块xc2s200芯片为核心的简单开发板,全部设计都在此芯片内实现,包括CPU逻辑、存储单元等,板上的8位led指示灯用作I/O输出端口。

4.2 测试平台框架

测试平台框架结构如图2所示。


4.3 结果说明

设计是用Verilog语言实现的,内部使用16位数据总线,对外是8位的wishbone总线,微码ROM为4KB,外接512B的ROM和512B的RAM。

JavaCard 定义了187条指令,其中47条指令涉及32位整型数。对32位整型数的支持是可选的,本次没有实现对32位整型数操作的指令,遇到未定义指令的操作为宕机。共定义了109条微码指令。用了3273条微码指令序列完成系统初始化操作和解释JavaCard指令,每条JavaCard指令约用17条微码指令执行(主要是有些面向对象的复杂指令需要更多的微码解释)。

整个系统占用资源很少:4个Block RAM,2 052个Slice,可以在普通FPGA上实现。

测试代码下载到板上的ROM中,以24MHz时钟运行通过,验证了JavaCard指令处理的正确性,性能完全满足JavaCard虚拟机标准要求。

实现JavaCard硬件CPU是JavaCard的发展方向。因用途原因,它不需要很高的性能,而更需要成本低、资源占用少、功耗低等特性。JavaCard指令集是面向对象的复杂指令集,很难直接用硬件实现。采用微码方式实现是很好的选择,每一条微码对应一个很简单的硬件动作,硬件实现容易,且使用的资源少。用微码序列完成JavaCard指令,使硬件设计保持简洁、灵活、修改方便,有些改动只需重写微码序列而不需要更改硬件设计;添加新功能支持的也只需要修改微码,如硬件实现加密方法调用接口。JavaCard硬件CPU的实现必将促进JavaCard的应用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top