论文部分内容阅读
近几年,MCU(Micro Controller Unit)微控制单元经过不断地研究和发展,历经4位,8位,到现在的16位和32位,甚至64位。产品的成熟度越来越高,应用也越来越广,对于芯片的再次开发也变得越来越常见,但是MCU不能进行二次开发,需要借助一定的平台对MCU重复开发,在线仿真器的出现会带来很多方便。从在线仿真器的仿真技术来看,国内外市场上的在线仿真器产品采用的技术主要可以分为Bondout仿真技术、HOOKS仿真技术、嵌入式仿真技术和商用CPU仿真技术。还有一种基于FPGA的通用仿真技术,虽然并没有统一的产品但是在自主开发当中仍占有一定的比例。目前,通用仿真器技术仍然没有详细的实现方案。本文基于通用仿真器框架详细设计了各个子模块,经过FPGA进行了验证。首先设计了USB通信接口程序,并且根据在线仿真器的断点,单步,停止,运行等命令设计了具有校验功能的数据流协议,满足了电脑和FPGA的通信需求。其次,采用自顶向下和自底向上相结合的模块化设计方法,设计出了处理交互数据流的调试模块。调试模块是在线仿真器硬件部分最重要的模块,经过一定的优化处理生成了调试模块的IP软核。在线仿真器硬件另一重要部分为MCU软核程序,网表文件可以从virtuoso中经过验证的原理图中提取,提取出的网表文件经过一定的修改之后才可以在FPGA平台上实现仿真。最后,将USB接口程序、调试模块程序、MCU软核网表以及FPGA自己生成的RAM、ROM下载到FPGA中之后,整个在线仿真器的硬件部分在一块FPGA芯片中实现。连通电脑端软件之后,实现了整个在线仿真系统。通过电脑端发送断点、单步、停止、运行等命令,硬件部分可以得到相应控制,将在线仿真器对应IO口连接到LED灯上,编译一段简单的汇编语言程序之后,通过观察LED灯的状态可以观察到IO口的状态变化。同时,接入示波器可以观察IO口的波形。最终,在线仿真器在Xilinx Spartan系列XC3S700AN开发板套件中进行了调试验证,实现了通用在线仿真系统。