CN111480150A - 用于控制引擎调试、测试、校准和调节的软件环境 - Google Patents
用于控制引擎调试、测试、校准和调节的软件环境 Download PDFInfo
- Publication number
- CN111480150A CN111480150A CN201880077336.4A CN201880077336A CN111480150A CN 111480150 A CN111480150 A CN 111480150A CN 201880077336 A CN201880077336 A CN 201880077336A CN 111480150 A CN111480150 A CN 111480150A
- Authority
- CN
- China
- Prior art keywords
- code
- calibration
- hardware
- debugging
- testing
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 105
- 238000012546 transfer Methods 0.000 claims description 22
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 27
- 238000013461 design Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000013515 script Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 7
- 239000010931 gold Substances 0.000 description 7
- 229910052737 gold Inorganic materials 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000009533 lab test Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及诸如在纯电动或混合动力车辆电动马达的控制中使用的电动引擎数字控制领域,更具体地涉及与在用于特定目标硬件系统的调试和/或测试和/或校准或调节的上下文中的代码处理有关的方法。本发明提供了一种用于自动生成多个代码的方法,所述多个代码适于在包括至少一个软件可编程单元和至少一个硬件可编程单元的异构硬件系统上执行,所述代码包括可执行校准指令,所述方法包括:(i)加载包括一个或多个代码描述的初始代码;(ii)在所述初始代码上提供用户校准指令,以指定代码描述中将被视为校准参数的那些变量和/或代码描述中将被视为被监视的值的那些变量;以及(iii)基于所加载的初始代码自动生成每一可用单元至少一个的设有校准指令的所述代码的步骤。
Description
技术领域
本发明涉及电动引擎数字控制领域,特别是针对(但不限于)纯电动或混合动力车辆电动马达的控制。
本发明涉及对于以上领域在调试和/或测试和/或校准或调节的上下文中与代码处理相关的方法,以及由所述方法和/或相关代码实现的各种用途、特定目标硬件系统、用途及其布置和支持或使用所述方法的平台、软件环境。
背景技术
用于开发马达控制系统的常用方法如下:
1.步骤#1:循环算法中的模型开发
●在这个阶段,以纯虚拟方式(使用Matlab/Simulink类仿真软件)开发并调试控制的模型和系统的模型(马达、动力传动系...)。
●在这个阶段,所有理论(假设理想的)控制曲线被计算并验证。
●在这个阶段开发的模型被视为“黄金(golden)”参考
2.步骤#2:将控制算法映射到ECU上
●在这个阶段,将步骤#1的理想控制算法翻译成适合所选择的引擎控制单元硬件的操作算法。
●这个阶段可以或多或少地自动化(尤其是在ECU是纯软件实施方式的情况下)。但是,在以下情况下,手动工程设计通常是必要的:
i.控制的一部分从主控制中分离出来,以映射在外部FPGA设备中(这是为了处理快速的实时操作)
ii.控制算法的一部分映射在微控制器特定于目标的硬件加速器(诸如数学运算符)上
●在任何情况下,映射阶段都导致控制算法准确性的折衷,以解决硬件限制。
3.步骤#3:循环算法中的硬件调节
●这个操作通常在实验室测试台中发生,其中将电动马达置于准确受控的操作条件下。
●在这个阶段,将校准基础结构添加到控制算法,以便能够注入调节参数并收集操作变量曲线
●将那些曲线与理想曲线进行比较,并对参数值执行反馈循环以达到最优值。
●这个操作适于相当大量的调节参数。
●这个操作还可以导致反馈到步骤#1,以便根据需要重新访问理想模型。
●在这个阶段结束时,控制算法被认为是最终的,并且定义了调节参数的精简集合以在步骤#4中使用
4.步骤#4:循环算法中的车辆调节
●这个操作在现实生活操作条件下在真实车辆中发生
●除了调节参数的数量减少之外,校准机制与步骤#3相同。
优选地,开发流程是高度自动化的。这意味着从控制算法模型到在ECU上运行的操作代码,基本上不涉及手动编码。
这个原则提供了许多好处,包括:
●实施方式错误的风险降至最低(无需手动重新编码)
●在算法开发的早期阶段考虑到了所有ECU目标硬件限制。这意味着算法准确性的所有适当折衷都在步骤#1而不是步骤#2处决定。
如上面所介绍的,校准任务意味着将一些额外的计算功能添加到初始控制算法,以便将校准值注入到算法的一些预定义参数,并提取一些关键变量的值。
因此,根据定义,校准基础结构对于控制算法而言是入侵式的。
入侵性可以从两个角度考虑:
●在操作代码中,校准基础结构必须存在。我们无法逃避这一点。
●在开发阶段,问题是定义这个校准阶段出现在流程中哪一步。
○或者在步骤#1期间定义这个基础结构。
■这是个问题,因为我们在“黄金”模型中添加了“非功能”操作。因此,我们不能再将这个模型视为黄金。
○或者,在步骤#2中手动添加基础结构以对生成的代码进行覆盖。
■这是个问题,因为我们打破了基于模型的自动化流程。
存在从初始代码自动生成代码的方法(诸如US 6742175和/或“Automatic flightcode generation with integrated static and run-time error checking and codeanalysis”,XP 007905828),但是它们都不针对也不处理异构硬件系统的细节,该系统包括至少一个软件可编程单元和至少一个硬件可编程单元,要求自动生成代码的步骤,每一可用单元至少一个。
存在从初始代码自动生成代码的方法,但是它们都不针对也不处理在调试和/或测试的上下文中的代码处理的细节,尤其是对于上面提到的目标平台,要求为所述代码提供调试和/或测试指令。
发明目的
本发明的目的是具有一种校准基础结构,从而通过使其适于包括在操作代码中而(优选地绝对)不对黄金模型进行任何修改和/或不对生成的代码进行手动覆盖,来解决上面提到的问题。
发明内容
在本发明的第一方面,本发明涉及一种用于自动生成适于在包括至少一个软件可编程单元和至少一个硬件可编程单元的异构硬件系统上执行的多个代码的方法,所述代码包括校准指令,所述方法包括:(i)加载包括一个或多个代码描述的初始(高级别仿真)代码;(ii)加载校准指令;(iii)基于所加载的初始代码和所加载的校准指令,自动生成所述代码(40),每一可用单元至少一个。
在本发明的第二方面,本发明涉及一种布置(驾驶车辆的一部分或适合作为驾驶车辆的一部分),其包括:电动引擎;以及引擎控制单元硬件,为所述引擎提供(实时)控制,所述引擎控制单元硬件包括异构硬件系统,该异构硬件系统包括至少一个软件可编程单元和至少一个硬件可编程单元,并且执行由本发明的第一方面的方法生成的代码。
在本发明的第三方面,本发明涉及通过前述方面的方法和/或布置实现的另外的方法,特别是用于控制代码的功能相似性的方法,包括:(i)执行(仿真)包括一个或多个代码描述的初始(高级别仿真)代码;(ii)执行通过本发明的第一方面的方法从所述初始(高级别仿真)代码生成的代码;以及(iii)比较所述执行的结果以核实所述代码的(大体)功能相似性,并且例如使用那些(比较,例如差异)来引导校准处理。
在本发明的第四方面,本发明涉及包括计算机可读代码的相关计算机程序产品,计算机可读代码在计算机系统上运行时使计算机系统执行任何前述方法权利要求中的方法。
在本发明的第五方面,本发明涉及存储上述计算机程序产品的相关非瞬态机器可读存储介质。
附图说明
图1描述了本发明的上下文(左侧)以及它支持的校准挑战。
图2描述了本发明对其具有特定优点的FPCU设备。
图3示意性地描述了所发明的方法的高级别步骤、输入和输出(代码)以及相关元素,诸如所涉及的软件环境和不同硬件。
图4然后示意性地描述了本发明的另外用途的高级别步骤。
图5示出了本发明的示例性实施例。
图6示出了本发明的特定实现的步骤的(排序的)列表的更详细列表。
图7图示了要在本发明中使用的示例性界面。
图8(特别是右侧)示出了在使用本发明期间生成的特定硬件结构。
图9提供了图示本发明要进行和实现的与由校准引起的数据传送相关的技术考虑的时序图。
图10和11图示了在本发明的示例性实施方式中使用的某些详细流程图。
图12描述了具有调试基础结构的图2的FPCU设备的变体,对于这种调试基础结构,本发明具有特定的附加有利特征。
图13描述了本发明的上下文的变体(左侧),特别是对于图12的FPCU和它支持的校准挑战。
图14提供了针对图12和13的上下文的说明性示例。
具体实施方式
本发明涉及(i)与代码处理相关的方法,诸如(多)代码设计、(半)自动(多)代码生成和(多)代码执行,包括调试和/或测试和/或校准或调节以及通过所述方法和/或设计的代码、生成的代码实现的各种用途,以及(ii)产生合适的(经由诸如特定资源之类的改编)目标硬件系统,特别是异构硬件系统(并且因此要求多代码),合适的目标(应用)系统,包括那些硬件系统,以支持和/或最优地受益于所述方法。
本发明特别涉及上述内容,其中对于所述目标(应用)系统的一个或多个部分,代码描述可用,并且所述(多)代码设计方法最初从所述一个或多个代码描述开始,而且所述(多)代码设计方法被改编,使其输入必须适于随后的(半)自动(多)代码生成,其本身适合于生成用于目标硬件系统的各种代码(在多代码之上表示)。另外,由所发明的设计提供的调试和/或测试和/或校准或调节能力和/或由本发明提供的生成和/或执行和/或仿真环境(或框架)适合于充分保护原始的(多)代码(即,在添加与调试和/或测试和/或校准或调节相关的任何指令、代码等之前的代码)。
所发明的特别设计的方法使得能够部署各种(半)自动用途,诸如调节或校准和/或与参考(高级别抽象)进行比较。而且,那些方法还确保在设计目标(应用)系统所要求并用于目标(应用)系统的与安全执行(通过避免手动代码操纵和/或提供多于足够的测试/调试和校准机会)相结合的最优性能时,可以考虑硬件系统的硬件限制(比如在邀请设计人员探索可以负担得起多少额外代码时以其限制进行)。
因此,本发明提供了用于设计代码的设计方法,该方法从包括一个或多个系统代码描述的初始代码开始并加载初始代码,加载调试、测试或校准指令,另外的代码的另外的(半)自动生成,适于对目标硬件系统(更特别地是异构硬件系统)进行编程或在其上执行,因此生成了多个另外的代码,所述生成方法从所述设计代码开始并加载所述设计代码,并加载将在其上使用调试、测试或校准指令的指令。所述生成方法可以直接集成在所述设计方法中。在所述硬件系统和/或应用系统可以连接到调试、测试或校准装备以提供相关功能时,生成方法和/或集成设计方法也可以包括适于操纵此类装备的代码的生成。
给定上述各种代码的可用性,本发明基于在所述目标硬件系统、连接的调试、测试或校准装备或任何其它用于其的计算支持系统上执行一个或多个所述生成的代码来提供调试、测试或校准方法。而且,可以通过将那些执行嵌入用户定义的循环中来提供自动调节或校准和/或与参考(高级别抽象)进行比较。
如以上更一般性地描述的,本发明涉及多种代码处理方法,因此其本身通过可在计算机布置上执行的计算机可读代码来实现,所述代码和相关的计算机布置一起形成环境或框架或基础结构。
如所述的,本发明特别涉及以上内容,其中对于所述目标(应用)系统的一个或多个部分,代码描述是可用的,也称为模型,因此所述方法可以被称为是基于模型的。典型的目标应用是在纯电动或混合动力车辆电动马达中找到的电动引擎,因此是其(数字)控制。因此,(一个或多个)所述模型的示例性实施例涉及马达、动力传动系。在这里值得注意的是,初始代码是高级别(仿真)代码,诸如但不限于Matlab或Simulink代码等。
本发明尤其涉及用于引擎控制单元硬件的方法,特别是基于异构硬件系统(因此要求多代码)的引擎控制单元硬件,更尤其是包括至少一个或多个微处理器核和一个或多个可编程逻辑矩阵的FPCU系统,因此所述多代码包括用于所述核的操作代码和用于所述可编程矩阵的硬件描述语言代码。而且,所述硬件系统优选地包括专用于汽车动力传动系控制的外围设备(电路)和用于从可编程逻辑控制外围设备的自定义互连结构。在这个阶段值得注意的是,对目标应用域实施的快速实时操作在引擎控制单元硬件中(更尤其是通过可编程矩阵)进行处理。
本发明特别是在特定的上下文中应用,其中所选择的ECU微控制器设备实际上是FPCU(现场可编程控制单元)。
在特定的实施例中,FPCU是在同一硅片上嵌入以下元件的设备:
●一个或多个标准微处理器核
●一些标准的调试和跟踪硬件基础结构
●一些通用微控制器模块(DMA、看门狗、定时器…)
●包含以下的子系统:
○嵌入式可编程逻辑矩阵(FLU)
○专用于汽车动力传动系控制的外围设备集合(PWM、捕获、ADC、CAN…)
○自定义的互连结构,其允许根据映射到FLU中的任何逻辑直接控制那些外围设备
○DPRAM,其允许从FLU/向FLU传送数据
如所提到的,本发明支持调试和/或测试和/或校准或调节能力。现在,结合校准来描述由引入这种支持所造成的技术问题,但是可以对调试和/或测试能力进行类似的考虑。本质上,校准要求将额外的代码添加到设计代码,并且同样在另外的(半)自动生成的代码中添加,因此所配置的矩阵和运行代码至少在原理上与预期代码不同,这可能会影响操作,尤其是考虑到与所需的快速实时操作相结合的硬件限制。因此,存在充分保护原始(多)代码(因此也称为黄金模型)(即,在与校准或调节相关的任何指令、代码等之前的代码)的要求。
因此,本发明提供了用于设计代码的设计方法,该设计方法从包括一个或多个系统代码描述的初始代码开始并加载初始代码,加载(调试、测试或)校准指令(指定代码描述中将被视为校准参数的那些变量,和/或代码描述中将被视为要监视的值的那些变量)、(在某种程度上)将那些指令添加到所述初始代码(以特定方式(例如,通过充分清晰的注释或作为元数据)),使得适于对目标硬件系统(更特别地是异构硬件系统,因此要生成多个另外的代码)进行编程或在其上执行的另外的代码的另外的(半)自动生成除了它最初会生成的代码之外还提供(例如,因为它意识到提供的注释)与所述校准相关的额外代码。因此,生成用于所述核的额外操作校准代码(例如,C代码)或用于所述可编程矩阵的校准硬件描述语言代码。
可以指出,在这个阶段,在硬件级别上,校准要求与之相关的数据传送,通常比经校准的系统的普通使用期间要求更高的数据传送。因此,优选地,特定于目标异构硬件系统的资源(诸如内部存储器(诸如片上RAM)、允许向核或可编程矩阵的数据传送的互连以及朝着所述存储器的输入/输出端口)足以支持那些数据传送。在这里可以强调的是,那些额外的另外的代码的另外的(半)自动生成依赖于或被迫依赖于那些提供的特定资源。
现在描述本发明的贡献的进一步见解。
由于校准任务意味着要将一些额外的计算功能添加到初始控制算法,以便将校准值注入到该算法的一些预定义参数,并提取一些关键变量的值,因此此类操作对于控制算法是入侵式的。
这是个问题,因为我们在“黄金”模型中添加了“非功能”操作。因此,总的来说,我们不能再将这个模型视为黄金。而且,虽然优选地在没有校准的设计流程中使用基于模型的自动化流程,但是作为对生成的代码进行手动覆盖的添加校准破坏了基于模型的自动化流程。
如上所述,本发明提供了用于设计/生成代码的设计方法,该方法从包括一个或多个系统代码描述(特别是包括系统模型和/或其控制模型)的初始代码开始并加载初始代码,并加载调试、测试或校准指令(用于注入参数和/或提取变量)。本发明提供了用于设计/生成代码以使校准特征包括在操作模式中、而优选地绝对不对黄金模型进行任何修改并且优选地不对生成的代码进行手动覆盖的方法。
在FPCU设备的上下文中,在(一个或多个)微处理器核上的软件执行和在FLU上的硬件执行之间划分控制算法。
在这两种情况下,操作代码都是根据模型自动生成的。
●用于处理器的C代码
●用于FLU的HDL代码
在模型级别,基于模型的流程允许设计人员轻松定义要在处理器或FLU上执行算法的哪些部分。
问题是对于添加校准能够维持相同的灵活性。这意味着这些校准操作可以在处理器中或者在FLU中进行,但是根据用户模型,两者应当以相同的方式指定。
图1对这个上下文进行了图示。
本发明还改进了用于设计代码的设计方法,从包括一个或多个系统代码描述的初始代码开始并加载初始代码,适于对异构硬件系统进行编程或在其上执行的另外的代码的(半)自动生成,因此生成多个另外的代码,由此由设计人员以特定方式定义所述代码描述在硬件系统的各个部分上的映射。实际上,本发明现在提供了设计方法,使得能够添加校准(等)指令,由此设计人员以与原始设计方法相同的方式来定义相关代码在硬件系统的各个部分上的映射。
回想一下,本发明的方法提供了用于自动生成多个代码(40)的方法,该方法包括:(i)加载包括一个或多个代码描述(黄金模型)的初始(高级别仿真)代码(10),(ii)加载校准指令(20)(元数据);(iii)基于所加载的初始代码和所加载的校准指令,自动生成(30)所述代码,每一可用单元至少一个(因此(50)对于作为微处理器核的软件可编程单元是软件,并且(60)对于作为可编程逻辑矩阵的所述硬件可编程单元是硬件描述语言代码)。
因此,开发的解决方案包含以下元素:
●定义具体的元数据可以如何与黄金模型相关联的方法。
这个方法描述可以如何指定以下信息:
○应当被视为校准参数(因此对于校准值覆盖的候选)的模型变量或信号的列表
○应当被视为被监视的值的变量或信号的列表。
●计算机执行的软件,该软件允许:
○对于在元数据中定义的参数变量
■自动生成C代码,如果C代码与黄金模型中的CPU核映射的函数对应,那么该代码允许覆盖对应软件变量的值。
■自动生成HDL代码,如果HDL代码与黄金模型中的FLU映射的函数对应,那么该代码允许覆盖对应HDL信号的值。
○对于在元数据中定义的被监视的变量
■自动生成C代码,如果C代码与黄金模型中的CPU核映射的函数对应,那么该代码允许对对应软件变量的值进行采样。
■自动生成HDL代码,如果HDL代码与黄金模型中的FLU映射的函数对应,那么该代码允许对对应HDL信号的值进行采样。
生成的代码依赖于FPCU调试或CAN通信端口以向外部校准设备传输/从外部校准设备接收校准数据。
总而言之,(另外的)代码(50、60)的(半)自动生成除了其最初将生成的代码(70)(80)之外,还提供与所述校准相关的额外代码,特别是用于所述核的额外操作校准代码(90)(例如,C代码)和用于所述可编程矩阵的校准硬件描述语言代码(100)被生成,更尤其是所述代码(90)(100)允许覆盖和/或采样相应原始代码(70)(80)中变量的值(如在校准等指令中指示的)。
在这个阶段,有必要进一步阐明所发明的方法的一些要素。如上所述,生成包括校准指令(或者在调节、测试或调试的情况下的类似代码)的所述代码,更特别地,利用此类校准指令意味着提供参数值和提取校准操作所必需的变量值所需的最少代码量,上述操作还可能手动执行,但优选地按照所发明的方法实现的那样自动进行(在一定程度上)。自动生成的校准指令是如上所述在硬件系统其子系统上执行的那些指令。这与加载的校准指令相反。那些校准指令代替地在与初始(高级别仿真)代码相同的级别下提供,因此被称为高级别校准指令,并且仅作为生成将在硬件系统上执行的额外校准指令(也称为可执行校准指令)的起始基础。同样有趣的是,那些高级别校准指令的加载不一定是代码的一次批量加载,而可以包括改变(以特定方式)初始加载的仿真代码的步骤。因此,代码的自动生成,作为输入接收然后经修改的仿真代码。如上面所解释的,由软件编译器和可编程单元映射工具的组合执行的自动生成步骤必须适合于识别那些校准指令并相应地行动。
因此,本发明可以被正式定义为用于自动生成多个代码的方法,所述多个代码适于在包括至少一个软件可编程单元(210)和至少一个硬件可编程单元(220)的异构硬件系统(200)上执行,所述代码包括可执行校准指令,所述方法包括:(i)加载包括一个或多个代码描述的初始(高级别仿真)代码(10);(ii)提供或加载高级别校准指令(20);(iii)基于(i)所加载的初始代码和所提供或加载的校准指令,或(ii)由所提供的校准指令修改的所述初始代码,自动生成(30)所述代码(40),每一可用单元至少一个,由此所述自动生成步骤适合于基于所提供或加载的(高级别)校准指令来生成与所述校准相关的额外(执行)代码。
本发明提供了设计和/或校准(调试、测试)框架,更特别地是软件环境,其被编译用于在一个或多个计算机上操作,以支持或促进上述方法,因此还涉及包括计算机可读代码的计算机程序产品A(以及相关的非瞬态机器可读存储介质),这些代码在计算机系统上运行时使得计算机系统执行那些方法。
如图3中所示,本发明因此提供了用于自动生成多个代码的软件环境(300),其适于在包括至少一个软件可编程单元(210)和至少一个硬件可编程单元(220)的异构硬件系统(200)上执行,所述代码包括校准指令,所述方法包括:(i)加载初始代码(320),通过或利用校准指令(通过使用注释或元数据)进行修改,以及(ii)基于加载的代码,自动生成(30)所述代码(40),每一可用单元至少一个。
本发明还提供了用于自动生成多个代码的软件环境(310),所述多个代码适于在包括至少一个软件可编程单元(210)和至少一个硬件可编程单元(220)的异构硬件系统(200)上执行,所述代码包括校准指令,所述方法包括:(i)加载包括一个或多个代码描述的初始(高级别仿真)代码(10);(ii)加载校准指令(20);(iii)基于所加载的初始代码和所加载的校准指令,自动生成(310)所述代码(40),每一可用单元至少一个,可能有进行修改和/或注释的中间步骤,随后是自动生成。
如本发明的实施例中所述,还提供了校准装备(330),并且该方法和相关软件环境还自动生成代码(340),适于引导校准装备以连接到所述异构硬件系统。
因此,本发明提供了多种布置,特别是具有配置有设计或校准框架的计算机系统的第一布置,包括所述第一布置和为其生成代码的异构硬件系统的第二布置,包括所述第一和/或第二布置并且还包括所述校准装备的第三布置,以及包括所说的被测设备(例如,电动引擎;以及为所述引擎提供(实时)控制的引擎控制单元硬件,异构硬件系统是其一部分)的第四布置,这些布置的各部分如前面所讨论的那样执行其功能,但经由它们共享的代码和它们生成的数据流(指令、结果)牢固地互连,并且特别是这些部分的特殊性(异构的、实时约束)在需要时被考虑到的事实,同时经由自动方法为用户隐藏了这一点。
在这时,我们还可以指出本发明的另一个功能。实际上(虽然肯定是高性能设备),硬件(200)对其可以执行的代码量有限制,并且如在校准期间那样,需要在其上加载额外的(自动生成的)代码并由其执行,用户或设计人员可能倾向于或被迫考虑这一点,这甚至可能导致不良的结果。优选地,用户或设计人员或测试人员应当能够设计他或她的调试、测试或校准方法,而不必担心(太多)这个问题,或者至少有可能将这个问题与他的方法开发分开。本发明通过以自动生成器或编译器可识别的方式提供校准指令(例如,以他或她喜欢执行其策略或方法的完备方式)来实现此,用户在优选实施例中还可以提供指令(350),指示在特定阶段要使用哪些(并且因此生成在硬件内适配的子集)。用户或设计人员现在可以逐步执行这个策略,而无需任何代码重写工作。在优选实施例中,软件环境甚至指示适配的程度,并因此指导用户或设计人员创建他对这个策略的逐步使用。
如图4中所示(以及图5所示的另一个示例性实施例)由本发明实现的又一个功能是,它现在支持执行自动校准反馈循环的可能性,从接收来自校准装备和/或来自被测设备上的其它测量的数据开始并改变馈送到硬件系统的校准参数。软件环境具有用于接收数据、根据接收到的数据并进一步根据关于他或她喜欢如何执行自动校准循环(例如,参数范围和离散化步骤)的用户指令(410)来准备参数的手段(400)。用户不再需要协调硬件、校准设备的操作,也不需要改编其中的代码或参数。这全部是环境自动支持的。
回想一下,初始代码(10)在软件中未按内容进行改变,使得也可以对其进行仿真,从而生成仿真数据(420)。这实现了用于控制代码的功能相似性的方法,该方法包括:(i)执行(仿真)包括一个或多个代码描述的初始(高级别仿真)代码;(ii)执行通过方法从所述初始(高级别仿真)代码生成的代码;以及(iii)比较所述执行的结果以核实所述代码的(大体)功能相似性,并优选地使用这个比较来引导自动校准循环,如前所述。
可替代地,本发明的上述功能的措词是强调校准基础结构能够提取内部算法变量随时间的演变的一些曲线。借助于自动生成的校准基础结构,原始数据存储在FPCU片上RAM中,并且可以通过调试或CAN端口经由现有技术装备读出。一旦读出了这个原始数据,问题就在于能够隔离与由校准基础结构监视的每个和任何变量对应的数据块。借助于基于“元数据”的流程和相关联的自动生成程序,有可能自动生成配置脚本,该脚本将允许调试装备提取数据曲线并将其与它们在黄金模型中的理想值进行比较。
图6提供了从用户输入(通过步骤(350)的用户注释的模型320)到生成的素材(50)、(60)、(80)、(100)、(340)的处理流程的概述。下面详细介绍流程的每个部分。
在本发明的实施例中,流程的模型元数据指派部分依赖具体的Matlab GUI扩展。可以从(Matlab)用户界面基于上下文菜单执行这些扩展,该上下文菜单在最终用户开发的仿真模型的处理运算符方框之间的连接信号上可用。在图7中示出了示例性实施例。
这些扩展具有以下作用:
●创建和控制专用对话框窗口,其允许指定是否应当将某些线视为用于校准或调试的候选。
●使用户能够将标识名称与已校准/调试的信号中的每一个相关联。
●将那些信息存储为模型数据库的扩展
信号列表收集步骤是全自动程序。这个处理为流程的以下部分准备校准和调试信号的列表。
这个处理可以总结为:
1.在模型数据库中提取来自上一步的输入元数据。在本发明的示例性实施例中,这个处理依赖给出用于访问那些信息的钩子的Matlab脚本API。
2.对于每个“标记”信号:
a.获取信号名称和模型层次结构(例如,从Matlab API)
b.获取信号数据类型(例如,从Matlab API)
c.计算与这个数据类型相关联的必要的数据存储尺寸
3.将信号列表和存储器尺寸要求存储在中间数据库中,以用于流程的下一步。注意的是,这可以为校准策略逐步方法给出指示,如前所述。
C代码生成器是全自动程序。这个处理自动生成嵌入式软件C代码,应当对其进行编译并与用户定义的应用软件链接,以包括调试和跟踪能力。生成的代码是提供信号存储器映射信息的简单头文件。
HDL代码生成器是全自动程序,生成能够适当地执行从片上存储器/向片上存储器的校准/调试数据传送的HDL模块。这个生成的模块应进一步连接到从Matlab模型生成的“黄金”HDL。这个连接在处理流程的下一阶段(HDL集成生成器)中完成。
这个模块被生成有如图8中所示的输入/输出端口。
调试标记信号的数组:
○从流程的上一步中准备的调试信号列表中,生成器为具有适当位宽的每个信号创建输入端口。
●校准标记信号的数组:
○从流程的上一步中准备的校准信号列表中,生成器为具有适当位宽的每个信号创建输出端口。
●循环启动触发器
○这个信号是从黄金模型中提取的。它在黄金模型算法的每次迭代中被断言。
●片上RAM访问总线
○这是嵌入式FPGA和系统RAM之间的数据传送接口
●校准握手
○这是校准基础结构之间的请求/确认协议,以实现校准数据更新关于黄金模型算法迭代循环的适当同步。
由生成的模块解决的主要挑战是:
●尽可能快地执行从片上RAM/向片上RAM的数据传送。
●与黄金模型迭代同步地执行数据传送,以避免冲突
图9示出了嵌入式FPGA中映射的实时控制循环算法的典型行为。它基本上由三个阶段组成:
1.获取:嵌入式FPGA从外部系统传感器模块(例如:ADC)收集多个输入。
2.处理:FPGA计算那些输入并计算输出数据值
3.更新:通过数字模块(即,PWM)经由动力传动系致动器传送计算出的输出数据
这种行为对我们的校准和调试基础结构施加以下挑战性约束:
1.处理阶段将校准数据用作算法的参数。因此,在这个阶段期间不可能安全地改变校准参数。
2.处理阶段计算调试数据。因此不能保证那些值在处理结束之前都是有效的。
结论:挑战的解决是具有将调试和校准数据传送限制到获取和更新时段的机制。
如图10中所示,生成的HDL模块中的调试数据传送处理专用于将先前识别出的调试信号的值传送到片上RAM。如图11中所示,生成的HDL模块中的校准数据传送处理专用于将先前识别出的校准信号的值传送到片上RAM。
HDL集成生成器是全自动程序。
它包括自动生成实例化以下两者的HDL包装器:
●从Matlab模型生成的黄金HDL模型(使用标准的MatlabHDL生成器)
●先前生成的RAM记录器模块
然后在两者之间创建线连接。
调试器脚本生成器是自动程序,其将从流程的第一阶段计算出的调试信号列表和相关联的存储器映射作为输入。
根据这个信息,它将以目标调试器系统的语言生成脚本的集合。那些脚本的目标使调试器能够从流出设备的原始位流中恰当地提取与每个调试信号对应的数据块。
总而言之,代码生成步骤包括多个子步骤,根据其输入代码(模型数据库)以注释信号列表收集步骤开始,得到适于流程的以下部分的校准和调试信号的列表。另一个步骤是自动C代码生成器,提供应当被编译并与用户定义的应用软件链接的软件C代码,以包括调试和跟踪能力。生成的代码提供信号存储器映射信息。还有另一个步骤是自动HDL代码生成器,生成能够恰当地执行从片上存储器/向片上存储器的校准/调试数据传送的HDL模块。这个生成的模块应进一步连接到从模型生成的“黄金”HDL,通过作为HDL集成生成器的下一子步骤,提供用于与黄金模型迭代同步地执行从(片上)存储器(RAM)/向(片上)存储器(RAM)的数据传送的HDL模块,以通过支持将调试和校准数据传送限制到识别出的获取和更新时段的机制来避免冲突。最后,自动HDL集成生成器子步骤自动生成HDL包装器,该包装器实例化黄金HDL模型和先前生成的RAM记录器模块两者,然后在两者之间创建线连接。另外,自动调试器脚本生成器子步骤将根据流程的第一阶段计算出的调试信号的列表和相关联的存储器映射作为输入,并基于这个信息以目标调试器系统的语言生成脚本的集合。
最后,值得强调的是图12和图13的特定上下文,其中FPCU具有调试基础结构(700),一般被称为调试和跟踪基础结构。实际上,这种基础结构可以是可用的并且负责:(1)由于各种入侵性元素,在整个电路上收集所有调试和跟踪数据:
●由CPU执行的指令的探测
●在系统总线上的数据传送的探测
●在FPCU中的许多事件(IRQ、DMA请求、触发器…)的探测
●围绕FLU的所有输入和输出事务的探测
(2)所有那些数据的时间戳
(3)那些数据的打包和编码
(4)那些数据在片上跟踪存储器中的存储
(5)通过适当的接口到外部调试装备的传送。
本发明的特别贡献是对于其中FPCU具有调试基础结构(700)的情况,为前述方法提供附加特征,由此支持现有技术中未设想的更复杂的调试和测试场景。
因此,本发明提供了用于自动生成多个代码的方法,所述多个代码适于在包括至少一个软件可编程单元(210)和至少一个硬件可编程单元(220)以及调试和测试基础结构(700)的异构硬件系统(200)上执行,所述代码包括可执行的调试和/或测试指令,所述方法包括:(i)加载包括一个或多个代码描述的初始代码(10);(ii)提供用户调试和/或测试指令(20),在所述初始代码(10)上指定代码描述中将被视为校准参数的那些变量和/或代码描述中将被视为被监视的值的那些变量;(iii)基于所加载的初始代码自动生成(30)所述代码(40)的步骤,每一可用单元至少一个,所述代码设有调试和/或测试指令,其特征在于预见到中间步骤(800),特别是基于所加载的初始代码自动生成(30)每一可用单元至少一个的设有调试和/或测试指令的所述代码(40)的步骤(iii)包括步骤(a)和之后的步骤(b),步骤(a)自动确定(800)是否将向分别将为软件可编程单元(210)和硬件可编程单元(220)生成的代码提供所述调试和/或测试指令,或者所述调试和测试基础结构(700)是否将执行那些操作(的一部分),步骤(b)基于步骤(a)的所述自动确定,基于所加载的初始代码自动生成(810)所述代码(40),每一可用单元至少一个,所述代码设有调试和/或测试指令。
现在描述简单的示例(如图14中所示):
●让我们以通过ADC外围设备对模拟数据进行采样、由FLU进行预处理并且转换成发送到FLU的另一数据的模型作为简单的示例
●我们还可以想象FLU和CPU处理中的一些中间变量
●在这个示例中,我们有作为调试探测的候选的5个变量。
-VAR_A:在FLU内部并且通过调试基础结构可见(FLU接口探测)
-VAR_B:仅可通过FLU接口逻辑访问
-VAR_C:可通过FLU和调试基础结构访问
-VAR_D:可通过调试基础结构和CPU访问
-VAR_E:仅可通过CPU软件访问
因此,代码生成配置器(800)的作用是决定三个部件中的哪一个最适合管理用于调试和测试的变量。这个软件能够分析黄金模型,以理解三个元件中的哪一个对给定变量具有可见性。基于此,软件会将变量管理分配给适当的代码生成器。
在示例性实施例中,决定将是:
○如果变量从调试基础结构可见,那么它将通过调试装备脚本进行处理,因为这是入侵性较小的管理
○否则,如果变量是CPU和FLU都可见的,那么将通常选择CPU以限制硬实际处理的影响。
○可以基于其它约束来定义其它优先级管理
■示例:如果黄金模型功能已经100%加载了CPU软件,那么算法可以决定在FLU中管理变量。
Claims (18)
1.一种用于自动生成多个代码的方法,所述多个代码适于在包括至少一个软件可编程单元(210)和至少一个硬件可编程单元(220)以及可选地调试和测试基础结构(700)的异构硬件系统(200)上执行,所述代码包括可执行的调试和/或测试指令,所述方法包括:(i)加载包括一个或多个代码描述的初始代码(10);(ii)在所述初始代码(10)上提供用户调试和/或测试指令(20),以指定代码描述中将被视为校准参数的那些变量和/或代码描述中将被视为被监视的值的那些变量;(iii)基于所加载的初始代码自动生成(30)每一可用单元至少一个的设有调试和/或测试指令的所述代码(40)的步骤。
2.如权利要求1所述的方法,其中所述用户不是必须(但是能够)提供是否将向将分别为软件可编程单元(210)和硬件可编程单元(220)生成的代码提供所述调试和/或测试指令,或者在提供时所述调试和测试基础结构(700)是否将执行那些操作(的一部分)。
3.如权利要求1所述的方法,其中所述代码(40)允许在初始代码中如用户调试和/或测试指令中指示的那样覆盖和/或采样变量的值。
4.如权利要求2所述的方法,其中(iii)基于所加载的初始代码自动生成(30)每一可用单元至少一个的设有调试和/或测试指令的所述代码(40)的步骤包括步骤(a)和之后的步骤(b),步骤(a)自动确定(800)是否将向将分别为软件可编程单元(210)和硬件可编程单元(220)生成的代码提供所述调试和/或测试指令,或者当提供时所述调试和测试基础结构(700)将执行那些操作(的一部分),步骤(b)基于步骤(a)的所述自动确定,基于所加载的初始代码自动生成(810)每一可用单元至少一个的设有调试和/或测试指令的所述代码(40)。
5.如权利要求4所述的方法,其中所述步骤(a)(800)基于确定所述调试和测试基础结构(700)和/或在所述软件可编程单元(210)上加载的代码是否正在访问所述参数或变量。
6.如权利要求1所述的方法,还包括(iv)自动生成适于要连接到所述异构硬件系统的校准和/或调试装备(330)的代码(340)的步骤,可选地(依赖于权利要求4)其中步骤(iv)基于步骤(a)的所述自动确定。
7.如权利要求1、2、3、4、5或6所述的方法,其中所述软件可编程单元(210)是微处理器核并且其对应的代码是软件语言代码(50),以及所述硬件可编程单元(220)是可编程逻辑矩阵并且其对应的代码是硬件描述语言代码(60)。
8.如权利要求1至7所述的方法,其中所述异构硬件系统包括支持与调试和/或测试相关的数据传送的特定资源(230),并且自动生成的代码(40)利用那些资源。
9.如权利要求1所述的方法,其中步骤(iii)包括自动收集(600)来自设有用户调试和/或测试指令的所加载的初始代码的信号的列表(的步骤),从而得到校准信号的列表。
10.如权利要求7和8(以及优选地权利要求9)所述的方法,其中步骤(iii)包括用于生成HDL模块的自动HDL模块代码(100)生成的步骤(610),HDL模块能够通过支持将校准数据传送限制到识别出的获取和/或更新时段的机制来执行从片上存储器(240)/到片上存储器(240)的校准数据传送,片上存储器(240)是特定资源(230)的一部分,优选地所述自动HDL模块代码生成使用所述校准信号的列表。
11.如权利要求10所述的方法,其中步骤(iii)包括(a)从初始代码生成HDL的步骤(630),以及(b)将这个生成的HDL与生成的HDL模块(通过线)连接(以获得代码(60))的步骤(620),优选地所述步骤(620)使用所述校准信号的列表。
12.一种用于控制初始代码与从所述初始代码生成的自动生成的代码的功能相似性的方法,包括:(i)执行(仿真)包括一个或多个代码描述的初始(高级别仿真)代码;(ii)执行通过如权利要求1至11所述的方法从所述初始(高级别仿真)代码生成的代码;以及(iii)比较所述执行的结果,以核实所述代码的(大体)功能相似性。
13.一种布置,包括:电动引擎;以及提供对所述引擎的控制的引擎控制单元硬件,所述引擎控制单元硬件包括异构硬件系统,所述异构硬件系统包括至少一个软件可编程单元和至少一个硬件可编程单元,并且所述单元适于执行通过如权利要求1至11所述的方法生成的代码。
14.如权利要求13所述的布置,其中所述软件可编程单元是微处理器核并且其对应的代码是软件语言代码,以及所述硬件可编程单元是可编程逻辑矩阵并且其对应的代码是硬件描述语言代码。
15.如权利要求13或14所述的布置,其中所述异构硬件系统包括支持与校准相关的数据传送的特定资源。
16.一种校准布置,包括:如权利要求13至15所述的布置;以及要连接到所述异构硬件系统和所述引擎的校准装备,其中所述校准装备适于执行通过如权利要求6所述的方法生成的代码。
17.一种计算机程序产品,包括计算机可读代码,所述计算机可读代码在计算机系统上运行时使所述计算机系统执行如前述方法权利要求中的任一项所述的方法。
18.一种非瞬态机器可读存储介质,存储有如前述权利要求所述的计算机程序产品。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762580830P | 2017-11-02 | 2017-11-02 | |
EP17199622 | 2017-11-02 | ||
US62/580,830 | 2017-11-02 | ||
EP17199622.6 | 2017-11-02 | ||
PCT/EP2018/079835 WO2019086519A1 (en) | 2017-11-02 | 2018-10-31 | Software environment for control engine debug, test, calibration and tuning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111480150A true CN111480150A (zh) | 2020-07-31 |
Family
ID=64049267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880077336.4A Pending CN111480150A (zh) | 2017-11-02 | 2018-10-31 | 用于控制引擎调试、测试、校准和调节的软件环境 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11397663B2 (zh) |
EP (1) | EP3704587A1 (zh) |
JP (1) | JP7262818B2 (zh) |
CN (1) | CN111480150A (zh) |
WO (1) | WO2019086519A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111480150A (zh) * | 2017-11-02 | 2020-07-31 | 芯力能简易股份公司 | 用于控制引擎调试、测试、校准和调节的软件环境 |
CN112433826B (zh) * | 2021-01-27 | 2021-04-20 | 南京芯驰半导体科技有限公司 | 混合异构虚拟化通信方法及芯片 |
US11755459B2 (en) * | 2021-03-23 | 2023-09-12 | Western Digital Technologies, Inc. | Management of a debug buffer based on priority information |
US11886837B2 (en) * | 2021-04-10 | 2024-01-30 | Accenture Global Solutions Limited | Simulation-based software design and delivery attribute tradeoff identification and resolution |
CN116955894B (zh) * | 2023-09-20 | 2024-01-09 | 肇庆星诺奇传动科技有限公司 | 一种在线自适应螺纹长度信息校准方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020072893A1 (en) * | 2000-10-12 | 2002-06-13 | Alex Wilson | System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions |
US20030221185A1 (en) * | 2002-05-21 | 2003-11-27 | International Business Machines Corporation | Displaying variable usage while debugging |
US20090113088A1 (en) * | 2004-06-08 | 2009-04-30 | Dartdevices Corporation | Method and device for interoperability in heterogeneous device environment |
CN101923466A (zh) * | 2010-07-23 | 2010-12-22 | 清华大学 | 装饰器模式的指令的存取方法 |
US20120011351A1 (en) * | 2010-07-08 | 2012-01-12 | Texas Instruments Incorporated | Security Processing Engines, Circuits and Systems and Adaptive Processes and Other Processes |
CN102844744A (zh) * | 2010-04-19 | 2012-12-26 | 国际商业机器公司 | 调试多线程代码 |
CN102902620A (zh) * | 2011-12-23 | 2013-01-30 | 同济大学 | 基于gdb的异构计算调试环境的实现系统 |
CN103049270A (zh) * | 2012-12-27 | 2013-04-17 | 福州福大自动化科技有限公司 | 人机界面软件的无脚本组态和调试方法 |
US20140137082A1 (en) * | 2012-11-09 | 2014-05-15 | Coherent Logix, Incorporated | Real Time Analysis and Control for a Multiprocessor System |
US20140359589A1 (en) * | 2013-05-30 | 2014-12-04 | National Instruments Corporation | Graphical Development and Deployment of Parallel Floating-Point Math Functionality on a System with Heterogeneous Hardware Components |
CN104364766A (zh) * | 2012-02-16 | 2015-02-18 | 美国国家仪器有限公司 | 测试仪器基于来自测试中系统的信息的定制操作 |
CN105550430A (zh) * | 2015-12-09 | 2016-05-04 | 中国船舶重工集团公司第七二六研究所 | 基于模型设计的通用型红外焦平面设备开发系统 |
DE102017103732A1 (de) * | 2016-02-25 | 2017-08-31 | Infineon Technologies Austria Ag | Hardwareüberwachungsvorrichtung, Laufzeitüberwachungsvorrichtung und entsprechende Verfahren |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742175B1 (en) | 1998-10-13 | 2004-05-25 | Codagen Technologies Corp. | Component-based source code generator |
US6823497B2 (en) * | 1999-11-30 | 2004-11-23 | Synplicity, Inc. | Method and user interface for debugging an electronic system |
US7240303B1 (en) * | 1999-11-30 | 2007-07-03 | Synplicity, Inc. | Hardware/software co-debugging in a hardware description language |
US6618839B1 (en) * | 1999-11-30 | 2003-09-09 | Synplicity, Inc. | Method and system for providing an electronic system design with enhanced debugging capabilities |
US7222315B2 (en) * | 2000-11-28 | 2007-05-22 | Synplicity, Inc. | Hardware-based HDL code coverage and design analysis |
JP2002230061A (ja) * | 2001-01-30 | 2002-08-16 | Matsushita Electric Ind Co Ltd | 半導体回路接続データベース及びこれを用いた半導体回路設計方法 |
JP2002366602A (ja) * | 2001-04-06 | 2002-12-20 | Seiko Epson Corp | ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム |
US20030056197A1 (en) * | 2001-08-30 | 2003-03-20 | Dennis Peter D. J. | Method and apparatus to facilitate debugging computer code within an operating system kernel |
US7086017B1 (en) * | 2002-06-10 | 2006-08-01 | Xilinx, Inc. | Method of post-implementation simulation of a HDL design |
US6996735B2 (en) * | 2002-11-22 | 2006-02-07 | Texas Instruments Incorporated | Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline |
US7409652B1 (en) | 2004-06-04 | 2008-08-05 | Altera Corporation | Debuggable opaque IP |
US8087002B2 (en) * | 2006-04-04 | 2011-12-27 | Tibco Software Inc. | Method and system for providing a visual debugger for an interpreted statistical language |
US9354944B2 (en) * | 2009-07-27 | 2016-05-31 | Advanced Micro Devices, Inc. | Mapping processing logic having data-parallel threads across processors |
JP5672165B2 (ja) | 2011-06-16 | 2015-02-18 | 富士通株式会社 | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 |
US8776025B2 (en) * | 2011-11-04 | 2014-07-08 | International Business Machines Corporation | Integrated debugger and code coverage tool |
US20130125093A1 (en) | 2011-11-11 | 2013-05-16 | General Electric Company | Generating object-oriented programming language code from a multi-domain dynamic simulation model |
JP5799823B2 (ja) | 2012-01-17 | 2015-10-28 | 富士通株式会社 | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 |
US9354998B2 (en) * | 2012-05-04 | 2016-05-31 | Aegis.Net, Inc. | Automated conformance and interoperability test lab |
RU2012127578A (ru) * | 2012-07-02 | 2014-01-10 | ЭлЭсАй Корпорейшн | Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред |
DE102012211981A1 (de) * | 2012-07-10 | 2014-01-16 | Dspace Digital Signal Processing And Control Engineering Gmbh | Verfahren und Vorrichtung zum Erstellen und Testen eines Steuergeräteprogramms |
US9053230B2 (en) * | 2013-01-14 | 2015-06-09 | International Business Machines Corporation | Framework and repository for analysis of software products |
US9600398B2 (en) * | 2013-10-29 | 2017-03-21 | Synopsys, Inc. | Method and apparatus for debugging HDL design code and test program code |
EP2940586B1 (en) | 2014-04-29 | 2023-03-01 | Hitachi, Ltd. | Method and system for testing control software of a controlled system |
US9477807B1 (en) * | 2015-06-11 | 2016-10-25 | International Business Machines Corporation | Automating system on a chip customized design integration, specification, and verification through a single, integrated service |
CN115373977A (zh) * | 2016-03-23 | 2022-11-22 | 江森自控泰科知识产权控股有限责任公司 | 实时数据流编程中模式驱动反应的组合 |
US11042471B2 (en) * | 2017-08-25 | 2021-06-22 | Oracle International Corporation | System and method for providing a test manager for use with a mainframe rehosting platform |
CN111480150A (zh) * | 2017-11-02 | 2020-07-31 | 芯力能简易股份公司 | 用于控制引擎调试、测试、校准和调节的软件环境 |
US10678675B2 (en) * | 2017-11-14 | 2020-06-09 | Microsoft Technology Licensing, Llc | Assistive, language-agnostic debugging with multi-collaborator control |
-
2018
- 2018-10-31 CN CN201880077336.4A patent/CN111480150A/zh active Pending
- 2018-10-31 EP EP18795636.2A patent/EP3704587A1/en active Pending
- 2018-10-31 US US16/760,196 patent/US11397663B2/en active Active
- 2018-10-31 JP JP2020544111A patent/JP7262818B2/ja active Active
- 2018-10-31 WO PCT/EP2018/079835 patent/WO2019086519A1/en unknown
-
2022
- 2022-06-15 US US17/840,847 patent/US11954015B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020072893A1 (en) * | 2000-10-12 | 2002-06-13 | Alex Wilson | System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions |
US20030221185A1 (en) * | 2002-05-21 | 2003-11-27 | International Business Machines Corporation | Displaying variable usage while debugging |
US20090113088A1 (en) * | 2004-06-08 | 2009-04-30 | Dartdevices Corporation | Method and device for interoperability in heterogeneous device environment |
CN102844744A (zh) * | 2010-04-19 | 2012-12-26 | 国际商业机器公司 | 调试多线程代码 |
US20120011351A1 (en) * | 2010-07-08 | 2012-01-12 | Texas Instruments Incorporated | Security Processing Engines, Circuits and Systems and Adaptive Processes and Other Processes |
CN101923466A (zh) * | 2010-07-23 | 2010-12-22 | 清华大学 | 装饰器模式的指令的存取方法 |
CN102902620A (zh) * | 2011-12-23 | 2013-01-30 | 同济大学 | 基于gdb的异构计算调试环境的实现系统 |
CN104364766A (zh) * | 2012-02-16 | 2015-02-18 | 美国国家仪器有限公司 | 测试仪器基于来自测试中系统的信息的定制操作 |
US20140137082A1 (en) * | 2012-11-09 | 2014-05-15 | Coherent Logix, Incorporated | Real Time Analysis and Control for a Multiprocessor System |
CN103049270A (zh) * | 2012-12-27 | 2013-04-17 | 福州福大自动化科技有限公司 | 人机界面软件的无脚本组态和调试方法 |
US20140359589A1 (en) * | 2013-05-30 | 2014-12-04 | National Instruments Corporation | Graphical Development and Deployment of Parallel Floating-Point Math Functionality on a System with Heterogeneous Hardware Components |
CN105550430A (zh) * | 2015-12-09 | 2016-05-04 | 中国船舶重工集团公司第七二六研究所 | 基于模型设计的通用型红外焦平面设备开发系统 |
DE102017103732A1 (de) * | 2016-02-25 | 2017-08-31 | Infineon Technologies Austria Ag | Hardwareüberwachungsvorrichtung, Laufzeitüberwachungsvorrichtung und entsprechende Verfahren |
Non-Patent Citations (2)
Title |
---|
ZBIGNIEW JAWORSKI 等: "Choosing the optimal HDL model of thermometer-to-binary encoder", 《 2015 22ND INTERNATIONAL CONFERENCE MIXED DESIGN OF INTEGRATED CIRCUITS & SYSTEMS (MIXDES)》, 20 August 2015 (2015-08-20), pages 297 - 300 * |
陈泽: "基于Zynq的雷达信号处理器验证平台设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 April 2015 (2015-04-15), pages 135 - 792 * |
Also Published As
Publication number | Publication date |
---|---|
US20210182181A1 (en) | 2021-06-17 |
EP3704587A1 (en) | 2020-09-09 |
US20220391306A1 (en) | 2022-12-08 |
US11954015B2 (en) | 2024-04-09 |
WO2019086519A1 (en) | 2019-05-09 |
JP2021501953A (ja) | 2021-01-21 |
US11397663B2 (en) | 2022-07-26 |
JP7262818B2 (ja) | 2023-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111480150A (zh) | 用于控制引擎调试、测试、校准和调节的软件环境 | |
CN106095654B (zh) | 性能验证装置、性能验证系统以及性能验证方法 | |
US6757882B2 (en) | Self-describing IP package for enhanced platform based SOC design | |
US10423571B2 (en) | Method for configuring a real or virtual electronic control unit | |
JP2014203314A (ja) | Ecuシミュレーション装置 | |
US10551807B2 (en) | Method for connecting an input/output interface of a tester equipped for control unit development | |
US20030009730A1 (en) | Enhanced platform based SOC design including exended peripheral selection and automated IP customization facilitation | |
JP2010539576A (ja) | 航空機搭載システムのオペレーション・ソフトウェアの妥当性をテストするための自動スクリプト生成の方法および同方法を実施するためのデバイス | |
US20030005396A1 (en) | Phase and generator based SOC design and/or verification | |
US9507680B2 (en) | Verification system and method for automated verification of register information for an electronic system | |
US20100333061A1 (en) | Explicit state model checking of sl/sf models using the auto-generated code | |
CN108132876B (zh) | 一种基于注入方式的嵌入式软件目标码单元测试方法 | |
CN116341428B (zh) | 构建参考模型的方法、芯片验证方法及系统 | |
CN117234926A (zh) | 基于autosar架构的软件组件接口检查方法及装置 | |
CN116069635A (zh) | Soc系统的测试方法、装置、计算机设备及存储介质 | |
CN116069648A (zh) | 一种软件测试方法、系统、设备以及存储介质 | |
Devarajegowda et al. | Formal verification methodology in an industrial setup | |
US8510708B2 (en) | Method for optimizing a control program for actuators | |
JP2016031622A (ja) | ソフトウェア検証システムおよび制御装置 | |
Park et al. | Test methods of the AUTOSAR application software components | |
CN109542760B (zh) | 一种基于设备规约的虚拟原型变异测试用例生成方法 | |
CN111400994A (zh) | 网表形式验证方法、装置、计算机设备及存储介质 | |
JP5310397B2 (ja) | 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体 | |
Lee et al. | Model-driven requirements validation for automotive embedded software using UML | |
US9183331B1 (en) | Formalizing IP driver interface |
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 |