CN207281749U - 处理器芯片仿真器 - Google Patents
处理器芯片仿真器 Download PDFInfo
- Publication number
- CN207281749U CN207281749U CN201721237460.1U CN201721237460U CN207281749U CN 207281749 U CN207281749 U CN 207281749U CN 201721237460 U CN201721237460 U CN 201721237460U CN 207281749 U CN207281749 U CN 207281749U
- Authority
- CN
- China
- Prior art keywords
- xram
- emulator
- management module
- memories
- processor
- 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
本实用新型公开了一种处理器芯片仿真器,包括处理器核、管理模块、XRAM存储器和复位检测模块;管理模块通过第一标准数据/地址总线与XRAM存储器相连接,通过第二标准数据/地址总线与处理器核相连接。复位检测模块通过复位信号线与管理模块相连接。本实用新型能够真实模拟重新上电后产品芯片XRAM模块变为随机数的功能。
Description
技术领域
本实用新型涉及一种处理器芯片仿真器。
背景技术
处理器芯片内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是仿真器。仿真器内使用包含产品处理器芯片各项功能的仿真芯片,用于模拟产品处理器芯片的工作行为,仿真芯片与仿真器其他部件(存放用户程序的程序存储器、存放数据的数据存储器,以及用户电脑上的集成开发环境等)配合实现用户程序的仿真运行和各项调试功能。
处理器芯片一般都含有片内XRAM(on-chip expanded RAM,外部随机存储器),作为存放数据的数据存储器,可用于数据存放、缓存,以及参数传递等等。XRAM在物理特性上具有上电值随机的特性,也就是说,芯片每次重新上电后,XRAM内数据都是随机值。这一特性是处理器芯片代码设计时需要关注和考虑的,例如,代码中需要设计初始化XRAM数据缓存区、防止数据缓冲区未初始化就读取内容的代码段等,所以也需要在仿真器设计中等效实现这一功能,供用户在开发代码时对这样的代码段进行调试和测试。
现有的仿真器设计中,以仿真芯片替代产品芯片,仿真芯片内包含了与产品芯片功能、性能基本一致的XRAM模块,仿真器上电时仿真芯片内的XRAM数据是随机值,与产品芯片一致。但是,仿真器还需要模拟产品芯片反复上下电的过程,而一般考虑系统初始化时间、稳定性和使用寿命等因素,仿真器整机不会做成反复重新上下电,而是把来自外围的上下电等效为一个复位信号,具体来说,就是在发生下电/重新上电时,仿真器整体不下电/重新上电,而是检测出下电/重新上电的行为,产生一个进入/退出复位的信号给仿真芯片,控制仿真芯片进入/退出复位状态。退出复位后,仿真芯片内的程序指针、寄存器值、存储器值等需要都回到上电后的初始状态,从功能上等效实际产品芯片的上电后状态。这其中也包括仿真芯片内的XRAM区域,在重新上电发生后XRAM区域内的数据需要全部变成随机值。
现有常见仿真器的做法是,仿真芯片内的XRAM等效为双口RAM,在检测到退出复位、重新上电的信号后,仿真器产生一组随机数,并绕开芯片处理器从后台通道对仿真芯片的XRAM区域执行一遍全片写入随机数操作,从功能上等效了产品芯片重新上电后,XRAM内全部变成随机值的特性。但是,实际产品芯片中重新上电后XRAM内数据变成随机数是XRAM的物理特性决定的,从重新上电到XRAM数据都为随机数,中间是没有额外耗时的。现有仿真器中这样的做法,虽然从功能上等效出了XRAM重新上电后数据变为随机值的功能,但是因为存在一个产生一组随机数,并通过后台通道对全XRAM重新写入随机数的过程,这一过程有一定的耗时,一般会有几十到几百微秒级(基于常规XRAM 5-20纳秒写入延时,XRAM10-100K字节大小,仿真器以60-100M速度写入)。如果处理器芯片配置中XRAM的存储容量较大、XRAM的写入时延较大、仿真器写入XRAM的操作速度较低,这个耗时也会随之增加,造成仿真器与实际产品芯片在上电性能上的明显差异,不利于用户代码的调试和测试。同时,双口RAM结构较为复杂,有两组通道可以对XRAM进行读写操作,也降低了系统的可靠性。
针对上述问题,有一些现有处理器芯片仿真器做成了利用上电复位前的这段时间来把XRAM全部刷成随机值,也就是在发生下电、仿真芯片进入复位后就开始把全XRAM区域刷成随机值,如果在重新上电、仿真芯片退出复位时已经刷完,则仿真芯片开始工作后对用户程序而言,全XRAM区域已经是随机值了,与产品芯片功能、性能完全一致。但是,这里也有一个明显的问题,采用这种方法必须保证刷全XRAM的过程必须在下电到上电这个时间区间内完成,否则就会造成上电后部分XRAM没有变成随机值的情况。随着处理器速度、系统性能的不断提升,设计和工艺的不断改进,实际产品处理器芯片所需要的放电时间(芯片完全下电)越来越短,对应的为了提供系统整体工作性能,很多实际系统中给予处理器芯片下电到上电这个时间区间也越来越小,同时随着应用复杂度的增加、工艺的改进、存储器成本的下降等影响,处理器芯片内的XRAM资源也越来越大,这样对应到相应的处理器芯片仿真器中,刷一遍全XRAM空间的耗时也在对应增加,投入到系统中调试和测试时,更由于系统留给仿真器刷XRAM的下电到上电时间区间也在减小,上述的现有仿真器设计中,来不及在所述下电到上电时间区间内刷完整个XRAM,导致上电后仍有部分XRAM没有刷完的情况越来越多地出现,造成了仿真器与产品芯片在功能上的差异,这对用户程序的开发和调试有着巨大的影响。如果为了保证功能上的一致性,等刷完全XRAM后仿真芯片才退出复位,又会造成仿真器上的下电到上电时间区间被人为拉大,超出了系统实际给出的这个区间大小,造成仿真器在系统中性能上与产品芯片的差异,同样不利于调试和测试。如果提高仿真器其他部件工作性能,提升产生随机数和写入全XRAM空间的速度,虽然可以改善上述问题,但是XRAM是有操作时序、通道和写入时延的,也就是说写全XRAM区域的耗时是有一个极限值的,故此,即使由于仿真器其他部件性能提升,产生随机数的耗时极短,在上述设计中,写全XRAM的耗时仍然会成为问题的瓶颈。
实用新型内容
本实用新型要解决的技术问题是提供一种处理器芯片仿真器,能真实模拟重新上电后产品芯片XRAM模块变为随机数的功能,从用户代码调试和测试角度看,复位到XRAM数据变为随机数的耗时不可见。
为解决上述技术问题,本实用新型的处理器芯片仿真器,包括:处理器核、管理模块、XRAM存储器和复位检测模块;
所述管理模块通过第一标准数据/地址总线与XRAM存储器相连接,所述管理模块通过第二标准数据/地址总线与处理器核相连接;所述复位检测模块通过复位信号线与管理模块相连接。
所述管理模块内具有随机数发生器,以及一个XRAM单元首次读标志表模块。
采用本实用新型的处理器芯片仿真器能够真实模拟重新上电后产品芯片XRAM模块变为随机数的功能,同时,也能针对用户代码调试和测试,等效模拟出复位到XRAM数据变为随机数耗时为零的性能;即从用户代码调试和测试角度看,复位到XRAM数据变为随机数的耗时不可见,性能也与产品芯片一致;真实模拟了产品芯片的功能和性能,保证用户在仿真器上调试、测试代码的真实性和可靠性,同时,不受XRAM容量大小、系统给予仿真器的下电到上电时间区间大小的影响,有助于提高代码开发效率,发现所有潜藏与性能相关的问题。
附图说明
下面结合附图和具体实施方式对本实用新型作进一步详细的说明:
图1是所述处理器芯片仿真器的结构示意图。
具体实施方式
如图1所示,所述处理器芯片仿真器1(即图1中的仿真器),包括:处理器核2、管理模块3、XRAM存储器4和复位检测模块5。所述管理模块3内具有一随机数发生器7,以及一个XRAM单元首次读标志表6。所述XRAM单元首次读标志表6地址范围和大小与XRAM存储器4地址范围和大小对应,每一个XRAM数据单元在XRAM单元首次读标志表6内对应一个比特的首次读标志位,且地址匹配,例如某款处理器芯片XRAM存储器容量为320K字节,位宽32比特,即有80K个数据单元,每个单元32位;对应的XRAM单元首次读标志表6地址范围与XRAM存储器对应,有80K个首次读标志位,每个位宽1比特。
所述管理模块3通过第一标准数据/地址总线9与XRAM存储器4相连接,所述管理模块同时通过第二标准数据/地址总线7与处理器核2相连接。所述复位检测模块5通过复位信号线10与管理模块3相连接。
这样,当系统向仿真器1发出下电时,所述复位检测模块5能检测出进入下电状态,则通过所述复位信号线10向管理模块3输出有效复位信号。所述管理模块3在通过复位信号线10检测到复位信号从无效变为有效时,即系统下电动作时,刷新其中的XRAM单元首次读标志表6,全部变为首次读取标志。当系统向仿真器1发出重新上电时,所述复位检测模块5能检测出退出下电状态,重新上电了,则通过所述复位信号线10向管理模块3输出无效复位信号。
重新上电后,通过执行用户程序指令,所述处理器核2会通过与管理模块3连接的第二标准数据/地址总线8发出读取或写入XRAM存储器内的数据单元操作指令。如果执行到用户程序中的写XRAM操作指令,则所述管理模块3从处理器核2得到的是写入某地址的XRAM存储器内的数据单元操作,首先管理模块3检查XRAM单元首次读标志表6中对应地址上的标志值,如果是首次读取标志,则改为非首次读取标志;因为这个地址的XRAM存储器内的数据单元已经发生写入操作,写入了一个确定值,重新上电后这个地址上的数据单元的随机数特性不需要再保留了;如果是非首次读取标志,则不需要修改,因为之前该地址的XRAM存储器内的数据单元一定已经被读取或写入过了。然后管理模块3把和处理器核2连接的第二标准数据/地址总线8与和XRAM存储器4连接的第一标准数据/地址总线9对接,即管理模块3相当于一个透传通道,处理器核2可以对XRAM存储器4进行写入操作。
如果执行到用户程序中的读取XRAM操作指令,则所述管理模块3从处理器核2得到的是读取某地址的XRAM存储器内的数据单元操作,首先管理模块3检查XRAM单元首次读标志表6中对应地址上的标志值,如果是首次读取标志,则改为非首次读取标志,并控制随机数发生器7产生一个数据单元的随机数,并将其通过与处理器核2连接的第二标准数据/地址总线8返回给处理器核2,同时,通过与XRAM存储器4连接的第一标准数据/地址总线9把这个随机数写入到XRAM存储器4的对应地址上。如此,对用户程序而言,重新上电后如果没有发生过写入操作,第一次从XRAM这个地址上读取到的数据单元内的数据就是一个随机数,且由于XRAM存储器4内这个地址上此时也已被填充了同一个随机数,如果过程中没有发生过写入操作,下一次用户程序通过处理器核2读取XRAM这个地址还是会读取到同一个随机数值。实现了重新上电后,对用户程序而言,XRAM存储器4内数据单元都变为随机数的功能。同时,过程中管理模块3仅仅只产生一个单元的随机数数据,且产生过程与XRAM存储器4无关,可以通过提升管理模块3和随机数发生器7性能把产生耗时控制的非常非常小,且管理模块3是直接通过第二标准数据/地址总线8向处理器核2返回数据的,此过程在性能上也可以做到与产品芯片中直接读取XRAM存储器的性能一致,保证了仿真器1与产品芯片性能上的一致性。如果管理模块3检查XRAM单元首次读标志表6中对应地址上的标志值发现是非首次读取标志(说明XRAM对应地址上的数据单元此前已经被读取或写入过,此时可以直接读取了),则不需要修改,然后管理模块3把和处理器核2连接的第二标准数据/地址总线8与和XRAM存储器4连接的第一标准数据/地址总线9对接,即在逻辑上看,管理模块3相当于一个透传通道,处理器核2可以直接读取XRAM存储器4,功能和性能上都与产品芯片一致。
这样,本发明所实现的仿真器1就能够真实模拟重新上电后产品芯片XRAM变为随机数的功能,功能和性能与产品芯片一致,同时,不受XRAM容量大小、系统给予仿真器1的下电到上电时间区间大小的影响。
所述处理器核2可以采用FPGA(Field Programmable Gate Array即现场可编程门阵列)芯片实现;所述复位检测模块5可以采用通用处理器芯片加供电检测传感器实现;所述管理模块3可以采用通用处理器芯片实现,其中的随机数发生器7可以采用单片机软件方式或硬件协处理器实现,XRAM单元首次读标志表6可以使用通用处理器芯片的存储器资源实现;XRAM存储器4可以采用单独的XRAM芯片或者FPGA芯片内的片内RAM存储器资源实现。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
Claims (5)
1.一种处理器芯片仿真器,其特征在于:包括处理器核、管理模块、XRAM存储器和复位检测模块;
所述管理模块通过第一标准数据/地址总线与XRAM存储器相连接,所述管理模块通过第二标准数据/地址总线与处理器核相连接;所述复位检测模块通过复位信号线与管理模块相连接。
2.如权利要求1所述的仿真器,其特征在于:所述管理模块内具有随机数发生器,以及一个XRAM单元首次读标志表模块。
3.如权利要求1所述的仿真器,其特征在于:所述处理器核由FPGA构成。
4.如权利要求1所述的仿真器,其特征在于:所述复位检测模块由通用处理器芯片加供电检测传感器构成。
5.如权利要求1所述的仿真器,其特征在于:所述管理模块由通用处理器芯片构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201721237460.1U CN207281749U (zh) | 2017-09-26 | 2017-09-26 | 处理器芯片仿真器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201721237460.1U CN207281749U (zh) | 2017-09-26 | 2017-09-26 | 处理器芯片仿真器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN207281749U true CN207281749U (zh) | 2018-04-27 |
Family
ID=61981977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201721237460.1U Active CN207281749U (zh) | 2017-09-26 | 2017-09-26 | 处理器芯片仿真器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN207281749U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632950A (zh) * | 2017-09-26 | 2018-01-26 | 上海市信息网络有限公司 | 处理器芯片仿真器 |
-
2017
- 2017-09-26 CN CN201721237460.1U patent/CN207281749U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632950A (zh) * | 2017-09-26 | 2018-01-26 | 上海市信息网络有限公司 | 处理器芯片仿真器 |
CN107632950B (zh) * | 2017-09-26 | 2024-04-19 | 上海市信息网络有限公司 | 处理器芯片仿真器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105738854B (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
KR100458371B1 (ko) | 프로그램가능한 논리 셀 어레이의 구성 방법 및 구성 장치 | |
CN100476650C (zh) | 单片机存储系统 | |
EP0450839A2 (en) | A logic simulation machine | |
CN101916593B (zh) | 一种内存测试系统 | |
CN102999453B (zh) | 用于系统芯片集成的通用非易失性存储器控制装置 | |
US20120320692A1 (en) | Random access memory for use in an emulation environment | |
CN108549591A (zh) | 一种嵌入式系统的黑匣子装置及其实现方法 | |
CN111739577A (zh) | 一种基于dsp的高效的ddr测试方法 | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
CN103871479A (zh) | 嵌入式存储器测试系统 | |
Wei et al. | A hardware-software co-design experiments platform for NAND flash based on Zynq | |
CN105045335A (zh) | 一种内嵌8051ip核的fpga信息处理系统 | |
CN207281749U (zh) | 处理器芯片仿真器 | |
Mosanu et al. | PiMulator: A fast and flexible processing-in-memory emulation platform | |
CN202838306U (zh) | 一种基于微处理器的fpga配置系统 | |
CN107632950A (zh) | 处理器芯片仿真器 | |
CN103198001A (zh) | 能够自测pcie接口的存储系统及测试方法 | |
CN204203964U (zh) | 一种多路数据存储的便携式地面测试设备 | |
CN103793263B (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
CN109101386B (zh) | 一种支持ram测试的仿真器 | |
CN207281748U (zh) | 一种处理器芯片仿真器 | |
CN104035898B (zh) | 一种基于vliw类型处理器的访存系统 | |
CN103246584A (zh) | 片上系统芯片结构及保存调试信息的方法 | |
CN108804380A (zh) | 矢量运算硬件加速器多核级联的周期精确模型 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |