CN107729601A - 仿真过程中配置ram的方法、装置及计算机存储介质 - Google Patents
仿真过程中配置ram的方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN107729601A CN107729601A CN201710780112.7A CN201710780112A CN107729601A CN 107729601 A CN107729601 A CN 107729601A CN 201710780112 A CN201710780112 A CN 201710780112A CN 107729601 A CN107729601 A CN 107729601A
- Authority
- CN
- China
- Prior art keywords
- ram
- configuration data
- storage
- address
- soc
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了仿真过程中配置RAM的方法及装置,包括:获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位;生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。用以解决现有技术中的仿真效率较低的技术问题。
Description
技术领域
本发明涉及微电子领域,尤其涉及仿真过程中配置RAM的方法、装置及计算机存储介质。
背景技术
在微电子领域,随着集成电路工艺能力和设计能力的快速发展,为了满足嵌入式系统市场对于成本、功能和功耗的要求,片上系统(System onChip,SoC)设计技术已经成为一种发展趋势。
然而,随着半导体制造技术不断的快速发展,SoC设计的规模和复杂度也在飞速增长。尤其是在进入深亚微米工艺后,SoC设计和开发遇到了大量的信号完整性和设计完备性问题,为了验证整个芯片的正确性就必须要做大量的验证工作,而芯片的上市压力又要求验证工作必须在尽可能短的时间内完成,SoC验证正越来越成为整个设计流程中的关键部分。
从阶段划分上说,SoC验证可以分为功能验证、等价性验证、静态时序分析、动态时序分析和版图验证等几个主要阶段。其中,功能验证(Functional Verification)是验证中最复杂、工作量最大、同时也是最灵活的部分,它包括模块/IP核级仿真验证、系统级仿真验证等。
而在复杂SoC设计开发中,仿真占整个验证工程师团队工作量的40~70%,由于成本和市场压力,如何提高仿真的效率就变得十分迫切。
发明内容
本发明提供仿真过程中配置RAM的方法、装置及计算机存储介质,用于快速配置RAM配置数据,以解决现有技术中存在仿真效率较低的技术问题。
本发明实施例的第一方面,提供仿真过程中配置RAM的方法,包括:
获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;
确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位;
生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。
结合第一方面,在第一方面的第一种可能的实施方式中,所述获取总线接口模块中与配置数据对应的BUS配置地址,包括:
基于第一关系表及所述配置数据的名称获取所述BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置,包括:
从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM;
基于配置数据域的RAM存储地址映射代码的特殊代码标识从所述SoC的设计代码中,获取所述配置数据中每个配置数据域在所述待配置RAM中的存储地址;
获得所述存储地址在所述待配置RAM中对应的存储实体的位置;
确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM,包括:
基于所述设计信息,追踪所述配置数据从所述总线接口模块到所述待配置RAM的传输路径;
基于所述传输路径,确定所述配置数据对应的所述待配置RAM。
结合第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述获得所述存储地址在所述待配置RAM中对应的存储实体的位置,包括:
基于第二关系表及所述待配置RAM的类型,确定所述待配置RAM的存储结构;其中,所述第二关系表用于表征所述SoC中,至少一种类型的RAM所对应的RAM存储结构;
解析所述待配置RAM的存储结构,以获得所述存储地址对应的存储实体的位置。
本发明实施例的第二方面,提供仿真过程中配置RAM的装置,包括:
获取模块,用于获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;
确定模块,用于确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位;
生成模块,用于生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。
结合第二方面,在第二方面的第一种可能的实施方式中,所述获取模块,还用于:
基于第一关系表及所述配置数据的名称获取所述BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述确定模块,还用于:
从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM;
基于配置数据域的RAM存储地址映射代码的特殊代码标识从所述SoC的设计代码中,获取所述配置数据中每个配置数据域在所述待配置RAM中的存储地址;
获得所述存储地址在所述待配置RAM中对应的存储实体的位置;
确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述获得所述存储地址在所述待配置RAM中对应的存储实体的位置时,所述确定模块还用于:
基于第二关系表及所述待配置RAM的类型,确定所述待配置RAM的存储结构;其中,所述第二关系表用于表征所述SoC中,至少一种类型的RAM所对应的RAM存储结构;
解析所述待配置RAM的存储结构,以获得所述存储地址对应的存储实体的位置。
本发明实施例的第三方面,提供仿真过程中配置RAM配置RAM的计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行第一方面至第一方面的第四种可能的实施方式中的任一所述的方法。
通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:
在本申请提供的实施例中,通过先获得所述BUS配置地址和所述存储实体的位置,进而生成所述BUS配置地址与所述存储实体的位置的映射关系,使得在仿真时,只需基于所述映射关系将所述配置数据配置到所述存储实体,便可对所述待配置RAM进行快速配置,进而节约耗费在配置所述待配置RAM上的时间,从而有效的提高了SoC的仿真效率。
附图说明
图1为本发明实施例提供的仿真过程中配置RAM的流程图;
图2为本发明实施例提供的仿真过程中确定配置数据在待配置RAM中的存储实体的位置的流程图;
图3为一SoC的示例性的内部框图;
图4a为本发明实施例提供的配置数据与RAM地址映射关系图;
图4b为本发明实施例提供的RAM存储结构图;
图5为本发明实施例提供的仿真过程中配置RAM的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以下,对本发明实施例中的部分用语进行解释说明,以便本领域的技术人员理解。
SoC:System on Chip的缩写,称为芯片级系统,也有称片上系统,由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。这意味着,在单个芯片上,就能完成一个电子系统的功能,而这个系统在以前往往需要一个或多个电路板,以及板上的各种电子器件、芯片和互连线共同配合来实现。目前,SoC更多的是对处理器(包括CPU、DSP)、存储器、各种接口控制模块、各种互联总线的集成,其典型代表为手机芯片。
SoC有两个显著的特点:一是硬件规模庞大,通常基于IP设计模式;二是软件比重大,需要进行软硬件协同设计。
SoC关键技术主要包括总线架构技术、IP核可复用技术、软硬件协同设计技术、SoC验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术,并且包含做嵌入式软件移植、开发研究,是一门跨学科的新兴研究领域。
IP核:Intellectual Property Core,知识产权核,是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。
APB:Advanced Peripheral Bus,外围总线。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。APB主要用于低带宽的周边外设之间的连接,例如UART、1284等。
SPI:Serial Peripheral Interface,串行外设接口。SPI,是一种高速的,全双工,同步的通信总线。
本文中描述的技术不仅限于SoC的验证工作,还可用于其它的不同验证方法学中。
首先介绍本发明实施例的技术背景。
在对一个SoC进行仿真时,需要先将配置数据存入SoC中,而在SoC中存放这些配置数据的通常是用的触发器,但是随着SoC规模的不断增加相应的这些配置数据的量也会不断增加。
当配置数据的量超过一定范围时,在某些制造工艺下,再使用触发器进行存储,将会使整颗SOC的面积相应增加。在此情况下,业界开始使用RAM来存放配置数据。本发明研究的正是用RAM存放配置数据时,如何提高SoC的仿真效率。
通常,在对一个SoC进行仿真时,首先需要配置SoC中的RAM,这样SoC中的的逻辑才能正常工作,进而才能对SoC进行仿真。当然,对于规模比较小的Soc通常还是使用的触发器存储配置数据,但这不是本发明要研究的。
在通常的验证环境中,将配置数据配置到RAM时需要先通过APB/SPI等BUS总线,将配置数据从外部传递到总线访问接口模块,然后再通过其他的控制通路,将配置数据从总线访问模块,传递到RAM当中。
而在配置数据从外部传递到RAM的过程中,将经过众多的逻辑器件,尽管这是逻辑器件还不是真实的器件,但他们具有与真实器件相同的性能,如在时钟作用下都会有延时。在这些存在延时的逻辑器件共同作用下,使在将配置数据配置到RAM的数据传输过程中,便消耗了大量的时间,从而导致了在对SoC进行仿真前的准备阶段便消耗了大量时间,进而导致SoC仿真存在仿真效率较低的技术问题。
有鉴于此,在本发明的实施例中,通过生成BUS配置地址与存储实体的位置的映射关系,并在对SoC进行仿真时,基于映射关系将配置数据配置到存储实体的位置,以避开配置数据从外部传输到待配置RAM原需经过的众多逻辑器件,进而有效的提高了SoC仿真的效率。
需要说明的是,本发明中的RAM,均是指相应厂家所提供的用以仿真验证的RAM模型,RAM仿真模型,在仿真过程中,能完全模仿真实RAM的行为。
下面结合附图介绍本发明实施例提供的技术方案。
请参见图1,本发明实施例提供仿真过程中配置RAM的方法,该方法的处理过程如下。
步骤S101:获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;
总线接口模块,用于管理SoC中所有需要与外部进行通信的IP、逻辑器件、RAM等,并为它们配置对应的通信协议、BUS地址等。
在本发明实施例中,获取总线接口模块中与配置数据对应的BUS配置地址,包括:基于第一关系表及所述配置数据的名称获取BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
例如,有A、B、C三个配置数据需要配置到SoC中,构成第一关系表如表1所示,则通过第一关系表(表1)及配置数据的名称(如A、B、C),可以获得配置数据A的BUS配置地址为32’h1100_0000,配置数据B的BUS配置地址为32’h3100_0000,配置数据C的BUS配置地址为32’h3100_0000。
需要理解的是,配置数据通常是按不同的功能来区分的,示例性的,如一个智能手机的SoC中,配置数据A代表通信功能、配置数据B代表图片管理功能、配置数据C代表系统管理等。但,本领域的技术人员应当理解,上述示例不应作为限定本发明的内容。
表1
BUS配置地址 | |
A | 32’h1100_0000 |
B | 32’h2100_0000 |
C | 32’h3100_0000 |
其中,一个配置数据由N个配置数据域组成,N为正整数。如,配置数据A可以由两个、三个或更多个配置数据域组成,在此不做限定,这些配置数据域可能被要求存放在不同的RAM上,也有可能在一个RAM上,一个配置数据域也有可能被放在不同的RAM上,且每个配置数据域代表配置数据对应功能下的一个子功能。示例性的,如代表视频处理功能的配置数据A由域a、域b组成,而域a代表视频播放功能、域b代表视频搜索功能,为便于阅读,此处及以下将配置数据域a简称为域a,其它类似不再赘述。
步骤S102:确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位。
一个SoC中可以有多个IP核,例如,CPU、DPU、DDR等,其中,验证工程师需要配置的RAM通常在这些IP核中。
在将配置数据配置到待配置RAM时,传统的方式是需要经由BUS总线将配置数据送到总线接口模块中对应的BUS配置地址,然后由总线接口模块,经由控制通路将配置数据传输到待配置RAM所在的IP核中,并且控制通路中也需要穿越其它相关逻辑器件。且待配置RAM可以为一个RAM,也可以为多个RAM,具体是在设计SoC时设计者根据配置数据的需要,确定待配置RAM的RAM数量。
其中,随机存取存储器(Ramdom Access Memory,RAM),由存储矩阵、地址译码器和输入/输出控制电路三部分组成。RAM的存储矩阵由许多基本存储单元(即存储实体)构成,每个基本存储单元存放一位二进制数,基本存储单元若采用双稳态触发器结构,则形成静态RAM,若采用动态的MOS基本存储单元或电容充放电原理构造基本存储单元,则形成动态RAM。
尽管在验证仿真阶段,控制通路中的其它相关逻辑器件、IP核并不是真实的物理器件,但是,在验证仿真时它们具有与对应的物理器件完全相同的性能参数指标,例如信号在通过触发器时,从信号输入触发器到信号从触发器输出的这个过程,通常存在一个时钟周期的延迟,所以,在将配置数据从BUS配置地址配置到待配置RAM的存储实体时需要耗费非常多的时间,并且,SoC越复杂所耗费的时间也会越多。而只有配置数据配置到了待配置RAM对应的存储实体上后,才能对SoC进行仿真。
而本发明为了减少配置数据在控制通路及IP核中传递所耗费的时间,便提出一种解决办法,将配置数据的BUS配置地址与待配置RAM的存储实体之间建立映射关系,经由建立的映射关系将配置数据直接传递到对应的存储实体中。
具体的,在执行步骤101之后便可以确定待配置RAM对应的BUS配置地址,那么通过执行步骤102确定配置数据在待配置RAM中对应的存储实体便可。
进一步的,确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置,具体方式通常包括以下几个步骤:
在本发明实施例中,由于验证工程师在对SoC进行仿真、验证工作时,并不知道在SoC的哪些IP核中的哪些RAM是被设计者定义为的待配置RAM,所以验证工程师在配置RAM前,还需要实施以下步骤,请参见图2:
步骤201,从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM。这就需要先基于所述设计信息,追踪配置数据从所述总线接口模块到待配置RAM的传输路径;然后再基于传输路径,确定配置数据对应的待配置RAM。
由于配置数据包括N个配置数据域,而这些配置数据域在待配置RAM中的底层存储位置(即存放配置数据的RAM的存储实体,其中,存储实体为RAM的最小存储单位)验证工程师并不知道。所以此时需要进行:
步骤202,先基于配置数据域的RAM存储地址映射代码的特殊代码标识从SoC的设计代码中,获取配置数据中每个配置数据域在待配置RAM中的存储地址;再获得存储地址在待配置RAM中对应的存储实体的位置。
举例来说,假设配置数据域的RAM存储地址映射代码的特殊代码标识为“functionL”,配置数据由域a、域b、域c三个域组成,每个域名唯一且不重复,要获得这三个域的存储地址,可以通过在SoC的设计代码中先搜索RAM存储地址映射代码的特殊代码标识,根据搜索结果再搜索域名“a”获得域a的存储地址、搜索域名“b”获得域b的存储地址、搜索域名“c”获得域c的存储地址。需要理解的是,配置数据域的RAM存储地址映射代码的特殊代码标识为function L只是一个示例性的标识,而非实际使用中的标识,只是为了让本领域的技术人员能更容易理解,故不应作为对本发明的限定。进一步的,搜索“a”、“b”、“c”也只是示例性的展示如何获得域a、域b、域c的存储地址,实际中并非是如“a”、“b”、“c”这种形式,这也只是为了让本领域的技术人员能更容易理解,故不应作为对本发明的限定。
而获得存储地址在所述待配置RAM中对应的存储实体的位置的具体方式为:首先,基于第二关系表及待配置RAM的类型,确定待配置RAM的存储结构;其中,第二关系表用于表征SoC中,至少一种类型的RAM所对应的RAM存储结构;然后,解析RAM的存储结构,以获得存储地址对应的存储实体的位置。
最终,在执行步骤201和步骤202之后,便可借由它们的成果来完成:
步骤203,确定配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
步骤103、生成BUS配置地址与配置数据对应的存储实体的映射关系;并在对SoC进行仿真时,基于映射关系将配置数据配置到到配置数据对应的存储实体的位置。
通过执行步骤101、步骤102之后,便可获得配置数据对应的BUS配置地址和在待配置RAM中对应的存储实体的位置,此时执行步骤103生成BUS配置地址与配置数据对应的存储实体的位置的映射关系,在对SoC进行仿真前,基于映射关系将配置数据配置到对应的存储实体的位置,便可将配置数据原本需要经过控制通路、IP核所需的的时间节约出来,进而为仿真SoC节约大量的时间,以提高仿真SoC的效率。
在本发明提供的实施例中,通过先获得BUS配置地址和配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置,进而生成BUS配置地址与存储实体的位置的映射关系,使得在仿真时,只需基于映射关系将配置数据配置到对应的存储实体的位置,便可对待配置RAM进行快速配置,进而节约耗费在配置待配置RAM上的时间,从而有效的提高SoC的仿真效率。进一步的,本申请提供的实施列还能用于其它验证方法学中。
下面,结合具体的应用场景,对上述实施例做出进一步详细说明。
假设SoC验证工程师,需要对一SoC实施验证仿真工作,其中SoC内有100个IP核,在对SoC进行验证仿真的准备工作阶段,需要将26个配置数据配置到对应的待配置RAM中,这些待配置RAM分布在SoC内的100个IP核中,对于验证工程师而言,并不知道这26个配置数据需要配置到100个IP核中的哪些IP核内的RAM中,下面将描述验证工程师是如何将26个配置数据配置到对应的RAM中。
假设配置数据B为验证工程师从26个配置数据中选出,作为第一个将要配置待配置RAM对应的配置数据,且配置数据B包含了4个配置数据域,分别为域a、域b、域c、域d。
又假设,设计者定义配置数据B,在总线接口模块中对应的BUS配置地址为32’h2100_0000,且配置数据B的域a、域b、域c、域d应存放在待配置RAM中,其中待配置RAM由RAM13和RAM14组成,RAM13为32×4的存储矩阵,RAM14为16×8的存储矩阵,假设在一个存储矩阵中,用idx[i][j]唯一确定RAM中以存储实体的位置,i、j为正整数,配置数据B在RAM13和RAM14中的存储实体位置为:
域a位于RAM13的idx[24][1]-idx[27][1]和idx[24][2]-idx[27][2];
域b位于RAM13的idx[24][3]-idx[27][3]和idx[28][0]-idx[31][0];
域c位于RAM13idx[28][1]-idx[31][1]和idx[28][2]-idx[31][2];
域d位于RAM13的idx[28][3]-idx[31][3]和RAM14的idx[0][0]-idx[0][3]。
而验证工程师并不知道设计者是这样分配配置数据B的配置数据域到RAM13、RAM14中的,此时就需要验证工程师从SoC的设计代码中将上述信息找出,并总结规律,然后结合程序设计,将整个工作过程程序化,进而可以快速为其余的25个配置数据快速建立映射关系,以实现将配置数据快速配置到待配置RAM中,提高仿真SoC的效率。
具体的执行过程如下:
首先,验证工程师在获得配置数据B对应的BUS配置地址时,可以从SoC的spec(即说明书)中,获得26个配置数据在总线接口模块中对应的BUS配置地址,并形成第一关系表。其中,第一关系表用于表征配置数据在总线接口模块中对应的BUS地址,具体参见表1的形式。
当然,根据实际情况,也可以将获取的每个配置数据与总线接口模块中与之对应的BUS配置地址制成其它形式的文件,在此不做限定。在建立SoC的其它25个配置数据的BUS配置地址与对应的存储实体建立映射关系时,可以通过程序直接从第一关系表中读取。
其次,在确定配置数据B的4个配置数据域在待配置RAM中占用的存储实体的位置前,需要先从SoC中确定出待配置RAM是哪些RAM,找到并记录。
具体的,验证工程师可以通过仿真工具(如verdi等工具),追踪配置数据从总线接口模块传递到待配置RAM的数据流向,以获得待配置RAM的控制通路,进而基于控制通路找到待配置RAM在SoC中的位置。这样也就确定了配置数据B对应的待配置RAM为RAM13和RAM14,SoC的内部框图示例性的如图3所示,记录下待配置RAM在SoC中的位置,即为RAM13:SoC.312.321.RAM13,RAM14:SoC.312.322.322.RAM14。
其中,在图3中301代表顶层模块(DUT,Design under test)即为SoC,311为总线接口模块、312为一IP核,IP核321内包含了多个层级模块,在图3中,IP核312包括2个第一层级(即第一层级321、第一层级322)、第一层级322内又包括了IP核312的两个第二层级(即第二层级331、第二层级332)。而RAM13则位于IP核312的第一层级321中,RAM14则位于IP核312的第二层级332中。
用同样的方法可以获得其它配置数据对应的待配置RAM在SoC中的位置,并可将它们记录下来形成关系表,以便通过编程让程序在建立BUS配置地址与对应的存储实体建立映射关系时,可以通过程序直接从关系表中读取待配置RAM在SoC中的位置。
进一步的,在确定待配置RAM后,还需要进一步的确定配置数据B的域a、域b、域c、域d四个配置数据域在RAM13、RAM14中的存储地址,其中RAM13、RAM14的地址范围为0~63,每个地址存储2bit数据。需要理解的是,此处的存储地址是外部程序访问RAM时用的地址,如在对单片机编程时,需要访问单片机之外的存储器,是通过访问存储器的地址0-8完成的。
具体方式为,验证工程师从SoC的设计代码中搜索配置数据B的配置数据域的名字(如a),将获得第一搜索结果,示例性的如“function L”、“function M”、“function N”,其中“function N”作为各个配置数据域在RAM存储地址映射代码的特殊代码标识,再次搜索域名“a”,获得域a在RAM13对应的存储地址为50~53。验证工程师便从中获得了一规律:在此SoC中,设计者用“function L”标识配置数据域在RAM中的存储地址,那么要获得其它配置数据域在RAM中的存储地址时,便可通过此标识对SoC的设计代码直接进行搜素,再结合域名搜索,便可获得配置数据域对应的存储地址,例如通过编写程序对SoC的设计代码进行搜素,通过搜索“function L”,再次搜索“b”、“c”、“d”便可获得域b在RAM13的地址为54~57、域c在RAM13的地址为58~61、域d在RAM13的地址为62~63以及在RAM14的地址为0~1。在获得其它配置数据对应在待配置RAM中的存储地址时,利用程序进行搜索便能轻松获得,从而进一步的节约验证工程师工作。
接下来,只需要再获得配置数据B对应的存储地址在待配置RAM中对应的存储实体的位置便可。具体的,需要验证工程师通过查询RAM的结构来获得,请参见图4a和图4b。如验证工程师可以通过查询RAM13、RAM14的说明书来获得:RAM13的存储结构为一个32×4的存储矩阵,RAM14的存储结构为16×8的存储矩阵。
通过解析RAM13、RAM14验证模型代码获得RAM内部存储实体的排布规则,为了让本领域的技术人员能清楚的知道本发明是如何通过RAM的存储结构确定RAM的存储地址与对应的存储实体的位置,请参见图4a和图4b。
在图4a中,表示的是RAM在对外进行数据交互时,使用的存储地址为0-63,通常这个存储地址是外部程序访问RAM时用的地址。
在图4b中,表示的是一个RAM的存储结构中最小的存储单元即存储实体,在图4b中由于例举的是RAM为二维存储矩阵,所以在RAM内部用于寻址具体某个存储实体通常是用的二维数组的形式标识的,如在图中4b中存储体0的位置记为indx[0][0],在图4b中以“0,0”的形式示出。尽管在本实施例中是以RAM为二维存储矩阵为例的,但是,在实际的应用中RAM的存储结构也可能为三维的存储结构,此时存储体的位置可以记为indx[x][y][z],x、y、z为正整数,三维的存储结构,多出来的一个维度,实际上是指向不同的存储单元。
验证工程师通过解析RAM代码可以获取RAM结构中存储实体的排列规则,再结合图4a、图4b,图4b所示的RAM14存储结构中,indx[0][0]对应的是RAM14的存储地址0的第1比特数据,indx[0][1]对应的是RAM14的存储地址0的第2比特数据,indx[0][2]对应的是RAM14的存储地址1的第1比特数据,indx[0][3]对应的是RAM14的存储地址1的第2比特数据,indx[1][0]对应的是RAM14的存储地址2的第1比特数据,indx[1][1]对应的是RAM14的存储地址2的第2比特数据,即RAM的存储地址与RAM结构中存储实体的地址是以上述规则,形成的一个二维的存储矩阵,而这个二维存储矩阵中的每个存储实体的位置以二维数组的形式表示,验证工程师便可根据RAM存储结构的行、列数,将RAM存储地址与RAM结构中存储实体的位置对应起来,进而获得RAM的存储地址对应的存储实体的位置。
通常,一个SoC中RAM的存储结构只有有限的几种,验证工程师可以将SoC中有限的几种RAM存储结构编制成第二关系表,例如:1代表存储结构1用于记录此存储结构下,RAM存储地址与存储实体的位置之间的对应关系,2代表存储结构2用于记录此存储结构下,RAM存储地址与存储实体的位置之间的对应关系,当然也可以根据需要制成文件的形式、公式形式、程序算法等形式,在此不做限定。
这样便可通过图1的方法编制程序、装置等,自动、快速的建立配置数据A至配置数据Z各自的BUS配置地址与对应待配置RAM中存储实体之间的映射关系,使各配置数据能快速的从各自的BUS配置地址配置到对应待配置RAM的存储实体中,进而减少配置数据的配置时间,以有效提高仿真SoC的效率。
进一步的,在建立好BUS配置地址与配置数据在待配置RAM中对应的存储实体之间的映射关系之后,用户便可直接通过修改配置数据中配置数据域的内容快速仿真验证SoC设计的功能。如,配置数据A实现的灯光控制的功能,配置数据A下有域a、域b、域c,其中域a调整灯光的亮度、域b调整灯光的颜色、域c调整灯光的闪烁频率,现需要将域a改为亮度微弱的灯光时,只需要直接修改域a中的数据,便可瞬间完成。
在本发明提供的实施例中,通过先获得BUS配置地址和存储实体的位置,进而生成BUS配置地址与存储实体的位置的映射关系,使得在仿真时,只需基于映射关系配置待配置RAM配置数据到存储实体的位置,便可对待配置RAM进行快速配置,进而节约耗费在配置待配置RAM上的时间,从而有效的提高SoC的仿真效率。进一步的,本申请提供的实施列还能用于其它验证方法学中。
请参见图5,基于同一发明构思,本发明一实施例提供仿真过程中配置RAM的装置,该装置包括获取单元501、确定单元502、生成单元503。
在可能的实施方式中,获取模块,用于获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数。
在可能的实施方式中,确定模块,用于确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位。
在可能的实施方式中,生成模块,用于生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。
在可能的实施方式中,所述获取模块,还用于基于第一关系表及所述配置数据的名称获取所述BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
在可能的实施方式中,所述确定模块,还用于:从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM;基于配置数据域的RAM存储地址映射代码的特殊代码标识从所述SoC的设计代码中,获取所述配置数据中每个配置数据域在所述待配置RAM中的存储地址;获得所述存储地址在所述待配置RAM中对应的存储实体的位置;确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
在可能的实施方式中,所述从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM时,所述确定模块,还用于:基于所述设计信息,追踪所述配置数据从所述总线接口模块到所述待配置RAM的传输路径;基于所述传输路径,确定所述配置数据对应的所述待配置RAM。
在可能的实施方式中,所述获得所述存储地址在所述待配置RAM中对应的存储实体的位置时,所述确定模块还用于:基于第二关系表及所述待配置RAM的类型,确定所述待配置RAM的存储结构;其中,所述第二关系表用于表征所述SoC中,至少一种类型的RAM所对应的RAM存储结构;解析所述存储结构,以获得所述存储地址对应的存储实体的位置。
以上获取单元501、确定单元502、生成单元503可以由一个处理器完成上述功能也可以由多个处理器完成上述功能,在此不做限定。
其中,处理器可以包括中央处理器(CPU)或特定应用集成电路(ApplicationSpecific Integrated Circuit,ASIC),可以包括一个或多个用于控制程序执行的集成电路,可以包括使用现场可编程门阵列(Field Programmable Gate Array,FPGA)开发的硬件电路。
基于同一发明构思,本发明实施例还提供仿真过程中配置RAM的计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括如前的图1所示的方法实施例中记载的仿真过程中配置RAM所执行的全部步骤。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.仿真过程中配置RAM的方法,其特征在于,包括:
获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;
确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位;
生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。
2.如权利要求1所述的方法,其特征在于,所述获取总线接口模块中与配置数据对应的BUS配置地址,包括:
基于第一关系表及所述配置数据的名称获取所述BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
3.如权利要求1所述的方法,其特征在于,所述确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置,包括:
从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM;
基于配置数据域的RAM存储地址映射代码的特殊代码标识从所述SoC的设计代码中,获取所述配置数据中每个配置数据域在所述待配置RAM中的存储地址;
获得所述存储地址在所述待配置RAM中对应的存储实体的位置;
确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
4.如权利要求3所述的方法,其特征在于,所述SoC的从设计信息中,确定所述配置数据对应的所述待配置RAM,包括:
基于所述设计信息,追踪所述配置数据从所述总线接口模块到所述待配置RAM的传输路径;
基于所述传输路径,确定所述配置数据对应的所述待配置RAM。
5.如权利要求3所述的方法,其特征在于,所述获得所述存储地址在所述待配置RAM中对应的存储实体的位置,包括:
基于第二关系表及所述待配置RAM的类型,确定所述待配置RAM的存储结构;其中,所述第二关系表用于表征所述SoC中,至少一种类型的RAM所对应的RAM存储结构;
解析待配置RAM的所述存储结构,以获得所述存储地址对应的存储实体的位置。
6.仿真过程中配置RAM的装置,其特征在于,包括:
获取模块,用于获取总线接口模块中与配置数据对应的BUS配置地址;其中,所述配置数据由N个配置数据域组成,每个配置数据域对应一种功能,N为正整数;
确定模块,用于确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置;所述待配置RAM为SoC中至少一个IP核内的RAM,所述存储实体为所述待配置RAM的最小存储单位;
生成模块,用于生成所述BUS配置地址与所述存储实体的映射关系;并在对所述SoC进行仿真时,基于所述映射关系将所述配置数据配置到所述存储实体的位置。
7.如权利要求6所述的装置,其特征在于,所述获取模块,还用于:
基于第一关系表及所述配置数据的名称获取所述BUS配置地址;其中,所述第一关系表用于表征所述配置数据,在所述总线接口模块中对应的BUS地址。
8.如权利要求6所述的装置,其特征在于,所述确定模块,还用于:
从SoC的设计信息中,确定所述配置数据对应的所述待配置RAM;
基于配置数据域的RAM存储地址映射代码的特殊代码标识从所述SoC的设计代码中,获取所述配置数据中每个配置数据域在所述待配置RAM中的存储地址;
获得所述存储地址在所述待配置RAM中对应的存储实体的位置;
基于所述待配置RAM和所述存储地址在所述待配置RAM中对应的存储实体的位置,确定所述配置数据的N个配置数据域在待配置RAM中占用的存储实体的位置。
9.如权利要求8所述的装置,其特征在于,所述获得所述存储地址在所述待配置RAM中对应的存储实体的位置时,所述确定模块还用于:
基于第二关系表及所述待配置RAM的类型,确定所述待配置RAM的存储结构;其中,所述第二关系表用于表征所述SoC中,至少一种类型的RAM所对应的RAM存储结构;
解析所述待配置RAM的存储结构,以获得所述存储地址对应的存储实体的位置。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710780112.7A CN107729601B (zh) | 2017-09-01 | 2017-09-01 | 仿真过程中配置ram的方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710780112.7A CN107729601B (zh) | 2017-09-01 | 2017-09-01 | 仿真过程中配置ram的方法、装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729601A true CN107729601A (zh) | 2018-02-23 |
CN107729601B CN107729601B (zh) | 2022-01-11 |
Family
ID=61205452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710780112.7A Active CN107729601B (zh) | 2017-09-01 | 2017-09-01 | 仿真过程中配置ram的方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729601B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560372A (zh) * | 2020-11-27 | 2021-03-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片原型验证方法、装置、设备及介质 |
CN112579378A (zh) * | 2020-12-24 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种gpu芯片虚拟验证平台仿真图片的自动产生方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681931A (zh) * | 2015-11-06 | 2017-05-17 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106919521A (zh) * | 2015-12-28 | 2017-07-04 | 三星电子株式会社 | 片上系统及包括片上系统的系统及移动装置 |
CN107103256A (zh) * | 2015-10-13 | 2017-08-29 | 三星电子株式会社 | 存储装置、与其通信的主机以及包括其的电子装置 |
-
2017
- 2017-09-01 CN CN201710780112.7A patent/CN107729601B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103256A (zh) * | 2015-10-13 | 2017-08-29 | 三星电子株式会社 | 存储装置、与其通信的主机以及包括其的电子装置 |
CN106681931A (zh) * | 2015-11-06 | 2017-05-17 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106919521A (zh) * | 2015-12-28 | 2017-07-04 | 三星电子株式会社 | 片上系统及包括片上系统的系统及移动装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560372A (zh) * | 2020-11-27 | 2021-03-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片原型验证方法、装置、设备及介质 |
CN112560372B (zh) * | 2020-11-27 | 2022-10-21 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片原型验证方法、装置、设备及介质 |
CN112579378A (zh) * | 2020-12-24 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种gpu芯片虚拟验证平台仿真图片的自动产生方法 |
CN112579378B (zh) * | 2020-12-24 | 2024-04-19 | 西安翔腾微电子科技有限公司 | 一种gpu芯片虚拟验证平台仿真图片的自动产生方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107729601B (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113076227B (zh) | Mcu验证方法、系统和终端设备 | |
JP4994393B2 (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
US8073820B2 (en) | Method and system for a database to monitor and analyze performance of an electronic design | |
CN109684755A (zh) | 一种数模混合芯片异步电路全定制方法及系统 | |
CN106940428A (zh) | 芯片验证方法、装置及系统 | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN108038328A (zh) | 芯片自动仿真验证系统 | |
CN109542713A (zh) | 一种验证方法及验证装置 | |
CN109801665A (zh) | Sram自测试系统、架构及方法、存储介质 | |
CN102147829A (zh) | 一种ic功能验证方法 | |
CN111352697A (zh) | 灵活的物理功能和虚拟功能映射 | |
CN117709046B (zh) | 一种基于uvm的APB_bridge子系统级的验证平台的搭建方法 | |
CN112597719A (zh) | 数据网络设计验证方法、装置以及验证设备 | |
CN107729601A (zh) | 仿真过程中配置ram的方法、装置及计算机存储介质 | |
CN118052196A (zh) | 基于uvm的芯片验证测试方法、装置及电子设备 | |
CN113343629B (zh) | 集成电路验证方法、代码生成方法、系统、设备和介质 | |
CN102184290A (zh) | 一种嵌入式微处理器的周期精确和位精确系统级模型 | |
CN110705191A (zh) | 一种多形态模拟仿真验证环境的构建方法 | |
CN108804380A (zh) | 矢量运算硬件加速器多核级联的周期精确模型 | |
CN101916305A (zh) | 一种复杂管脚芯片的验证方法 | |
Guo et al. | A SPI interface module verification method based on UVM | |
CN116070567A (zh) | 一种缓存电路的验证方法、装置、设备及存储介质 | |
Zheng et al. | The methods of FPGA software verification | |
Nangia et al. | Functional verification of I2C core using SystemVerilog |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |