CN113448565A - 对在分布式计算机系统中的可编程门装置编程的方法 - Google Patents

对在分布式计算机系统中的可编程门装置编程的方法 Download PDF

Info

Publication number
CN113448565A
CN113448565A CN202110293727.3A CN202110293727A CN113448565A CN 113448565 A CN113448565 A CN 113448565A CN 202110293727 A CN202110293727 A CN 202110293727A CN 113448565 A CN113448565 A CN 113448565A
Authority
CN
China
Prior art keywords
logic
programmable gate
user
gate arrangement
configuration
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
Application number
CN202110293727.3A
Other languages
English (en)
Inventor
A·阿格纳
D·卢贝雷
H·卡尔特
M·施伦格
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.)
Dspace GmbH
Dspace Digital Signal Processing and Control Engineering GmbH
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 CN113448565A publication Critical patent/CN113448565A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种对分布式计算机系统中的第一可编程门装置、例如第一FPGA进行编程的方法,为了进行所述编程而规定:在第一可编程门装置上设立第一配置逻辑。第一配置逻辑被设立为从配置软件接收用于在第一可编程门装置上设立第一用户逻辑的第一用户比特流并且将第一用户比特流存储在第一可编程门装置的只读存储器上,以便紧接着按照第一用户比特流中的规定在第一可编程门装置上设立第一用户逻辑。在本发明的扩展阶段,还规定在第一可编程门装置上设立编程逻辑,用于对第二可编程门装置进行编程,该第二可编程门装置至少与第一可编程门装置电路连接成菊花链。

Description

对在分布式计算机系统中的可编程门装置编程的方法
技术领域
本发明涉及对具有可编程门装置的分布式计算机系统的编程。可编程门装置是芯片,在该芯片上保存有由可配置的逻辑单元构成的矩阵或者说阵列,这些逻辑单元能借助于可互连的数据线路的网络以任意方式来彼此连接,这允许对几乎任意的并且稍后能再次重新编程的逻辑电路的编程。可编程门装置的重要示例是现场可编程门阵列(FPGAs)和复杂可编程逻辑器件(CPLDs)。
背景技术
由于这些可编程门装置与特定应用情况的高度可适配性以及这些可编程门装置并行处理大量过程的能力,可编程门装置常常显示出相对于处理器而言的速度优势并且因此广泛用于实时应用。作为示例应提到申请人所开发的IOCNET(I/O Carrier Network)总线。该总线的生态系统包括大量配备有FPGA的扩展卡。IOCNET系统包括主处理器,该主处理器用作对包括FPGA扩展卡在内的所有外围组件进行编程的集线器(Hub)。尽管FPGA包括用于对FPGA进行编程的专用接口、例如JTAG接口(Joint Test Action Group(联合测试行动小组)),但是仍通过IOCNET中的主处理器经由常规数据线路来对FPGA进行编程,这些常规数据线路在固定编程的计算机系统运行时也用于在主处理器与FPGA扩展卡之间的数据交换。
例如在专利申请EP2977905A1中公开了该做法。该做法节省了对用于FPGA的编程的附加线缆的敷设而且也能够在——例如JTAG标准并未针对此来设计的——大空间距离上实现对这些FPGA的编程。但是,FPGA扩展卡必须在本地针对这种类型的编程被设计。因此,例如在IOCNET生态系统中的所有FPGA扩展卡上存有附加的CPLD,该CPLD单独被设计用于从主处理器接收用于对FPGA进行编程的比特流并且利用所述比特流来对FPGA进行编程。到目前为止并不能加入第三方提供商的未相对应地准备好用于在IOCNET系统中使用的FPGA。这意味着:无法满足在IOCNET生态系统中的某些客户要求,对这些客户要求来说没有存在适合的FPGA扩展卡。
发明内容
在该背景下,本发明的任务是:改善大规模且能由中央实体编程的分布式计算机系统的FPGA与不同要求的可适配性。
为了解决该任务,提出了一种能设立在可编程门装置上的第一配置逻辑,该第一配置逻辑被设立为:在第一可编程门装置的数据接口处接收用于在第一可编程门装置上设立第一用户逻辑的第一用户比特流;并且将该第一用户比特流存储在第一可编程门装置的被设置用于存储比特流的只读存储器上。按照本发明的方法包括:在第一可编程门装置上设立第一配置逻辑。
用户逻辑应被理解为设立在第一可编程门装置上的任意的逻辑电路,该逻辑电路被设计为以计算机系统的用户所希望的方式来对数据进行处理。
按照本发明的方法规定:提供配置软件,该配置软件被设立用于对计算机系统中的外围可编程门装置进行编程。这样的配置软件的示例是在申请人处可获得的ConfigurationDesk软件。该方法还包括:将第一可编程门装置结合到计算机系统的外围。有利地,配置逻辑在结合时就已经设立在第一可编程门装置上。
第一可编程门装置应该包括第一只读存储器,用于存储至少一个对第一可编程门装置上的逻辑电路进行定义的比特流。与第一只读存储器是集成到第一可编程门装置中还是布置在该第一可编程门装置之外无关,第一可编程门装置必须被设计为:从第一只读存储器读取比特流并且按照所读取的比特流的规定在第一可编程门装置上设立逻辑电路。
该方法包括:将第一用户比特流从配置软件经由计算机系统的至少一条数据线路传送给设立在第一可编程门装置上的第一配置逻辑;并且通过第一配置逻辑将第一用户比特流存储在第一只读存储器上。该方法还包括:借助于第一用户比特流,在第一可编程门装置上设立第一用户逻辑。
原则上,第一配置逻辑能被设立在提供为此所需的逻辑单元资源的任一可编程门装置上。第一配置逻辑初始设立在其上的可编程门装置能借助于附在可编程门装置的数据接口上的数据线路来被编程,而为此并不使用第一可编程门装置的专用编程接口。由此,本发明能够将第三方提供商的可编程门装置结合到IOCNET系统或者技术上相对应地设计的标准中,该标准规定了经由数据接口对外围可编程门装置的编程。作为另一优点,本发明也能够节省硬件资源,因为在具有可编程门装置(在所述可编程门装置上按照本发明设立有配置逻辑)的扩展卡上不需要提供用于对可编程门装置进行编程的其它实体、例如按照上文描述的CPLD。在此,当然必须保证:在每次启动计算机系统时都设立配置逻辑。在技术上实现这一点的可能性在随后的描述中介绍。
在可编程门装置上设立配置逻辑已经从专利公开文本US20070182445A1中公知,不过只是关于在菊花链(Daisy Chain)下游的可编程门装置的编程。
有利地,第一配置逻辑是引起在第一可编程门装置上设立第一用户逻辑的实体。也就是说,在第一配置逻辑将第一用户比特流存储在第一只读存储器中之后,该第一配置逻辑产生信号,该信号引起:第一可编程门装置借助于第一用户比特流在第一可编程门装置上设立第一用户逻辑。不过,用于设立第一用户逻辑的信号原则上也可以由作为第一配置逻辑的另一实体来输出。
为了在第一可编程门装置上设立第一配置逻辑,可以将初始比特流存储在第一只读存储器上,尤其是也可以将初始比特流存储在计算机系统之外,即在将第一可编程门装置结合到计算机系统的外围之前将初始比特流存储在计算机系统之外,而且可以借助于第一可编程门装置的专用编程接口、例如JTAG接口来将初始比特流存储在计算机系统之外,该专用编程接口不同于被设置用于传送第一用户比特流的数据接口。
如果在第一可编程门装置上设立第一用户逻辑之后第一配置逻辑或者用于设立第一配置逻辑的初始比特流留在第一可编程门装置上,则特别有利。在该设计方案中,第一配置逻辑能多次应用,使得一次性地配备有第一配置逻辑的第一可编程门装置能反复地结合到计算机系统的外围并且能在结合到该外围之后反复地被编程。
在一个可能的设计方案中,在设立第一用户逻辑之后,初始比特流留在第一只读存储器中。为了与第一用户比特流并行地存储初始比特流,可以在只读存储器中提供两个逻辑分开的存储插槽,其中,初始比特流留在第一只读存储器的第一存储插槽中而第一用户比特流留在第一只读存储器的第二存储插槽中。为此,第一可编程门装置必须被设计为:选择性地从第一只读存储器的第一存储插槽或者第二存储插槽中读取比特流并且按照相应读取的比特流的规定在第一可编程门装置上设立逻辑电路。
在该设计方案中,第一可编程门装置被设立为:在开启计算机系统之后、尤其是在给第一可编程门装置施加供电电压之后,自动读取在第一存储插槽中所存储的比特流并且按照在第一存储插槽中所存储的比特流的规定在第一可编程门装置上设立逻辑电路。在该设计方案中,第一配置逻辑被设立为将第一用户比特流存储在第二存储插槽中,并且当然也从第二存储插槽中加载用于设立第一用户逻辑的第一用户比特流,这与第一配置逻辑或者计算机系统的另一实体是否引起第一用户逻辑的设立无关。
在一个备选的设计方案中,利用第一用户逻辑在第一可编程门装置上设立监控逻辑。监控逻辑被设立为:监控从计算机系统馈入到第一可编程门装置中的输入数据并且在输入数据中识别用于重新设立第一可编程门装置的复位指令。如果配置软件借助于计算机系统的至少一条数据线路将复位指令传送给监控逻辑,则监控逻辑将第一可编程门装置置于初始状态,在该初始状态下,第一配置逻辑在第一可编程门装置上被设立为:从配置软件接收用于在第一可编程门装置上设立新的用户逻辑的新的用户比特流并且将该新的用户比特流存储在第一只读存储器上。
优选地,监控逻辑集成到第一用户逻辑中,使得伴随着在第一可编程门装置上设立第一用户逻辑,该监控逻辑也被设立在第一可编程门装置上,并且由此该监控逻辑在设立第一用户逻辑之后留在第一可编程门装置上。为了该目的,监控逻辑可以作为现成模块保存在用于可编程门装置的编程环境下,例如以用于MathWorks的Simulink编程环境的块为形式保存在用于可编程门装置的编程环境下,以便使用户能够将第一监控逻辑简单地结合到用户逻辑中。
监控逻辑可以被设计为:依据在第一存储插槽中保存的初始比特流来引起第一配置逻辑的重新设立。备选地,第一监控逻辑也可就如下意义而言与第一配置逻辑相同:第一监控逻辑的功能性集成到第一配置逻辑中而且第一配置逻辑与集成到其中的第一监控逻辑一起在设立第一用户逻辑之后留在第一可编程门装置上。在这种情况下,能省去提供两个分开的存储插槽来分开地存储初始比特流和用户逻辑。
有利地,第一可编程门装置被设立为:在开启计算机系统之后自动地借助于初始比特流在第一可编程门装置上设立第一配置逻辑。
特别有利地,该方法包括:将第二可编程门装置结合到计算机系统的外围,该外围包括第二只读存储器,用于存储至少一个对第二可编程门装置上的逻辑电路进行限定的比特流,而且该外围被设计为从第二只读存储器中读取比特流并且按照所读取的比特流的规定在第二可编程门装置上设立逻辑电路。
在第二可编程门装置上设立第二配置逻辑。第二配置逻辑被设立为:接收用于在第二可编程门装置上设立第二用户逻辑的第二用户比特流并且将该第二用户比特流存储在只读存储器上。
在第一可编程门装置上设立编程逻辑。编程逻辑被设立为:从配置软件接收第二用户比特流并且借助于计算机系统的至少一条数据线路将该第二用户比特流传送给第二配置逻辑。配置软件将第二用户比特流传送给编程逻辑,并且在第一可编程门装置上设立第一用户逻辑之前,编程逻辑将第二用户比特流传送给第二配置逻辑。该第二配置逻辑将第二用户比特流保存在第二只读存储器中,用于在第二可编程门装置上设立第二用户逻辑。
即,在本发明的该设计方案中规定:借助于编程逻辑,至少一个可编程门装置将至少一个用户比特流传送给下游的其它可编程门装置,其中,当然每个下游的可编程门装置都能以相同的方式来被设立,以便设立至少一个其它的、再下游的可编程门装置。因此,借助于编程逻辑,菊花链可以根据多个可编程门装置来被设立、被结合到计算机系统中并且按照本发明来被编程。
菊花链应被理解为总线成员的串联布置,在该串联布置中,除了该串联的第一元件之外,没有成员直接访问总线,而是数据从一个成员被传送给相应下游的成员。例如参见Friedrich Wittgruber的专著“Digitale Schnittstellen und Bussysteme:Einführungfür das technische Studium数字接口与总线系统:技术研究入门”,Vieweg出版社,第2版(2002年),第81页的定义。
编程逻辑也可以被设立为:在传送第二用户比特流之前,从第二可编程门装置中读取状态数据,并且在第二可编程门装置上对第二用户逻辑的设立结束之后,恢复第二可编程门装置的通过该状态数据所限定的状态。该状态数据尤其可以是第二可编程门装置的总线地址。
当然,可就如下意义而言与第一配置逻辑相同:编程逻辑的功能性集成到第一配置逻辑中。特别有利地,第一配置逻辑和第二配置逻辑关于它们的技术功能性相同,使得向用户提供用于产生初始比特流的唯一模块,依据该初始比特流,在菊花链中的每个可编程门装置上都可以设立逻辑电路,该逻辑电路至少具有第一配置逻辑的功能性,尤其是也具有第一监控逻辑和/或编程逻辑的功能性。
附图说明
随后,本发明依据附图进一步予以阐述。这些附图是示意性的并且描绘了按照本发明的对多个可编程门装置的编程的优选的、但示例性的设计方案,这些可编程门装置只是示例性地设计为FPGA。其中:
图1示出了在FPGA上设立初始比特流;
图2示出了由分布式计算机系统中的利用初始比特流所设立的FPGA构成的菊花链;
图3示出了在开始对FPGA的编程之后的计算机系统;
图4示出了在编程的后期阶段的计算机系统;
图5示出了在对计算机系统的编程结束之后的计算机系统;
图6示出了配置逻辑的逻辑构造;
图7示出了在对计算机系统的编程之后在FPGA上保存配置逻辑的第一种做法;以及
图8示出了在对计算机系统的编程之后在FPGA上保存配置逻辑的第二种做法。
具体实施方式
图1的图示示出了第一FPGA 2,其具有由可配置且可彼此电路连接的逻辑单元构成的第一矩阵或者说阵列6和设计为闪速存储器的第一只读存储器4,在该第一只读存储器上能保存用于在第一矩阵6上设立逻辑电路的比特流。第一FPGA 2在本地被设立为:基于信号,从第一只读存储器4中读取比特流并且按照所读取的比特流中的规定在第一矩阵6上设立逻辑电路。该信号不仅可以由布置在第一FPGA 2之外的实体(Instanz)、例如分布式计算机系统的主处理器产生,而且可以由设立在第一矩阵6上的逻辑电路产生。第一FPGA 2还被设立为:在给第一FPGA 2施加供电电压之后,自动从第一只读存储器4中读取比特流并且按照所读取的比特流中的规定在第一矩阵6上设立逻辑电路。
第一FPGA 2包括:根据JTAG标准设计的编程接口18a,用于将比特流存储在第一只读存储器4上;还有多个数据接口,代表性地示出了这些数据接口中的第一数据接口8a和第二数据接口10a,用于在第一矩阵6上设立的逻辑电路与第一FPGA 2的外围之间交换数据。
计算机14借助于JTAG线缆16与编程接口18a连接,以便将初始比特流12存储在第一只读存储器4上,作为对第一FPGA 2的按照本发明的编程的第一步骤。初始比特流被设计用于在第一矩阵6上设立第一配置逻辑20a。
通过将初始比特流12存储在第一只读存储器4上,第一FPGA 2被设立用于结合到分布式计算机系统32中。图2的图示示出了已建立和启动、但尚未编程完成的分布式计算机系统32,第一FPGA 2和以相同方式设立的第二FPGA 22作为外围组件结合到该分布式计算机系统中。计算机系统30包括主处理器24、FPGA扩展卡26和总线30,该总线用于在主处理器24与计算机系统30的外围组件之间的数据交换并且用于计算机系统30的外围组件彼此间的数据交换。
计算机系统32按照IOCNET标准来被设计。与此相对应地,主处理器24被设置用于执行对计算机系统32的外围组件的初始编程。在FPGA扩展卡26上安装可由主处理器24编程的FPGA。
总线30用于传输所有在主处理器24与FPGA扩展卡26之间交换的数据,这不仅包括正在运行时交换的应用数据,而且包括为了对FPGA扩展卡26的编程而从主处理器24被传输给FPGA扩展卡26的比特流。即,对FPGA扩展卡的编程经由同一总线30来实现,该总线也用于传输应用数据。在FPGA扩展卡26上的FPGA虽然可能包括专用编程接口,但是该专用编程接口——如果存在——不参与对FPGA的编程。FPGA扩展卡26是IOCNET生态系统的部分并且因此在本地被设立用于这种类型的编程。在FPGA扩展卡26上,除了上述FPGA之外还安装有另一芯片,例如CPLD,该另一芯片被设立为从主处理器28接收用于对FPGA进行编程的比特流并且对该FPGA进行编程。
操作计算机28经由计算机系统32的接口来与主处理器24连接。操作计算机28是市售的个人计算机,在该个人计算机上安装有配置软件,用于对计算机系统32、也就是说计算机系统32的主处理器进行编程并且借助于主处理器24对计算机系统32的所有外围组件进行编程。配置软件被设立为:向用户提供计算机系统的所有可编程外围组件的概览并且向主处理器24传送用户所拟定的用于对计算机系统32的外围组件进行编程的规定。
图1中的第一FPGA 2同样结合到计算机系统32的外围。第一FPGA 2是从第三方提供商处购买的,并且与FPGA扩展卡26不同,无法与总线30连接而且不是如上所述那样在本地被设立用于由主处理器24来进行编程。作为替代,第一FPGA 2的第二数据接口10a借助于第一数据线缆连接29与FPGA扩展卡26的数据接口连接。由于计算机系统32已经被启动并且因此供电电压被施加给第一FPGA 2,所以第一FPGA 2已在第一矩阵6上自动地按照初始比特流12的规定来设立第一配置逻辑20a。
第二FPGA 22包括第二只读存储器23和由可配置且可彼此电路连接的逻辑单元构成的第二矩阵25。第二FPGA 22至少关于第一FPGA 2的上述特性方面与第一FPGA 2相同地来设计并且以相同的方式包括专用编程接口18b、第一数据接口8b和第二数据接口10b。在第二只读存储器23上保存有相同的初始比特流12,该初始比特流也保存在第一FPGA 2的第一只读存储器4上,而且第二FPGA 22在计算机系统32启动的情况下在施加供电电压之后已在第二矩阵25上设立第二配置逻辑20b,该第二配置逻辑关于其功能性方面与第一配置逻辑20a相同。第二FPGA 22也是从第三方提供商处购买的,并且既不能直接结合到总线30中也不是在本地被设立用于由主处理器24来进行编程。第二FPGA 22的第二数据接口10b借助于第二数据线缆连接31来与第一FPGA 2的第一数据接口8a连接,使得FPGA扩展卡26、第一FPGA 2和第二FPGA 22在计算机系统32之内形成菊花链,该菊花链的第一元件是FPGA扩展卡26,其中,该FPGA扩展卡26将菊花链的所有在它下游的元件与总线30连接。
如已经提及的那样,第一配置逻辑20a和第二配置逻辑20b关于它们的功能性相同地来设计。第一,两者都被设计为:经由相应的第二数据接口10a、10b来接收用户比特流;将该用户比特流存储在第一只读存储器4或第二只读存储器22上;并且在对用户比特流的存储结束之后,产生适合的信号,以便借助于该信号根据用户比特流的规定来产生对用户逻辑的设立。第二,两者都被设计为:经由相应的第二数据接口10a、10b来接收被设置用于设立菊花链中下游的FPGA的用户比特流;并且经由相应的第一数据接口8a、8b将该用户比特流传送给菊花链中下游的FPGA,如果存在的话。
当然,为了可以将第三方提供商的超过一个FPGA结合到菊花链中,每个配置逻辑都必须识别出某个用户比特流是特定用于菊花链中下游的FPGA还是特定用于自己的FPGA。这种识别能以不同的方式来实现:
在每个FPGA上,例如通过寄存器设置,可以保存唯一的并且能由配置逻辑读取的标记,例如总线地址,并且主处理器24或配置软件被设立为将相应匹配的标记作为报头数据添加给用户比特流。每个配置逻辑都被设立为:将被添加给用户比特流的标记与自己的FPGA的标记进行对照,在一致时将该用户比特流存储在只读存储器中而在不一致时转发该用户比特流。
主处理器24也可以被设立为:给每个用户比特流配备路由信息,从该路由信息中,用户比特流在其经过总线30的路径上经过的路由器可以读取用于转发用户比特流的路由器端口。在该设计方案中,在初始比特流12中必须实现用于配置逻辑20a、20b的相对应的路由器功能性。每个配置逻辑都可以被设计为:如果发现相对应的路由信息,将用户比特流转发给菊花链中处于下游的FPGA;并且如果没有发现用于转发用户比特流的路由信息时,将该用户比特流存储在自己的只读存储器4、23中。
在FPGA扩展卡26上设立第三配置逻辑20c。第三配置逻辑20c可与第一配置逻辑20a和第二配置逻辑20b相同。但是,第三配置逻辑20c也可以被设计为简化的配置逻辑20c,该简化的配置逻辑的功能性限于:从总线30接收用户比特流;并且经由第一数据线缆连接29来转发该用户比特流;并且在对计算机系统32的编程完成之后将应用数据从总线30转发到第一数据线缆连接29上并且反之亦然,这当然对于两者来说都可包括将用户比特流转换成适合于第一数据线缆连接29的协议。即,FPGA扩展卡26通过设立第三配置逻辑20c来承担用于使第一FPGA 2和第二FPGA与总线30连接的网关的功能。
第三配置逻辑20c由主处理器24以常规方式借助于总线30被编程到FPGA扩展卡26上,如在针对作为IOCNET生态系统一部分的扩展卡登记时所规定的那样。不需要像之前关于图1所描绘的那样将初始比特流12保存在FPGA扩展卡26上。
通过在第一FPGA 2上设立第一配置逻辑20a并且在第二FPGA 22上设立第二配置逻辑20b,第一FPGA 2和第二FPGA 22被设立用于由主处理器24来进行编程。在操作计算机上的配置软件中,第一FPGA 2和第二FPGA 22可以像常规总线成员、例如FPGA扩展卡26那样作为总线30的可编程成员被呈现给用户。备选地,第一FPGA 2和第二FPGA 22可以在配置软件中作为FPGA扩展卡26的整体资源被呈现给用户。
图3的图示阐明了对第一FPGA 2和第二FPGA 22进行编程的第一步骤。主处理器24首先对菊花链中的最后一个元件、即第二FPGA 22进行编程。为此,主处理器24将针对第二FPGA 22所设置的第二用户比特流34b借助于总线30传送给FPGA扩展卡26,该FPGA扩展卡将第二用户比特流34b转发给第一配置逻辑20a。第一配置逻辑20a检查第二用户比特流34b是否被设置用于第一FPGA 2,识别出情况不是如此并且因此将第二用户比特流34b转发给第二配置逻辑20b。第二配置逻辑检查第二用户比特流34b是否被设置用于第二FPGA 22,识别出情况是如此并且因此将第二用户比特流34b存储在第二只读存储器23中。
在第二只读存储器23中对第二用户比特流34b的存储结束之后,第二配置逻辑20b产生信号,该信号引起:第二FPGA 22按照第二用户比特流34b的规定在第二矩阵25上设立第二用户逻辑36b。在此,第二配置逻辑20b被覆盖(überschreiben)。
图4的图示示出了在编程的进一步的阶段中的计算机系统32。在第二矩阵25上对第二用户逻辑36b的设立以及借此对第二FPGA 22的编程结束。然后,主处理器24将第一用户比特流34a发送给第三配置逻辑20c,第三配置逻辑20c将第一用户比特流34a转发给第一配置逻辑20a。第一配置逻辑检查第一用户比特流34是否被设置用于第一FPGA 2,识别出情况是如此并且然后将第一用户比特流34a存储在第一只读存储器4中。在第一只读存储器4中对第一用户比特流34a的存储结束之后,第一配置逻辑20a产生信号,该信号引起:第一FPGA 2按照第一用户比特流34a的规定在第一矩阵6上设立第一用户逻辑36a。在此,第一配置逻辑20a被覆盖。
图5的图示示出了编程完成的计算机系统32。在第一用户逻辑36a被设立在第一FPGA 2上并且借此菊花链的所有元件都被编程之后,主处理器还以常规方式在FPGA扩展卡26上设立第三用户逻辑36c。
应注意:在这些图示中对由三个元件组成的菊花链的呈现只是示例性的。原则上,能以与上文所述类似的方式将任意数目的可编程门装置结合到计算机系统32中并且对这些可编程门装置进行编程。在此,菊花链的最后一个元件总是首先被编程并且然后按顺序始终相应最后一个元件是仍未被编程的可编程门装置。以这种方式保证了:在对计算机系统32的编程期间,每个在菊花链中布置在更前面的可编程门装置都被设立用于转发用户比特流。
图6的图示示例性描绘了第一配置逻辑20a的逻辑构造,其中第二配置逻辑20b与第一配置逻辑20a相同地来设计,也就是说具有相同的功能性。
首先,第一配置逻辑20a包括监控逻辑40,该监控逻辑经由第一配置逻辑20a的逻辑接口与第一FPGA 2的第一数据接口10a连接,由此第一配置逻辑20a被设立为从第一数据接口10a读入数据以及设立为将数据经由第一数据线缆连接29传送给FPGA扩展卡20c。第一监控逻辑40被设立为复用器(Multiplexer),该复用器使第一数据接口10a与用户接口逻辑42、编程逻辑44或者复位逻辑46连接。第一配置逻辑40被设立用于然后检查所有如上所述经由第一数据接口10a进入的数据:这些数据被设置用于自己的FPGA、也就是说第一FPGA 2还是被设置用于菊花链中的另一可编程门装置。
监控逻辑40将所有被设置用于菊花链的另一元件的数据、不管是用户比特流还是应用数据都转发给编程逻辑44。编程逻辑44经由第一配置逻辑20a的逻辑接口与第二数据接口10b连接并且被设立为:将从监控逻辑40获得的数据经由第二数据线缆连接31转发给菊花链中下游的元件、也就是说第二FPGA 22。该过程也沿相反方向发挥作用:编程逻辑44被设立为从第二数据接口10b读入由第二FPGA 22传送的应用数据并且将这些应用数据转发给监控逻辑40。监控逻辑40对从编程逻辑44获得的应用数据进行检查。如果这些应用数据被设置用于第一FPGA 2,则监控逻辑40将这些应用数据转发给用户接口逻辑42。否则,该监控逻辑将这些应用数据转发给第一数据接口10a,在该第一数据接口处,这些应用数据经由第一数据线缆连接29被转发给FPGA扩展卡26。
第一监控逻辑40将该监控逻辑40从编程逻辑44或第一数据接口10a接收并且特定用于第一FPGA 2的应用数据传送给用户接口逻辑42。用户接口逻辑42被设立为:在第一配置逻辑20a的用户接口48处提供由监控逻辑40传送的应用数据,在该用户接口处能由第一用户逻辑36a来读取这些应用数据。反过来,用户接口逻辑42被设立为:读取由第一用户逻辑36在用户接口48处提供的应用数据并且将这些应用数据传送给监控逻辑40。
主处理器24被设立为:根据用户的输入来给监控逻辑40传送复位指令,以便在第一矩阵上设立第一用户逻辑36a之后设立第一FPGA 2,以利用新的用户逻辑进行重新编程。监控逻辑40被设立为:识别复位指令并且然后检查每个复位指令:该复位指令是被设置用于第一FPGA 2还是被设置用于另一FPGA。监控逻辑将并非设置用于第二FPGA 2的复位指令传送给编程逻辑44,以转发给第二FPGA 22。对被设置用于第一FPGA 2的复位指令的识别引起:监控逻辑40随后将在第一数据接口10a处进入的数据转发给复位逻辑46。由此,第一FPGA 2被设立用于接收新的用户比特流,以对第一FPGA 2进行重新编程。
复位逻辑46被设立为:将从监控逻辑40获得的用户比特流存储在第一只读存储器4中并且在该存储成功结束之后将所存储的用户比特流的校验和传送给监控逻辑40。监控逻辑40将该校验和传送给主处理器24。主处理器24检查该校验和的正确性并且只要该校验和正确就将被设置用于第一FPGA 2的重新编程指令传送给监控逻辑40。监控逻辑40将重新编程指令传送给复位逻辑46。由于获得重新编程指令,复位逻辑46将指令序列发送给第一FPGA 2的ICAP(Internal Configuration Access Port(内部配置访问端口)),该指令序列整体上引起:第一FPGA 2开启复位、从第一只读存储器4中读取用户比特流并且按照用户比特流中的规定在第一矩阵6上设立用户逻辑。
为了更高效地构建对计算机系统32的编程,复位逻辑46还将该校验和存储在第一只读存储器4中。在稍后获得新的用户比特流的情况下,该复位逻辑将新的用户比特流的校验和与在第一只读存储器4中存储的校验和进行对照,并且在一致时省去对第一FPGA 2的重新编程的开启。
复位逻辑46还被设立为:在开启复位之前,将至少一个状态数据、尤其是第一FPGA2的总线地址传送给监控逻辑40,以转发给在菊花链中处于上游的配置逻辑。与此相对应地,编程逻辑被设立为:从第二配置逻辑36接收至少一个状态数据并存储所述至少一个状态数据并且在对第二FPGA 22的重新编程之后恢复第二FPGA 22的通过该状态数据所限定的状态。
当然,第一配置逻辑20a的上述功能性中的多个功能性的前提在于:在第一FPGA 2上设立第一用户逻辑36a之后,即使对第一用户逻辑36的设立覆盖了第一配置逻辑20a,第一配置逻辑20a也保持被设立。属于所述多个功能性的主要是:将第二FPGA 22结合到菊花链中的可能性;以及在按照图5对计算机系统32的编程结束之后对第一FPGA 2进行重新编程的可能性。图7和8的图示描绘了保证第一配置逻辑20a留在第一FPGA 2上的两种不同的可能性。
一种可能性在于:将第一配置逻辑20a集成到第一用户逻辑36a中,如在图7的图示中所示。即,第一用户逻辑36a被设计为使得第一配置逻辑36a是第一用户逻辑36a的功能范围的整体的组成部分,使得在第一矩阵6上设立第一用户逻辑36a时,第一配置逻辑20a虽然被覆盖,但是在设立第一用户逻辑36a的过程中立即重新被设立。可以让对第一用户逻辑36a进行编程的用户负责将第一配置逻辑20a集成到第一用户逻辑36a中。有利地,第一配置逻辑20a作为完成的且能以简单的方式集成到第一用户逻辑36a中的模块被提供给用户。
在图8的图示中示出了第二种可能性。在第一FPGA 2的第一只读存储器4中设立第一存储插槽50(Speicherslot)和与第一存储插槽逻辑上分开的第二存储插槽52。初始比特流12在按照图1来准备第一FPGA时被存储在第一存储插槽50中,而且第一FPGA 2被设立为:在给第一FPGA 2施加供电电压之后,自动从第一存储插槽50中读取比特流并且按照所读取的比特流中的规定在第一矩阵6上设立逻辑电路,使得在启动计算机系统32之后第一配置逻辑20a设立在第一矩阵6上。
在本发明的该设计方案中,第一配置逻辑20a被设立为:将从配置软件接收的第一用户比特流34a存储在第二存储插槽52中并且产生指令序列,所述指令序列整体引起:第一FPGA 2开启复位、从第二存储插槽52中读取第一用户比特流34a并且按照第一用户比特流34a中的规定在第一矩阵6上设立第一用户逻辑36a。
即,第一存储插槽50仅被保留用于保存初始比特流50,使得通过启动计算机系统32来设立第一配置逻辑20a的过程能任意频繁地被重复。本发明的该设计方案的优点在于:该设计方案不需要将第一配置逻辑20a集成到第一用户逻辑36a中。由此,第一,向用户提供在第一矩阵6上用于对第一用户逻辑36a的设计的更多资源,第二,用户可以以预制的第一用户逻辑36a来工作,没有配置逻辑集成到该第一用户逻辑中并且该第一用户逻辑的设计对于用户来说不再能被更改。但是,为了将其它可编程门装置结合到菊花链中,在第一矩阵6上必须至少设立编程逻辑44的功能性,以便将应用数据和用户比特流转发给其它可编程门装置并且从其它可编程门装置接收应用数据和用户比特流。否则,在该设计方案中,只有第三方提供商的唯一的一个可编程门装置能被结合到菊花链中。
易于理解的是:结合图7和8所描述的做法能以相同的方式应用于第二FPGA 22以及任意的其它结合到菊花链中的可编程门装置。

