本发明涉及一种仿真模型,由所述仿真模型生成用于在具有可编程的逻辑功能块的计算机上执行的代码。
背景技术:
1、例如在硬件在环仿真(hil仿真)的范围中使用这种仿真模型,在所述硬件在环仿真中,控制装置、特别是用于机动车的控制装置经受对于正确功能的检验。为此,将要检验的控制装置连接到也被称为i/o电路的、具有输入通道和/或输出通道的电子电路上,以便通过该电路将信号调制到控制装置上和/或检测由该控制装置产生的信号。
2、通过在仿真环境上运行测试环境的软件模型、在机动车中例如运行行驶的仿真,确定由i/o电路输出的信号。将仿真的事件通过代表事件的电信号施加到电路的输出通道、例如输出通道的引脚或寄存器上,以便这样传输到控制装置上,和/或将信号由控制装置施加到电路的输入通道、例如输入通道的引脚或寄存器上,以便所述信号能够这样被检测并且在仿真环境中被处理。因此,控制装置可以在仿真的环境中运行,就像控制装置真的在真实的环境中运行的那样。
3、仿真环境或简称hil仿真器例如通过具有处理软件模型的至少一个处理器的实时计算系统形成。例如,该模型可以通过具有实时能力的软件或多个共同作用的软件工具来提供,其优选具有图形用户界面并且特别优选借助于软件对象来编程。所述软件可以包括matlab、simulink或本技术人的rti(real-time-interface),其例如形成到simulink的链接。软件对象在上述情况下例如被图形化地编程为块、特别是分层级地编程。然而,仿真环境不限于使用这些分别示例性地提到的软件。基于该模型,可以为处理器或用于配置可编程逻辑功能块的位流创建程序代码。
4、实时计算机系统与商业上通用的计算机系统的区别特别是在于,例如在改变的传感器信号的输入和由此产生的响应(如改变的操控信号的输出)之间不超过预定的时延。根据要仿真的系统,在此可能需要例如1毫秒或更短的时延。
5、尤其电动车辆的驱动(e-drive)的仿真或功率电子器件的仿真对(特别是具有在几微秒范围内的最大允许时延的)调节回路的高速性提出了高要求,从而实时仿真通常不再被纯处理器模型和处理器控制的i/o通道所覆盖,而是在可编程的逻辑功能块、特别是现场可编程门阵列(fpga)上至少执行对时间要求严格的模型部分或者整个模型。然后,fpga可以与具有所述的输入/输出通道的i/o电路连接。它们用于在输出通道的引脚处输出电信号和/或例如通过模拟/数字转换来检测存在于输入通道的引脚处的电信号,以便将检测到的信号馈送给进一步处理。
6、因此,fpga形成用于硬件在环(hil)仿真的基础,但也形成了快速控制原型(rapid-control-protyping、rcp)系统的基础,特别是在电气出行和功率电子器件领域。dspace利用用于simulink和各种硬件板(如ds6601、ds6602、microautobox ii&iii或microlabbox)的fpga编程块集提供了抽象的fpga开发环境,从而客户即使没有关于fpga和工具流的详细知识也可以开发自己的fpga功能性。
7、fpga模型的图形开发的基础例如是the mathworks公司的simulink,对其而言存在不同的vhdl/verilog fpga代码生成器,例如xilinx vitis model composer、用于intelfpga的dsp builder或the mathworks的hdl coder。然而,这些产品仅支持同构模型开发。其它代码生成器的部分通常必须通过黑盒技术引入。
8、包括不同建模工具或代码生成器的模型组成部分的混合的异构模型获得了重要性。将现有的模型部分/库转变成其他代码生成器的建模意味着巨大的开销。因此,为了更快的开发周期值得期望的例如是能够在模型中无缝地使用适用于xilinx vitis modelcomposer的第一模型组件和适用于hdl coder的第二模型组件。
技术实现思路
1、在此背景下,本发明的目的在于,给出一种方法和一种装置,其改进了现有技术并且优选能够实现自动地创建用于来自混合的模型的fpga的配置位流。
2、该目的通过具有权利要求1的特征的用于基于模型地创建位流的方法来解决。本发明的有利的设计方案是从属权利要求的技术方案。
3、提供一种用于基于模型地创建用于配置可编程逻辑功能块的位流的方法,其中,所述模型包括通过至少一个信号连接的至少两个组件,其中,第一组件包括第一块集的块和/或由第一代码生成器转换为hdl代码、特别是vhdl或verilog,其中,第二组件包括第二块集的块和/或由第二代码生成器转换为hdl代码、特别是vhdl或verilog。所述方法包括下述步骤:
4、·读取在所述至少一个信号中的网关块,或者将网关块插入到所述至少一个信号中,其中,所述网关块接收第一数据类型并输出第二数据类型,
5、·读入所述网关中的第一数据类型,并将第二数据类型设置为第二块集和/或代码生成器的对应于第一数据类型的数据类型,换言之也可以说,网关块读入第一数据类型并将第二数据类型设置为第二块集和/或代码生成器的对应于第一数据类型的数据类型,
6、·产生用于第一组件的hdl代码,
7、·产生用于第二组件的hdl代码,
8、·将第一组件的至少一个信号输出端与第二组件的信号输入端连接,其中,通过适配用于至少一个组件的hdl代码来实现所述连接,
9、·将用于第一组件的hdl代码和用于第二组件的hdl代码合成到一个共同的网表中,以及
10、·实现所述共同的网表,以便得到配置位流。
11、通过将各网关块插入到在不同组件之间交换的信号中,能够实现来自不同建模工具/代码生成器的异构模型组成部分的通用的无缝集成。因此,本发明提供了动态网关块,所述动态网关块在各异构模型组成部分之间传播不同的数据类型或信号,例如单个信号、结构化的信号总线、矢量或矩阵;各种组件或模型组成部分在此甚至可以具有不同的数据类型标记。这具有如下优点,即,使用者可以将任意生成器的模型组成部分或组件简单地通过这些动态的网关块连接,而无需手动配置。在模块更新/初始化时(其可以通过如ctrl+d等按键组合主动启动)优选全自动地实现网关块的配置。在本发明的一种实施方式中还提供网关,用于时钟信号的分配或时钟移交。
12、在建模完成后,在一键式fpga构建中(1-click-fpga-build)中以符合目的的方式将根据自动模型分析所确定的适用的代码生成器自动应用到不同的模型部分上,将单个代码伪迹(einzel-code-artefakte)自动地组合、合成、实现一个成整体结构,并且产生能够在hil仿真器上使用的fpga位流;其可以作为fpga自定义函数容器(fpga custom functioncontainer)的组成部分存储或保存。
13、所述的方法优选还包括:读取至少一个转换表,所述转换表配置给代码生成器和/或块集并且给出第一数据类型与第二数据类型之间对应关系;以及基于输入的数据类型借助转换表设置至少一个网关块的输出的数据类型。转换表的内容可以根据关于代码生成器或块集的信息事先创建。通过在生成代码时仅须读取转换表,在生成代码时的时间需求很低。
14、在本发明的一种实施方式中,至少一个网关块、特别是在模型中存在的所有网关块在最高层级上被插入或者在维持信号连接的情况下被移动到最高层级中。这能够实现代码生成器或块集的支持,这些代码生成器或块集可以处理或允许仅在最高层级上的网关块。
15、优选地,设置对应的第二数据类型也包括插入该数据类型的输出端口。
16、特别优选地,在第一信号是总线信号的情况下,为总线的每个元件设置对应的数据类型还包括以下步骤:
17、·插入用于总线的元件的选择块,
18、·插入元件网关块(element-gateway-block),以用于转化元件数据类型,
19、·插入元件合并块,以及
20、·用信号线连接用于元件的块。
21、因此,也可以处理组合的信号。
22、优选地,对于所述模型的每次更新和/或代码生成的每次启动,在所述网关块中重新实施对应的第二数据类型的设置。在此特别是可以规定,所述模型的更新和/或代码生成的启动调用建模环境的回调函数,所述回调函数包括用于插入和/或适配网关的函数。
23、当第一组件和所述第二部组件利用任意信号流方向的多个信号相连接时,所述方法以符合目的的方式包括将网关块分别插入到所述多个信号中的每一个信号中。
24、在第一组件具有第一时钟块,在该第一时钟块处设置用于第一组件的时钟的情况下,所述方法优选还包括将时钟网关块(clock-gateway-block)插入到第一组件中,其中,所述时钟网关块接收第一时钟块的时钟信号或读取第一时钟块的时钟设置,其中,时钟网关块向第二组件输出时钟信号和/或适配第二时钟块的设置,并且在第二时钟块处设置用于第二组件的时钟。
25、优选地,所述方法包括以下步骤中的至少一个步骤:检查所述模型是否满足至少一个设计规则,和/或在离线仿真中仿真所述模型,其中,在产生用于第一组件和/或第二组件的hdl代码之前实施所述一个或多个步骤。
26、特别优选地,在检查和/或仿真所述模型的所述至少一个步骤中,在离线仿真中评估现有的时钟网关块的时钟设置,而在不考虑时钟设置的情况下实现产生用于第一组件和/或第二组件的hdl代码。
27、优选地,所述方法包括另外的步骤:
28、·从另外的模型为处理器产生程序代码;
29、·将程序代码和配置位流传输到包括处理器和可编程逻辑功能块的实时计算机系统;以及
30、·实施仿真,其中,处理器执行所述程序代码,并且通过配置位流确定可编程逻辑功能块的功能性。
31、本发明还涉及一种计算机系统,所述计算机系统包括操作计算机,该操作计算机具有操作界面和带有处理器、可编程逻辑功能块和i/o电路的实时计算机。在计算机系统的非易失性存储器上保存有用于实施按照本发明的方法的指令。
32、本发明还涉及一种非易失性数据载体,所述非易失性数据载体具有计算机可读存储介质,在该计算机可读存储介质上嵌入有指令,在由处理器执行所述指令时所述指令引起:所述处理器设置用于执行按照本发明的方法。
1.用于基于模型地创建用于配置可编程逻辑功能块的位流的方法,其中,所述模型包括通过至少一个信号连接的至少两个组件,其中,第一组件包括第一块集的块和/或由第一代码生成器转换为hdl代码、特别是vhdl或verilog,其中,第二组件包括第二块集的块和/或由第二代码生成器转换为hdl代码、特别是vhdl或verilog,所述方法包括下述步骤:
2.根据权利要求1所述的方法,所述方法包括:读取至少一个转换表,所述转换表分配给代码生成器和/或块集并且给出在第一数据类型与第二数据类型之间的对应关系;以及基于输入的数据类型借助转换表设置至少一个网关块的输出的数据类型。
3.根据权利要求1或2所述的方法,其中,所述网关块在最高层级上被插入或者在维持信号连接的情况下被移动到最高层级中。
4.根据前述权利要求之一所述的方法,其中,设置对应的第二数据类型也包括插入该数据类型的输出端口。
5.根据权利要求4所述的方法,其中,如果第一信号是总线信号,则为所述总线的每个元件设置对应的数据类型还包括:
6.根据前述权利要求之一所述的方法,其中,对于所述模型的每次更新和/或代码生成的每次启动,在所述网关块中重新实施对应的第二数据类型的设置。
7.根据权利要求6所述的方法,其中,所述模型的更新和/或代码生成的启动调用建模环境的回调函数,所述回调函数包括用于插入和/或适配网关的函数。
8.根据前述权利要求之一所述的方法,其中,所述第一组件和所述第二组件利用任意信号流方向的多个信号相连接,并且将各一个网关块插入到所述多个信号中的每一个信号中。
9.根据前述权利要求之一所述的方法,其中,所述第一组件具有第一时钟块,在该第一时钟块处设置用于第一组件的时钟,所述方法还包括将时钟网关块插入到第一组件中,其中,所述时钟网关块接收第一时钟块的时钟信号或读取第一时钟块的时钟设置,其中,时钟网关块向第二组件输出时钟信号和/或适配第二时钟块的设置,其中,在第二时钟块处设置用于第二组件的时钟。
10.根据前述权利要求之一所述的方法,其特征在于以下步骤中的至少一个步骤:
11.根据权利要求9和10所述的方法,其中,在检查和/或仿真所述模型的所述至少一个步骤中在离线仿真中评估时钟网关块的时钟设置,并且在不考虑时钟设置的情况下产生用于第一组件和/或第二组件的hdl代码。
12.根据前述权利要求之一所述的方法,其特征在于以下另外的步骤:
13.计算机系统,所述计算机系统包括操作计算机,该操作计算机具有操作界面和带有处理器、可编程逻辑功能块和i/o电路的实时计算机,其特征在于,在计算机系统的非易失性存储器上保存有用于实施根据前述权利要求之一所述的方法的指令。
14.非易失性数据载体,所述非易失性数据载体具有计算机可读存储介质,在该计算机可读存储介质上嵌入有指令,在由处理器执行所述指令时所述指令引起:所述处理器被设置用于执行根据前述权利要求之一所述的方法。