用于部分地释放调试接口的设备的制作方法

文档序号:14059118阅读:181来源:国知局

本发明涉及一种用于部分地释放可编程的硬件构件的调试接口的设备。



背景技术:

可编程的硬件构件如处理器、FPGA和CPLD除用于对该硬件构件进行编程的专用的配置接口外经常具有调试接口,所述接口特别是设置用于调试在该硬件构件上编程的逻辑,但是除配置接口外,所述逻辑同样可用于对硬件构件进行编程。

在一些应用情况下,硬件构件借助调试接口进行编程的可能性是有问题的,例如,如果第二可编程的硬件构件与第一可编程的硬件构件的配置接口如此连接,使得第一可编程的硬件构件可由用户借助第二可编程的硬件构件来编程,其中,该第二可编程的硬件构件对于该用户为编程第一可编程的硬件构件仅存在部分的自由性,例如这样,使得第二可编程的硬件构件附加于由用户编程的逻辑而在第一可编程的硬件构件上对强制的接口逻辑进行编程,该逻辑机制提供用于与第一可编程的硬件构件的硬件环境进行数据交换,并且阻止用户通过错误的编程而损坏第一可编程的硬件构件或者其硬件环境。在这种情况下,其能实现对用户完全释放第一可编程的硬件构件的调试接口,在第一可编程的硬件构件上在没有设置安全逻辑的情况下对逻辑进行编程。

专利文献US 7971051 B2描述一种设备,所述设备用于借助监视通过FPGA 输出的信号在对该FPGA错误地或者不允许的编程的情况下自动地重编程该 FPGA。



技术实现要素:

从该背景出发,本发明的任务在于,给出一种用于部分地释放可编程的硬件构件的调试接口的技术设备,所述设备不为对该硬件构件进行编程而释放调试接口,而为其他的应用、特别为调试在该硬件构件上编程的逻辑而释放调试接口。

该任务通过按照本发明的设备解决。

因此本发明的技术方案是一种用于部分释放第一可编程的硬件构件的调试接口的设备,所述第一可编程的硬件构件特别是PLD(可编程逻辑装置)、CPU 或者PLD和CPU的组合,所述设备具有所述第一可编程的硬件构件、配置装置和配置存储器,其中,所述第一可编程的硬件构件具有配置接口、数据接口和调试接口,所述配置接口构造用于对第一可编程的硬件构件进行编程,所述调试接口构造用于对第一可编程的硬件构件进行调试和编程。在此,在配置存储器上存储第一逻辑,并且配置装置构造用于按照第一逻辑编程对第一可编程的硬件构件进行编程,亦即对第一可编程的硬件构件进行编程,使得所述第一可编程的硬件构件通过其编程构造用于执行第一逻辑或者按照第一逻辑的规定逻辑地和算术地处理数据。根据本发明,配置装置另外构造用于,记录借助调试接口按照第二逻辑进行的对第一可编程的硬件构件的编程过程,并且在借助调试接口进行的编程过程结束后,按照第一逻辑重编程第一可编程的硬件构件,亦即通过按照第一逻辑来编程第一可编程的硬件构件而使借助调试接口进行的编程过程倒退。

PLD在本发明的范围内理解为一种可编程的逻辑电路、特别是FPGA(现场可编程门阵列)或者CPLD(复杂可编程逻辑装置)。

逻辑在本发明的范围内理解为一种抽象的准则,其用于逻辑地和算术地处理数据。在第一可编程的硬件构件上存在一种逻辑,在该逻辑在第一可编程的硬件构件上被编程好之后,要么以处理器指令序列的形式或者以配置可编程的逻辑电路的形式、例如FPGA存在。在配置存储器内存储有形式为信息的第一逻辑,所述第一逻辑以单义的方式定义一个用于借助配置接口按照第一逻辑对第一可编程的硬件构件进行编程的位流。

