CN103984791B - 对fpga在运行时的信号值的随机访问 - Google Patents

对fpga在运行时的信号值的随机访问 Download PDF

Info

Publication number
CN103984791B
CN103984791B CN201410046770.XA CN201410046770A CN103984791B CN 103984791 B CN103984791 B CN 103984791B CN 201410046770 A CN201410046770 A CN 201410046770A CN 103984791 B CN103984791 B CN 103984791B
Authority
CN
China
Prior art keywords
fpga
signal value
configuration
data
memory
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
Application number
CN201410046770.XA
Other languages
English (en)
Other versions
CN103984791A (zh
Inventor
H·卡尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Desbeth Co ltd
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of CN103984791A publication Critical patent/CN103984791A/zh
Application granted granted Critical
Publication of CN103984791B publication Critical patent/CN103984791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)

Abstract

本发明涉及一种用于访问FPGA(5)在运行时的信号值的方法,该方法包括如下步骤:将FPGA硬件配置(24)加载到FPGA(5)上,在FPGA(5)上执行FPGA硬件配置(24),请求FPGA(5)的信号值,将状态数据从FPGA(5)的功能层(6)传输到FPGA的配置层(7)内的配置存储器(8)中,从配置存储器(8)读取状态数据作为回读数据,以及由回读数据确定信号值。此外,本发明涉及一种用于基于FPGA模型(20)以硬件描述语言实施FPGA构建的方法,包括如下步骤:创建FPGA硬件配置(24),基于FPGA硬件配置(24)算出用于至少一个信号值的状态数据的配置存储器(8)的存储器位置(9),和创建具有在运行时可访问的信号值和与其对应的存储器位置(9)的列表。

Description

