一种基于fpga的仿真器的制作方法

文档序号:6582237阅读:242来源:国知局
专利名称:一种基于fpga的仿真器的制作方法
技术领域
本发明涉及仿真器,具体涉及一种基于FPGA的仿真器。
背景技术
当前,基于MCU(微控制器)开发的产品在诸如计算器、遥控器、语音编码、家电控 制及各类玩具电路消费电子领域里已经占据绝大部分。产品的生命周期长,市场前景广阔。 但是,微控制器的开发和应用离不开基于该微控制器的仿真器。在计算器领域中,微控制器CS6088与一般的通用MCU相比,它具有结构简单,成本 低廉,功耗低等特点。CS6088是一款专用于计算器开发的伪指令MCU,程序存储器地址宽度 12bit,有效地址空间为OxOOO-OxBFF,它没有通常MCU都有的自动递增的程序指针寄存器, 而是通过每条指令中的操作数给出下条指令的地址信息,共有6种寻址方式(CS6088的寻 址方式是指指令地址信息的模式,而非通常MCU中对数据RAM的寻址)a)全地址直接寻址该寻址方式12bit地址全部由指令操作数给出。b)全地址间接寻址该寻址方式的AD<9:6>这4位地址由寄存器数据给出,其余8 位地址在指令操作数中。c)高位固定全地址寻址该寻址方式的AD<9:6>4位地址固定为全1,由指令操作 数给出其余Sbit地址。d)页内地址寻址该寻址方式由指令操作数给出低6bit地址,高6bit地址不变。 这是最常用的寻址方式。e)按键扫描寻址该寻址方式用于WTK指令,高6bit地址不变,低6bit地址由指 令操作数和按键扫描结果共同决定。f)条件跳转寻址该寻址方式用于条件跳转指令,高6bit地址不变,低6bit地址 由指令操作数和和累加器输出的c/ζ标志共同决定(其中减法指令c/ζ同时判断,加法指 令只判断C)。由此可以看到,CS6088的每条指令实际上都带跳转功能,但除了全地址直接寻址 模式,指令中并不直接给出所有地址数据,每种寻址模式对地址都有不同的限制,指令不能 象通常MCU指令那样简单的顺序排放,给编程工作带来很大困难,地址的规划分配繁琐而 易错,程序的更改牵一发动全身,极为不便。目前没有现成的开发工具可以用于该芯片软件 的开发,因此设计一款CS6088专用仿真工具成为当务之急。

发明内容
本发明要解决的技术问题是提供一种基于FPGA的仿真器,通过FPGA芯片来模拟 Bond out MCU并实现微控制芯片CS6088的仿真功能。该仿真器继承了真实性的优点而又 避免了流片风险,缩短了开发周期,降低了开发成本。为解决上述技术问题,本发明提供的一种基于FPGA的仿真器,所述仿真器耦接于 计算机装置与用户接口,所述仿真器包括控制单元,设置在FPGA中,通过USB通信接收所述计算机装置传来的第一控制信号,并根据所述第一控制信号产生并输出第二控制信号; 存储单元,耦接至所述控制单元,根据所述第二控制信号存储用户程序;以及仿真单元,设 置在FPGA中,耦接至所述控制单元,用以接收所述第二控制信号,根据所述第二控制信号 和所述用户接口的输入数据产生相对应的仿真结果,并将所述仿真结果输出至所述用户接进一步地,所述仿真单元装有芯片CS6088的仿真网表,实现针对芯片CS6088的仿 真功能。所述仿真单元具有实现FIFO的功能结构。所述存储单元包括Flash单元和SRAM 单元两部分。当所述仿真器处于仿真阶段时,所述第二控制信号控制所述用户程序存入所 述SRAM单元;当用户希望所述仿真器进行脱机运行时,所述第二控制信号控制所述用户程 序存入所述Flash单元。当所述控制单元检测到与所述计算机装置分离时,所述仿真器复 位并运行所述Flash中的所述用户程序;当所述控制单元检测到与所述计算机装置正常连 接时,结束脱机运行。所述用户接口包括键盘和IXD。所述输入数据由用户控制键盘的输入 产生。所述LCD接收并显示所述仿真结果。本发明的一种基于FPGA的仿真器有以下有益的效果1)使用USB通信,速度更快;2) 一般通用MCU的I/O端口超过50个时,需要在仿真器设计中需要加入端口扩 展电路,本仿真器的控制芯片使用FPGA设计,针对仿真器控制的特点,设计了 100多个控制 I/O端口,无需另外加端口扩展,外围电路极其简单,增加了电路工作可靠性;3)本仿真平台使用FPGA芯片来模拟Bond out MCU,继承了真实性的优点而又避 免了流片风险,缩短了开发周期,降低了开发成本;4)针对CS6088指令特点开发的编译器,实现灵活的地址分配,简化用户编程工作。


