CN116842902B - 针对黑盒模型的系统级仿真建模方法 - Google Patents
针对黑盒模型的系统级仿真建模方法 Download PDFInfo
- Publication number
- CN116842902B CN116842902B CN202311092500.8A CN202311092500A CN116842902B CN 116842902 B CN116842902 B CN 116842902B CN 202311092500 A CN202311092500 A CN 202311092500A CN 116842902 B CN116842902 B CN 116842902B
- Authority
- CN
- China
- Prior art keywords
- instruction
- port
- simulation
- waveform
- interval
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000005094 computer simulation Methods 0.000 title claims abstract description 31
- 238000004088 simulation Methods 0.000 claims abstract description 100
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000000926 separation method Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 4
- 230000037431 insertion Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000012946 outsourcing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种针对黑盒模型的系统级仿真建模方法及计算设备。所述方法包括:获取对黑盒模型进行寄存器传输级单元仿真的汇总端口仿真波形信息;结合所述黑盒模型的规格文件,将所述汇总端口仿真波形信息分解为分离端口仿真波形信息;根据所述分离端口仿真波形信息,分析指令之间的隐性时序关系;根据所述隐性时序关系,对所述汇总端口的指令发送进行系统级仿真建模,以用于流量仿真的时序控制。根据本申请实施例的方法通过反映指令之间的隐性时序关系进行建模,可以提高系统级流量仿真的正确性。
Description
技术领域
本发明涉及芯片及仿真技术领域,具体涉及一种针对黑盒模型的系统级仿真建模方法及计算设备。
背景技术
随着大规模集成电路芯片的发展,芯片设计的复杂度也越来越高,这时一般使用高级语言(例如SystemC)辅助完成电子系统级建模和芯片的架构设计工作。在对SOC(system on chip:片上系统)系统进行建模时,由于其中往往存在非自研IP、外购模块等,在利用高级语言进行ESL(Electronic System Level Simulation:系统级仿真)建模时会涉及到黑盒模型的建模。
发明内容
本申请旨在提供一种针对黑盒模型的系统级仿真建模方法及计算设备,通过反映指令之间的隐性时序关系,提高ESL流量仿真的正确性。
根据本申请的一方面,提供一种针对黑盒模型的系统级仿真建模的方法,包括:
获取对黑盒模型进行寄存器传输级单元仿真的汇总端口仿真波形信息;
结合所述黑盒模型的规格文件,将所述汇总端口仿真波形信息分解为分离端口仿真波形信息;
根据所述分离端口仿真波形信息,分析指令之间的隐性时序关系;
根据所述隐性时序关系,对所述汇总端口的指令发送进行系统级仿真建模,以用于流量仿真的时序控制。
根据一些实施例,所述获取对黑盒模型进行寄存器传输级单元仿真的汇总端口仿真波形信息,包括:
以所述黑盒模型为单位从单元仿真获取寄存器传输级仿真波形信息。
根据一些实施例,所述分析指令之间的隐性时序关系,包括:
对于第一类波形占比大于第一预定阈值的第一类分离端口,在相应分析记录文件中将指令间隔记录为收到前一指令的回复与发送本指令之间的间隔,并记录每条指令的发送时间和ost,其中所述第一类波形为ost=0的波形,ost表示用于发送的无需等待回复的指令数量。
根据一些实施例,所述分析指令之间的隐性时序关系,还包括:
对于第二类波形占比大于第二预定阈值的第二类分离端口,在相应分析记录文件中将指令间隔记录为发送指令之间的间隔,并记录每条指令的发送时间和ost,其中所述第二类波形为ost>0的波形。
根据一些实施例,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于每个第一类分离端口,在收到前一指令的回复后,按照相应分析记录文件中记录的相应指令间隔进行下一指令的发送。
根据一些实施例,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于所述第二类分离端口,以预定间隔进行指令发送,所述预定间隔大于所述分析记录文件中记录的相应指令间隔。
根据一些实施例,对所述汇总端口的指令发送进行系统级仿真建模,包括:
按指令触发时间最早的顺序确定第一类分离端口之间发送指令的顺序逻辑;
对于每个第一类分离端口,在收到前一指令的回复后,按照相应分析记录文件中记录的相应指令间隔进行下一指令的发送,且如果由于其他分离端口的插入导致收到前一指令的回复后的间隔已经超过相应分析记录文件中记录的相应指令间隔,则立刻进行下一指令的发送。
根据一些实施例,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于第二类分离端口,根据波形形态按段分割指令发送,每段按指令触发时间最早的顺序确定与其他分离端口之间发送指令的顺序逻辑;
在每段内,以预定间隔进行指令发送,所述预定间隔大于相应分析记录文件中记录的相应指令间隔。
根据一些实施例,对所述汇总端口的指令发送进行系统级仿真建模,包括:
如果实际ost小于所述单元仿真得到的ost,则直接根据固定时间间隔发送下一段指令。
根据本申请的另一方面,提供一种计算设备,包括处理器,以及存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请实施例针对黑盒模型的建模方法,获取对黑盒模型进行单元仿真的RTL波形信息,将汇总端口分解为分离端口,根据指令之间的隐性时序关系对所述汇总端口的指令发送进行ESL建模,可提高ESL流量仿真的正确性。此外,通过单元仿真取得波形信息,减少了波形转储时间。根据一些实施例,获取波形的仿真时间减少至少三个数量级,且无需SOC其他模块配合,极大提高了仿真效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出对SoC芯片进行ESL仿真的系统示意图。
图2示出根据本申请示例实施例针对黑盒模型的系统级仿真建模的方法流程图。
图3A-图3C示出根据示例实施例的LOG文件的部分截图。
图4示出根据示例实施例的对汇总端口的指令发送进行ESL建模的方法流程图。
图5示出根据另一实施例的针对黑盒模型的系统级仿真建模的方法流程图。
图6示出根据示例实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
SoC(System-on-Chip:芯片上系统)使芯片设计的复杂度上了一个新台阶。这种复杂度既体现在芯片规模上,更体现在芯片本身就是一个软硬件结合的系统这一特征上。ESL(Electronic System Level:系统级)设计仿真能够以合理的成本成功地描述SoC系统。ESL是相对于RTL(Register Transfer Level,寄存器传输级)的。RTL,顾名思义,是用寄存器传输级的描述方式,描述数字电路的数据流。在做芯片设计的时候,一般都是用RTL代码来描述硬件的行为,然后再通过EDA工具把RTL代码转换为更低层次(门级,电路级等)的描述,最终产生可以用于芯片生产的描述。RTL级这个抽象层次描述了硬件实现的必要细节。当一个设计比较简单,或者没有太多软件开发工作的时候,RTL级设计方法就可以满足要求。但是,当需要做系统级的架构分析和软件开发的时候,用RTL描述系统就不合适。ESL在一个新的抽象层次(系统级)上描述硬件,实现快速的系统建模和仿真分析。由于放弃了不必要的细节,ESL模型的仿真速度往往比RTL级仿真快几个数量级,从而提高系统软硬件设计的效率。ESL使用高级语言(例如SystemC)对芯片进行建模,代码复杂度和规模远小于RTL代码,能够用于芯片的高效验证和评估。在芯片设计过程中,工程师需要设计的内容通常包括芯片性能模型、芯片功耗模型、芯片功能模型,在此过程中以及芯片验证过程中,均可以利用ESL设计仿真来实现。
在利用高级语言对SOC系统进行ESL建模时,会涉及到黑盒模型的建模,尤其是对于外购非自研半导体IP(Intellectual Property:知识产权)。半导体IP指在集成电路设计中,经过验证的、可重复使用且具备特定功能的集成电路模块,通常由第三方开发。IP能帮助降低芯片开发的难度、缩短芯片的开发周期并提升芯片性能。半导体IP大致可分为处理器IP、端口IP、内存IP以及其他IP。
为了保证ESL模型的准确性,需要RTL转储波形的输出时序与仿真场景的时序具有一致性。然而,传统的黑盒模型流量仿真中,当仿真场景和转储(dump)波形的场景差异较大时,难以保证这种一致性,可能无法正确提供架构设计参考。例如,由于转储波形的输出需要一定时间,若设置不当,可能会导致仿真时间的延长,从而影响仿真效率和设计进度。又例如,一些场景下总线拥堵,可能会造成时序发生变化,例如时钟信号变慢或者数据传输延迟增加等,从而导致转储波形的输出时序不同于仿真场景的时序,流量仿真正确性会大打折扣。
此外,发明人发现,传统黑盒模型的流量仿真建模中,对使用RTL仿真得到的波形进行解析,按序定时发波,往往无法反应指令之间的隐性时序关系,一定程度也会对SOC的流量仿真结果造成影响。
为此,本申请提出一种针对黑盒模型的建模方法,调整发波逻辑,尽量复刻黑盒模型中反映的数据隐性时序关系,实现对SOC流量仿真的真正助益。
下面结合附图对本申请的示例实施例进行说明。
图1示出对SoC芯片进行ESL仿真的系统示意图。
RTL描述硬件中的数据在不同寄存器之间的传输,属于系统架构中比较低的层次,仿真速度比较慢,需要有周期精确的总线协议以及硬件接口协议、大量的接口管脚信息。虽然RTL可以提供精确的时序信息,但需要考虑的细节较多,在进行系统架构的优化时花费的时间周期更长。ESL可以细化成为事务级建模,能够提供RTL实现的验证基础,为SoC系统架构验证和嵌入式软件开发登提供一种可运行的验证环境,可有效支撑SoC系统的迭代开发。
参见图1,ESL使用高级语言(例如SystemC)对SoC各硬件组成进行建模。进行建模的硬件可包括但不限于中央处理器(CPU)CPU01、存储器MEM01、总线BUS01、IP模块IP01以及IPn等。
如图1所示,IP模块IPn可为非自研外购模块,进行ESL建模时采用黑盒模型。例如,对于IP模块IPn,可能从产品提供的手册仅能获取模型对外接口信息,此模型对外仅表征为一个AXI接口,由内部三个AXI接口汇合后对外输出,三个接口中可包括例如两个读写接口和一个写接口。对于IP模块IPn内部实际可能包括的模块BLK01、BLK02和BLK03及其具体工作机理可显示为黑盒操作。
参见图1,对黑盒模型建模往往使用流量发生器TR01以模拟指令的发送,问题在于,这种方式往往忽略了指令响应的延迟。对此,可对使用RTL仿真得到的波形进行解析,按获得的时序发波。但是,当存在仿真场景和转储波形的场景差异较大时,如一些场景下总线拥堵,可能会造成时序的变化,流量仿真正确性仍然会大打折扣。
为此,本发明提供一种方案,基于对IP模块端口指令进行黑盒分析得到的指令之间的隐性时序关系(基于黑盒分析确定的指令之间实际可能的时序关系)进行ESL仿真建模,提供更为准确的仿真环境,增加流量仿真的可信度,为SoC设计提供更为可靠的仿真平台。
图2示出根据本申请示例实施例针对黑盒模型的系统级仿真建模的方法流程图。
根据示例实施,对于黑盒模型进行建模时,特别是对于包括至少两个分离端口的汇合端口,既考虑到每个分离端口内部指令之间的隐性时序关系,也考虑端口之间的隐性时序关系。在流量仿真中,仿真内容是向总线读和/或写数据。
参见图2,在S101,获取对黑盒模型进行RTL单元仿真的汇总端口仿真波形信息。
根据一些实施例,对于黑盒模型,例如已有购入模块,可以IP为单位从UT(unittest:单元仿真)等获取RTL仿真的波形统计信息。
在S103,根据所述黑盒模型的规格文件,将汇总端口仿真波形信息分解为分离端口仿真波形信息。
例如,结合模块介绍及波形,可对汇总端口进行分解(参见图3A、3B和3C),用于解析指令之间的隐性时序关系。
在S105,根据所述分离端口仿真波形信息,分析指令之间的隐性时序关系。
根据一些实施例,对于第一类波形占比大于第一预定阈值的第一类分离端口,在相应分析记录文件中将指令间隔记录为收到前一指令的回复与发送本指令之间的间隔(单位为周期),并记录每条指令的发送时间和ost,其中第一类波形为ost=0的波形,ost(Outstanding)表示用于发送的无需等待回复的指令数量,是指模块在没有收到回复时可以发起多个读写事务(transaction)的能力。
例如,如果多为ost=0的波形,则认为此端口的大多数指令都需要等待读回数据后才能进行后续处理,所以波形LOG中指令间隔为记录回复时间点和下一个指令的间隔。易于理解,对于ost=0的端口,也会出现不为0的情形,但会回归至ost=0。
根据一些实施例,对于第二类波形占比大于第二预定阈值的第二类分离端口,在相应分析记录文件中将指令间隔记录为发送指令之间的间隔,并记录每条指令的发送时间和ost,其中第二类波形为ost>0的波形。
例如,多ost 的端口,可认为多为连续指令,指令并非依赖前一回复数据,所以记录指令时间发送时间、ost、以及指令之间的间隔。
根据一些实施例,参见图3A-3C,波形统计信息可按端口以及读和写对应不同的分析记录文件(LOG文件),即每个端口可分别具有一个读指令统计文件和一个写指令统计文件。易于理解,根据端口的功能,也可能某个端口只有读指令统计文件或写指令统计文件。例如,根据不同的隐性时序关系,记录指令发出的时间(time)、端口/波形标识(id)、地址(addr)、长度(length)、指令间隔(interval)、指令数量(ost) 等需要使用到的信息。
根据一些实施例,可通过RTL仿真根据生成LOG文件。
在S107,根据隐性时序关系,对汇总端口的指令发送进行ESL建模,以用于流量仿真的时序控制。
根据一些实施例,需要根据不同分离端口内的指令隐性时序关系进行建模。对于每个第一类分离端口,在收到前一指令的回复后,按照分析记录文件中记录的相应指令间隔进行下一指令的发送。对于第二类分离端口,以预定间隔进行指令发送,预定间隔大于分析记录文件中记录的相应指令间隔。
例如,对于第一类分离端口,即波形ost多为0的端口,可通过记录回复时间点、达到间隔后进行下一指令的发送。而对于第二类分离端口,波形ost持续较大的端口,可认为此端口主要在处理连续的读写任务,内部可定间隔发出多ost的指令。
根据一些实施例,需要根据不同分离端口之间的顺序逻辑隐性时序关系进行建模。
例如,第一类分离端口之间可认为指令顺序和回复快慢无关,各端口之间可按指令触发时间最早的顺序增加顺序逻辑。
而对于第二类分离端口,易于理解,多个指令之间存在间歇(波形中断),可以根据波形形态按段分割与其他端口的隐性时序关系,参见前面的说明,每段结束后仍根据指令触发时间增加端口间的顺序逻辑。
根据实施例,在获得RTL仿真数据后,通过ESL来模拟、重现RTL仿真结果,时间上可以提高几个数量级。
根据本申请实施例针对黑盒模型的建模方法,调整发波逻辑,反映端口内指令之间的隐性时序关系,提高ESL流量仿真的正确性。此外,通过单元仿真取得波形信息,减少了波形转储时间。根据一些实施例,获取波形的仿真时间减少至少三个数量级,且无需SOC其他模块配合,极大提高了仿真效率。例如,单元仿真可在半小时得到结果,而SOC仿真由于多模块配合,复杂且成本高,一般需要至少一周才能得到结果。
图4示出根据示例实施例的对汇总端口的指令发送进行ESL建模的方法流程图。
参见图4,在S301,按指令触发时间最早的顺序确定第一类分离端口之间发送指令的顺序逻辑。
根据一些实施例,由于同一时刻只能发送一条指令,故根据LOG文件所记载的指令发出的绝对时间进行比较,确定第一类分离端口之间发送指令的顺序逻辑。
在S303,对于每个第一类分离端口,在收到前一指令的回复后,按照分析记录文件中记录的相应指令间隔进行下一指令的发送。
参见前面的讨论,对于第一类分离端口,即波形ost多为0的端口,可通过记录回复时间点、达到间隔后进行下一指令的发送。
在S305,如果由于其他分离端口的插入导致收到前一指令的回复后的间隔已经超过分析记录文件中记录的相应指令间隔,则立刻进行下一指令的发送。
对于每个端口,指令回复等待时间不依赖于其他端口,只需在本端口内进行时间比较。因此,如果因为其他端口插入导致延迟,使得下一指令发出超过预定间隔,则可立刻发出下一指令而无需基于其他端口指令来计时等待周期。
在S307,对于第二类分离端口,根据波形形态按段分割指令发送,每段按指令触发时间最早的顺序确定与其他分离端口之间发送指令的顺序逻辑。
对于第二类分离端口,多个指令之间存在间歇(波形中断),可以根据波形形态按段分割与其他端口的隐性时序关系,每段结束后仍根据指令触发时间增加端口间的顺序逻辑。
在S309,在每段内,以预定间隔进行指令发送,预定间隔大于分析记录文件中记录的相应指令间隔。
参见前面的讨论,对于第二类分离端口,波形ost持续较大的端口,可认为此端口主要在处理连续的读写任务,每段内可定间隔发出多ost的指令。
在S311,如果实际ost小于单元仿真得到的ost,则直接根据固定时间间隔发送下一段指令。
根据一些实施例,关于ost,由于场景差异和实际中对ost的限制,ost可能会和转储波形LOG中记录的存在差异。转储波形可以输出各种信号,如时钟信号、数据信号、状态信号等。通过转储波形,可以实时监测这些信号的变化,从而了解仿真过程中各个信号的状态和变化情况。在仿真工具中,可设置相应的仿真场景,包括时钟频率、仿真时长、输入数据等。在仿真过程中,可设置转储波形的场景,包括要输出的信号、输出时刻、输出格式等。仿真场景中设置的时钟频率、仿真时长等参数,以及转储波形的场景设置会影响到转储波形的形式和内容。
使用单元仿真得到的波形可认为是最大可能出现的ost,而回复时存在快慢。因此,当实际中ost小于单元仿真中时,根据指令间隔或回复与指令间隔判断时间会不准确,这时直接根据固定时间间隔发送下一段指令会是更合理的处理方案。另外,需考虑到单元仿真针对的是一个单元模块,而实际中一般是多模块仿真。
根据本申请实施例,基于指令之间的隐性时序关系、端口之间的隐性时序关系,构建黑盒模型的ESL仿真建模,进一步提高ESL流量仿真的正确性。此外,基于实际ost对指令发送进行建模,可进一步改进ESL仿真建模。
图5示出根据另一实施例的针对黑盒模型的系统级仿真建模的方法流程图。
下面以图像编解码模型为例对图5所示方法进行说明。一般而言,从该产品提供的手册仅能获取图像编解码模模型对外的端口信息,例如,一个AXI端口由内部三个AXI端口汇合后对外输出。AXI(Advanced eXtensible Interface)协议主要描述了主设备(Master)和从设备(Slave)之间的数据传输方式,主设备和从设备之间通过握手信号建立连接。当主设备的数据准备好时,会发出和维持VALID信号,表示数据有效;当从设备准备好接收数据时,会发出READY信号。数据只有在这两个信号都有效时才开始传输。假设三个端口中包括两个读写端口和一个写端口,将读写分开记录后可得到两个读端口(分别记为读1,读2)、两个写端口(分别记为写1,写2)、以及一个多ost的写端口(记为写3)。读写端口用于处理帧的解析,边读边处理,并将部分中间数据写回内存(模块内部的缓存有限),写端口用于将处理完成的图像写回内存。
从EDA仿真获取图像编解码模块的典型工作波形,从波形行为并结合端口处理的功能来看,两个读写端口、单个写端口内部的波形存在先后的依赖。可以理解为,读回数据完成后,等待模块处理完成写出到内存,再读取下一段数据进行处理,而导致的强输出隐性时序关系。此外,两个端口之间也存在先后的隐性时序关系。单独的写端口,由于是分小段写入内存,因此以一小段数据为单位,和其它两个端口存在先后的隐性时序关系,而小段内部的数据为连续写出,这可以理解为两个读写端口处理完一段数据后才会触发写端口的输出。
在该ESL仿真示例中,读1和读2端口处理占用一个进程(例如,利用SystemC实现),写1和写2端口处理占用一个进程,写3端口独自占用一个进程。在解析时,可单独解析各端口的波形,再增加端口之间的相互隐性时序关系。
参见图5,在S401,获取仿真波形。结合模块介绍及波形分析,分解端口并分析端口和指令相互隐性时序关系。参见前面的说明,此处不再赘述。
在S403,根据不同的隐性时序关系处理波形,获取需要的信息。
有些是通用信息,例如指令发出的时间(time)、端口/波形标识(id)、地址(addr)、长度(length)、指令类型(read/write:读/写)。
对于读写端口中单独读/写的波形记录,可认为模型内部处理速度不受外部读写延迟影响,读写端口内部收到上一笔指令的回复(response)和发出下一笔指令(request)的时间间隔仅由模型内部端口决定,延迟固定不变,所以记录信息时需要记录回复和发出的时间间隔(interval)。
对于读写端口中读和写相互之间关系的波形记录,由于读写端口为单独的通道,虽然存在先后隐性时序关系,但是读写的间隔易受到其它模块的影响,所以弱化其间的具体时间间隔关系,而仅关注先后顺序,如此可简化波形记录以及后续的模型实现。对读写端口中的读和写指令可分两个文件记录,读写之间的相互隐性时序关系由指令发出的时间(time)决定,即建模时仅处理读写指令之间的前后顺序,而不关注读写之间的间隔,对此无需增加额外记录信息。
对于单独写端口的波形记录,由于此端口内多为ost>0的指令,即连续的写指令,使用间隔(interval)信息记录指令和上一笔指令的间隔,用于找到两小段写指令的划分点。当interval>1000时,可认为下一笔写指令和其它两个读写端口有先后顺序关系,以time为参考点,用于决定指令的先后顺序。对于单独一小段内的多ost波形,按照固定间隔发送即可。
在S405,进程内找到多个分离端口中指令触发时间最早的端口,依次比较读1、读2、写1、写2之间的时间依赖,等待ost状态,等待各端口内部的回复和指令的间隔是否满足条件,满足条件后进行指令发送。
在S407,写3端口特殊处理。根据此端口特性,认为每隔一段起始部分和其他端口有时间隐性时序关系,每段内仅按照固定间隔发送ost指令即可,发送出去后记录指令的时间点,作为下一个指令的参考时间点。
在S409,如收到回复,更新读1、读2、写1、写2的回复时间点记录,作为下一个指令的参考时间点。
如此,可按照顺序处理发送所有端口的任务。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的技术方案至少具有以下优点中的一个或多个。
根据实施例的针对黑盒模型的建模方法,调整发波逻辑,反映端口内指令之间的隐性时序关系,可提高ESL流量仿真的正确性。
根据实施例,通过单元仿真取得波形信息,减少了波形转储时间。
根据一些实施例,获取波形的仿真时间减少至少三个数量级,且无需SOC其他模块配合,极大提高了仿真效率。
根据实施例,基于指令之间的隐性时序关系、端口之间的隐性时序关系,构建黑盒模型的ESL仿真建模,进一步提高ESL流量仿真的正确性,并可提高仿真速度。此外,基于实际ost对指令发送进行建模,可进一步改进ESL仿真建模。
图6示出根据本申请示例实施例的计算设备的框图。
如图6所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络端口16以及I/O端口18。处理器12、存储器14、网络端口16以及I/O端口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本申请实施例的方法。
计算设备30也可以通过网络端口16与一个或者多个网络通信。该网络端口16可以是无线网络端口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务端口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (8)
1.一种针对黑盒模型的系统级仿真建模的方法,其特征在于,包括:
获取对黑盒模型进行寄存器传输级单元仿真的汇总端口仿真波形信息;
结合所述黑盒模型的规格文件,将所述汇总端口仿真波形信息分解为分离端口仿真波形信息;
根据所述分离端口仿真波形信息,分析指令之间的隐性时序关系,包括:
对于第一类波形占比大于第一预定阈值的第一类分离端口,在相应分析记录文件中将指令间隔记录为收到前一指令的回复与发送本指令之间的间隔,并记录每条指令的发送时间和ost,其中所述第一类波形为ost=0的波形,ost表示用于发送的无需等待回复的指令数量;
对于第二类波形占比大于第二预定阈值的第二类分离端口,在相应分析记录文件中将指令间隔记录为发送指令之间的间隔,并记录每条指令的发送时间和ost,其中所述第二类波形为ost>0的波形;
根据所述隐性时序关系,对所述汇总端口的指令发送进行系统级仿真建模,以用于流量仿真的时序控制。
2.根据权利要求1所述的方法,其特征在于,所述获取对黑盒模型进行寄存器传输级单元仿真的汇总端口仿真波形信息,包括:
以所述黑盒模型为单位从单元仿真获取寄存器传输级仿真波形信息。
3.根据权利要求1所述的方法,其特征在于,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于每个第一类分离端口,在收到前一指令的回复后,按照相应分析记录文件中记录的相应指令间隔进行下一指令的发送。
4.根据权利要求1所述的方法,其特征在于,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于所述第二类分离端口,以预定间隔进行指令发送,所述预定间隔大于所述分析记录文件中记录的相应指令间隔。
5.根据权利要求1所述的方法,其特征在于,对所述汇总端口的指令发送进行系统级仿真建模,包括:
按指令触发时间最早的顺序确定第一类分离端口之间发送指令的顺序逻辑;
对于每个第一类分离端口,在收到前一指令的回复后,按照相应分析记录文件中记录的相应指令间隔进行下一指令的发送,且如果由于其他分离端口的插入导致收到前一指令的回复后的间隔已经超过相应分析记录文件中记录的相应指令间隔,则立刻进行下一指令的发送。
6.根据权利要求1所述的方法,其特征在于,对所述汇总端口的指令发送进行系统级仿真建模,包括:
对于第二类分离端口,根据波形形态按段分割指令发送,每段按指令触发时间最早的顺序确定与其他分离端口之间发送指令的顺序逻辑;
在每段内,以预定间隔进行指令发送,所述预定间隔大于相应分析记录文件中记录的相应指令间隔。
7.根据权利要求6所述的方法,其特征在于,对所述汇总端口的指令发送进行系统级仿真建模,包括:
如果实际ost小于所述单元仿真得到的ost,则直接根据固定时间间隔发送下一段指令。
8.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311092500.8A CN116842902B (zh) | 2023-08-29 | 2023-08-29 | 针对黑盒模型的系统级仿真建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311092500.8A CN116842902B (zh) | 2023-08-29 | 2023-08-29 | 针对黑盒模型的系统级仿真建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116842902A CN116842902A (zh) | 2023-10-03 |
CN116842902B true CN116842902B (zh) | 2023-11-21 |
Family
ID=88174600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311092500.8A Active CN116842902B (zh) | 2023-08-29 | 2023-08-29 | 针对黑盒模型的系统级仿真建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116842902B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700008A2 (en) * | 1994-09-01 | 1996-03-06 | Symbios Logic Inc. | Electronic circuit modeling method and apparatus |
WO2007066321A1 (en) * | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Transaction-based power model in circuit designs |
CN102184290A (zh) * | 2011-05-06 | 2011-09-14 | 天津大学 | 一种嵌入式微处理器的周期精确和位精确系统级模型 |
CN103927219A (zh) * | 2014-05-04 | 2014-07-16 | 南京大学 | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 |
CN113806930A (zh) * | 2021-09-08 | 2021-12-17 | 清华大学 | 白盒与黑盒离散事件系统协同仿真的时序推进方法及装置 |
CN116362168A (zh) * | 2023-05-31 | 2023-06-30 | 芯动微电子科技(珠海)有限公司 | 一种gpgpu离线时钟的建模方法、装置和存储介质 |
CN116451617A (zh) * | 2023-03-21 | 2023-07-18 | 眸芯科技(上海)有限公司 | 芯片仿真中基于仿真波形的信息处理方法、装置及应用 |
-
2023
- 2023-08-29 CN CN202311092500.8A patent/CN116842902B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700008A2 (en) * | 1994-09-01 | 1996-03-06 | Symbios Logic Inc. | Electronic circuit modeling method and apparatus |
WO2007066321A1 (en) * | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Transaction-based power model in circuit designs |
CN102184290A (zh) * | 2011-05-06 | 2011-09-14 | 天津大学 | 一种嵌入式微处理器的周期精确和位精确系统级模型 |
CN103927219A (zh) * | 2014-05-04 | 2014-07-16 | 南京大学 | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 |
CN113806930A (zh) * | 2021-09-08 | 2021-12-17 | 清华大学 | 白盒与黑盒离散事件系统协同仿真的时序推进方法及装置 |
CN116451617A (zh) * | 2023-03-21 | 2023-07-18 | 眸芯科技(上海)有限公司 | 芯片仿真中基于仿真波形的信息处理方法、装置及应用 |
CN116362168A (zh) * | 2023-05-31 | 2023-06-30 | 芯动微电子科技(珠海)有限公司 | 一种gpgpu离线时钟的建模方法、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
A Reconfigurable Multithreaded Accelerator for Recurrent Neural Networks;Zhiqiang Que 等;2020 International Conference on Field-Programmable Technology (ICFPT);第20-28页 * |
一种卫星导航SoC 芯片系统级仿真设计方法;张荣兵 等;遥测遥 控;第38卷(第6期);第54-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116842902A (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603528B (zh) | 调试系统和方法 | |
Pasricha et al. | Extending the transaction level modeling approach for fast communication architecture exploration | |
US7788625B1 (en) | Method and apparatus for precharacterizing systems for use in system level design of integrated circuits | |
CN115841089A (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
US9607120B2 (en) | Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit | |
US8036874B2 (en) | Software executing device and co-operation method | |
CN114528792A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
US7478027B2 (en) | Systems, methods, and media for simulation of integrated hardware and software designs | |
CN102184290B (zh) | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 | |
CN116362168A (zh) | 一种gpgpu离线时钟的建模方法、装置和存储介质 | |
US8700380B2 (en) | Method for generating performance evaluation model | |
US10664637B2 (en) | Testbench restoration based on capture and replay | |
CN117076337B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
Lafaye et al. | Model driven early exploration of IMA execution platform | |
JP5040625B2 (ja) | Lsiの電力見積方法及びその装置 | |
US7865345B2 (en) | Simulation apparatus and method | |
Hsu et al. | An accurate system architecture refinement methodology with mixed abstraction-level virtual platform | |
CN116842902B (zh) | 针对黑盒模型的系统级仿真建模方法 | |
US20130159591A1 (en) | Verifying data received out-of-order from a bus | |
US20100161305A1 (en) | Performance evaluation device, performance evaluation method and simulation program | |
US20140325468A1 (en) | Storage medium, and generation apparatus for generating transactions for performance evaluation | |
US11295052B1 (en) | Time correlation in hybrid emulation system | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
CN114416460A (zh) | 分析基带性能的方法和仿真系统 | |
CN115983172B (zh) | 用于后仿真的方法和仿真平台 |
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 |