对FPGA在运行时的信号值的随机访问
技术领域
本发明涉及一种用于访问FPGA(可现场编程门阵列)在运行时的信号值的方法。同样,本发明涉及一种数据处理装置,所述数据处理装置具有处理器单元和FPGA,其中,数据处理装置实施为用于执行上述方法。本发明也涉及一种计算机程序产品,所述计算机程序产品具有计算机执行的指令,该计算机程序产品在适合的数据处理装置中加载和实施之后实施上述方法的步骤,以及本发明涉及一种数字存储器介质,所述数字存储器介质具有能电子读取的控制信号,所述控制信号可以与能编程的数据处理装置这样配合作用,使得实施上述方法。最后,本发明包括一种用于基于FPGA模型以硬件描述语言实施FPGA构建的方法。
背景技术
复杂动态模型的实时仿真由于严格的时间边界条件本身对现代计算节点提出了高要求。在汽车硬件在环仿真(HiL)中,这样的模型特别是使用在快速调节环必须闭合的地方。这例如在仿真气缸内部压力传感器时情况如此,气缸内部压力传感器在消耗减少或废气减少时起到越来越大的作用。但在具有高动态性的调节系统中、如例如在电马达中,短的周期和少的等待时间是绝对必要的。它们利用基于CPU的仿真实际上几乎不再能够实现。
可现场编程门阵列(FPGA)可以通过其承担模型的动态部分的计算在实时仿真时来辅助计算节点。由于信号的并行处理的可能性和高灵活性,通过使用FPGA也可以容易地满足困难的实时要求。FPGA可以用作计算节点的CPU用的硬件加速器。用于HiL仿真器的这样的扩展例如是dSPACE的DS5203-FPGA板。相应地,例如环境模型的非常高动态的部分转移到FPGA中,从而保持保证控制设备的足够精确且快速的反应时间。FPGA硬件配置通常在构建过程中基于FPGA模型以硬件描述语言产生。
被控系统的模型由于对精度要求提高而越来越复杂并且因此也会难以操作。在汽车HiL环境中,这样的模型通常利用MathWorks公司的Matlab/Simulink工具集来创建。Simulink对这样的模型提供以框图形式的基于块的视图。各模型部分可以在框图中综合成子系统并且彼此间利用信号链接。在这些块之间的数据流在此通过信号线路表示。
在基于CPU的实时仿真中,模型的框图借助Simulink编码器首先翻译成C/C++源文件。接着,C/C++源文件通过编译器翻译成可执行的应用程序,所述应用程序可以在计算节点上利用具有实时能力的操作系统来执行。附加地,在CPU构建时产生跟踪文件,所述跟踪文件是拓扑文件,该拓扑文件带有其图形式模型化、例如在Simulink中。
模型翻译成CPU应用程序导致仿真的计算顺序地、以固定的步长来执行。由此在计算节点的主存储器中始终有所有模型状态或模型变量、如例如在信号线路上的数据或者块的输入/输出值的一致的映像。通过直接访问主存储器,模型变量可以在实验工具、如例如控制桌面中被分析和/或操纵。能够随机写/读访问HiL仿真的变量。借助跟踪文件可以选择信号值、如例如马达转速并且通过显示器输出或操纵。在HiL环境中,该操作方式概括为术语“测量”和“调整”。
基于FPGA的仿真可以借助dSPACE的FPGA编程模块集和Xilinx系统生成器(XSG)类似于基于CPU的仿真在框图中利用Simulink模型化。
然而与CPU仿真相反,该模型并不被翻译成迭代的编程语言,而是翻译成硬件描述语言,所述硬件描述语言描述用户特定的数字电路。用户特定的电路的描述通过合成过程被翻译成FPGA配置数据流。
对于一些FPGA可能的是,为了调试目的冻结和读取FPGA的完整状态。然而通过FPGA的闭合的输入/输出特性不可能的是,类似于计算节点的主存储器任意地访问模型状态和必要时改变这些模型状态。应用者想要测量或调整的任何模型变量都必须通过显式模型化通过信号线路引导至FPGA的接口。紧接着该匹配,模型必须被重新翻译,这可能持续数个小时。该情况会导致基于FPGA的实时仿真的开发周期非常长。
发明内容
由上述现有技术出发,因此本发明的任务是:提出一种方法;一种数据处理装置;一种计算机程序产品以及一种数字存储器介质,所述数字存储器介质具有上述类型的能电子读取的控制信号,它们能够实现在运行时FPGA中的模型变量的访问并且缩短在创建基于FPGA的实时仿真时的重复的开发周期。
根据本发明,因此提出了一种用于访问FPGA在运行时的信号值的方法,包括如下步骤:将FPGA硬件配置加载到FPGA上,在FPGA上执行FPGA硬件配置,请求FPGA的信号值,将状态数据从FPGA的功能层传输到FPGA的配置层内的配置存储器中,从配置存储器读取状态数据作为回读数据,并且由回读数据确定信号值。
根据本发明还提出了一种数据处理装置,所述数据处理装置具有处理器单元和FPGA,其中,所述数据处理装置实施为用于执行上述方法。
根据本发明,也提出了一种计算机程序产品,所述计算机程序产品具有计算机执行的指令,该计算机程序产品在适合的数据处理装置中加载和执行之后实施上述方法的步骤。
此外,根据本发明提出了一种数字存储介质,所述数字存储介质具有能电子读取的控制信号,所述控制信号能够与能编程的数据处理装置这样配合作用,使得上述方法在数据处理装置上执行。
因此,本发明的基本构思在于,通过在FPGA运行期间从FPGA读取状态数据并且由此确定信号值而能实现对FPGA在运行时的信号值的访问。状态数据被读取并且根据需要被组合,其中,不需要FPGA的结构上的改变。也不需要中断FPGA的运行。因此可以随机地访问FPGA的信号值。对信号值的访问可以如由执行软件所已知的那样进行,包括通过拓扑文件(跟踪文件)访问和利用Simulink图形模型化。信号值、如例如马达转速可以相应地选择并且显示或操纵。
以有利的方式,对于FPGA的执行不需要改变,使得对FPGA的资源和性能的需求不变。相应地,对信号值的访问对正常运行没有影响,既不在所产生的FPGA硬件配置方面也不在执行期间影响。不同的模型变量的状态可以一致地存储,以便能实现访问。可以进行对所期望的信号值的访问,而不产生匹配的FPGA硬件配置并且不必传输到FPGA中,由此可以缩短开发时间。对FPGA的可使用的资源和实时特征的影响被避免或减小。特别是在不改变FPGA硬件配置的情况下可以根据需要从FPGA读取不同的信号值。
配置层是FPGA的逻辑层,该逻辑层用于初始化FPGA。在初始的配置过程中,配置数据被写入到配置存储器中,由此功能层接着起模型化作用。在运行期间,于是例如通过触发器将功能层的所有寄存器内容反映到配置层中。配置存储器的内容接着可以被读取以便由此确定信号值。信号值的选择可以在运行期间任意地改变。优选地,进行对多个信号值的访问。
回读数据可以包含FPGA的任意数据单元。回读数据可以包括FPGA的单独的寄存器值或较大的存储器块。存储器块例如可以是FPGA的回读列。
所说明的方法的顺序原理上可以变化并且并不限于在此所说明的顺序。
数据处理装置原理上可以任意地实施。FPGA典型地作为扩展模块设置在数据处理装置中或与该数据处理装置连接。数据处理装置可以与远程控制计算机通过数据连接来连接。特别优选地通过在控制计算机上的应用程序访问信号值。
信号值的显示可以作为图形显示来进行。在此,信号值优选可以从列表通过“拖放”被拖到所示的仪器上用于显示信号值。
从配置存储器中读取状态数据(作为回读数据)不包含对数据的改变,而是仅涉及概念上的定义。
由回读数据确定信号值原理上可以在任意位置处进行,例如在FPGA、数据处理装置的CPU或控制计算机中进行。相应地,状态数据、寄存器数据或信号值需要时可以分别被传输。
从FPGA外部或内部通过接口进行对FPGA的配置存储器的访问。配置存储器的常见架构包括接口,该接口随着一个帧有最小读取量时而具有32比特宽度和100MHz的时钟频率。由此,利用目前常见的FPGA不能按FPGA调试器或FPGA范围(该范围具有按FPGA时钟周期准确的访问)的意义下使用该方法。一个帧除了包含寄存器值之外还可以包含关于查找表的信息以及关于多路复用器配置或布线配置的信息。由回读数据确定信号值优选包括从一个帧中找出和提取寄存器值。
在本发明的有利的实施方案中,所述由回读数据确定信号值的步骤包括:将回读数据映像到至少一个寄存器值上。寄存器为在功能层中的存储器,其数据能够被简单地复制并且用于确定信号值。这能实现识别数据用于确定信号值。
在本发明的有利的实施方案中,所述由回读数据确定信号值的步骤包括:根据至少一个寄存器值确定信号值。信号值在至少一个寄存器中的组织可以是任意的,为此寄存器内容必须被处理以便确定信号值。特别是信号值可以分布到多个寄存器上,并且寄存器的内容一同被处理以便确定信号值。
在本发明的有利的实施方案中,所述从配置寄存器读取状态数据作为回读数据的步骤包括:算出配置存储器的对于确定信号值所需的范围并且读取配置存储器的所需范围的状态数据作为回读数据。要读取的范围在运行时被算出,从而可以在FPGA硬件配置没有事先匹配的情况下访问配置存储器。通过算出所需范围,状态数据的读取可以限于所述范围,由此少的数据必须被读取、传输和处理。
在本发明的有利的实施方案中,所述将状态数据从FPGA的功能层传输到FPGA的配置层内的配置存储器中的步骤包括:算出状态数据的对于确定信号值所需的部分并且将状态数据的这些部分保存在其配置存储器中。要传输的范围在运行时被算出,从而可以在FPGA硬件配置没有事先匹配的情况下传输状态数据。通过算出所需范围,状态数据的保存可以限于所述范围,由此少的数据必须被保存。
在本发明的有利的实施方案中,所述请求FPGA的信号值的步骤包括:提供各可使用的信号值的列表并且从该列表选择信号值。所述列表原理上可以在任意时间点被创建。优选地,在使用FPGA硬件配置的模型的情况下创建所述列表。特别优选地,为每个信号值配属唯一的识别码,通过所述识别码来进行访问。
在本发明的有利的实施方案中,该方法包括:设置信号值来传输给FPGA,由信号值确定回写数据,将回写数据作为状态数据写入到FPGA的配置存储器中,以及将状态数据从配置存储器传输到FPGA的功能层中。类似于前面所描述的对FPGA的读访问而得出写访问。该访问同样在运行时进行,而不影响FPGA。前面所描述的关于对FPGA的读访问的细节可以分别单独地相应应用于写访问。
因此,对FPGA进行动态的、局部的再配置,其中,在FPGA中覆盖相应重要的部分。在此,例如Simulink常数块必须映像到可再配置的查找表上。该查找表接着可以借助局部的、动态的再配置被用于改变任意的信号值。
在将状态数据传输到FPGA的功能层中时,回写数据可以包括附加于信号值的信息。因此,优选首先读取状态数据作为用于回写数据的基础,并且将信号值添加到这些状态数据中。由此,保证了FPGA的数据完整性。
此外,根据本发明提出了一种用于基于FPGA模型以硬件描述语言实施FPGA构建的方法,所述方法包括如下步骤:创建FPGA硬件配置,基于FPGA硬件配置算出配置存储器的用于至少一个信号值的状态数据的存储器位置,以及创建具有在运行时可访问的信号值和与其对应的存储位置的列表。
因此,该方法的基本构思在于,在创建FPGA硬件配置时已经采集并且这样处理所需的数据,使得能够基于在FPGA运行时所采集的状态数据来形成信号值。
存储器位置优选是FPGA的寄存器。寄存器可以在模型中可显式地模型化或例如通过具有延迟的块而隐式地模型化。该模型优选以图形方式产生。
所说明的方法的顺序原理上可以变化并且并不限于这里所说明的顺序。例如,可以从以硬件描述语言的模型出发在较早时间点创建具有在运行时可访问的信号值的列表。
优选地,在此所说明的用于实施FPGA构建的方法是用于具有FPGA的数据处理装置的构建方法的部分,其中,数据处理装置包括FPGA或与其连接。在该方法中,附加地实施数据处理装置的CPU的构建,其中,在CPU跟踪文件生成器中产生CPU跟踪文件。附加地,将具有在运行时可访问的信号值和与其对应的存储器位置的列表(该列表这里也称作“逻辑定位文件”)转换成机器可读的文件。附加地,用于FPGA的跟踪文件与CPU的跟踪文件等同地产生。在另一步骤中,CPU和FPGA的跟踪文件在跟踪文件合并器中组合。由此例如可以由控制计算机与CPU或FPGA中的指令的执行无关地访问信号值。
在本发明的有利的实施方案中,所述创建具有可访问的信号值和与其对应的存储器位置的列表的步骤包括:算出存储器位置的链接以形成信号值。因此,该列表包含信号值如何由状态数据算出的具体说明。
在本发明的有利的实施方案中,所述方法包括附加的步骤:产生FPGA代码以确定信号值,其中,FPGA代码包括从配置存储器读取状态数据作为回读数据并且包括基于具有可读取的信号值和与其对应的存储器位置的列表由回读数据确定信号值。因此,状态数据的为了确定信号值的接着的处理可以完全在FPGA中实施。相应地,可以由FPGA仅传输确定的信号值,由此释放FPGA的接口。
在本发明的有利的实施方案中,所述方法包括附加的步骤:通过将包含用于一个信号值的状态数据的存储器位置布置在FPGA的一个回读列中来优化FPGA硬件配置。通过布置在一个回读列中,加速了对用于信号值的状态数据的访问。在将用于一个信号值的所有存储器位置布置在一个回读列之内时,可以利用一个操作来对其访问。因此,在产生FPGA硬件配置之前进行存储器位置的分类。
在本发明的有利的实施方案中,所述方法包括附加的步骤:通过将包含用于一个信号值的状态的存储器位置布置在FPGA的相邻的区域中来优化FPGA配置。相邻的区域可以是FPGA的一个单个的回读列或多个相邻的回读列。通过相邻的布置,加速对存储器位置的访问。在将用于两个信号值的存储器位置布置在一个回读列之内时,可以利用一个操作访问两个信号值。相应的内容适用于写访问,其中,仅信号值可以被写入到FPGA中,所述信号值在存储器位置中至少临时存在。
在本发明的有利的实施方案中,所述方法包括附加的步骤:将存储器位置添加到逻辑块的输出端处以提供状态数据。存储器位置、通常为寄存器能够实现读取状态数据,以便由此确定信号值。在提高可使用的状态数据的数目的情况下,可以进行对提高了的数目的信号值的访问。
在本发明的有利的实施方案中,FPGA是Xilinx FPGA。Xilinx FPGA除了提供反复配置FPGA的可能性之外还提供了在运行期间局部地读取和配置FPGA的可能性。
附图说明
以下参照附图借助优选的实施形式更详细地阐述本发明。
图中:
图1示出具有控制计算机和实时系统的数据处理系统的示意图,
图2示出图1中的实时系统的FPGA的细节视图,
图3示出用于实施图1中的实时系统用构建的方法的图示,
图4示出图3中的实时系统的FPGA构建的细节视图,
图5示出图2中的FPGA的配置存储器按回读列的组织的详细视图,
图6示出在配置存储器的回读列中的重要的存储器内容的示意图,其中,左视图示出没有优化的分布,中视图示出利用重要存储器位置集中于回读列的优化以及右视图示出重要的回读列的相邻布置的优化。
图7示出所有对该方法重要的信息的典型代表,所述信息如FPGA模型的层次、信号的位宽和二进制点位置以及FPGA配置存储器中的各个寄存器的地址信息,
图8示出图3中的构建方法的结果到图1中的数据处理系统的不同部件上的分布。
具体实施方式
图1示出数据处理系统1的根据本发明的结构,该数据处理系统具有控制计算机2(在此也称为主系统)和实时系统3。实时系统3与控制计算机2通过未明确示出的网络连接装置来连接。
该实时系统3包括计算节点4(也标记为CN),所述计算节点具有一个未示出的CPU以及一个FPGA 5,该FPGA在该实施例中为Xilinx FPGA。实时系统3这里是任意的数据处理装置。FPGA 5示意性地在图2中示出并且包括功能层6和配置层7。在配置层7中设置有具有多个存储器位置9的配置存储器8。配置层7是FPGA 5的逻辑层用于其初始化。在初始配置过程期间,配置数据被写入到配置存储器8中并且传输到功能层6中。存储器位置9相当于FPGA5的寄存器。
FPGA 5设置在FPGA板10上并且通过接口11与控制器12连接用于访问接口11。在这里接口11在100MHz的时钟频率与一个帧的最小读取量的情况下具有32比特的宽度。一个帧除了寄存器值之外还可以包含关于查找表的信息以及关于多路复用器配置或布线配置的信息。在FPGA板10上存储FPGA变量映像文件13用于通过控制器12来访问。
对于实时系统3的使用,如以下参照图3所描述的那样实施构建(Build)。作为用于构建的输出基础,使用FPGA模型20以及CPU模型21,这两者已利用Simulink来产生。由FPGA模型20在FPGA构建22中通过VHDL(一种流行的硬件描述语言)产生逻辑定位文件(LogicAllocation File)23和FPGA硬件配置24。在逻辑定位文件24中存储如下列表,该列表具有配置存储器8的用于在运行时FPGA5中可访问的信号值的状态数据的存储器位置9。存储器位置9的链接为了形成信号值也被算出并且被存储在逻辑定位文件24中,从而从逻辑定位文件24出发可以由状态数据确定信号值。
由逻辑定位文件24产生前面已经提及的机器可读的FPGA变量映像文件13,所述FPGA变量映像文件以机器可读的形式包含了存储器位置9对信号值的配属。由CPU模型21在CPU构建26中创建在实时系统3的CPU上可执行的应用程序27。此外,在CPU跟踪文件生成器28中从CPU构建26出发产生CPU跟踪文件29。类似地,在FPGA跟踪文件生成器30中产生FPGA跟踪文件31。在另一步骤中,跟踪文件29、31在跟踪文件合并器32中组合成完整的跟踪文件33。
构建方法作为总结果提供用于实时系统3的下载应用程序34,所述下载应用程序具有应用程序27、完整的跟踪文件33、FPGA变量映像文件13和FPGA硬件配置24。
FPGA构建22详细地在图4中示出。作为输入,FPGA构建22得到FPGA子系统的框图40,该FPGA子系统包括原始块如相加、相乘等的组合。该过程的结果是Model.ini文件41,该文件包含完成的比特流以及接口描述。接口描述包含所有接口的列表,这些接口在FPGA子系统中实例化。通过该描述可以产生与FPGA接口对应的CPU接口。在FPGA构建22的第一步骤中由FPGA子系统的框图40通过Xilinx系统生成器(XSG)生成HDL描述42,该HDL描述在该实施例中时是VHDL描述。该描述接着通过合成工具翻译成网络列表。
Simulink模型的网络列表与其余对于回读功能所必需的回读框架部件46一起聚集成完整的网络列表47。整个设计接着通过执行过程翻译成比特流并且存储在Model.ini文件41中。
在Simulink框图的块输出端与FPGA部件(D触发器)或在配置存储器8中属于FPGA部件的存储器位置9之间建立关系。该映像在FPGA构建22期间逐渐地构建或细化并且由FPGA跟踪文件生成器30存储在FPGA跟踪文件31中。
如果FPGA子系统的框图通过XSG翻译成HDL,则这两种描述在其结构方面是类似的。这点可以利用来创建在例如Simulink块的块输出端与HDL实体的端口之间的直接关系。
所述方法附加地包括:通过将包含用于一个信号值的状态数据的存储器位置9布置在FPGA 5的一个回读列中来优化FPGA硬件配置24。配置存储器8按回读列的组织在图5中示出。一个帧包括在配置存储器8中的1比特宽和1312比特长的列并且在功能层6的CLB列上延伸。在一个帧之内的一数位与功能元件(该数位配置该功能元件)之间的相关性可以通过Xilinx工具来算出。为了确定信号值,因此仅对一个帧的一部分感兴趣。通过布置在一个回读列中加速对信号值的状态数据的访问。在将用于一个信号值的所有存储器位置9布置在一个回读列之内的情况下,可以利用一个操作来对其访问。
如在图6中左图所示,重要的回读列首先分布在整个配置存储器8上。通过优化FPGA硬件配置24,包含用于一个信号值的状态的存储器位置9布置在FPGA 5的相邻区域中。相邻区域可以是FPGA 5的单个回读列或多个相邻的回读列。通过相邻的布置来加速对存储器位置9的访问。通过将用于两个信号值的存储器位置9布置在一个回读列之内而利用一个操作访问两个信号值。图6的中图示出通过将重要的存储器位置9集中在数量减少的回读列中来进行优化。根据图6右图,在进一步优化中,重要的回读列附加地相邻地布置在FPGA 5中。
所有对于该方法重要的信息(如FPGA模型的分层、信号的二进制点位置和数位宽度以及FPGA配置存储器中各个寄存器的地址信息)的典型代表在图7中示出。
FPGA子系统类型的一个元件形成每种回读模型实例的根。FPGA子系统依照Simulink的模型分层递归地包含多个子系统实例。子系统在本上下文中可以既作为原始块(例如加法器)也作为Simulink子系统来实施。子系统或块的名称和属于此的HDL实体的名称存储在子系统类的名称或hdl实例的特征中。
每个子系统可以包括多个信号,这些信号为Simulink模型中的信号或I/O端口。每个信号通过id特征得到唯一的标识符。因为信号的方向(输入/输出)不起作用并且可避免在模型化时的冗余信息,信号类通过约定作为Simulink模型中的块或子系统的输出。如果多个子系统共享相同的信号,则通过信号参考类的实例可参考其他子系统实例的信号。
信号可以通过综合而与一个寄存器联系。该联系同样在信号类与寄存器类之间重新得到。在寄存器与帧(在这些帧中存储寄存器的初始值)之间的关系通过相应的类来模型化。信号的特性通过属性集模型化。对于回读和接着编辑信号特别重要的是如下特征:二进制点(BinaryPoint)、数据类型(DataType)和宽度。
寄存器元件通过帧类与多个数位联系。该寄存器与信号同样拥有自身的宽度特征,因为信号的宽度和所属的寄存器的宽度可能会变化。数位通过数位位置(pos)首先说明涉及寄存器的哪个数位。此外,数位实例包含关于如下的信息,寄存器数位处于帧之内的哪个字(帧字偏置framewordOffset)中并且来自该帧字的数位的值可以利用哪个位屏蔽(mask)来屏蔽。
回读模型存储在XML文件中。这样,模型可以以工具决定方式来处理。模型通过针对XSD模式的验证在句法和结构上保持正确。
该方法包括附加的步骤:产生FPGA代码44作为回读应用程序用于确定信号值,其中FPGA代码44包括从配置存储器8读取状态数据作为回读数据并且基于FPGA变量映像文件13由回读数据确定信号值。
图8示出构建方法的结果到不同部件的分布。从Simulink模型20、21利用FPGA构建22实施构建。产生FPGA硬件配置24并且加载到FPGA 5上。应用程序27被加载到计算节点4上,并且整个跟踪文件33被传输至控制计算机2。
在运行中,FPGA硬件配置24在FPGA 5上启动并且执行。应用程序27在计算节点4上启动并且执行。在控制计算机2上启动控制软件50,所属控制软件在该实施例中为dSPACE控制桌面软件。控制桌面50与实时系统3通过计算节点4通信,如在图1中所示。
为了显示运行期间FPGA 5的信号值,可以通过控制桌面50请求该信号值。通过完整的跟踪文件33和利用Simulink的图形模型化对不同信号值进行访问。信号值的显示作为图形显示,其中,信号值从列表通过“拖放”被拖到所示的仪器上用于显示信号值。列表中的信号值借助唯一的识别码来识别。
控制桌面50从计算节点4请求信号值。为此,在计算节点4上执行数据采集服务51,数据采集服务接收控制桌面50的请求。从数据采集服务51由用于FPGA 5的控制器12请求信号值。该控制器在FPGA 5运行期间初始化状态数据从FPGA 5的功能层6到其配置存储器8的传输。在运行期间,因此通过触发器将功能层6的所有寄存器内容反映到配置层7中。在一种备选的实施形式中,由FPGA变量映像文件13算出状态数据的对于确定信号值所需的部分并且仅这些部分保存到配置存储器8中。
此外,在FPGA 5中由回读应用程序44从配置存储器8读取状态数据作为回读数据。所读取的回读数据在此包括一个或多个帧,以及FPGA 5的一个或多个回读列。在此,首先算出对于确定信号值所需的回读列并且仅读取该回读列。关于所需的回读列的信息通过FPGA变量映像文件13来算出。
基于回读数据在FPGA 5中确定信号值。为此,从帧中查找和提取寄存器值。信息由FPGA变量映像文件13产生。回读数据映像到至少一个寄存器值上。在此,一般需要从多个寄存器的状态数据形成信号值。相应地,寄存器的内容根据FPGA变量映像文件13一同处理,以便确定信号值。
这样确定的信号值通过FPGA 5的接口11传输至控制器12,该控制器将信号值通过计算节点4的数据采集服务51传输至控制计算机2的控制桌面50。
与前面所描述的对FPGA 5的信号值的读访问相类似,也可以进行写访问。在此,信号值被选择用于传输至FPGA 5。由信号值确定回写数据,所述回写数据作为状态数据传输到FPGA 5的配置存储器8中。从配置存储器8将状态数据传输到FPGA 5的功能层6中。前面所描述的关于对FPGA 5的读访问的细节可以分别单独地相应应用于写访问。
该方法作为具有计算机执行的指令的计算机程序产品来实现,该计算机程序产品在实时系统3中加载和执行之后实施上述方法的步骤。
数字存储介质提供能电子读取的控制信号,这些控制信号与实时系统3这样配合作用,使得上述方法在实时系统3上被实施。
附图标记表
数据处理系统 1
控制计算机 2
实时系统、数据处理装置 3
计算节点 4
FPGA 5
功能层 6
配置层 7
配置存储器 8
存储器位置 9
FPGA板 10
接口 11
控制器 12
FPGA变量映像文件 13
FPGA模型 20
CPU模型 21
FPGA构建 22
逻辑定位文件 23
FPGA硬件配置 24
CPU构建 26
应用程序 27
CPU跟踪文件生成器 28
CPU跟踪文件 29
FPGA跟踪文件生成器 30
FPGA跟踪文件 31
跟踪文件合并器 32
完整的跟踪文件 33
框图 40
Model.ini文件 41
HDL描述 42
回读文件生成 43
FPGA代码、回读应用程序 44
回读框架部件 46
网络列表 47
控制软件、控制桌面 50
数据采集服务 51