图1本实施例中提供的一种基于FPGA的仿真器的示意图。图2本实施例中提供的一种基于FPGA的仿真器的硬件功能结构。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。本实施例提供了一种基于FPGA的仿真器,如图1所示,包括计算机装置1、仿真器 2、存储单元3和用户接口 4。仿真器2包括控制单元21,设置在FPGA中,通过USB通信接 收计算机装置1传来的第一控制信号,并根据第一控制信号产生并输出第二控制信号;存 储单元3,耦接至控制单元21,根据第二控制信号存储用户程序;以及仿真单元22,设置在 FPGA中,耦接至控制单元21,用以接收控制单元21传来的第二控制信号,根据第二控制信 号和用户接口 4的输入数据产生相对应的仿真结果,并将仿真结果输出至用户接口 4。本实施例的仿真器属于bond-out MCU,所谓的bond-out MCU是指芯片设计公司为 实现其商用MCU的仿真功能,将内部的数据,地址及控制总线连接到芯片封装的管脚上,使 得外部仿真逻辑可以监视和控制MCU内部的状态。bond-out MCU内部具有特殊的配合仿真的时序。当进入仿真状态后,可以冻结内部的时序运行,可以查询、修改在静止时单片机内 部的资源。进一步地,本实施例的仿真器基于FPGA开发出来的,该FPGA的开发涉及到应用软 件和底层软件以及硬件的开发,对于应用软件,采用VC平台全面正向开发,整个软件最终 以安装版的方式向用户提供,用户可以在此软件上,编辑、编译自己的源程序。此外,针对 CS6088芯片特点,自定义了 ADDR伪指令以便分支程序编写,编译软件对用户程序经过六次 遍历处理,根据地址定义伪指令和指令寻址方式自动为用户程序分配地址,大大简化了编 程工作。如图2所示,本实施例所提供的仿真器2的硬件由控制板和仿真板两块板组成,用 两个双排针插座连接,外观简捷。仿真板的核心是一片装入CS6088仿真网表的FPGA,除了 实现CS6088功能还增加了 FIFO设计,用于仿真过程中的程序跟踪功能;控制板的核心也是 一片FPGA,装载为仿真控制专门开发的MCU软核,其作用相当于MCU芯片,使用FPGA的好处 是控制管脚多,因为仿真芯片的控制管脚(包括地址、数据总线以及内部控制信号引脚)多 达上百个,如果使用普通MCU,势必要增加端口扩展电路,增加电路复杂度和开发成本。除了 FPGA,主控板上还有两片16位并行SRAM用于装载用户程序和设置断点。为实现脱机运行 功能,主控板上还安装了两片16位并行FLASH,用户程序仿真通过后可以直接写入FLASH, 然后脱离PC控制独立运行,进行最终的用户DEMO板系统验证。与一般单片机仿真器相比, 本实施例所提供的仿真器2具有针对功能全面的应用软件支持,硬件上使用FPGA作为控制 芯片和仿真芯片,支持无限制断点设置,IK程序跟踪功能,和脱机运行模式,仿真过程不会 占用任何资源,仿真全面真实。本实施例所提供的一种基于FPGA的仿真器分为软件部分和硬件部分,其具体包 括1)软件部分整个软件的运行环境为WIND0WS9X或以上的操作系统,软件的开发采用Visual C++6.0集成开发环境。采用多文档多视图框架结构,主要实现的功能分编译和仿真两部分。实现编译功能的函数是BuildO,它对用户程序进行六次遍历处理,最后生成目 标代码和列表文件,在此过程中它调用了仿真器软件中的应用程序函数LineAnalyse ()、 CompileLineO、WriteLstFileO、WriteObjFileO 等子函数,其中 LineAnalyseO 为行分 析函数,第一次遍历用户程序时调用,主要功能是去除空格、注释等无用信息,提取地址标 识、指令助记符、操作数;第二次遍历时检查地址标号合法性;第三次遍历时处理EQU伪指 令;第四次遍历时处理ADDR伪指令,在ADDR定义的分支程序前插入地址锁定伪指令;第五 次遍历时进行地址分配并调用CompileLine (),即行编译函数,检测每行用户程序的指令助 记符,根据指令定义进行译码;第六次遍历再次调用CompileLine (),专门处理跳转指令的 编译。在第五次和第六次遍历时还将调用WriteLstFileO和WriteOb jFile ()函数将编译 过程中获得的地址、行数、机器码等信息写入列表文件和目标代码文件。在编译函数中地址分配功能是专门针对CS6088指令特色而实现的,与普通MCU不 同,CS6088的程序指针没有自增功能,每条指令都需要指定下条指令地址,而条件跳转指令 对地址还有特殊要求,如果完全由用户手工设置,不仅繁琐,编写的程序可读性也很差。为 此,编译函数增加地址分配功能,用户除了在必要情况下用地址锁定伪指令指定指令地址外,可以不必考虑地址安排,按逻辑顺序编写程序。地址分配的实现过程是先分配地址锁定 伪指令指定的指令地址,然后分配条件跳转指令以及跳转目标指令的地址,最后分配剩余 指令地址,一般按递增方式分配,同时查验页溢出错误。软件的仿真功能通过一系列菜单响应函数完成,仿真功能菜单主要包括复位、单 步、连续运行、自由运行、停止运行、运行到光标、断点设置、显示程序跟踪信息,其响应函数 根据通讯协议将命令和参数传递给USB通讯子函数,从PC机的USB端口发送给仿真器控制 板。除此之外,界面上显示的寄存器数据的更改和更新也同样通过调用USB通讯子函数进 行。2)硬件部分如图2的原理框图,本实施例所提供的仿真器2由两块PCB板组成,包括控制板和 仿真板,控制板集成了存储单元3、控制单元21,用于USB通信的USB接口和USB驱动模块 和用于控制时钟信号的有源晶振。控制单元21,设置在FPGA中,其内部功能结构包括有8 微控制器、程序空间、数据空间、I/O端口、数据/地址总线、定时器1、定时器2以及中断单 元。存储单元3包括Flash单元31和SRAM单元32。仿真板集成了仿真单元22和用户接 口 4,仿真单元的内部功能结构包括时钟控制、CS6088内核、FIFO、数据空间、数据/地址总 线、键盘扫描驱动和LCD驱动。用户接口 4包括键盘和LCD显示装置。该仿真器工作过程 如下a.进入调试控制单元21内部的8位微控制器通过内部数据/地址总线访问程序空间和数据 空间,运行控制程序;当连接计算机装置1的USB总线时,与USB驱动模块连接的I/O端口 发出中断请求到中断模块,8位微控制器处理中断,与计算机装置1建立通信,定时器2控制 通信过程中的延时。当控制单元21接收到联机命令,向计算机装置1返回仿真器2的型号 信息;定时器1输出170KHZ方波信号作为仿真芯片主时钟输出到仿真单元22时钟控制模 块,I/O端口输出时钟控制信号高电平到仿真单元22时钟控制模块,使时钟控制模块停止 时钟输出,CS6088CPU内核处于运行停止状态,仿真器2进入调试。b.下载用户程序控制单元21从USB端口接收到下载命令,根据命令参数设置存储单元3片选、读 写控制线,选择FLASH单元31或SRAM单元32,在仿真阶段将用户程序写入SRAM单元32, 当用户程序已调试通过,希望进行脱机运行验证时,可将用户程序写入FLASH单元31。控 制单元21将USB端口接收到的用户程序数据从程序数据/地址总线输出,写入FLASH单元 31或SRAM单元32。c.调试用户程序当控制单元21通过USB端口从计算机装置1接收到复位命令,从I/O端口输出时 钟控制信号低电平使能仿真单元22内部时钟,同时输出复位信号,复位完成后输出时钟控 制信号高电平,停止仿真单元22运行。当控制单元21通过USB端口从计算机装置1接收到运行命令,从I/O端口输出时 钟控制信号低电平使能仿真单元22内部时钟,设置存储单元3片选、控制信号,选择SRAM 作为程序存储器输出;CS6088CPU内核通过程序数据/地址总线访问SRAM单元32,运行用 户程序,在运行用户程序过程中,用户可通过用户接口 4输入按键、观察LCD显示输出。同时,控制单元21输出FIFO控制信号使能FIFO写操作,在仿真单元22运行期间,将程序地 址存入FIFO。 当控制单元21通过USB端口从计算机装置1接收到暂停运行命令,输出时钟控制 信号高电平停止仿真芯片内部时钟,CS6088CPU内核停止运行。当控制单元21接收到寄存器读写命令,通过数据/地址总线直接访问仿真单元22 的数据空间,完成读写操作。当控制单元21接收到读取程序跟踪信息命令,输出FIFO控制信号使能FIFO读操 作,将仿真单元运行期间存入FIFO的程序地址读出,最多可以回溯10M条指令地址。d.脱机运行首先必须保证用户程序已写入FLASH单元31,然后才可以进入脱机运行。当控制单元21检测到USB端口从计算机装置1脱离,自动进入脱机运行状态,设 置存储单元3片选、控制信号,选择FLASH作为程序存储器输出,输出时钟控制信号低电平 使能仿真单元22时钟,设置复位信号,置低40ms后再置高。仿真单元22开始脱机运行 FLASH中的用户程序。当仿真器2与USB重新连接,控制单元21检测到正常连接信号,输出时钟控制信 号高电平,停止仿真单元22运行,结束脱机运行。在不偏离本发明的精神和范围的情况下还可以构成许多有很大差别的实施例。应 当理解,除了如所附的权利要求所限定的,本发明不限于在说明书中所述的具体实施例。
权利要求
1.一种基于FPGA的仿真器,所述仿真器耦接于计算机装置与用户接口,其特征在于, 所述仿真器包括控制单元,设置在FPGA中,通过USB通信接收所述计算机装置传来的第一控制信号,并 根据所述第一控制信号产生并输出第二控制信号;存储单元,耦接至所述控制单元,根据所述第二控制信号存储用户程序;以及仿真单元,设置在FPGA中,耦接至所述控制单元,用以接收所述第二控制信号,根据所 述第二控制信号和所述用户接口的输入数据产生相对应的仿真结果,并将所述仿真结果输 出至所述用户接口。
2.如权利要求1所述的一种基于FPGA的仿真器,其特征在于,所述仿真单元装有芯片 CS6088的仿真网表,实现针对芯片CS6088的仿真功能。
3.如权利要求1或2所述的一种基于FPGA的仿真器,其特征在于,所述仿真单元具有 实现FIFO的功能结构。
4.如权利要求1所述的一种基于FPGA的仿真器,其特征在于,所述存储单元包括 Flash单元和SRAM单元两部分。
5.如权利要求1所述的一种基于FPGA的仿真器,其特征在于,所述用户接口包括键盘 和 LCD。
6.如权利要求2所述的一种基于FPGA的仿真器,其特征在于,当所述仿真器处于仿真 阶段时,所述第二控制信号控制所述用户程序存入所述SRAM单元;当用户希望所述仿真器 进行脱机运行时,所述第二控制信号控制所述用户程序存入所述Flash单元。
7.如权利要求5所述的一种基于FPGA的仿真器,其特征在于,当所述控制单元检测到 与所述计算机装置分离时,所述仿真器复位并运行所述Flash中的所述用户程序;当所述 控制单元检测到与所述计算机装置正常连接时,结束脱机运行。
8.如权利要求5所述的一种基于FPGA的仿真器,其特征在于,所述输入数据由用户控 制键盘的输入产生。
9.如权利要求5所述的一种基于FPGA的仿真器,其特征在于,所述LCD接收并显示所 述仿真结果。
全文摘要
本发明提供了一种基于FPGA的仿真器,该仿真器耦接于计算机装置与用户接口,所述仿真器包括控制单元,设置在FPGA中,通过USB通信接收计算机装置传来的第一控制信号,并根据第一控制信号产生并输出第二控制信号;存储单元,耦接至控制单元,根据第二控制信号存储用户程序;以及仿真单元,设置在FPGA中,耦接至控制单元,用以接收控制单元传来的第二控制信号,根据第二控制信号和用户接口的输入数据产生相对应的仿真结果,并将仿真结果输出至所述用户接口。该仿真器不但继承了真实性的优点而又避免了流片风险,而且缩短了开发周期,降低了开发成本。
文档编号G06F17/50GK102096725SQ20091020030
公开日2011年6月15日 申请日期2009年12月11日 优先权日2009年12月11日
发明者顾晓红 申请人:无锡华润矽科微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1