借助调试接口进行的编程过程的结束在本发明的范围内不仅理解为该编程过程在对第二可编程的硬件构件进行完全的编程后的正常结束而且可以理解为一种阻止编程过程的按照规定的结束的中断。

一些类型的可编程的硬件构件不具有分开的配置接口,因为在制造商那里仅通过调试接口规定逻辑的配置。在这种情况下可以借助一个在该硬件构件外部实现的电路提供一个单独的配置接口和一个单独的调试接口。例如该调试接口可以与一个开关连接,所述开关设置用于使该调试接口选择性地与第一外部接口连接或者与第二外部接口连接,其中,第一外部接口设置用于对可编程的硬件构件进行编程,而第二外部接口给用户提供用于调试在该可编程的硬件构件上编程的逻辑,并且其中,所述开关设置用于在所述硬件构件的编程过程期间连接调试接口与第一外部接口,并且当不发生所述硬件构件的编程过程时连接调试接口与第二外部接口。对于要求保护的本发明不重要的是,配置接口和调试接口是通过所述可编程的硬件构件原本作为相应单独的接口提供还是其借助在硬件构件的外部设置的电路实现。

本发明的设备的一个优点是,用户能够除为了编程之外任意使用第一可编程的硬件构件的调试接口、特别是用于调试在第一可编程的硬件构件上编程的逻辑,其中,排除了由于借助调试接口进行的不允许的编程而导致的第一可编程的硬件构件或者其硬件环境的损坏。

优选地,第一可编程的硬件构件的重编程自动地进行,并且所述设备设置用于,第一可编程的硬件构件在从记录借助调试接口进行的编程过程直到按照第一逻辑的重编程结束的整个时间段之内对于用户被封锁。因此在所述时间段之内禁止借助数据接口的数据交换。

在一个优选的构造形式中,第一可编程的硬件构件具有配置监视接口,所述配置监视接口构造用于用信号表示第一可编程的硬件构件的编程过程,其中,配置装置设置用于,监视配置监视接口并且根据通过配置监视接口输出的信号记录借助调试接口进行的第一可编程的硬件构件的编程过程。

根据本发明,配置监视接口是第一可编程的硬件构件的如下接口,借助所述接口对第一可编程的硬件构件用信号通知正在进行的编程或者编程的结束,也就是说借助所述接口能够读出,当前是否发生第一可编程的硬件构件的编程或者紧接着已经发生。特别是多个FPGA都具有专用的配置监视接口。例如 Xilinx公司的FPGA提供配置毕信号,该配置毕信号在FPGA的编程进行的时期切换为逻辑的0而在该编程结束后切换为逻辑的1。但是也可能的是,通过 FPGA的编程,把FPGA的一个或者多个插脚、例如数据接口构造为配置监视接口。如果例如这样设置FPGA,使得其在编程过程期间将其据接口的所有插脚都切换为逻辑的1,于是该FPGA能够被这样编程,使得在FPGA正在运行中,也就是说在处理在FPGA上编程的逻辑期间,在数据接口的确定的插脚上持续输出逻辑的0。所涉及的插脚将提供与专用的配置监视接口同样的功能性。另一种可能性是,FPGA在正在运行期间在数据接口的一个或者多个插脚上能够持续输出预定的位序列并且根据该位序列的中断来记录编程过程。

根据本发明,第一可编程的硬件构件的每一个输出通过配置单元为记录第一可编程的硬件构件的编程过程所使用的信号的接口都是配置监视接口。对于本发明的主题无关紧要的是,配置监视接口是原本作为专用的配置监视接口通过第一可编程的硬件构件提供,还是其事后通过相应的措施、特别根据第一可编程的硬件构件的编程来实现。

在一个特别优选的构造形式中,配置装置构造用于,在记录借助调试接口进行的编程过程后禁止、亦即结束编程过程,特别是通过打开通过该配置装置操控的开关来中断在调试接口中正在进行的、FPGA的按照第二逻辑定义的编程的位流。该构造形式是具有优点的,因为它保证,硬件构件按照第二逻辑的编程不结束,也就是说第二逻辑在任何时间点都不完全在该硬件构件上被编程,并且因此排除硬件构件以不允许的编程开始工作并且导致损坏。