Claims (14)

1.一种用于对在分布式计算机系统(32)中的至少一个可编程门装置进行编程的方法,所述方法具有如下方法步骤:
提供配置软件,用于对所述计算机系统(32)中的外围可编程门装置进行编程;
将第一可编程门装置(2)结合到所述计算机系统(32)的外围;
所述第一可编程门装置(2)被设计为从第一只读存储器(4)中读取比特流并且按照所读取的比特流的规定在所述第一可编程门装置(2)上设立逻辑电路;
其特征在于在所述第一可编程门装置(2)上设立第一配置逻辑(20a),所述第一配置逻辑被设立为从所述配置软件接收用于在所述第一可编程门装置(2)上设立第一用户逻辑(36a)的第一用户比特流(34a)并且将所述第一用户比特流存储在所述第一只读存储器(4)上;
将所述第一用户比特流(34a)从所述配置软件经由所述计算机系统的至少一条数据线路传送给所述第一配置逻辑(20a)并且通过所述第一配置逻辑(20a)将所述第一用户比特流(34a)存储在所述第一只读存储器(4)上;并且
借助于所述第一用户比特流(34a)在所述第一可编程门装置(2)上设立所述第一用户逻辑(36a)。
2.根据权利要求1所述的方法,其中,所述第一配置逻辑(34a)引起对所述第一用户逻辑(36a)的设立。
3.根据权利要求1所述的方法,其中,将用于借助于所述第一可编程门装置(2)的专用编程接口(18a)、尤其是JTAG接口在所述第一可编程门装置(2)上设立所述第一配置逻辑(20a)的初始比特流(12)存储在所述第一只读存储器(4)上;并且
将所述第一用户比特流(34a)借助于所述第一可编程门装置(2)的与所述专用编程接口(18a)不相同的数据接口(10a)传送给所述第一配置逻辑(20a)。
4.根据上述权利要求中任一项所述的方法,其中,在设立所述第一用户逻辑(36a)之后,所述第一配置逻辑(20a)或者所述初始比特流(12)留在所述第一可编程门装置(2)上。
5.根据权利要求4所述的方法,所述方法具有如下方法步骤:
利用所述第一用户逻辑(36a),在所述第一可编程门装置(2)上设立监控逻辑(40),所述监控逻辑被设立为监控从所述计算机系统(32)馈入到所述第一可编程门装置(2)中的输入数据并且在所述输入数据中识别用于重新设立所述第一可编程门装置(2)的复位指令;
借助于所述计算机系统(32)的至少一条数据线路,将所述复位指令从所述配置软件传送给所述第一监控逻辑(40);
通过所述第一监控逻辑(40)基于对所述复位指令的识别来恢复初始状态,在所述初始状态下,所述第一配置逻辑(20a)在所述第一可编程门装置上被设立为从所述配置软件接收用于在所述第一可编程门装置(2)上设立新的用户逻辑的新的用户比特流并且将所述新的用户比特流存储在所述第一只读存储器(4)上。
6.根据权利要求4所述的方法,其中,所述初始比特流(12)留在所述第一只读存储器(4)的第一存储插槽(50)中并且所述第一用户比特流(34a)留在所述第一只读存储器(4)的第二存储插槽(52)中,
所述第一可编程门装置(2)被设计为选择性地从所述第一存储插槽(50)或所述第二存储插槽(52)中读取比特流并且按照所读取的比特流的规定在所述第一可编程门装置(2)上设立逻辑电路,并且
所述第一可编程门装置(2)被设立为自动读取在所述第一存储插槽(50)中所存储的比特流并且按照在所述第一存储插槽(50)中所存储的比特流的规定在所述第一可编程门装置(2)上设立逻辑电路。
7.根据权利要求5所述的方法,其中,所述第一监控逻辑(40)与所述第一配置逻辑(20a)相同。
8.根据上述权利要求中任一项所述的方法,其中,所述第一可编程门装置(2)被设立为:在接通所述计算机系统(32)之后自动地借助于所述初始比特流(12)在所述第一可编程门装置(2)上设立所述第一配置逻辑(20a)。
9.根据上述权利要求中任一项所述的方法,所述方法具有如下方法步骤:
将第二可编程门装置(22)结合到所述计算机系统(32)的外围;
所述第二可编程门装置(22)被设计为从第二只读存储器(23)中读取比特流并且按照所读取的比特流的规定在所述第二可编程门装置(22)上设立逻辑电路;
在所述第二可编程门装置(22)上设立第二配置逻辑(20b),所述第二配置逻辑被设立为接收用于在所述第二可编程门装置(22)上设立第二用户逻辑(36b)的第二用户比特流(34b)并且将所述第二用户比特流存储在所述第二只读存储器(23)上;
在所述第一可编程门装置(2)上设立编程逻辑(44),所述编程逻辑被设立为从所述配置软件接收所述第二用户比特流(34b)并且将所述第二用户比特流借助于所述计算机系统(32)的至少一条数据线路传送给所述第二配置逻辑(20b);
将所述第二用户比特流(34b)从所述配置软件传送给所述编程逻辑(44);
在所述第一可编程门装置(2)上设立所述第一用户逻辑(36a)之前,将所述第二用户比特流(34b)从所述编程逻辑(44)传送给所述第二配置逻辑(20b);
借助于所述第二用户比特流(34b)在所述第二可编程门装置(22)上设立所述第二用户逻辑(36a)。
10.根据权利要求9所述的方法,所述方法具有如下方法步骤:
通过所述编程逻辑(44)来读入所述第二可编程门装置(22)的至少一个状态数据、尤其是总线地址;
在所述第二可编程门装置(22)上设立所述第二用户逻辑(36b)之后,通过所述编程逻辑(44)来恢复所述第二可编程门装置(22)的通过所述状态数据所限定的状态。
11.根据权利要求9或10所述的方法,其中,所述编程逻辑(44)与所述第一配置逻辑(20a)相同。
12.根据权利要求9至11中任一项所述的方法,其中,所述第一配置逻辑(20a)和所述第二配置逻辑(20b)关于它们的技术功能性方面相同。
13.一种能存储在可编程门装置(2)的只读存储器(4)上的初始比特流(12),所述初始比特流用于在所述可编程门装置(2)上设立逻辑电路,所述逻辑电路实现被设立用于执行如下方法步骤的配置逻辑(20a):
-在所述可编程门装置(2)的数据接口(10a)处接收用于在第一可编程门装置(2)上设立用户逻辑(36a)的用户比特流(34a);
-将所述用户比特流(34a)存储在所述可编程门装置(2)的只读存储器(4)上;并且
-借助于所述用户比特流(34a)在所述可编程门装置(2)上设立所述第一用户逻辑(36a)。
14.一种用于在用于对可编程门装置进行编程的编程环境下产生根据权利要求13所述的初始比特流(12)的模块,所述模块尤其被设计为能结合到图形程序中的块。
CN202110293727.3A 2020-03-27 2021-03-19 对在分布式计算机系统中的可编程门装置编程的方法 Pending CN113448565A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102020108604 2020-03-27
DE102020108604.0 2020-03-27
DE102020116872.1 2020-06-26
DE102020116872.1A DE102020116872A1 (de) 2020-03-27 2020-06-26 Verfahren zur Programmierung einer programmierbaren Gatteranordnung in einem verteilten Computersystem

