CN105022869B - 一种快速可重构的mcu仿真方法 - Google Patents
一种快速可重构的mcu仿真方法 Download PDFInfo
- Publication number
- CN105022869B CN105022869B CN201510386056.XA CN201510386056A CN105022869B CN 105022869 B CN105022869 B CN 105022869B CN 201510386056 A CN201510386056 A CN 201510386056A CN 105022869 B CN105022869 B CN 105022869B
- Authority
- CN
- China
- Prior art keywords
- configuration
- fpga
- cpld
- rbf
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种快速可重构的MCU仿真方法,其特征在于该方法采用被动配置接口作为FPGA的配置模式,USB口作为上位机编译调试器与下位机仿真器主板的通信接口,FIFO总线接口作为上位机编译调试器与FPGA和配置控制器的总线复用接口,CPLD器件作为配置控制器,配置步骤包括:接收命令行参数、读取RBF文件版本、读取仿真器版本判断型号是否一致、版本是否一致。本发明通过对上位机配置方式等的改进,实现了快速重构,这样用户在使用IDE调试程序时,每次在打开IDE和切换型号的过程中,都不用等待仿真器设备就绪,有效的提高了用户的工作效率。
Description
技术领域
本发明属于仿真器的技术领域,特别涉及基于现场可编程阵列(FPGA)应用的MCU仿真器的方法。
背景技术
MCU仿真器属于交叉编译调试系统的重要组成部分。由于MCU复杂多样,指令集千变万化,其中主流8位指令集有CISC类型的51指令集,RISC类型的AVR指令集、PIC指令集等。随之的仿真器设计技术包含BONDOUT专用仿真芯片技术、HOOKS I/O复用的仿真技术、JTAG仿真技术等。
随着片上系统(System On Chip)技术的日益成熟,低端8位MCU的片上资源甚至是指令数也越来越多样化。传统的BONDOUT专用仿真芯片技术由于其需要额外负担高昂的芯片流片费用,已经适应市场快速迭代的需求。HOOKS I/O复用的仿真技术虽然单独流片,但使用该技术的MCU需要足够的I/O资源,也不适应当前市场MCU专用化和高度性价比的需求。而其他诸如JTAG、SWD等芯片内置仿真监控模块的方案,由于会占用大量的逻辑,并不适用于低端市场。
因而采用FPGA设计仿真器的方式成为了低端MCU厂商的首选。这类方案通常是在MCU的内核基础上增加仿真调试功能,再通过综合工具重新综合并配置到FPGA中,以实现仿真器类型动态切换和更新。然而,目前市场上已有的仿真器升级或重构的方式,均无法满足嵌入式IDE(Integrated Device Electronics集成设备电路)需要频繁升级仿真器的需要,也无法满足用户需要经常切换型号的需求。
影响重构速度的第一大因素是FPGA的配置方式。目前都是采用外置存储器,如专利申请201210595918.6所描述的一种支持多芯片配置功能的仿真器,其中包括仿真器配置模块和仿真器硬件。仿真器配置模块负责芯片仿真配置文件的选择、下载、及配置信息的设置;仿真器硬件通过下载配置模块和数据通路选择模块,把仿真器配置模块下传的数据写到存储器模块对应的芯片仿真配置文件区和配置信息区。下载完成后,控制模块依据当前配置信息区的内容,完成对芯片仿真模块的配置,实现芯片的仿真功能。仿真器配置模块可以灵活下载芯片配置文件区,读取当前仿真器硬件版本信息。但是只要存在非易失性存储器,就必然无法做到快速重构。因为FPGA所支持配置存储器都存在很长的擦除或写入时间。
硬件架构中,影响重构的第二大因素是配置控制器的选择。配置控制器无非时两类,MCU或CPLD。如专利申请201410351303.8所公开的一种可重构的8位RISC单片机仿真器,其包括仿真监控芯片、仿真芯片以及存储器。仿真监控芯片通过USB接口与上位机通信,上位机通过USB接口可方便更新仿真监控芯片内的仿真固件,通过仿真监控芯片,能自动把仿真芯片配置成用户需要的目标单片机,并能将用户代码下载到存储器内,仿真芯片读取存储器内的用户代码并执行代码。仿真监控芯片通过USB接口,随时接收上位机的各项命令,控制仿真芯片的仿真,同时随时向上位机返回仿真器的各种状态。即便采用的是ARM类型的MCU,其配置速度也无法与CPLD相比。因为CPLD的并行处理能力能做到RBF数据从USB到CPLD的实时传输。理论USB转接芯片的速度有多高,重构速度就能做到多高。
硬件架构中,影响重构的第三大因素是USB接口芯片的选择。这部分的方案比较灵活。如可以选用支持多种转换接口的USB芯片,一路给CPLD用,一路给FPGA用。但接口多意味着成本高,并且重构速度和仿真器的通信速率都需要得到保证。
发明内容
为解决上述问题,本发明的目的在于提供一种快速可重构的MCU仿真方法,该方法通过上位机控制方式的配置实现快速重构,每次在打开IDE和切换型号的过程中,都不用等待仿真器设备就绪,有效的提高了用户的工作效率。
为实现上述目的,本发明的技术方案如下。
一种快速可重构的MCU仿真方法,其特征在于该方法采用被动配置接口作为FPGA的配置模式,即FPGA的配置过程由其他器件控制完成;USB口作为上位机编译调试器与下位机仿真器主板的通信接口,FIFO(First Input First Output)总线接口作为上位机编译调试器与FPGA和配置控制器的总线复用接口,CPLD(Complex Programmable Logic Device复杂可编程逻辑器件)器件作为配置控制器,配置步骤包括:
101、接收命令行参数;
102、读取RBF文件版本;
103、读取仿真器版本;
104、型号一致、版本一致,则直接打印输出;型号不一致、版本不一致则读取CPLD版本,发送RBF数据文件进行配置。
本发明采用USB口作为上位机编译调试器与下位机仿真器主板的通信接口,该接口属于所有PC机的标配接口,且具备热插拔特性,体积下,方便携带,通信速率高;采用FIFO总线接口作为上位机编译调试器与FPGA和配置控制器的总线复用接口,该接口具备较高的数据吞吐率,有助于配置控制器快速的将配置文件数据从PC机传送到FPGA中;采用CPLD(Complex Programmable Logic Device复杂可编程逻辑器件)器件作为配置控制器。该类器件可以实现高速USB传输,将配置文件通过配置模式接口,实时的将配置文件数据写入到FPGA中。而且,通过总线复用,仿真协议解析模块可以灵活的将IDE编译生成的HEX文件写入到程序区内,也可以灵活的将数据区的内容和片上外设的寄存器信息返回到PC机并显示在窗口当中。
被动串行(Passive Slave,简称PS)模式作为FPGA的配置模式,只要配置控制器能满足FPGA具体型号给出的配置时序协议,就能将RBF文件以串行数据流的方式配置到FPGA当中。
因为仿真器RBF文件时存放在PC机中的,配置控制器在快速的配置FPGA同时,必须要同步的接收PC机的传输的RBF文件数据,此时的USB数据包格式为:命令包固定4个字节,每次发送1个Byte的命令,附带1个Byte的数据,命令包主要用于实现PC对CPLD的控制,主要包含上行命令、下行命令以及错误码。
进一步,RBF数据包也是固定长度的数据包,但仅仅包含RBF文件数据,一个包大小为128Bytes,压缩类型的RBF文件大小为200KB左右,包个数N=2048*100/128=1600。
所述的CPLD,其状态如下:
在接收状态,CPLD识别PC机发送的命令包,并对其响应;如果命令合法,在完成相应操作后,跳转到发送状态,发送响应命令到PC机;
在发送状态,如果是握手命令,则发送响应后,立即进入到配置状态,开始接收PC机下传的RBF文件数据,并写入到FPGA当中;
在配置状态,CPLD按照PS配置时序依此打开控制信号并判断状态信号;如果在检测时刻点状态信号非法,则立即跳转到发送状态,发送响应的错误码到PC机;如果一切正常,则在配置完成后跳转到释放状态,以释放FIFO总线;
在释放状态,CPLD首先检测FPGA是否启动;如FPGA启动失败,则返回到发送状态发送启动失败错误码。如果启动正常则释放FIFO总线,并停留在该状态;如果检测到FPGA挂起,则重新获取FIFO总线并返回到接收状态。
本发明通过对上位机配置方式等的改进,实现了快速重构,通过选择合适型号的器件,理论最高可达到1s以内的配置速度,这样用户在使用IDE调试程序时,每次在打开IDE和切换型号的过程中,都不用等待仿真器设备就绪,有效的提高了用户的工作效率。
附图说明
图1是本发明所实施的硬件结构框图。
图2是本发明所实施的CPLD的状态图。
图3是本发明所实施的配置控制流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1所示,本发明所实现的快速重构所采样的硬件结构框架图,如图所示,采用Altera公司的Cyclone III系列FPGA作为仿真器实现载体,该系列的FPGA具备RAM资源丰富,可用I/O数较多,成本较低等优势,能满足仿真器ROM空间和RAM空间需求,因此,可以直接采用FPGA的RAM资源模拟芯片ROM空间,而不需要增加额外的SRAM芯片来存储用户的目标程序;采用FT245RL作为USB转FIFO的接口芯片,FPGA和CPLD复用这条FIFO总线;在配置的过程中,FPGA处于复位状态,所有IO口都是高阻状态,CPLD可以正常的使用该总线;配置结束后,FPGA输出一个监控线mcu_on_clk到CPLD,告知CPLD器件配置已经完成,这时CPLD将接到FIFO总线上的IO口置为高阻状态,使得FPGA能正常的使用这条总线;下一次配置开始时,FPGA会先收到一个从PC传来的结束仿真的命令,FPGA停止输出mcu_on_clk信号,继而CPLD重新复位FPGA,获取总线的控制权。
采用被动串行(Passive Slave,简称PS)模式作为FPGA的配置模式。只要配置控制器能满足FPGA具体型号给出的配置时序协议,就能将RBF文件(FPGA配置文件)以串行数据流的方式配置到FPGA当中。因此,主板上不需要额外的存储器来保存FPGA的配置文件。
本发明提出的仿真器能快速重构的关键因素还包含PC机与配置控制器的快速配置协议。仿真器RBF文件时存放在PC机中的,配置控制器在快速的配置FPGA同时,必须要同步的接收PC机的传输的RBF文件数据。因此,设定如下两种USB包格式:
a、命令包格式
包头 | 命令 | 数据 | 校验码 |
1Byte | 1Byte | 1Byte | 1Byte |
命令包固定4个字节。每次发送1个Byte的命令,附带1个Byte的数据。命令包主要用于实现PC对CPLD的控制,主要包含如下命令:
错误码ERR_CODE的内容比较丰富,包含在配置过程中出现的所有错误情况,方便错误定位。部分错误码定义如下表:
错误名 | 描述 |
ERR_VERIYF | 接收包校验失败 |
ERR_NSTATUS_INIT | nSTATUS信号初始化值不正确 |
ERR_CONF_DONE_INIT | CONF_DONE信号初始化值不正确 |
ERR_NSTATUS_RCON | nSTATUS信号重配置状态不正确 |
ERR_CONF_DONE_RCON | CONF_DONE信号重配置状态不正确 |
ERR_NSTATUS_CONF | NSTATUS_CONF信号配置状态不正确 |
ERR_CONF_DONE_CONF | CONF_DONE信号配置状态不正确 |
b、数据包格式。
RBF数据包也是固定长度的数据包,但仅仅包含RBF文件数据。一个包大小为128Bytes。压缩类型的RBF文件大小为200KB左右。包个数N=2048*100/128=1600。
根据USB转FIFO芯片1M Bytes/sec的通信速度,理论RBF文件的传输时间小于1s。
配置控制器采用CPLD设计能实现最快的数据传输,且容易实现上述PS配置时序以及FIFO接口控制时序。
CPLD的状态如图2所示,在接收状态,CPLD识别PC机发送的命令包,并对其响应。如果命令合法,在完成相应操作后,跳转到发送状态,发送响应命令到PC机。
在发送状态,如果是握手命令,则发送响应后,立即进入到配置状态,开始接收PC机下传的RBF文件数据,并写入到FPGA当中。
在配置状态,CPLD按照PS配置时序依此打开控制信号并判断状态信号。如果在检测时刻点状态信号非法,则立即跳转到发送状态,发送响应的错误码到PC机。如果一切正常,则在配置完成后跳转到释放状态,以释放FIFO总线。
在释放状态,CPLD首先检测FPGA是否启动。如FPGA启动失败,则返回到发送状态发送启动失败错误码。如果启动正常则释放FIFO总线,并停留在该状态。如果检测到FPGA挂起,则重新获取FIFO总线并返回到接收状态。
配置流程图如图3所示,其具体的步骤为:
101、接收命令行参数;
102、读取RBF文件版本信息;
103、读取仿真器版本信息;
104、判断RBF文件版本信息型号是否一致、仿真器版本是否一致,如果一致则直接打印输出,无需更新信息;如果上述的型号不一致、版本不一致则先读取CPLD版本信息,然后发送RBF数据包进行配置;发送成功则打印成功信息,发送错误则打印错误信息。
本发明采用USB口作为上位机编译调试器与下位机仿真器主板的通信接口,该接口属于所有PC机的标配接口,且具备热插拔特性,体积下,方便携带,通信速率高;采用FIFO总线接口作为上位机编译调试器与FPGA和配置控制器的总线复用接口,该接口具备较高的数据吞吐率,有助于配置控制器快速的将配置文件数据从PC机传送到FPGA中;采用CPLD(Complex Programmable Logic Device复杂可编程逻辑器件)器件作为配置控制器。该类器件可以实现高速USB传输,将配置文件通过配置模式接口,实时的将配置文件数据写入到FPGA中。而且,通过总线复用,仿真协议解析模块可以灵活的将IDE编译生成的HEX文件写入到程序区内,也可以灵活的将数据区的内容和片上外设的寄存器信息返回到PC机并显示在WATCH窗口当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种快速可重构的MCU仿真方法,其特征在于该方法采用被动配置接口作为FPGA的配置模式,即FPGA的配置过程由其他器件控制完成;USB口作为上位机编译调试器与下位机仿真器主板的通信接口,FIFO总线接口作为上位机编译调试器与FPGA和配置控制器的总线复用接口,CPLD器件作为配置控制器,配置步骤包括:
101、接收命令行参数;
102、读取RBF文件版本;
103、读取仿真器版本;
104、型号一致、版本一致,则直接打印输出;型号不一致、版本不一致则读取CPLD版本,发送RBF数据文件进行配置;
所述的CPLD,其状态如下:
在接收状态,CPLD识别PC机发送的命令包,并对其响应;如果命令合法,在完成相应操作后,跳转到发送状态,发送响应命令到PC机;
在发送状态,如果是握手命令,则发送响应后,立即进入到配置状态,开始接收PC机下传的RBF文件数据,并写入到FPGA当中;
在配置状态,CPLD按照PS配置时序依次打开控制信号并判断状态信号;如果在检测时刻点状态信号非法,则立即跳转到发送状态,发送响应的错误码到PC机;如果一切正常,则在配置完成后跳转到释放状态,以释放FIFO总线;
在释放状态,CPLD首先检测FPGA是否启动;如FPGA启动失败,则返回到发送状态发送启动失败错误码,如果启动正常则释放FIFO总线,并停留在该状态;如果检测到FPGA挂起,则重新获取FIFO总线并返回到接收状态。
2.如权利要求1所述的快速可重构的MCU仿真方法,其特征在于被动串行模式作为FPGA的配置模式。
3.如权利要求1所述的快速可重构的MCU仿真方法,其特征在于配置控制器在快速的配置FPGA同时,必须要同步的接收PC机的传输的RBF文件数据,此时的USB数据包格式为:命令包固定4个字节,每次发送1个Byte的命令,附带1个Byte的数据,命令包用于实现PC对CPLD的控制,主要包含上行命令、下行命令以及错误码。
4.如权利要求3所述的快速可重构的MCU仿真方法,其特征在于RBF数据包也是固定长度的数据包,但仅仅包含RBF文件数据,一个包大小为128Bytes。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510386056.XA CN105022869B (zh) | 2015-06-30 | 2015-06-30 | 一种快速可重构的mcu仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510386056.XA CN105022869B (zh) | 2015-06-30 | 2015-06-30 | 一种快速可重构的mcu仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022869A CN105022869A (zh) | 2015-11-04 |
CN105022869B true CN105022869B (zh) | 2018-07-20 |
Family
ID=54412837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510386056.XA Active CN105022869B (zh) | 2015-06-30 | 2015-06-30 | 一种快速可重构的mcu仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022869B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354966B (zh) * | 2016-09-06 | 2019-11-08 | 芯海科技(深圳)股份有限公司 | 芯片ide工程文件转换及快速配置仿真调试环境的方法 |
CN107479918B (zh) * | 2017-08-03 | 2020-11-24 | 芯海科技(深圳)股份有限公司 | 一种可重构的mcu烧录的fpga模型 |
CN109613970B (zh) * | 2018-11-29 | 2020-11-27 | 四川九洲电器集团有限责任公司 | 一种基于fpga和dsp架构的低功耗处理方法 |
CN112148322A (zh) * | 2019-06-27 | 2020-12-29 | 杭州萤石软件有限公司 | 一种升级与片上系统连接的单片机中固件的方法 |
CN114116103A (zh) * | 2021-11-29 | 2022-03-01 | 北京字节跳动网络技术有限公司 | 一种数据同步方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613062A (en) * | 1990-01-12 | 1997-03-18 | Tokyo Electron Limited | Logic simulator |
CN103914331A (zh) * | 2012-12-28 | 2014-07-09 | 北京中电华大电子设计有限责任公司 | 支持多芯片配置功能的仿真器 |
CN104077204A (zh) * | 2014-07-22 | 2014-10-01 | 无锡中微爱芯电子有限公司 | 可重构的8位rsic单片机仿真器 |
CN203930820U (zh) * | 2014-01-15 | 2014-11-05 | 杭州电子科技大学 | 一种压缩存储的fpga配置电路 |
-
2015
- 2015-06-30 CN CN201510386056.XA patent/CN105022869B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613062A (en) * | 1990-01-12 | 1997-03-18 | Tokyo Electron Limited | Logic simulator |
CN103914331A (zh) * | 2012-12-28 | 2014-07-09 | 北京中电华大电子设计有限责任公司 | 支持多芯片配置功能的仿真器 |
CN203930820U (zh) * | 2014-01-15 | 2014-11-05 | 杭州电子科技大学 | 一种压缩存储的fpga配置电路 |
CN104077204A (zh) * | 2014-07-22 | 2014-10-01 | 无锡中微爱芯电子有限公司 | 可重构的8位rsic单片机仿真器 |
Non-Patent Citations (1)
Title |
---|
基于MCU的CPLD/FPGA配置;乔建良 等;《电子技术应用》;20041231(第19期);第70-72页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105022869A (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022869B (zh) | 一种快速可重构的mcu仿真方法 | |
CN109508202B (zh) | 嵌入式操作系统的驱动开发系统、方法及介质 | |
US20100161309A1 (en) | Apparatus and Methods Thereof for Configuration and Control of a System-On-Chip Emulation Platform | |
US7480609B1 (en) | Applying distributed simulation techniques to hardware emulation | |
Kumar et al. | An FPGA design flow for reconfigurable network-based multi-processor systems on chip | |
US7424416B1 (en) | Interfacing hardware emulation to distributed simulation environments | |
CN103019990B (zh) | 一种采集端启动pci-e总线dma上传数据的方法 | |
US20110202894A1 (en) | Method and Apparatus for Versatile Controllability and Observability in Prototype System | |
CN105550119A (zh) | 一种基于jtag协议的仿真装置 | |
CN105335548B (zh) | 一种用于ice的mcu仿真方法 | |
CN102436385A (zh) | 一种可编程逻辑器件配置文件在线更新装置 | |
CN109783340B (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
CN104572384B (zh) | 一种芯片多fpga验证方法 | |
CN103970665B (zh) | 一种模拟spi flash的fpga系统及调试方法 | |
CN100487668C (zh) | 一种嵌入式处理器的调试方法 | |
CN102426548B (zh) | 嵌入式系统的调试方法、调试器和调试系统 | |
CN108011878A (zh) | 面向多用户软硬件设计项目的远程测试仿真系统和方法 | |
US11144235B1 (en) | System and method for evaluating memory system performance | |
CN103092119A (zh) | 一种基于fpga的总线状态监视系统和方法 | |
CN209086915U (zh) | C8051f单片机程序烧录装置 | |
CN102253875B (zh) | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 | |
CN103152115B (zh) | 一种全信道数据采集器 | |
CN101329650B (zh) | 智能卡仿真器 | |
US8812289B1 (en) | Simulation that transfers port values of a design block via a configuration block of a programmable device | |
CN106569972B (zh) | 基于usb接口的jtag单片机无线仿真器和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518000, A building, block 9, garden city digital garden, 1079 Nanhai Road, Guangdong, Shenzhen, Nanshan District Patentee after: Chipsea Technology (Shenzhen) Co., Ltd. Address before: 518067 Nanshan District, Shenzhen, Nanhai Avenue, garden city, No. 1079, building A, block, floor 9 Patentee before: Xinhai Science and Technology Co., Ltd., Shenzhen City |
|
CP03 | Change of name, title or address |