在一种可能的构造形式中,配置装置构造用于,在借助调试接口进行的按照第二逻辑的编程过程结束后选择性地实施或者不实施第一可编程的硬件构件的重编程。也就是说在该构造形式中,配置装置基本上设置用于,实施第一可编程的硬件构件的按照本发明的重编程,但是这不是强制实施的,而仅在给定的情况下实施。优选地,在该构造形式中,在配置装置的存储器中存储如下的许可信息,所述许可信息由配置装置在记录借助调试接口进行的编程过程的情况下读出,并且规定,配置装置在该编程过程结束后是否重编程第一可编程的硬件构件。该许可信息例如可以以许可的形式存在,在其存在时允许对第一可编程的硬件构件进行编程,也就是说借助调试接口实施的编程过程不结束并且不被倒退( machen)。

配置装置优选同样构造为可编程的硬件构件,特别是PLD、CPU或者CPU 和PLD的组合。调试接口优选构造为JTAG接口、优选根据IEEE标准1149.1 的JTAG接口。

另外优选地,所述设备具有第二可编程的硬件构件,其中,在第二可编程的硬件构件与第一可编程的硬件构件的数据接口之间设置数据连接,其中,特别在第二可编程的硬件构件上同样可对逻辑进行编程,并且第一和第二可编程的硬件构件设置用于,并行处理在它们之上编程的逻辑并且在借助数据连接处理数据期间在第一和第二可编程的硬件构件上编程的逻辑之间交换数据。换句话说,第一可编程的硬件构件和第二可编程的硬件构件可设置用于并行处理程序并且在处理程序期间借助数据连接交换程序数据。

特别优选地,第一可编程的硬件构件构造为FPGA,第二可编程的硬件构件为FPGA或者CPU。

在另一个优选的构造形式中,第二可编程的硬件构件构造用于借助配置装置对第一可编程的硬件构件进行编程。在一个可能的构造形式中,第二可编程的硬件构件设置用于从配置存储器中读出第一逻辑并且向配置装置传送,并且配置装置设置用于从第二可编程的硬件构件接受第一逻辑并且按照第一逻辑编程第一可编程的硬件构件。在另一种可能的构造形式中,第二可编程的硬件构件设置用于向配置装置传送配置信号,并且配置装置设置用于记录配置信号并且由于配置信号的记录而从配置存储器中读出第一逻辑并且按照第一逻辑编程第一可编程的硬件构件。

优选地,第一逻辑至少部分可由用户设计并且在配置存储器上存储。特别是在本发明的一个构造形式中,第一逻辑是不可由用户改动的重写逻辑 (überschreibungslogik),或者第一逻辑包括两个子逻辑,其中,第一子逻辑是可由用户自由地编程的功能逻辑,而第二子逻辑是强制的、不能由用户自由地编程的接口逻辑。接口逻辑提供用于在功能逻辑和第一可编程的硬件构件的数据接口的插脚之间进行数据交换的机制,并且此外提供安全逻辑的功能性,也就是说具有安全机制,用以防止硬件由于对功能逻辑的错误的编程而引起损坏。功能逻辑和数据接口之间的数据交换仅在接口逻辑的中继的情况下才是可能的。

重写逻辑在本发明的范围内是预定的、不能由用户改动的逻辑,所述重写逻辑专门设置用于在记录借助调试接口进行的对第一可编程的硬件构件的编程过程后重编程第一可编程的硬件构件。在本发明的一个构造形式中,第一逻辑以重写逻辑的形式存在,直到用户在配置存储器中存储由用户设计的第一逻辑。

附图说明