Claims (15)

1.用于访问FPGA(5)在运行时的信号值的方法,包括如下步骤:
将FPGA硬件配置(24)加载到FPGA(5)上,
在FPGA(5)上执行FPGA硬件配置(24),
请求FPGA(5)的信号值,
将状态数据从FPGA(5)的功能层(6)传输到FPGA的配置层(7)内的配置存储器(8)中,
从配置存储器(8)读取状态数据作为回读数据,以及
由回读数据确定信号值,
其中,所述信号值分布到多个寄存器上,并且各寄存器的内容一同被处理以便确定信号值。
2.根据权利要求1所述的方法,其特征在于,所述由回读数据确定信号值的步骤包括将回读数据映像到至少一个寄存器值上。
3.根据权利要求1或2所述的方法,其特征在于,所述从配置存储器(8)读取状态数据作为回读数据的步骤包括:算出配置存储器(8)的对于确定信号值所需的范围并且读取配置存储器(8)的所需的范围的状态数据作为回读数据。
4.根据权利要求1或2所述的方法,其特征在于,所述将状态数据从FPGA(5)的功能层(6)传输到FPGA的配置层(7)内的配置存储器(8)中的步骤包括:算出状态数据的对于确定信号值所需的部分并且将状态数据的这些部分保存在其配置存储器(8)中。
5.根据权利要求1或2所述的方法,其特征在于,所述请求FPGA(5)的信号值的步骤包括:提供各可使用的信号值的列表和从该列表选择信号值。
6.根据权利要求1或2所述的方法,包括附加的步骤:
设置信号值用于传输至FPGA(5),
由信号值确定回写数据,
将回写数据作为状态数据写入到FPGA(5)的配置存储器(8)中,以及
将状态数据从配置存储器(8)传输到FPGA(5)的功能层(6)中。
7.用于基于FPGA模型(20)以硬件描述语言实施FPGA构建的方法,包括如下步骤:
创建FPGA硬件配置(24),
基于FPGA硬件配置(24)算出配置存储器(8)的用于至少一个信号值的状态数据的存储器位置(9),
创建具有在运行时可访问的信号值和与其对应的存储器位置(9)的列表,
其中,所述在运行时可访问的信号值通过根据权利要求1至6之一所述的方法得出。
8.根据权利要求7所述的方法,其特征在于,所述创建具有能读取的信号值和与其对应的存储器位置(9)的列表的步骤包括:算出存储器位置(9)的链接以形成信号值。
9.根据上述权利要求8所述的方法,包括如下附加的步骤:
产生FPGA代码(44)以确定信号值,其中,FPGA代码(44)包括从配置存储器(8)读取状态数据作为回读数据并且包括基于具有能读取的信号值和与其对应的存储器位置(9)的列表由回读数据确定信号值。
10.根据上述权利要求7至9之一所述的方法,包括如下附加的步骤:
通过将包含用于一个信号值的状态数据的存储器位置(9)布置在FPGA(5)的一个回读列中来优化FPGA硬件配置。
11.根据上述权利要求7至9之一所述的方法,包括如下附加的步骤:
通过将包含用于一个信号值的状态的存储器位置(9)布置在FPGA(5)的相邻区域中来优化FPGA硬件配置。
12.根据上述权利要求7至9之一所述的方法,包括如下附加的步骤:
将存储器位置(9)添加到逻辑块的输出端处以提供状态数据。
13.数据处理装置(3),具有处理器单元和FPGA,其中,所述数据处理装置(3)实施为用于执行根据权利要求1至6中之一所述的方法。
14.根据上述权利要求13所述的数据处理装置(3),其特征在于,所述FPGA(5)是XilinxFPGA。
15.数字存储器介质,具有能电子读取的控制信号,所述控制信号能够与能编程的数据处理装置(3)这样配合作用,使得根据权利要求1至6中之一所述的方法在数据处理装置(3)上实施。
CN201410046770.XA 2013-02-11 2014-02-10 对fpga在运行时的信号值的随机访问 Active CN103984791B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13154741.6 2013-02-11
EP13154741.6A EP2765528B1 (de) 2013-02-11 2013-02-11 Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit

Publications (2)

Publication Number Publication Date
CN103984791A CN103984791A (zh) 2014-08-13
CN103984791B true CN103984791B (zh) 2019-06-25

Family

ID=47826859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410046770.XA Active CN103984791B (zh) 2013-02-11 2014-02-10 对fpga在运行时的信号值的随机访问

Country Status (4)

Country Link
US (2) US9235425B2 (zh)
EP (1) EP2765528B1 (zh)
JP (1) JP6448195B2 (zh)
CN (1) CN103984791B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019112A1 (en) * 2012-07-10 2014-01-16 Siemens Product Lifecycle Management Software Inc. Synthesis of simulation models from systems engineering data
DE102014111675A1 (de) * 2014-08-15 2016-02-18 Dspace Digital Signal Processing And Control Engineering Gmbh Simulationsvorrichtung und Verfahren zur Simulation einer an ein Regelungsgerät anschließbaren peripheren Schaltungsanordnung
EP3001318A1 (de) * 2014-09-24 2016-03-30 dSPACE digital signal processing and control engineering GmbH Bestimmung von Signalen für Readback aus FPGA
WO2016049336A1 (en) 2014-09-26 2016-03-31 Moog Inc. Data visualization and logging system
EP3244327A1 (de) * 2016-05-10 2017-11-15 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer zuordnungsliste
EP3244326B1 (de) 2016-05-10 2021-07-07 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste
US10235485B1 (en) * 2016-09-27 2019-03-19 Altera Corporation Partial reconfiguration debugging using hybrid models
US10963001B1 (en) 2017-04-18 2021-03-30 Amazon Technologies, Inc. Client configurable hardware logic and corresponding hardware clock metadata
EP3663912A4 (en) * 2017-08-22 2020-08-12 Huawei Technologies Co., Ltd. ACCELERATION TREATMENT PROCESS AND DEVICE
CN108376206B (zh) * 2018-02-09 2021-09-24 大连理工大学 一种通过运用运动学联合仿真平台对机械设备进行在线实时监测的方法
EP3647801A1 (de) 2018-10-30 2020-05-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur überprüfung eines fpga-programms
DE102020116872A1 (de) * 2020-03-27 2021-09-30 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Programmierung einer programmierbaren Gatteranordnung in einem verteilten Computersystem

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818912A (zh) * 2005-02-11 2006-08-16 思尔芯(上海)信息科技有限公司 可扩展可重配置的原型系统及方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5425036A (en) * 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US6292762B1 (en) * 1998-07-13 2001-09-18 Compaq Computer Corporation Method for determining a random permutation of variables by applying a test function
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US7240303B1 (en) * 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US6453456B1 (en) * 2000-03-22 2002-09-17 Xilinx, Inc. System and method for interactive implementation and testing of logic cores on a programmable logic device
US6373779B1 (en) * 2000-05-19 2002-04-16 Xilinx, Inc. Block RAM having multiple configurable write modes for use in a field programmable gate array
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US6922665B1 (en) * 2001-01-08 2005-07-26 Xilinx, Inc. Method and system for device-level simulation of a circuit design for a programmable logic device
US20030105620A1 (en) * 2001-01-29 2003-06-05 Matt Bowen System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures
US7827510B1 (en) * 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US20050209840A1 (en) * 2004-01-09 2005-09-22 Mikhail Baklashov Method and apparatus for functional language temporal extensions, dynamic modeling, and verification in a system-level simulation environment
US7689726B1 (en) 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US7546572B1 (en) * 2005-09-20 2009-06-09 Xilinx, Inc. Shared memory interface in a programmable logic device using partial reconfiguration
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8234457B2 (en) 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
US7900168B2 (en) 2007-07-12 2011-03-01 The Mathworks, Inc. Customizable synthesis of tunable parameters for code generation
JP2009031933A (ja) * 2007-07-25 2009-02-12 S2C Inc スケーラブル再構成可能型プロトタイプシステムと方法
US8352229B1 (en) * 2009-01-26 2013-01-08 Xilinx, Inc. Reloadable just-in-time compilation simulation engine for high level modeling systems
CN101493809B (zh) 2009-03-03 2010-09-08 哈尔滨工业大学 一种基于fpga的多核心星载计算机
CN102332307B (zh) 2011-07-28 2015-08-05 中国空间技术研究院 Sram型fpga单粒子效应试验系统及方法
US20130046912A1 (en) * 2011-08-18 2013-02-21 Maxeler Technologies, Ltd. Methods of monitoring operation of programmable logic
US8739089B2 (en) 2011-08-29 2014-05-27 Synopsys, Inc. Systems and methods for increasing debugging visibility of prototyping systems
CN102520333A (zh) 2011-12-15 2012-06-27 北京航空航天大学 一种对空间应用数字信号处理器进行单粒子翻转效应模拟的装置
CN102636744B (zh) 2012-04-24 2014-06-11 中国科学院空间科学与应用研究中心 一种检测fpga单粒子效应与其时序特性关系的装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818912A (zh) * 2005-02-11 2006-08-16 思尔芯(上海)信息科技有限公司 可扩展可重配置的原型系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Improving the FPGA design process through determining and applying logical-to-physical design mappings;Graham P 等;《Field-Programmable Custom Computing Machines》;20001231;第305-306页
Improving the FPGA design process through determining and applying logical-to-physical design mappings;Graham P;《Field-Programmable Custom Computing Machines》;20001231;第305-306页
Virtex FPGA series configuration and readback;Carmichael C;《Application Note: Virtex Series》;20051231;第23-32页

