发明内容
本发明的目的在于不降低系统性能的情况下,利用FPGA(现场
可编程门阵列)技术,研制出性能良好的51核IC卡硬件仿真器。本
发明利用FPGA技术,把IP(仿真控制电路的网表文件)从PC端按照
FPGA配置时序通过并口下载到FPGA中,并且在FPGA启动之后通
过FPGA将程序代码和断点信息按照时序写入各个外部存储单元。,
并且实现了等功能,实现了51核IC卡的仿真功能。因此本发明主要
由PC,FPGA以及外围器件组成。PC完成界面的显示以及仿真的控
制,通过并口和FPGA连接。FPGA用于完成硬件仿真。外围器件实
现下载程序和断点信息的存储,以及EEPROM的模拟。
下载到FPGA中的IP包含3个部分:
1.8031IC卡IP:执行所有的指令
2.仿真功能的电路IP:实现各种模式下的run,step,stop,
reset,breakpoint的功能
3.EEPROM的适配电路IP:完成EEPROM解码电路后出来
信号到非易失性RAM信号的转换
以上3个IP都是用verilog以及vhdl语言完成,并且有机的结合
在一起,形成了一个有仿真功能的电路IP。
本发明中FPGA完成程序下载,断点设置,MMU,而外围电路
作代码存储,断点设置用途。
本发明的EEPROM的适配电路使外接非易失性RAM可替代
EEPROM进行工作。
本发明进一步的实现方案叙述如下:
仿真器系统的设计是利用对RST控制、外部中断,监控程式等技
术实现全速、跟踪、断点、单步、暂停等仿真功能,整个仿真器系统
可以分为两大模块:
底层控制硬件:
a.硬件系统
b.监控程式
PC界面
a.用户界面
b.并口通讯线程
硬件系统:
底层仿真控制硬件系统的组成包括:FPGA、外围存储单元(ROM、
RAM、非易失性RAM以及断点RAM)、与PC接口电路、电源电路。
硬件系统采用10V单电源供电,FPGA配置端口通过接口电路与
PC机并口连接,在PC的控制下实现FPGA配置的完成。实现与仿真
硬件系统之间的双向数据传输,完成PC端对FPGA的配置、将程序代
码及调试信息下载到相应的外围ROM和RAM中,其中ROM存储下载的
程序代码,用于仿真51核IC卡内部的程序存储器、RAM用于仿真51
核IC卡内部的RAM、非易失性RAM用于仿真51核IC卡内部的EEPROM、
断点RAM用于保存设置的断点信息(包括ROM的断点,EEPROM的断点,
XRAM的断点)。
当FPGA进入正常工作状态后,嵌于其内的51核CPU将执行存储
于ROM、RAM或EEPROM中的程序,直到遇到断点或被用户暂停,系统
会产生一个外部中断1的下降沿的信号,IC卡仿真器进入监控程序,
与PC机端的用户程序进行交互,将数据上传并接受控制命令,从而
实现了全速、跟踪以及单步等功能。
监控程序:
监控程序运行于仿真器电路板上的单片机中,它的功能是向通讯
线程上传特殊功能寄存器、内部RAM、外部RAM以及EEPROM数
据,接收界面线程下达的各种数据及命令然后执行相应的操作。其流
程如图5所示。
监控程序的功能虽然很简单,但是它还必须满足尽量少的占用单
片机中用户的可用资源的要求,这些资源一般是指堆栈,内存,输入
输出端口等等。考虑到项目的特殊性,对于IC卡仿真器用户来说,
大部分输入输出端口是不可用的,因此端口资源对我们的项目是充足
的;由于仿真器是利用单片机中断的原理实现各种调试功能的,因此
占用两个字节的堆栈是不可避免的。
用户界面(PC):
1.支持源文件编辑功能,如新建文件(filenew),编写(write),阅读(read),
保存(save,saveas),各种查找(find),替换(replace),撤销(undo),重做
(redo),语法变色(synax coloring)。
2.支持源文件设置断点(setbreapoint),取消断点(remove breakpoint),高
亮度显示错误或警告行,高亮度显示当前PC所在行,运行时检查断点
的合法性。
3.动态及时的显示寄存器,内部存储器,外部存储器,ROM,EE
的值,并且对那些运行前后发生变化的值,以红色显示。
4.内置编译,就是用户在编辑完源文件后可以在当前环境下就对源文
件进行编译,程序需要对编译信息给出输出,以指导用户是否发声错
误,错误在那一行,并且双击相关的错误信息,程序将自动定位到相
应源文件的对应行。
5.内置调试,在用户通过编译程序生成hex文件后,用户可以在当前
环境下,直接启动单步调试,运行到光标,全速运行,设置断点(包
括编辑时刻和运行时刻),以及程序停止后,对当前值的显示与修改。
并口通讯线程:
运行于PC机的仿真器用户界面进程(下简称界面线程)需要主
动完成以下与硬件有关的功能:FPGA的配置、单片机程序代码的下
载、调试用户应用程序时各种控制命令的下发、断点信息的设置与清
除、特殊功能寄存器内容读入与修改以及内部外部存储器(包括内部
RAM,外部RAM,EEPROM)内容的读入与修改;运行于仿真器电
路板端单片机内的监控程序(下简称监控程序)需要主动完成在到达
断点后通知PC机端的界面线程,完成数据上传。以上这些功能都通
过PC机的并行端口作为通讯中介来完成。其功能结构如图6。
本发明在不降低系统性能的条件下,利用FPGA技术,把IP以及
控制电路集成再FPGA内部,通过外围电路、电源以及PC,方便的
完成了51核IC卡的仿真开发。本发明电路间接明了,实施方便,成
本不高,效果良好。