下面参照附图更详细地阐述本发明。在此,相同类型的部分用相同的附图标记标明。所示的实施方式是极为示意的,也就是说距离和横向的及竖直的延伸尺寸未按比例绘制,并且如果不另外说明,也不具有互相间可导出的几何关系。

图1示出本发明的设备在一种优选的实施方式中的示意图。

具体实施方式

图1的附图示出本发明的一个优选的设备,所述设备具有:一个构成为 FPGA的第一可编程的硬件构件1,该第一可编程的硬件构件在下面称FPGA;和一个构成为处理器的第二可编程的硬件构件2,其在下面称处理器。FPGA 具有一个数据接口7,以用于在一个在FPGA上编程的逻辑13和在该FPGA 外部设置的硬件之间交换数据,数据接口7具有多个插脚,其中,每一个插脚都构成为数据输入段和/或数据输出段。一条第一数据连接18设置在数据接口7 和处理器之间。一个构成为闪存的配置存储器14设置用于由用户写入用于 FPGA的第一逻辑,并且一个构成为CPLD(复杂可编程逻辑装置)的配置单元6(下面称CPLD)设置用于,借助第二数据连接26按照第一逻辑对FPGA 进行编程。第二数据连接26设置在CPLD与一个构造为专用的配置接口的 FPGA配置接口5之间。处理器用于借助第三数据连接24从配置存储器14中读出第一逻辑并且借助第四连接16将其向CPLD传输。在CPLD上存储有一个持久的、对于用户不可访问的配置逻辑28,并且CPLD根据该配置逻辑28 设置用于从处理器接受(entgegennehmen)第二逻辑13并且按照第一逻辑编程 FPGA。

在所示设备的一种示例性的应用中,设置处理器和FPGA,用以共同以硬实时执行用于机电一体化过程的控制程序,其中,所述设备由用户利用所述控制程序编程,并且其中,该控制程序的所选择的例程、特别是特别时间关键的例程可由用户加载到FPGA内。所示设备借助一个专门的软件工具来编程,该软件工具设置用于对处理器进行编程和在闪存14中存储第一逻辑。在此,该软件工具确保第一逻辑由两个子逻辑组成:一个强制的接口逻辑4和一个功能逻辑11。功能逻辑11可由用户自由地编程并且包括控制程序的要在FPGA中交换(auslagern)的例程。接口逻辑4不能由用户自由地编程,而提供用于在功能逻辑11和数据接口7之间数据交换的机构。此外,接口逻辑4包括安全机构,用于防止FPGA或者其他设置在FPGA外部的硬件部件由于对功能逻辑11错误的编程而损坏。该软件工具保证,功能逻辑11和数据接口7之间的数据交换仅根据由接口逻辑4提供的机制进行。CPLD在按照第一逻辑编程FPGA的情况下为在功能逻辑11和接口逻辑4之间的数据交换设置第五数据连接12。

FPGA具有一个构造为JTAG接口的调试接口8。调试接口8借助一个 JTAG连接器10可由用户访问并且借助第六数据连接22与JTAG连接器连接。该第六连接可通过打开开关32中断,其中开关32在正常状态下闭合。所述设备设置用于,防止借助调试接口8根据第二逻辑对FPGA进行编程。其理由是,如果调试接口8不受限制地释放,则借助其将能在不使用软件工具的情况下对 FPGA进行编程。因此第二逻辑可由用户完全自由地编程并且一般不包含安全机构,如其在接口逻辑4中所存储的那样。

FPGA具有一个配置监视接口9并且借助该配置监视接口9用信号表示: FPGA当前是在被编程、不被编程还是未经编程。例如配置监视接口9可以构造为配置毕(ConfDone)接口,并且在正在进行FPGA的编程过程期间向配置监视接口9提供一个逻辑的0,并且只要从所述设备上一次的运转起FPGA的至少一次编程结束,就提供一个逻辑的1,而与当前的编程过程是借助配置接口5还是借助调试接口8实施无关。