Publications (1)

Publication Number Publication Date
CN113448565A true CN113448565A (zh) 2021-09-28

Family

ID=77658887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110293727.3A Pending CN113448565A (zh) 2020-03-27 2021-03-19 对在分布式计算机系统中的可编程门装置编程的方法

Country Status (4)

Country Link
US (1) US11442884B2 (zh)
JP (1) JP7359798B2 (zh)
CN (1) CN113448565A (zh)
DE (1) DE102020116872A1 (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9930145D0 (en) * 1999-12-22 2000-02-09 Kean Thomas A Method and apparatus for secure configuration of a field programmable gate array
US20030028690A1 (en) 2000-07-20 2003-02-06 John Appleby-Alis System, method and article of manufacture for a reconfigurable hardware-based multimedia device
US7095247B1 (en) * 2004-03-25 2006-08-22 Lattice Semiconductor Corporation Configuring FPGAs and the like using one or more serial memory devices
US7233532B2 (en) 2004-04-30 2007-06-19 Xilinx, Inc. Reconfiguration port for dynamic reconfiguration-system monitor interface
US7265578B1 (en) * 2005-04-04 2007-09-04 Lattice Semiconductor Corporation In-system programming of non-JTAG device using SPI and JTAG interfaces of FPGA device
US7554357B2 (en) 2006-02-03 2009-06-30 Lattice Semiconductor Corporation Efficient configuration of daisy-chained programmable logic devices
EP2765528B1 (de) * 2013-02-11 2018-11-14 dSPACE digital signal processing and control engineering GmbH Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
US9658977B2 (en) * 2013-03-15 2017-05-23 Micron Technology, Inc. High speed, parallel configuration of multiple field programmable gate arrays
DE102015110729A1 (de) 2014-07-21 2016-01-21 Dspace Digital Signal Processing And Control Engineering Gmbh Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle
US9698790B2 (en) 2015-06-26 2017-07-04 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
US11296706B2 (en) 2018-06-27 2022-04-05 Intel Corporation Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems

Also Published As

Publication number Publication date
DE102020116872A1 (de) 2021-09-30
JP2021157801A (ja) 2021-10-07
US11442884B2 (en) 2022-09-13
US20210303501A1 (en) 2021-09-30
JP7359798B2 (ja) 2023-10-11

Similar Documents

Publication Publication Date Title
US6772230B2 (en) Field programmable gate array (FPGA) bit stream format
US6754881B2 (en) Field programmable network processor and method for customizing a network processor
JP4128956B2 (ja) デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート
US6035117A (en) Tightly coupled emulation processors
US20080222329A1 (en) I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US20070255882A1 (en) I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
CN107111572B (zh) 用于避免死锁的方法和电路
KR100299149B1 (ko) I/o핀이n이하인n-비트데이타버스폭을갖는마이크로콘트롤러와그방법
JP2008310832A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
US7206889B2 (en) Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
CN113448565A (zh) 对在分布式计算机系统中的可编程门装置编程的方法
CN116032746B (zh) 资源池的信息处理方法及装置、存储介质及电子装置
JP2000029735A (ja) 自己試験を行う集積回路
Merl et al. Radiation-hardened SpaceVPX system controller
EP0637881B1 (en) Programmable error-checking matrix for digital communication system
CN101170417B (zh) 用于最小系统的程序下载、测试和调试的多功能装置
EP1552402B1 (en) Integrated circuit and method for sending requests
CN219811188U (zh) 桥接电路、桥接电路集成装置及硅基板
RU72772U1 (ru) Модуль-контроллер магистрального последовательного интерфейса
Yuehua et al. Distributed storage system for satellite platform based on SpaceWire network: SpaceWire missions and applications, short paper
CN112257381B (zh) 一种AXI Crossbar设计电路验证方法和系统
CN115913213A (zh) 芯片引脚功能重构方法及芯片
US20130318223A1 (en) Communication system and communicaton method
CN117407070A (zh) 拼接控制设备的初始化方法以及拼接控制设备
JP2000076199A (ja) デバッグ端子を有するマルチプロセッサ装置

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
CB02 Change of applicant information

Address after: Paderborn, Germany

Applicant after: Desbeth Co.,Ltd.

Address before: Paderborn, Germany

Applicant before: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GmbH

CB02 Change of applicant information