Also Published As

Publication number Publication date
CN103984791A (zh) 2014-08-13
JP6448195B2 (ja) 2019-01-09
EP2765528B1 (de) 2018-11-14
US20160162298A1 (en) 2016-06-09
EP2765528A1 (de) 2014-08-13
US10083043B2 (en) 2018-09-25
US9235425B2 (en) 2016-01-12
JP2014154173A (ja) 2014-08-25
US20140229723A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
CN103984791B (zh) 对fpga在运行时的信号值的随机访问
US7865350B1 (en) Partitioning a model in modeling environments
US10311193B2 (en) Alteration of a signal value for an FPGA at runtime
US8387005B1 (en) Generation of multi-domain code from a graphical program
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
WO2006017286A2 (en) Software state replay
CN107533473A (zh) 用于仿真的高效波形生成
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
Di Natale et al. An MDA approach for the generation of communication adapters integrating SW and FW components from Simulink
US20200371843A1 (en) Framework for application driven exploration and optimization of hardware engines
Jain et al. Coarse Grained FPGA Overlay for Rapid Just-In-Time Accelerator Compilation
US10318687B2 (en) Implementing a constant in FPGA code
US9558305B1 (en) Automatic modeling, mapping, and code generation for homogeneous and heterogeneous platforms
US10223077B2 (en) Determination of signals for readback from FPGA
Kourfali et al. An integrated on-silicon verification method for FPGA overlays
Reyneri A Simulink-based hybrid codesign tool for rapid prototyping of FPGA's in signal processing systems
Pimentel et al. The Artemis architecture workbench
Kreku et al. Layered UML workload and SystemC platform models for performance simulation
US8539415B2 (en) Reconfigurable circuit, its design method, and design apparatus
Geng et al. Automated code generation for development of electric vehicle controller
US10380296B2 (en) Connecting designs in mixed language environments
Pinilla Source-level instrumentation for in-system debug of high-level synthesis designs for FPGA
Genius et al. Model-Based Virtual Prototyping of CPS: Application to Bio-Medical Devices
Giorgi et al. Research Article Translating Timing into an Architecture: The Synergy of COTSon and HLS (Domain Expertise—Designing a Computer Architecture via HLS)
Zakiy Hw-sw co-design of an on-chip ijtag dependability processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Paderborn, Germany

Patentee after: Desbeth Co.,Ltd.

Address before: Paderborn, Germany

Patentee before: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GmbH