CPLD设置用于借助第七数据连接20读取配置监视接口9。在CPLD内存储一个如下的信息30,根据该信息确定:对FPGA的编程是允许的还是不允许的,并且CPLD设置用于根据配置逻辑28读出二进制的信息30并且在编程过程结束后当在二进制的信息30中存储值0时重编程FPGA;而当在二进制的信息30中存储值1时不重编程FPGA,其中,二进制的信息30初始、亦即在所述设备运转后的程序运行后置为值0。

根据本发明规定,CPLD按照第一逻辑编程FPGA,并且所述设备设置用于,按照第一逻辑如下实施FPGA的编程:处理器把二进制的信息30设置为值1并且借助信号通知CPLD编程FPGA的愿望。处理器读出在配置存储器 14中存储的第一逻辑并且借助第四数据连接16把第一逻辑向CPLD传送。 CPLD借助第二数据连接26按照第一逻辑编程FPGA,也就是说它在FPGA 上建立一个与第一逻辑相应的逻辑电路。FPGA借助配置监视接口9用信号表示编程过程。CPLD记录由FPGA进行的编程过程的信号通知。但是因为二进制的信息30被置于值1,所以CPLD不实施由于编程过程的信号通知的FPGA 的重编程。在所述编程结束后CPLD通知处理器2所述编程过程结束,处理器再次把二进制的信息30设置为值0。

在FPGA借助调试接口8按照第二逻辑进行试图编程的情况下,所述设备设置用于实施下面的步骤:FPGA借助配置监视接口9用信号表示借助调试接口8进行的编程过程。CPLD借助第七数据连接20记录编程过程并且检验二进制的信息30。如果二进制的信息30中存储值1,则CPLD不进行另外的步骤,借助调试接口8按照第二逻辑进行的编程过程按照规定结束。如果在二进制的信息30中存储值0,则CPLD借助第八数据连接31打开开关32并且由此结束该编程过程。以这种方式防止:编程过程按照第二逻辑结束并且FPGA 开始处理该第二逻辑。另外CPLD借助一个借助第六数据连接16传输的信号通知处理器重编程FPGA的愿望。处理器记录该重编程FPGA的愿望,其方式为按照存储在配置存储器14内的第一逻辑利用所述步骤实施FPGA的编程。在该重编程结束后CPLD重新闭合开关32,并且处理器借助屏幕输出告知用户:借助调试接口8对FPGA试图的编程被中断并且已经倒退。

在本发明的一种构造形式中,第一逻辑是一个至少部分由用户编程的逻辑。在另一种构造形式中,第一逻辑是预定的、不能由用户影响的逻辑。在再一种另外的构造形式中,第一逻辑原本是预定的、不能由用户影响的逻辑,但是一旦该用户在配置存储器14中存储自己的、至少部分由该用户自身编程的逻辑,就通过至少部分地由用户编程的第一逻辑来代替。

在本发明的另一个构造形式中,FPGA的重编程在记录借助调试接口8实施的编程过程以及通过开关32的打开而该编程过程被中断后可被解除激活。为此目的,在一个构造形式中通过由处理器解除对二进制的信息30的设置的激活,二进制的信息30可被持续地置于值1。在另一个构造形式中,CPLD在记录借助调试接口实施的编程过程后,首先检验在CPLD上存储的二进制的许可信息,当该许可信息被设置为值1时,不执行其它步骤,并且仅在许可信息被设置为值0的情况下检验二进制的信息30。

不言而喻地,配置单元6不必构造为专用的且单独的配置单元,而例如也可以集成到第二可编程的硬件构件内。还不言而喻地,按照第二逻辑的编程过程的中断不必通过开关32打开而中断位流来发生,而是例如也可以通过复位第一可编程的硬件构件而发生。还不言而喻地,配置单元6也可以直接地、亦即不通过第二可编程的硬件构件2中继地(Vermittlung)从配置存储器14中读出第一逻辑。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1