CN116362168B - 一种gpgpu离线时钟的建模方法、装置和存储介质 - Google Patents
一种gpgpu离线时钟的建模方法、装置和存储介质 Download PDFInfo
- Publication number
- CN116362168B CN116362168B CN202310628296.0A CN202310628296A CN116362168B CN 116362168 B CN116362168 B CN 116362168B CN 202310628296 A CN202310628296 A CN 202310628296A CN 116362168 B CN116362168 B CN 116362168B
- Authority
- CN
- China
- Prior art keywords
- model
- data
- simulation
- functional logic
- offline
- 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
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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/022—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种GPGPU离线时钟的建模方法、装置和存储介质,方法包括构建C模型和RTL模型,将测试数据输入到C模型和RTL模型,获取C模型的第一仿真波形数据和RTL模型第二仿真波形数据;解析第一仿真波形数据和第二仿真波形数据,获取RTL模型内与第一仿真波形数据相同数据的各功能逻辑的延时;构建与C模型相同功能逻辑的中间离线模型,将各功能逻辑的延时插入中间离线模型对应的功能模块中,获取目标离线模型。本发明结合C模型和RTL模型优点,获取目标离线模型,简化了模型仿真细节,提高了仿真速度;各功能逻辑的延时数据可以用作评估目标离线模型的系统性能,使得本发明即兼顾仿真速度,也具有评估性能评估的能力。
Description
技术领域
本发明涉及芯片设计技术领域,特别是涉及一种GPGPU离线时钟的建模方法、装置和存储介质。
背景技术
现有GPU(Graphics Processing Unit,图像处理器)的仿真模型有两种,一种是功能模型,通常由C++开发,也称为C模型,其模块间交互是通过事件驱动或者直接方法调用的方式,无法准确描述流水线和系统运行并行性,不能精确评估系统运行时钟数,但是其仿真速度很快,大型用例通常只需要数小时,因此通常用于加速数据验证。另一种仿真模型由硬件描述语言开发,是寄存器和时钟精确级的模型,称为RTL(Register Transfer Level,寄存器传输级)模型,但是仿真速度非常慢,如果需要同时输出观测数据,往往需要数天甚至数周时间才能完成大型用例的仿真。
上述两种模型中,C模型仿真速度很快,要比RTL模型快几百甚至上千倍,但是由于其无法做较精准的时钟统计,故而无法评估系统性能。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明实施例要解决的技术问题在于如何克服现有C模型因无法做到较精准的时钟所导致无法对系统性能进行评估,以及RTL模型仿真效率低下的问题。
本发明实施例采用如下技术方案:
第一方面,本发明提出了一种GPGPU离线时钟的建模方法,包括:
构建C模型和RTL模型,将测试数据分别输入到C模型和RTL模型内,获取C模型的第一仿真波形数据,以及RTL模型的第二仿真波形数据;
分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时;
构建与所述C模型相同功能逻辑的中间离线模型,将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中,以获取目标离线模型。
优选的,所述分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时包括:
将第一仿真波形数据进行解析,获取第一仿真波形数据的第一解析结果;
将第二仿真波形数据进行解析,获取第二仿真波形数据的第二解析结果,以及第二仿真波形数据对应的RTL模型仿真阶段各功能逻辑的输入信号时序和输出信号时序;
将第一解析结果与第二解析结果进行比对,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的输入信号时序和输出信号时序,并计算RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时。
优选的,所述将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中包括:
从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差;
当功能逻辑不存在分支时,将所述时钟数差作为功能逻辑的延时插入中间离线模型对应的功能逻辑中;
当功能逻辑存在分支时,获取功能逻辑对应每个分支的输入信号时序和输出信号时序之间的时钟数差,将功能逻辑所有分支中的时钟数差的中值插入中间离线模型对应的功能逻辑中。
优选的,所述从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差包括:
从第二仿真波形数据中抽取各功能逻辑对应模块的输入使能信号和输出使能信号;
根据数据的输入顺序记录每个数据对应的输入使能信号和输出使能信号;
当数据的输入使能信号为高电平时,进行计时,获取对应数据的输入信号时序;当数据的输出使能信号为高电平时,计时结束,获取对应数据的输出信号时序;
计算输出信号时序与输入信号时序之间的差值,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差。
优选的,所述获取目标离线模型之后,还包括对于目标离线模型内的功能逻辑的延时进行验证,包括:
获取预设数量的测试数据,将测试数据依次输入RTL模型内进行仿真,获取RTL模型的第三仿真波形数据;
将测试数据依次输入目标离线模型内进行仿真,获取目标离线模型的第四仿真波形数据;
将第三仿真波形数据与第四波形数据进行比对,根据比对结果获取目标离线模型与RTL模型之间不一致的数据量,并计算出所述数据量占测试数据的第一误差百分比;
设定第一误差百分比的比对阈值,若第一误差百分比小于或等于比对阈值,则说明验证通过;若第一误差百分比大于比对阈值,则说明验证不通过,对目标离线模型进行重新调整。
优选的,所述目标离线模型内的功能逻辑的延时验证,按照功能逻辑的长度统计耗时、任务整体统计耗时或任务对应的各子阶段功能逻辑的耗时中的一种或多种。
优选的,所述获取目标离线模型之后,还包括利用目标离线模型进行仿真,包括:
加载从RTL模型内获取的延时配置文件,配置各功能逻辑延时;
获取待仿真的数据任务总数,按照输入目标离线模型内的顺序对待仿真的数据任务进行排序;
依次按照排序的序号将待仿真的数据任务输入目标离线模型内进行仿真,直至所有的待仿真的数据任务总数仿真完,并记录每个待仿真的数据任务开始的时钟、结束的时钟,以及结束时对应的仿真波形数据。
优选的,所述构建与所述C模型相同功能逻辑的中间离线模型包括:
载入和解析C模型任务单元下发的任务数据;
解析任务数据,并按照解析的顺序依次存放在中间离线模型内,直到C模型将所有的数据下发完为止。
第二方面,本发明还提供了一种GPGPU离线时钟的建模装置,所述建模装置用于实现如第一方面所述的GPGPU离线时钟的建模方法,所述建模装置包括前端处理单元、插桩单元以及时序单元;
所述前端处理单元用于解析C模型和RTL模型内的仿真数据,以及加载输入数据,并且按RTL数据输出速率向模型中发送数据以还原RTL仿真场景的输入时序;
所述GPGPU用于对数据进行仿真;
所述插桩单元用于从RTL仿真波形数据中抽取各个功能逻辑输入信号和输出信号之间的时钟数差,并将所述时钟数差作为功能逻辑的延迟插入到离线模型相应的功能逻辑中;
所述时序单元用于将离线模型导出的仿真数据与RTL仿真数据进行比对,以验证离线模型的误差。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成如第一方面所述的GPGPU离线时钟的建模方法。
本发明结合C模型和RTL模型优点,按照RTL模型的输入时序向模型中输入C模型数据,内部处理逻辑按照C模型方式做功能建模,并在相应的功能逻辑中加入延时计数模拟该处理逻辑耗时,最终获取本发明的目标离线模型,使得本发明的目标离线模型简化了模型的仿真细节,提高了仿真速度;同时,目标离线模型中计算结束后,输出包括仿真波形的数据和功能逻辑的延时数据,功能逻辑的延时数据可以用作评估目标离线模型的系统性能,使得本发明的目标离线模型既可兼顾仿真速度,也具有进行系统性能评估的能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的现有RTL模型内模块A请求模块B某项功能产生的数据的场景示意图;
图2是本发明实施例提供的现有RTL模型内模块A与模块B之间同步通信接口结构示意图;
图3是本发明实施例提供的现有C模型内的输入输出组合逻辑示意图;
图4是本发明实施例提供的现有RTL模型内的输入输出时序逻辑示意图;
图5是本发明实施例提供的GPGPU离线时钟的建模方法的流程图;
图6是本发明实施例提供的GPGPU离线时钟的建模方法内从C模型中获取中间离线模型的架构图;
图7是本发明实施例提供的GPGPU离线时钟的建模方法内中间离线模型从C模型内获取测试数据输入顺序的流程图;
图8是本发明实施例提供的GPGPU离线时钟的建模方法内获取目标离线模型的结构示意图;
图9是本发明实施例提供的目标离线模型的异步并行的流水线时序结构示意图;
图10是本发明实施例提供的目标离线模型内四级流水输入输出流水时序运行结构示意图;
图11是本发明实施例提供的目标离线模型内四级流水带有“气泡”的输入输出流水时序运行结构示意图;
图12是本发明实施例提供的GPGPU离线时钟的建模方法内获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时的方法流程图;
图13是本发明实施例提供的GPGPU离线时钟的建模方法内将功能逻辑的延时插入所述中间离线模型对应的功能模块的方法流程图;
图14是本发明实施例提供的GPGPU离线时钟的建模方法内获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差的方法流程图;
图15是本发明实施例提供的现有RTL模型内某具体功能逻辑波形输入输出图;
图16是本发明实施例提供的GPGPU离线时钟的建模方法内对于目标离线模型内的功能逻辑的延时进行验证的方法流程图;
图17是本发明实施例提供的GPGPU离线时钟的建模方法所获取的目标离线模型进行仿真的方法流程图;
图18是本发明实施例内连续多个数据经过目标离线模型的理想情况时序图;
图19是本发明实施例内连续多个数据经过目标离线模型的理想情况时序对应的各模型的运行情况图;
图20是本发明实施例提供的GPGPU离线时钟的建模装置简图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
RTL模型是一种寄存器精确的硬件模型,其内部实现同实际硬件一样,精确到每一个寄存器和信号,所以其仿真时,需要模拟每一个寄存器变量的值的变化,每一个信号的电平状态,其内部有大量的处理逻辑是由时钟激励驱动的,即时序逻辑,当时钟信号为电平变化时,驱动相应的功能逻辑进行处理,且产生的仿真数据通常是按时钟周期记录每种信号的值,其仿真精度准确。但由于RTL模型实现细节非常复杂,其内部信号种类非常多,产生的仿真数据量十分庞大,通常在十几GB到几百GB,仿真速度因此非常缓慢。
C模型是一种功能模型,其仿真不是由时钟激励来触发,而是由功能调用或者事件触发,系统内部各个功能运行次数远远小于RTL,因此其运行速度很快,产生的仿真数据量也较小,通常只有几十MB。但C模型仿真通常不包含时钟的记录,无法精确确定模块间何时交互、模块间通信和各种逻辑处理产生的时延,所以C模型没有办法统计用例仿真总共耗时多少时钟数。
以下是C模型和RTL模型的比对:
以下分析C模型和RTL模型间的时序差异。
1、通信延迟
RTL模型仿真数据记录了每个时钟周期中各个模块间通信的数据记录以及各处理逻辑的数据,因此数据量非常庞大,但可以记录整个用例仿真的耗时。如图1所示,表示模块A请求模块B某项功能func1产生的数据的场景。
在C模型中,完成上述模块连接以及过程调用的代码如下:
A *a = new A(); // 创建模块A实例
B *b = new B(); // 创建模块B实例
a.connect(b); // 建立A与B的连接,将B的实例保存在A内部
data = b.func1 (); // 在模块A请求模块B功能并返回数据
以上可见,模块A通过直接调用模块B的功能可以同时完成数据请求和功能逻辑。
而在RTL建模中,模块间同步通信接口如图2所示:
模块A的请求数据通过端口data_out写出,该端口与模块B的接收端口data_in通过连线a_b_data进行连接,模块B可通过data_in接收模块A发送来的请求数据。此外还需要valid和ready信号完成通信握手。
模块A向模块B发送一次请求可以描述为以下流程:
(1)模块A向data_out端口写入请求数据data;
(2)模块A将dout_valid信号置为1 ;
(3)模块A通过dout_ready端口等待模块B的响应信号,直到当该端口值为1时表示模块B已接收此次请求;
(4)模块A将dout_valid信号重置为0,表示该次请求结束。
模块B从模块A接收一次请求可以描述为以下流程:
(1)模块B通过din_valid等待模块A的请求,当该端口值为1时表示模块A的请求到来;
(2)模块B通过data_in端口接收模块A的请求数据;
(3)模块B将din_ready信号置为1,通知模块A此次请求数据已接收。
当模块A发送请求时,需要等待并接收到模块B应答才算此次传输结束,当B模块没有响应时,此次通信将被阻塞。由此可见,RTL模型能够模拟通信中因阻塞产生的延迟。
2、功能逻辑延迟
在真实的硬件中,处理逻辑分为组合逻辑和时序逻辑两种。其中组合逻辑输出随着输入数据的值变化而变化,输入输出之间是没有耗时的;而时序逻辑可以表示成一种状态机,其内部处理逻辑是随时间进行状态转移的,因此其输入输出之间是有时钟耗时的。如图3和图4所示,图3表示组合逻辑,图4表示时序逻辑。
C模型模块处理逻辑可以通过一个函数实现,没有区分组合逻辑和时序逻辑,也就无法描述时序逻辑产生的时钟数。但同时,C模型简化了部分模块的实现,由若干函数完成模块的功能,这也大大加快了仿真速度。
RTL模型模块处理逻辑为时序逻辑,结合图2和图4可知,RTL模型采取的是时序逻辑,但数据的处理方式具有极大的通信延迟。
以上两点是C模型和RTL模型在系统运行时序上的主要差异。
本发明实施例提供了一种GPGPU离线时钟的建模方法,如图5示,包括:
步骤201:构建C模型和RTL模型,将测试数据分别输入到C模型和RTL模型内,获取C模型的第一仿真波形数据,以及RTL模型的第二仿真波形数据。
其中,本发明实施例的目标离线模型结合C模型和RTL模型的优点,因此在获取目标离线模型的过程中,首先需要在系统内构建C模型和RTL模型,对于C模型和RTL模型的构建属于现有技术,在此不做赘述。
当测试数据分别输入C模型和RTL模型后,通过对应的C模型和RTL模型进行仿真后,获取基于C模型的第一仿真波形数据,以及基于RTL模型的第二仿真波形数据。其中,由于第一仿真波形数据由C模型仿真获取,第一仿真波形数据内只包含仿真数据,但不包含各功能逻辑的延时数据;第二仿真波形数据由RTL模型仿真获取,因此第二仿真波形数据内既包含仿真数据,还包含各功能逻辑的延时数据。除此之外,由于本发明实施例在构建目标离线模型的过程中,采取同源的测试数据分别输入到C模型和RTL模型内,因此C模型所输出的第一仿真波形数据与RTL模型内输出的第二仿真波形数据内具有相同的仿真数据。
步骤202:分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时。
当获取对应的第一仿真波形数据和第二仿真波形数据后,利用离线模型内的解析工具(对应离线模型内的前端处理单元)对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时。对于本发明实施例C模型和RTL模型采取同源的数据进行仿真,对于获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时的过程,其可以理解为:将C模型所仿真得到的第一仿真波形数据拿到RTL模型中进行检索,在第二仿真波形数据找到与第一仿真波形数据相同的仿真数据,然后在第二仿真波形数据内获取该相同仿真数据所对应的各功能逻辑的延时。
步骤203:构建与所述C模型相同功能逻辑的中间离线模型,将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中,以获取目标离线模型。
本发明实施例的中间离线模型具有与C模型相同的功能逻辑,在进行数据仿真时,继承了C模型对于数据的排序功能,如图6所示,表示本发明实施例从C模型中获取中间离线模型的架构图,图6的中间离线模型内包括有前端处理单元和GPGPU(General-purposecomputing on graphics processing units,通用图形处理器),前端处理单元用于解析C模型所仿真的第一仿真波形数据,通过第一仿真波形数据可以获取C模型内任务分发单元对于测试数据的输入顺序,然后将测试数据的输入顺序存储在中间离线模型内,如图7所示,表示中间离线模型从C模型内获取测试数据输入顺序的流程图,在一些实施方式中,包括:载入C模型任务分发单元输出数据;解析任务数据并放入任务列表;向GPGPU单元发送任务总数;向GPGPU单元发送一条任务数据;并判断任务列表是否为空,若任务列表不为空,则返回继续向GPGPU单元发送一条任务数据,直至任务列表为空时,结束任务。当执行结束后,中间离线模型就具有与C模型相同的功能逻辑,最后通过中间离线模型中的验证和时序统计单元对C模型和中间离线模型同源数据进行仿真比对,若获取的仿真波形数据相同或在允许的误差范围内,则表示中间离线模型构建成功。
当构建中间离线模型成功后,如图8所示,前端处理单元解析RTL模型内所仿真的第二仿真波形数据,通过第二仿真波形数据可以获取RTL模型内的各功能逻辑延时数据,并通过延时计算和插桩单元将获取的各功能逻辑的延时插入中间离线模型内(具体参阅图11中)形成目标离线模型,最后目标离线模型内的验证和时序统计单元对RTL模型和目标离线模型同源数据进行仿真比对,若获取的仿真波形数据相同或在允许的误差范围内,则表示目标离线模型构建成功。值得说明的是,本发明实施例在使用时序单元对于目标离线模型进行验证的过程中,按照与RTL模型数据输出速率向目标离线模型中发送同源的测试数据以还原RTL仿真场景的输入时序,使得输入的数据更好的与获取的各功能逻辑的延时匹配。此外,对于RTL模型内数据输入的速率和输入的速率可以从RTL模型的第二仿真波形数据中获取。
本发明结合C模型和RTL模型优点,按照RTL模型的输入时序向模型中输入C模型数据,内部处理逻辑按照C模型方式做功能建模,并在相应的功能逻辑中加入延时计数模拟该处理逻辑耗时,最终获取本发明的目标离线模型,使得本发明的目标离线模型简化了模型的仿真细节,提高了仿真速度;同时,离线数据模型中计算结束后,输出包括仿真波形的数据和功能逻辑的延时数据,功能逻辑的延时数据可以用作评估目标离线模型的系统性能,使得本发明的目标离线模型即兼顾仿真速度,也具有评估性能评估的能力。
除此之外,为了进一步加快本发明实施例的目标离线模型对于仿真的速度,本发明实施例还提出了一种流水线时序的方法,适用在本发明实施例的目标离线模型对于数据的处理。
在目标离线模型的硬件当中,模块之间是异步并行的流水线设计,如图9对应的系统所示。
如图9所示,存在4级流水线,假设每一级消耗时钟数为1。若每隔一个时钟输入一个数据,则第一个数据从输入到输出需要花费4个时钟,此后每一个时钟输出一个后续数据,其运行时间如图10所示:
Cycle 0时刻, S1阶段接收到数据D1;
Cycle 1时刻,D1完成S1逻辑阶段,输出到S2;此时数据D2进入S1阶段;
Cycle 2时刻,数据D1进入S3,D2进入S2,D3进入S1;
以此类推,每经过一个时钟,数据完成当前阶段操作,进入下一级流水线阶段。
当Cycle 4时刻,D1完成S4阶段处理,从系统输出。D1从输入系统到输出总共用时4个cycle。
Cycle 5时刻,D2完成S4阶段处理并输出,D2同样总共耗时4个cycle,但其紧挨着D1的时钟输出出去。
以此类推,此后每个时钟周期,输出一个数据,4个数据总共耗时7个cycle完成处理。也就是说,当第一次数据进入时,整个流水线需要有个排空的过程,跟流水线级数有关,此后如果数据是连续的,则流水线处于灌满状态,数据可以持续流水输出,但每个数据从输入到输出的耗时是相同的,与流水线级数相关。
上述例子中,列举目标离线模型流水线持续流水的运行情况。当流水线输入数据之间并不连续时,目标离线模型内的流水线中会出现“气泡”现象,数据在流水线中是断续的情况,如图11所示,系统同样运行了7个时钟周期,只有2个数据被输出。原因是数据D1和数据D2之间存在“空隙”(空白格占据,参阅图11),数据输入并不连续,导致输出也并不连续。
这种现象的产生一方面受系统输入数据的时序影响,另一方面受系统流水线级数影响。
而C模型并没有按时序进行输入,并不记录其输入的时间,同时其系统内部并不是按流水线设计的,无法模拟系统的“气泡”情况(其中,图11中空白格为对应的“气泡”),因此无法精确记录系统的时序。而RTL模型内具有通信延时,并且对于数据处理远比本发明实施例提供的流水线时序方式复杂,使得仿真需要的时间更长,效率低。
为了详细的阐述本发明实施例完整的方案,接下来对本发明实施例的细节做详细的阐述。所述分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时,如图12所示,具体包括:
步骤301:将第一仿真波形数据进行解析,获取第一仿真波形数据的第一解析结果。
其中,本发明实施例使用前端处理单元对于第一仿真波形数据进行解析,以获取第一解析结果。从第一解析结果中可以获取测试数据的仿真结果信息,以及测试数据输入C模型的下发顺序(即测试数据输入C模型的顺序),本发明实施例所述构建与所述C模型相同功能逻辑的中间离线模型,实际指的是测试数据输入C模型的下发顺序的过程,通过下发顺序进行仿真,所述构建与所述C模型相同功能逻辑的中间离线模型,具体包括:载入和解析C模型任务单元下发的任务数据;解析任务数据,并按照解析的顺序依次存放在中间离线模型内,直到C模型将所有的数据下发完为止;然后利用中间离线模型内的GPGPU进行仿真。
步骤302:将第二仿真波形数据进行解析,获取第二仿真波形数据的第二解析结果,以及第二仿真波形数据对应的RTL模型仿真阶段各功能逻辑的输入信号时序和输出信号时序。
其中,通过前端处理单元对于第二仿真波形数据进行解析后,获取第二解析结果。从第二解析结果中可以获取测试数据的仿真结果信息、测试数据输入RTL模型的下发顺序,以及测试数据输入和输出到RTL中的输入时序和输出时序。为了便于理解,接下来以具体的实例进行解释说明,假定测试数据包含有A、B和C三条数据,并且按照A、B、C的顺序输入,此时C模型和RTL模型的下发顺序表示为A、B、C,并无时序对应。
步骤303:将第一解析结果与第二解析结果进行比对,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的输入时序和输出信号时序,并计算RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时。
本发明实施例的各功能逻辑的延时等于输出信号与输入信号之间的时钟数差值,通常用周期数或时钟数表示,当获取了对应各功能逻辑的输入信号时序和输出信号时序后,就可以计算出各功能逻辑的延时。对于第一解析结果与第二解析结果的比对过程,前述已经做了相应的阐述,在此不做赘述。
对于本发明实施例的延时计算和插桩单元插入的过程中,考虑到由于功能逻辑中可能存在不同的分支,导致输入和输出的差值并不固定时钟插桩模块取其该差值的中值并标记该处功能逻辑非固定,以便后续更细粒度(对应该功能逻辑的分支功能逻辑)的按不同分支进行延时插入。所述将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中,如图13所示,具体包括:
步骤401:从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差。
其中,通过前端处理单元解析第二仿真数据中,可以获取各功能逻辑对应的输入信号时序和输出信号时序,通过输入信号时序和输出信号时序之间的差值,进而获取各功能逻辑之间的时钟数差。
步骤402:当功能逻辑不存在分支时,将所述时钟数差作为功能逻辑的延时插入中间离线模型对应的功能逻辑中。
当功能逻辑只有一个支路时,该差值即为该功能逻辑对应的时钟差,并将该差值插入对应的功能逻辑中,以获取该功能逻辑的延时。
步骤403:当功能逻辑存在分支时,获取功能逻辑对应每个分支的信号时序和输出信号时序之间的时钟数差,将功能逻辑所有分支中的时钟数差的中值插入中间离线模型对应的功能逻辑中。
当功能逻辑有多个支路时,即该功能逻辑存在分支时,通过取个分支的中值插入该功能逻辑中,并标记该功能逻辑为非固定,以便于后续分支功能逻辑计算延时。
本发明实施例所述从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差,如图14所示,具体包括:
步骤501:从第二仿真波形数据中抽取各功能逻辑对应模块的输入使能信号和输出的使能信号。
如图15所示,表示从RTL模型内某具体功能逻辑波形输入输出图,图15中的in是某模块输入使能信号,din信号表示此次输入的数据;out是该模块的输出使能信号。 in和out信号是一一对应的,即相邻的一组in和out之间的时钟周期也就是该模块此次数据处理逻辑的耗时,例如上图所示△t1为处理第一个输入数据v1的时间,为2个时钟周期,△t2为处理第二个输入数据v2的时间,为1个时钟周期。
步骤502:根据数据的输入顺序记录每个数据对应的输入使能信号和输出使能信号;当数据的输入使能信号为高电平时,进行计时,获取对应数据的输入信号时序;当数据的输出使能信号为高电平时,计时结束,获取对应数据的输出信号时序。
如图15所示,本发明实施例的输入使能信号(in)为高电平时,即上升沿时,表示一次输入,输出使能信号(out)为高电平时表示该模块输出。
步骤503:计算输出信号时序与输入信号时序之间的差值,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差。
本发明实施例通过仿真波形数据中的输入使能信号和输出使能信号,就可以获取各功能逻辑中的延时。
当获取本发明实施例的目标离线模型后,还包括对于目标离线模型内的功能逻辑的延时进行验证,如图16所示,具体包括:
步骤601:获取预设数量的测试数据,将测试数据依次输入RTL模型内进行仿真,获取RTL模型的第三仿真波形数据;将测试数据依次输入目标离线模型内进行仿真,获取目标离线模型的第四仿真波形数据。
其中,本发明实施例使用目标离线模型中的时序单元中的对目标离线模型内的功能逻辑的延时进行验证,通过比对RTL模型和目标离线模型对于同源数据仿真的结果来进行比较,将测试数据分别输入RTL模型和目标离线模型内,以获取RTL模型的第三仿真波形数据和目标离线模型的第四仿真波形数据。值得注意的是,本发明实施例在将数据输入目标离线模型时,测试数据输入的速率按照所获取各功能逻辑时序时对应的RTL模型内相同的数据输入速率进行,以便于还原与RTL模型仿真场景近似的输入时序。
步骤602:将第三仿真波形数据与第四波形数据进行比对,根据比对结果获取目标离线模型与RTL模型之间不一致的数据量,并计算出所述数据量占测试数据的第一误差百分比。
在利用第三仿真波形数据与第四仿真波形数据进行比对之前,还需要利用前端处理单元对于第三仿真波形数据和第四仿真波形数据进行解析,通过时序单元将目标离线模型的第四仿真波形数据和RTL模型的第三仿真波形数据进行比对,计算出目标离线模型内与RTL模型不一致的数据量,通过不一致的数据量除以目标离线模型内的数据量总数,计算出目标离线模型中的第一误差百分比。值得注意的是,本发明实施例在计算目标离线模型内与RTL模型不一致的数据量时,以测试数据内的每一个子数据作为单位进行计算,并非以数据量所占据的内存大小。
步骤603:设定第一误差百分比的比对阈值,若第一误差百分比小于等于比对阈值,则说明验证通过;若第一误差百分比大于比对阈值,则说明验证不通过,对目标离线模型进行重新调整。
其中,当获取目标离线模型以后,通过设置的比对阈值与第一误差百分比进行比对,就可以获取本发明实施例的目标离线模型是否合格。对于本发明实施例的比对阈值的设定根据实际情况进行设置。除此之外,本发明实施例所述目标离线模型内的功能逻辑的延时验证,按照功能逻辑的长度统计耗时、任务整体统计时耗或任务对应的各子阶段功能逻辑的耗时中的一种或多种。
本发明实施例在获取离线模型之后,并且通过时序单元验证后,还包括利用目标离线模型进行仿真,如图17所示,具体包括:
步骤701:加载从RTL模型内获取的延时配置文件,配置各功能逻辑延时;获取待仿真的数据任务总数,按照输入目标离线模型内的顺序对待仿真的数据任务进行排序。
其中,目标离线模型内插入有RTL模型仿真阶段各功能逻辑的延时,在使用目标离线模型进行仿真的过程中,首先需要加载从RTL模型内获取的延时配置文件,配置各功能逻辑延时。然后通过前端处理单元获取待仿真的数据任务总数,按照输入目标模型内的顺序对待仿真的数据任务进行排序,以便按照流水线时序的方式将数据输入到目标离线模型内进行仿真。
步骤702:并依次按照排序的序号输入目标离线模型内进行仿真,直到将所有的待仿真的数据任务总数仿真完,并记录每个待仿真数据任务开始的时钟、结束的时钟,以及结束时对应的仿真波形数据。
当前端处理单元获取待仿真的数据任务总数和顺序后,依次按照排序的序号输入目标离线模型内进行仿真,输出对应的仿真波形图。
本发明实施例的目标离线模型采取流水线的方式对数据进行处理,假设目标离线模型内有N个子模块,依次顺序执行的,分别对应的处理时间是T1~TN,该耗时可以从RTL模型仿真波形中分析得出。在离线模型中每个子模块中加入相应的延时,表示该模块耗时,则输入数据在离线模型中需要的总处理时间是。
当连续多个数据经过离线模型时,理想情况下其时序如图18和图19所示,我们利用CLFFT和SM4用例数据进行仿真时序校准,并使用C模型输出数据进行CLFFT、SM4、AES(一种加密算法)、SHA256(一种加密算法)等仿真实验,实验结果得出的时钟精度已经非常接近RTL,误差均在10%以内,能够近似评估系统性能;而且仿真时间与C模型仿真时间几乎相差无几,均在1小时以内,远远低于RTL仿真时间。因此,本发明提出的时钟精确离线模型构建方法具备了仿真速度快、时钟精度高的特点,显著提高了系统性能分析工作效率。
本发明结合C模型和RTL模型优点,按照RTL模型的输入时序向模型中输入C模型数据,内部处理逻辑按照C模型方式做功能建模,并在相应的功能逻辑中加入延时计数模拟该处理逻辑耗时,最终获取本发明的目标离线模型,使得本发明的目标离线模型简化了模型的仿真细节,提高了仿真速度;同时,离线数据模型中计算结束后,输出包括仿真波形的数据和功能逻辑的延时数据,功能逻辑的延时数据可以用作评估目标离线模型的系统性能,使得本发明的目标离线模型即兼顾仿真速度,也具有评估性能评估的能力。
本发明实施例从虚拟模块的角度,还提出了一种GPGPU离线时钟的建模装置,所述建模装置用于实现上述实施例中的GPGPU离线时钟的建模方法,所述建模装置包括前端处理单元、延时计算和插桩单元,以及验证和时序统计单元;
所述前端处理单元用于解析C模型和RTL模型内的仿真数据,以及加载输入数据,并且按RTL数据输出速率向模型中发送数据以还原RTL仿真场景的输入时序;
所述GPGPU用于对数据进行仿真;
所述插桩单元用于从RTL仿真波形数据中抽取各个功能逻辑输入和输出信号之间的时钟数差,并将所述时钟数差作为功能逻辑的延迟插入到离线模型相应的功能逻辑中;
所述时序单元用于将离线模型导出的仿真数据与RTL仿真数据进行比对,以验证离线模型的误差。
本发明实施例从存储介质的角度上,还提出了一种GPGPU离线时钟的建模装置。在如图20所示,是本发明实施例的GPGPU离线时钟的建模装置的架构简图。本实施例的GPGPU离线时钟的建模装置包括一个或多个处理器21以及存储器22。其中,图20中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图20中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例中的GPGPU离线时钟的建模方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行GPGPU离线时钟的建模方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例中的GPGPU离线时钟的建模方法,例如,执行以上描述的图5至19所示的各个步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种GPGPU离线时钟的建模方法,其特征在于,包括:
构建C模型和RTL模型,将测试数据分别输入到C模型和RTL模型内,获取C模型的第一仿真波形数据,以及RTL模型的第二仿真波形数据;其中,所述C模型为一种功能模型,所述C模型的第一仿真波形数据内不包含时钟记录;
分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时;
构建与所述C模型相同功能逻辑的中间离线模型,将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中,以获取目标离线模型。
2.根据权利要求1所述的GPGPU离线时钟的建模方法,其特征在于,所述分别对第一仿真波形数据和第二仿真波形数据进行解析,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时包括:
将第一仿真波形数据进行解析,获取第一仿真波形数据的第一解析结果;
将第二仿真波形数据进行解析,获取第二仿真波形数据的第二解析结果,以及第二仿真波形数据对应的RTL模型仿真阶段各功能逻辑的输入信号时序和输出信号时序;
将第一解析结果与第二解析结果进行比对,获取RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的输入信号时序和输出信号时序,并计算RTL模型内与第一仿真波形数据相同数据对应的各功能逻辑的延时。
3.根据权利要求1所述的GPGPU离线时钟的建模方法,其特征在于,所述将RTL模型仿真阶段各功能逻辑的延时插入所述中间离线模型对应的功能模块中包括:
从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差;
当功能逻辑不存在分支时,将所述时钟数差作为功能逻辑的延时插入中间离线模型对应的功能逻辑中;
当功能逻辑存在分支时,获取功能逻辑对应每个分支的输入信号时序和输出信号时序之间的时钟数差,将功能逻辑所有分支中的时钟数差的中值插入中间离线模型对应的功能逻辑中。
4.根据权利要求3所述的GPGPU离线时钟的建模方法,其特征在于,所述从第二仿真波形数据中抽取各功能逻辑输入信号时序和输出信号时序,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差包括:
从第二仿真波形数据中抽取各功能逻辑对应模块的输入使能信号和输出使能信号;
根据数据的输入顺序记录每个数据对应的输入使能信号和输出使能信号;
当数据的输入使能信号为高电平时,进行计时,获取对应数据的输入信号时序;当数据的输出使能信号为高电平时,计时结束,获取对应数据的输出信号时序;
计算输出信号时序与输入信号时序之间的差值,获取各功能逻辑输入信号时序和输出信号时序之间的时钟数差。
5.根据权利要求1所述的GPGPU离线时钟的建模方法,其特征在于,所述获取目标离线模型之后,还包括对于目标离线模型内的功能逻辑的延时进行验证包括:
获取预设数量的测试数据,将测试数据依次输入RTL模型内进行仿真,获取RTL模型的第三仿真波形数据;
将测试数据依次输入目标离线模型内进行仿真,获取目标离线模型的第四仿真波形数据;
将第三仿真波形数据与第四波形数据进行比对,根据比对结果获取目标离线模型与RTL模型之间不一致的数据量,并计算出所述数据量占测试数据的第一误差百分比;
设定第一误差百分比的比对阈值,若第一误差百分比小于或等于比对阈值,则说明验证通过;若第一误差百分比大于比对阈值,则说明验证不通过,对目标离线模型进行重新调整。
6.根据权利要求5所述的GPGPU离线时钟的建模方法,其特征在于,所述目标离线模型内的功能逻辑的延时验证,按照功能逻辑的长度统计耗时、任务整体统计耗时或任务对应的各子阶段功能逻辑的耗时中的一种或多种。
7.根据权利要求1至6中任一项所述的GPGPU离线时钟的建模方法,其特征在于,所述获取目标离线模型之后,还包括利用目标离线模型进行仿真包括:
加载从RTL模型内获取的延时配置文件,配置各功能逻辑延时;
获取待仿真的数据任务总数,按照输入目标离线模型内的顺序对待仿真的数据任务进行排序;
依次按照排序的序号将待仿真的数据任务输入目标离线模型内进行仿真,直至所有的待仿真的数据任务总数仿真完,并记录每个待仿真的数据任务开始的时钟、结束的时钟,以及结束时对应的仿真波形数据。
8.根据权利要求1所述的GPGPU离线时钟的建模方法,其特征在于,所述构建与所述C模型相同功能逻辑的中间离线模型包括:
载入和解析C模型任务单元下发的任务数据;
解析任务数据,并按照解析的顺序依次存放在中间离线模型内,直到C模型将所有的数据下发完为止。
9.一种GPGPU离线时钟的建模装置,其特征在于,所述建模装置用于实现如权利要求1至8中任一项所述的GPGPU离线时钟的建模方法,所述建模装置包括前端处理单元、GPGPU、插桩单元以及时序单元;
所述前端处理单元用于解析C模型和RTL模型内的仿真数据,以及加载输入数据,并且按RTL数据输出速率向模型中发送数据以还原RTL仿真场景的输入时序;
所述GPGPU用于对数据进行仿真;
所述插桩单元用于从RTL仿真波形数据中抽取各个功能逻辑输入信号和输出信号之间的时钟数差,并将所述时钟数差作为功能逻辑的延迟插入到离线模型相应的功能逻辑中;
所述时序单元用于将离线模型导出的仿真数据与RTL仿真数据进行比对,以验证离线模型的误差。
10.一种非易失性计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成如权利要求1至8中任一项所述的GPGPU离线时钟的建模方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310628296.0A CN116362168B (zh) | 2023-05-31 | 2023-05-31 | 一种gpgpu离线时钟的建模方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310628296.0A CN116362168B (zh) | 2023-05-31 | 2023-05-31 | 一种gpgpu离线时钟的建模方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116362168A CN116362168A (zh) | 2023-06-30 |
CN116362168B true CN116362168B (zh) | 2023-08-22 |
Family
ID=86922527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310628296.0A Active CN116362168B (zh) | 2023-05-31 | 2023-05-31 | 一种gpgpu离线时钟的建模方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362168B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842902B (zh) * | 2023-08-29 | 2023-11-21 | 深圳鲲云信息科技有限公司 | 针对黑盒模型的系统级仿真建模方法 |
CN116954306B (zh) * | 2023-09-20 | 2024-01-02 | 芯动微电子科技(珠海)有限公司 | 一种时钟移相方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045784A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向gpu芯片主机接口单元功能仿真方法及平台 |
CN115719047A (zh) * | 2022-11-14 | 2023-02-28 | 沐曦集成电路(上海)有限公司 | 基于波形gpu联合仿真系统 |
CN115935870A (zh) * | 2022-11-29 | 2023-04-07 | 海光信息技术股份有限公司 | 功耗分析方法、装置、电子设备、存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10120965B2 (en) * | 2015-09-30 | 2018-11-06 | Synopsys, Inc. | Waveform based reconstruction for emulation |
US11080446B2 (en) * | 2019-03-18 | 2021-08-03 | Synopsys, Inc. | Method to regulate clock frequencies of hybrid electronic systems |
-
2023
- 2023-05-31 CN CN202310628296.0A patent/CN116362168B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045784A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向gpu芯片主机接口单元功能仿真方法及平台 |
CN115719047A (zh) * | 2022-11-14 | 2023-02-28 | 沐曦集成电路(上海)有限公司 | 基于波形gpu联合仿真系统 |
CN115935870A (zh) * | 2022-11-29 | 2023-04-07 | 海光信息技术股份有限公司 | 功耗分析方法、装置、电子设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
Using RTL-to-C++ translation for large SoC concurrent engineering: A case study;Stoye W 等;IEEE Electronics Systems and Software;第20-25页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116362168A (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116362168B (zh) | 一种gpgpu离线时钟的建模方法、装置和存储介质 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
US10509876B2 (en) | Simulation using parallel processors | |
US12001317B2 (en) | Waveform based reconstruction for emulation | |
US10235483B2 (en) | Capturing time-slice of emulation data for offline embedded software debug | |
CN103927219A (zh) | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 | |
US8418099B2 (en) | Performance counters for integrated circuits | |
US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
Atitallah et al. | An MPSoC performance estimation framework using transaction level modeling | |
Nogueira et al. | A formal model for performance and energy evaluation of embedded systems | |
CN115629928B (zh) | 一种面向类脑处理器的软硬协同验证方法及系统 | |
Wolf et al. | Execution cost interval refinement in static software analysis | |
CN109710562A (zh) | 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 | |
US11295052B1 (en) | Time correlation in hybrid emulation system | |
CN116842902B (zh) | 针对黑盒模型的系统级仿真建模方法 | |
Hahanov et al. | «Quantum» processor for digital systems analysis | |
CN115983172B (zh) | 用于后仿真的方法和仿真平台 | |
CN114429051B (zh) | 数据流芯片的建模方法、装置、设备及介质 | |
US11048843B1 (en) | Dynamic netlist modification of compacted data arrays in an emulation system | |
Obrizan et al. | Multiversion parallel synthesis of digital structures based on SystemC specification | |
Tian et al. | Efficient Memory Processors Design of Multiple Applications for Multiprocessor Architecture | |
RU136611U1 (ru) | Система выявления ошибок параллельных программ | |
CN116432722A (zh) | 一种评估脉动阵列加速器性能的方法及系统 | |
Salvador et al. | Effects of nondeterminism in hardware and software simulation with thread mapping | |
CN116935724A (zh) | 用于处理器设计实验课程的fpga硬件设计验证方法 |
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 |