用于仿真可编程单元的过程和设备的制作方法

文档序号:6567847阅读:132来源:国知局

专利名称::用于仿真可编程单元的过程和设备的制作方法
技术领域
:本发明涉及用于仿真可编程单元的过程和设备。本发明还涉及用于仿真的装置,包括具有至少一个CPU的目标可编程单元,并且包括仿真设备,其作为外部单元,经由作为通信链路的仿真端口与目标可编程单元连接。最后,本发明涉及可编程单元。
背景技术
:可编程单元下文也称作"PU"、"目标可编程单元"或"目标PU"。可编程单元可以是处理器、微控制器、信号处理器或其他类似设备。可编程单元包括至少一个中央处理单元,下文称作"CPU"或"目标CPU",其可包括指令解码器、指令提取器、寄存器存储器、算术逻辑单元(ALU)和/或流水线(pipeline)。可编程单元PU通常可包括直接分配给CPU的存储器,其称为寄存器存储器。该寄存器存储器能够划分为下文称作"寄存器组(bank)"的多个块。各种程序部分(如主程序、子程序或事件例程)现在能够分别专有地分配给寄存器组。专有地分配给寄存器组的程序的所有部分以下称作"环境"。部分或全部的寄存器存储器拷贝下文将称作"寄存器存储器拷贝"。可编程单元通常还包括各种线,如数据线、地址线或控制线,其通常运行为总线并且在可编程单元内传输地址、数据、控制信号和其他相关项,以及如果需要将其传输到各接口设备。除了一个或更多CPU外,例如,PU可包括一个或更多对存储器进行写访问的单元,如DMA控制器(直接存储器访问)。这些单元下文将称作"DMA单元"。除了一个或更多CPU外,例如,PU还可包括一个或更多控制存储器管理的单元,如MMU(存储器管理单元)。这些单元下文将称作"MMU单元"。可编程单元还可包括一个或更多外围单元,如定时器、模/数转换器以及UART(通用异步接收器发送器)。这些外围单元下文称作"芯片上外围设备"。在该可编程单元中,程序运行以处理数据或者将指令传输到外部设备。已经开发了仿真器用于在可编程单元的正常操作期间、观察并且如果必要则改变内部状态和过程。是质量保证和错误分析的非常重要的部分。在可编程单元内处理或使用的地址、数据、控制信号、状态、事件和类似项目下文称作"跟踪数据"。在这样的跟踪数据组中,所有由可编程单元执行的处理器指令以及在部分程度上的读写操作被捕获,并且如果需要则用时间标识标签(所谓的时间戳)标记。跟踪数据分析代码覆盖和各功能及过程的时间行为(性能分析)。所谓的仿真器或仿真设备用于获取各个跟踪数据。为了使得随后对可编程单元的行为分析可能,通常需要下面的信息-读的数据(加载)-写的数据(存储)-作出的分支(分支)-基于中断的环境改变主要有两种从实践已知的、用于获取这样的跟踪数据的方法。一种方法称作所谓的具有外合(bond-out)芯片的内电路(in-circuit)仿真器(ICE)。所谓的外合芯片集成在该ICE内,并且该外合芯片基本工作类似于可编程单元,但是提供对内部总线和几个额外寄存器的附加访问。ICE从这些内部总线接收期望的跟踪数据。例如,从US5,515,530提供了具有两种操作模式的内电路仿真器,作为集成电路的部分。第一模式用于实时事件评估,并且第二模式获取寄存器数据以与外部仿真设备通信。在最终假定可编程单元工作的目标系统中,该目标PU通常从其支持固定设备、以及直接或经由带状电缆连接的相应仿真设备移除。仿真设备通常是具有与目标CPU同样类型的处理器的电路板,通常为外合版本。此外,缓冲存储器和接口逻辑呈现在仿真器侧。使用该方法,处理器的所有活动能够实时记录。然而,期望的空间要求相对高,并且在更高频率各个仿真设备不能实现或至少只有以昂贵代价实现。电缆连接(cabling)也相对复杂,使得导致高的总成本。因为实际的可编程单元由仿真设备替换,所以它不能用于目标系统中,但是作为替代,以后必须由各个可编程单元再次替换。另一种技术称作"芯片上跟踪端口",并且是获取跟踪数据的另一种方法。这需要用于在可编程单元上直接获取跟踪数据的最小功能的实现。这通过存储器和其他部件(如逻辑单元和类似的项目)来补充,以使得能够实时记录内部总线信号(跟踪宏单元)。以这种方式获取的数据能够例如使用JTAG接口(JTAG-联合测试访问组)、或OCDS模块(芯片上调试支持模块)、及特别的跟踪端口而变得可用。该跟踪端口在可编程单元中实现,并且与数据总线和控制总线内部连接。与外合芯片相比跟踪端口需要远少的管脚。然而,实践中,实时跟踪能力受跟踪端口的带宽限制,并且全部记录可编程单元的所有活动仅在非常高的代价下是可能的。因此,通常仅仅有限的跟踪数据变得可用。EP1139220A2描述了集成电路和外部仿真控制器。表示目标CPU的内部时钟周期的各数字位,以不同于内部时钟的时钟率的输出时钟率转发到仿真控制器。提供了芯片上调试环境。该系统的缺点是集成电路和外部仿真控制器之间需要高传输带宽。
发明内容因此,本发明的目的是以这样的方式改进用于可编程单元的仿真的过程和设备,使得能够用可编程单元和仿真设备之间减小的传输带宽便宜地获取跟踪数据,同时维持已知跟踪方法各自的优点。根据本发明的第一方面,提供了一种用于通过外部仿真设备仿真具有至少一个CPU的目标可编程单元的方法,该外部仿真设备通过通信链路耦合到目标可编程单元。该方法包括下述步骤-通过通信链路将预定的初始化数据传输到仿真设备用于初始化仿真,使用该初始化数据,目标可编程单元已经初始化自身和/或已经被初始化;-以与CPU时钟信号的定义关系,通过通信链路向仿真设备传输目标可编程单元(1)的CPU时钟信号,以及-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器有影响的外部事件,-可选地,触发旁路CPU的数据传输的事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及,-可选地,一个或更多数据类型信号;-使用传输的仿真数据,在外部仿真设备中仿真目标可编程单元;-确定来自外部仿真设备中的仿真的各个跟踪数据;以及-存储和/或输出该跟踪数据。本发明第一方面的方法蕴含的基本思想在于,期望的跟踪数据不直接从目标CPU获取,而通过外部和分开的仿真设备(ED)复制该目标CPU来确明的方法与外部仿真器同步的装置(facility),那么本发明的方法在调试应用中展现特别的优势。利用本发明的方法实现的重要影响在于,用于在仿真期间将仿真数据传输到仿真设备的带宽,比从CPU输出全部跟踪数据组需要的带宽窄。这也导致在实现从目标可编程单元输出数据的付出的显著减少,导致其减少的成本。根据本发明,仅仅少量数据需要从目标CPU传达到仿真器,即,重建所有内部数据和程序流需要的数据。所有其他系统响应由程序代码定义。传统的方法将所有读数据和写数据以及所有跳转(jump)传输到仿真器。相反,本发明方法只需要传输有限的数据组-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器有影响的外部事件,如已经发生的中断或停止CPU的事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及,-可选地,一个或更多数据类型信号。此外,以实际CPU时钟信号形式或更一般地以信号形式的CPU时钟信号,传输到仿真设备,该CPU时钟信号允许导出目标可编程单元的原始CPU时钟信号。总之,只传输那些不能根据目标可编程单元的给定模型以及根据程序代码计算的数据。在一个实施例中,传输由CPU从目标可编程单元的数据总线读取的所有数据以及中断足够了,因为只有该数据/这些事件能够不可预知地改变程序流。在另一实施例中,额外的事件从目标可编程单元传输到仿真设备,例如那些触发DMA传输的事件。由在程序开始时的已知数据(如程序代码)、以及由在程序执行期间变成已知的其他数据和事件,确定目标CPU中该程序的执行。对程序计数器具有影响的事件(如已经发生的中断)、或停止CPU的事件及触发旁路CPU的数据传输(DMA传输)的事件,下文统称为事件数据。除了那些没有标记为可选的数据外,标记为可选传输的数据在特定实施例中传输。这样的实施例将在下面进一步描述。根据本发明在上面的传输数据的列表中提到的所有必需和可选的数据,在本说明书中也统称为仿真数据。仿真因此再现CPU的行为。为此,用例如目标CPU的已知状态初始化仿真,由此该状态还能够是重置。这意味着ED从CPU接收数据,借此仿真能够被置于全部或部分对应CPU状态的状态中。该数据下文称为初始化数据。从初始状态和先前转达的程序代码开始,仿真数据和CPU时钟在程序运行时(runtime)期间传输到仿真设备。外部仿真因此能够仿真CPU的程序执行。在该仿真期间,仿真设备能够使得全部或部分的跟踪数据组可访问。下表显现目标CPU和仿真设备之间传输的减少的数据组,与现有技术解决方案相比,该数据组足够用于本发明方法的仿真<formula>complextableseeoriginaldocumentpage16</formula>表1:来自目标PU的必要输出的比较上表中关于各个指令类型的频率的信息基于由书(DavidPatterson,JohnHennessy:ComputerOrganizationandDesign,第三版,Elsevier2005)中提供的信息。用于与仿真设备通信的可编程单元的接口下文称作仿真端口。与其具有相同意义的另一术语为"跟踪端口"。下文将描述本发明方法的优选实施例。除非另外明确地声明,各实施例能够相互组合。在一个优选实施例中,CPU时钟信号通过仿真端口从目标可编程单元传输到仿真设备。这样,使得仿真设备能够例如以时间戳的形式,将时间信息分配给所有进入的仿真数据。考虑到由不同CPU时钟频率间的受控切换的时钟振荡器的变化而导致的CPU时钟的可能改变,CPU时钟信号的传输通过仿真还允许数据的时钟同步传输用于同步。在优选实施例中,目标可编程单元和外部仿真设备之间的数据传输减少到最小值。这里,传输仿真数据的步骤包括独占地传输-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及-可选地,一个或更多数据类型信号。这意味着,在一个实施例中,仿真数据的传输减少到由CPU从目标可编程单元的数据总线读取的数据,以及那些对程序计数器具有影响的外部事件。在另一实施例中,额外传输周期性创建的寄存器存储器的全部或部分拷贝。在另一实施例中,除了寄存器存储器的各个拷贝外、或仅除了开始提及的读取的数据和外部事件外,还传输一种或更多数据类型信号。在特定实施例中标记为可选的仿真数据因此传输,其将在下面进一步解释。在另一实施例中,在从目标可编程单元接收大量数据时执行仿真。所述大量数据用于用目标CPU的已知状态初始化仿真。预先要求的是仿真使用同样的程序代码,其优选地形成从目标可编程单元接收的数据量的一部分。然而,定义目标CPU的已知状态的另外数据和程序代码能够在不同时间提供。在下面的仿真过程中,当仿真接收仿真数据和CPU时钟时,能够确定用作仿真的输入数据与用作目标CPU的相同,并且仿真的状态精确对应目标CPU的状态。仿真因此传递跟踪信息,其与那些可以直接从目标CPU记录的跟踪信息相同。为了减少数据传输期间仿真端口上要求的连接数,所述所有信号还能通过时间/空间组合、以及可能通过其他过程进一步压缩。该例子和下面更特定的例子还能在每种情况下由仿真设备发起。在一个例子中,CPU时钟信号传输到可编程单元的仿真控制器和/或目标可编程单元的緩沖存储器。这允许以与CPU时钟信号的定义关系传输仿真数据到仿真。在此使用与术语"跟踪控制器"相同的术语"仿真控制器"。特別地,在替代实施例中,仿真数据用CPU时钟信号的下降沿或上升沿、或用CPU时钟信号的下降和上升沿传输。在后者实施例中,仿真数据用双倍数据率传输,其进一步增加了速度。在另一例子中,驱动仿真数据的传输的时钟信号在仿真数据的传输期间增加超过CPU时钟频率。该实施例形成加速仿真数据的传输的另一种方式。驱动仿真数据的传输的时钟信号的频率能够是CPU时钟信号频率的倍数。优选地,仿真数据的传输与CPU时钟信号同步执行。CPU时钟信号还能经由分开的数据线传输,其将在下面采用LVDS串行化/解串行化(Serdes)接口的实施例的环境中详细解释。在另一实施例中,要传输的仿真数据在目标CPU的若干周期上分发。在一个实施例中,目标可编程单元切换到用于使用仿真端口作为标准I/O端口(特别地,作为输出端口)的操作模式,该仿真端口被配置为目标可编程单元的通信链路的一部分。在该实施例中,根据本发明需要更小带宽用于仿真数据和CPU时钟的传输的优点,在仿真端口的剩余传输能力的额外使用中采用,用于目标可编程单元的标准输出任务。为了能够在另一环境中经由可编程单元使用仿真端口,可编程单元能够将仿真端口切换到用于还用作通用输出端口的操作模式。这能够通过设置特定模式管脚、或通过设置可编程单元内的控制寄存器中的位来完成。优选地,目标CPU和仿真设备的仿真端口以双向操作模式操作,并因此不仅允许仿真数据和CPU时钟到仿真设备的传输,还通过仿真设备控制目标CPU。在一些现有技术设备中该功能由JTAG接口提供。然而,本实施例通过仿真端口和JTAG接口允许同样管脚的共享,其减少了芯片上的面积消耗。本实施例还允许正在传输仿真数据和CPU时钟时,CPU等待周期的插入不仅由目标可编程单元还由仿真设备控制。同样,用仿真设备检查可编程单元也是可能的。在此情况下,调试器能够经由仿真设备访问CPU的地址区域,并且能够根据情况执行读写操作。这些操作包括对RAM和I/O范围的读写、设置中断点或其他类似操作。设置中断点是在其期间CPU被指令一满足预先定义的条件(例如,达到执行的程序的某个部分)就暂停程序的方法。仿真数据和CPU时钟能够仅经由一个共同信号路径传输到仿真设备。在可编程单元和仿真设备之间,各自的通信能够经由串行点对点连接(例如,串行化/解串行化的、低电压差分点对点连接(LVDS串行化/解串行化))进行。注意到,LVDS串行化/解串行化连接需要提供给接口的恒定时钟频率。考虑到上述CPU时钟可能突然改变,本发明的一个实施例包括为LVDS串行化/解串行化接口提供比CPU时钟频率更高频率的外部时钟信号。优选地,在该实施例中,CPU时钟经由通常的数据线传输并且能够在接收端使用。在另一个实施例中,本方法包括通过仿真设备在输出和/或保存前,过滤确定的跟踪数据的步骤。能够根据特定仿真过程的需要,按照预先定义的标准^y亍过滤。在下面将呈现各实施例的四个主组。第一个主组涉及不仿真目标可编程单元的RAM的离线仿真。第二个主组涉及包括仿真目标可编程单元的RAM的离线仿真。各实施例的第三个主组涉及不仿真目标可编程单元的RAM的实时仿真。并且,最后,第四个主组涉及包括仿真目标可编程单元的RAM的实时仿真。在各实施例的第一个主组中,目标可编程单元的仿真由仿真设备使用先前获得并存储的仿真数据离线执行。在该实施例中,优选地,从目标可编程单元接收的CPU时钟信号在仿真设备中用计数设备计数,用于将某个时间点(时间戳)分配给发送的仿真数据。在该实施例中,寄存器存储器的拷贝("快照")被发送作为仿真数据的一部分,并且与其他提到的仿真数据和CPU时钟一起,允许对仿真设备中的目标CPU的各指令的全部限制。目标可编程单元的离线仿真能够利用或不用仿真目标可编程单元的随机存取存储器(RAM)执行。当执行离线仿真而不仿真目标可编程单元的RAM时,目标可编程单元的程序执行,优选地由仿真设备对在最后检测的、相同环境的寄存器组的完整拷贝时开始的每个各自的环境水平仿真。因此仿真设备无需检测目标CPU的全部程序流。不同的环境水平能够为每个各自的环境水平执行。因此仿真能够在创建寄存器存储器拷贝时,用寄存器存储器拷贝初始化并且为对其存在寄存器存储器拷贝的环境开始。为了在晚于程序开始的某个时间点开始仿真,可编程单元必须在该稍后的时间点向仿真设备指示CPU的状态。为此,可编程单元能够存储寄存器存储器或各个寄存器组的当前内容,其在下文称为寄存器存储器拷贝。该寄存器存储器拷贝然后能够作为仿真数据的一部分传输到仿真设备。如果寄存器存储器拷贝全部输出,那么寄存器存储器或各个寄存器组(优选地当前寄存器组)的新拷贝被读入,然后再次输出等等。根据本发明,使用在程序开始后捕获的寄存器存储器拷贝,变得可以允许仿真跳过CPU程序执行的各部分,由此允许对每个环境等级的仿真,在分配给相关环境的寄存器组的最后全部捕获的拷贝时开始。因为时序要求对离线仿真放宽,所以在一个实施例中,目标可编程单元的CPU通过在计算机上执行的计算机程序仿真。这放宽了硬件要求并减少了仿真成本。各实施例的第二主组包括在目标可编程单元的离线仿真期间,仿真目标可编程单元的RAM的一部分。该实施例的优点是进一步减少的仿真数据的传输,其现在受限于从以非独占方式由目标CPU使用的存储器区域读取的数据。这样的存储器区域的例子是I/O区域或双端口RAM。该实施例优选地包括下述步骤-在目标可编程单元中确定当前由CPU读取的或DMA操作期间的数据,是否源自目标可编程单元的地址,该地址能够由不同于目标可编程单元的CPU的各功能单元写入,之后-仅将那些由CPU读取的或DMA操作期间的数据传输到仿真设备,该数据源自目标可编程单元的地址范围,该地址能够由不同于目标可编程单元的CPU的各功能单元写入。在该实施例的替代形式中,能够由不同于目标可编程单元的CPU的功能单元写入的地址范围,以固定的方式永久预编程、或自由配置、或部分永久编程而部分自由配置。第一种情况对I/O区域有用,而第二种情况适于外部双端口RAM。为了包括RAM仿真,需要将所有功能单元包括在CPU仿真中,该功能单元具有对RAM的写访问。特別地,CPU和DMA控制器具有对RAM的写访问。下面,解释各实施例的第三和第四主组的共同实施例。设备的可编程逻辑模块(例如,场可编程门阵列)、或使用外合(bond-out)芯片实现。两者都能配置来仿真目标CPU的功能并在其输出提供跟踪数据。实时仿真的具体优点是,仿真设备不需要包括通常在外合芯片上实现的任何芯片上(on-chip)外围设备。当前,需要大量外合芯片用于可编程单元的给定CPU核心仿真和调试各种芯片上外围设备。当前的微处理器系列需要高达大约20个不同的外合芯片。因为用本实施例,外合芯片不必为每个微控制器族生产不同的外围设备,所以现在在用于支持各个微控制器族的所有成员的可编程逻辑模块中,为各自的实现具有单个外合芯片是足够的。因此,单个仿真设备能够用于仿真目标可编程单元的多个不同的实现变体,即,通过将可编程单元的实时仿真的各个实现加载到可编程逻辑模块中。为了执行实时仿真,目标CPU传递仿真数据和CPU时钟到仿真设备。仿真设备如上所述确定跟踪数据,该跟踪数据然后能够被存储或在存储前过滤,如前所述。在一个实施例中,目标可编程单元或目标可编程单元的CPU,由仿真设备或目标可编程单元在检测到有效中断点时停止。这允许在仿真设备中实现用于支持复杂中断点的机制。相关信息对仿真设备可用,并且获得停止可编程单元和访问可编程单元的地址和数据总线的附加能力。优选地,由仿真设备启动和管理一个或更多中断点。在一个实施例中,每个中断点由仿真设备启动并管理。如果仿真设备检测到有效中断点,则暂停目标CPU。对可编程单元的地址和数据总线的访问能够通过合适的接口(例如通过使用仿真端口)进行。对于非常高的CPU频率,可能需要额外的措施,其将在下面讨论。优选地,中断点信号从目标可编程单元的仿真控制器(跟踪控制器)、或从仿真设备的仿真控制器传输到目标可编程单元的CPU。在提供实时仿真的另一实施例中,仿真设备对其存储器具有读写访问,并且在读访问的情况下,接收从目标可编程单元传输的数据。如果中断在目标可编程单元中产生,则相同的中断在仿真设备中同时或具有CPU时钟偏置地触发。根据另一实施例,仿真设备的数据选择器切换到从仿真设备的存储器设备读取数据、或读取从目标可编程单元接收的数据。如果执行目标可编程单元的实时仿真而不仿真目标可编程单元的RAM(各实施例的第三主组),则传输下面的仿真数据-由CPU从目标可编程单元的数据总线读取的数据,以及-那些对程序计数器具有影响的外部事件。与不仿真RAM的离线仿真(各实施例的第一主组)的情形相反,不需要传输周期性创建的寄存器存储器的全部或部分拷贝。部RAM的情形(各实施例的第四主组),目标可编程单元的至少一个RAM的全部或部分拷贝也在仿真设备中运行。该实施例优选地包括仿真那些写到目标可编程单元的RAM的目标可编程单元的功能单元。对于运行在非常高的CPU时钟频率或具有高CPU读带宽的可编程单元,将仿真数据暂时存储在FIFO存储器中是有利的。在中断点在仿真设备中被触发、与可编程单元的CPU相比具有偏置的情形中,在中断点后,仿真设备使用直到该点存储在FIFO存储器中的仿真数据继续仿真,其中目标可编程单元的CPU由仿真设备停止。即使在中断点的情形中,该实施例也保持仿真设备与在非常高的CPU时钟频率(大约500MHz及以上的频率范围)运行的目标可编程单元同步。根据本发明第二方面,提供了一种用于可编程单元的仿真的设备。该设备包括目标可编程单元,其具有至少一个CPU;以及仿真设备,其作为外部单元,经由作为通信链路的仿真端口与目标可编程单元连接,用于传输仿真数据,并且配置为确定来自目标可编程单元的仿真的各自的跟踪数据。仿真设备具有至少一个仿真控制器、以及用于跟踪数据的存储设备、和/或与外部处理和显示设备相关的输出设备。该目标可编程单元配置为-以与目标可编程单元的CPU时钟信号的定义关系,通过通信链路传输下面的仿真数据到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及-可选地,一种或更多数据类型的信号;以及-从目标可编程单元将CPU时钟信号传输到仿真设备。本发明第二方面的设备的优点,对应于之前对于本发明第一方面的方法解释的那些。因为解释和优点大多数已经在本发明的方法的环境中讨论,所以下面的描述保持简短并且关注不同实施例的特征。如同之前,各实施例的组合是可能的,除非明确地另有所指。在一个实施例中,目标可编程单元配置为独占地传输下面的仿真数据到仿真设备-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及-可选地,一种或更多数据类型的信号。在一个实施例中,目标可编程单元的仿真控制器配置为将数据类型信号传输到仿真端口作为仿真数据的一部分,并且如果存在,则传输到目标可编程单元的緩冲存储器用于暂时存储。在另一个实施例中,目标可编程单元和仿真设备配置为提供目标可编程单元和仿真设备之间的双向通信。优选地,仿真设备具有调试接口,如JTAG接口。调试接口能够是JTAG接口,其在优选实施例中集成到仿真端口中,使得JTAG接口和仿真端口共享相同的接触管脚。该设备优选地通过选择开关电路在仿真端口上提供仿真数据的传输,该选择开关电路例如能够实现为多路复用器。緩冲存储器仍然能够连接到该选择开关电路,并且能够例如实现为FIFO(先入先出)存储器。还存在至少部分地将仿真数据直接传输出仿真设备的可能性。仿真控制器在目标可编程单元侧处理控制选择开关单元、至少准备CPU时钟信号和/或从数据总线读取的数据、对程序计数器具有影响的事件(如已经发生的中断、和/或停止CPU的事件、和/或触发旁路CPU的数据传输(DMA传输)和/或寄存器组拷贝和/或指示数据类型的事件)。在另一个实施例中,仿真设备具有与目标可编程单元的程序存储器对应的程序存储器。这意味着,仿真设备的程序存储器功能地等同于目标可编程单元的程序存储器。在一个实施例中,仿真设备的程序存储器是目标可编程单元的程序存储器的相同复制。在另一个实施例中,目标可编程单元配置为通过仿真端口,将其CPU时钟信号传输到仿真设备(4)。作为实时仿真单元的仿真设备,优选地具有以外合芯片或可编程逻辑模块的形式的逻辑模块。相应的仿真设备实现为外部单元,其经由作为通信链路的仿真端口与可编程单元连接。仿真设备具有至少一个它自己的仿真控制设备。第一实现示例显示使用先前已从可编程单元获取并存储的仿真数据,离线执行CPU的仿真的能力。在该情形中,CPU行为的仿真能够使用软件程序实现大量优点,该软件程序例如在处理和显示设备(如个人计算机)上运行作为仿真设备的一部分。相应的跟踪数据通过该仿真确定,并且例如存储和/或输出到另一外部单元。为了定义用于经由仿真端口传输到仿真设备的仿真数据的某个时间分配,CPU时钟信号能够在适合的计数设备中的ED中计数。这类时间点的分配称作时间戳。将从可编程单元传输的仿真数据存储在仿真设备中的存储器(如RAM,硬盘或类似装置)中是可能的。该数据能够具有或没有时间戳。在另一个实施例中,仿真设备的数字输出是可切换的输出。数字输出的信号能够经由相应的连接反馈回到目标可编程单元。特別地,仿真端口的一个或更多管脚还能够通过经由仿真控制相关控制寄存器、并为仿真设备给出对输出管脚的访问,用作输出管脚。如果需要,这些管脚的输出信号能够经由带缆线等传输回到可编程单元附近。在仿真没有激活的情形中,仿真端口能够用跳线或类似装置直接连接到输出信号的网络。在本发明的另一个实现示例中,除了执行实时CPU仿真外,可以特别对于可编程单元的内部和外部读写存储器(这里也称作RAM)执行实时仿真。目标可编程单元中的地址总线线^^,然后经由地址比4交器优选地与目标可编程单元的仿真控制器连接。该地址比较器向PU仿真控制器设备指示读取的数据是否来自由不同于实时仿真中包括的功能单元的功能单元也以写模式访问的地址区域。在该情形中,地址比较器中要评估的地址范围永久地编程,例如对于在PU中硬布线的(hard-wiried)或能够自由配置的I/O范围,例如对于外部存储器(如双端口的RAM)。仿真数据仅额外地包括来自被CPU(并因此还可能由其他实体)以非独占方式改变的存储区域(如I/O区域,双端口RAM等)的读取数据。此外,在该环境中,如果各个仿真设备包括除了CPU外的可编程单元的其他功能单元,即,能够以写模式访问各个存储器的功能单元,则其是有利的。这些功能单元是其他的CPU、和/或一个或更多DMA单元、和/或一个或更多存储器管理单元(MMU)或类似装置。特别对于实时仿真,具有调试接口的仿真设备也是有利的。此外,存在这样的可能性使在可编程单元中执行的应用程序使用由仿真端口占用的管脚。控制仿真设备的一个或更多数字输出的合适的控制寄存器,能够在仿真设备中在控制寄存器的地址处实现,该控制寄存器控制在调试过程期间由仿真端口占用的一个或更多管脚。如果实时仿真以写模式访问该控制寄存器,则各管脚的行为与其在可编程单元中的对应管脚相同。各管脚还能够被仿真设备中复制的外围单元(如脉冲宽度调制器、显示驱动器等)操作为输入和输出。各外围单元由控制寄存器控制。根据本发明第三方面,提供了一种目标可编程单元,其具有至少一个CPU以及作为通信链路的仿真端口,用于传输仿真数据到外部仿真设备。目标可编程单元配置为-以与目标可编程单元(1)的CPU时钟信号(8)的定义关系,在仿真端口提供下面的仿真数据,用于通过通信链路(5)传输到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝;以及-可选地,一种或更多数据类型的信号;以及-提供来自目标可编程单元的CPU时钟信号作为输出,用于传输到仿真设备(4)。目标可编程单元的各实施例已经在本发明第二方面的设备的各实施例的环境中描述,并且也对应本发明第一方面的方法的各实施例。此外>优选的实施例在权利要求中列举为从属权利要求56到69。根据本发明第四方面,提供了一种仿真设备,其包括-仿真端口(15),用于与外部目标可编程单元(l)通信以接收仿真数据,地相同的程序代码;-用于跟踪数据的存储设备(11)和/或与外部处理和显示设备(28)连接的输出设备,其中仿真端口配置为以与目标可编程单元的CPU时钟信号的定义关系,接收下面的仿真数据-由外部目标可编程单元的CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性地创建的寄存器存储器的全部或部分拷贝,以及-可选地,一种或更多数据类型的信号;并且从目标可编程单元接收CPU时钟信号,并且其中仿真设备还配置为使用传输的仿真数据和存储在程序存储器中的程序代码仿真外部目标可编程单元(1),以从仿真确定各个跟踪数据来存储和/或输出跟踪数据。本发明第四方面的仿真设备的实施例已经在本发明第二方面的设备的实施例的环境中描述,并且也对应本发明第一方面的方法的实施例。此外,优选实施例在权利要求书中列举为从属权利要求71到80。形成,该目标可编程单元至少具有一个CPU,该外部仿真^殳备通过通信《连路耦合到目标可编程单元,该方法包括以下步骤-通过通信链路将预定的初始化^:据传输到仿真设备用于初始化仿真,利用该初始化数据,目标可编程单元已经初始化自身和/或已经被初始化;-通过通信链路向仿真设备传输信号,该信号允许导出目标可编程单元的原始CPU时钟信号,并且以与CPU时钟信号(8)的定义关系传输仿真数据,该仿真数据由不能基于目标可编程单元的给定模型和基于程序代码计算的那些数据形成,-使用传输的仿真数据仿真外部仿真设备中的目标可编程单元;-从仿真中确定各个跟踪数据;以及-存储和/或输出跟踪数据。在下面的部分中,通过附图更详细地解释本发明的有利的实现示例。图l是根据本发明的、用于仿真用于离线仿真的可编程单元的过程和设备的方块图2是没有RAM仿真的离线仿真实现的实施例的方块图3是类似于图2的没有RAM仿真的实时仿真的方块图4是类似于图3的具有RAM仿真的实时仿真的方块图5是类似图4的具有RAM仿真和调试支持的实时仿真的方块图6是类似图5的、具有允许应用程序使用由仿真端口使用的I/O管脚的能力的实时仿真的方块图。具体实施例方式图1是根据本发明的设备12的方块图,具体示出数据29如何在PU1和仿真设备ED4之间交换,以及哪个传输数据30在ED4和仿真软件程序13之间传输,两者都符合本发明。在PU1和ED4之间传输的数据29包括下列全部或有限的数据组从CPU读取的数据;发生的事件;寄存器存储器内容或各个寄存器组的拷贝;涉及当前传输的数据类型、事件、状态和类似项目的信息,也见上述初始化数据和仿真数据。此外,传输了CPU时钟信号。数据29的传输可以用运行或暂停的PU1的CPU2执行。传输的仿真数据被用作创建部分或全部跟踪数据组的ED4中的仿真输入数据,其经由通信路径30变得对评估软件程序13或类似程序可用。评估软件程序13能够可视化跟踪数据,并且例如显示在监视器14上。具体地,调试器软件程序能够控制ED,使得通信路径30能双向建立。ED还能够特别地控制PU,使得通信路径29还能够双向建立。图2示出根据本发明的、用于仿真可编程单元1的设备12的第一实现示例,用该设备12离线执行仿真而不用RAM仿真。该仿真不与PU1的CPU2中的程序执行同时运行,而替代地在处理和显示设备28中被延迟。根据本发明,PU1具体地具有PU仿真控制器18、寄存器存储器拷贝19、具有连接的緩冲存储器51的选择开关电路17、以及仿真端口15作为扩展。如图2中所示,可编程单元1具有寄存器存储器3作为CPU2的部分。寄存器存储器拷贝19是该寄存器存储器3的全部或部分拷贝。为实现该再现,从PU仿真控制器18输出选通信息34。用于将寄存器存储器的内容复制到寄存器存储器拷贝中的时间点,例如通过数据类型信号42的某种编码,必须对ED已知。不同信息43(如发生中断和/或数据访问)从CPU2传输到PU仿真控制器18。另一方面,这通过中断点信号39与CPU连接。CPU2仍然与地址总线10连接。选择开关电路17用数据总线7或用类似项目,连接到用于传输寄存器存储器拷贝19的线或总线46,以及连接到用于传输中断38的次数和/或水平的其他总线。选择开关电路17由PU仿真控制器18通过数据选择线48控制,在此期间数据选择线48向选择开关电路17指示数据源及数据源的总线宽度。优选地,PU仿真控制器18以这样的方式控制选择开关电路17,以该方式传输具有高于由数据总线7从CPU2读取的数据的优先级的中断38。如果没有中断38和/或读数据传输没准备好,则寄存器存储器拷贝19能够用最低优先级传输。注意到,以下各个线或信号路径的标识或区分通常通过传输数据处理,使得仅参考数据7而不是数据总线7。选才奪开关电路17与仿真端口15经由数据线47连接。组织为例如FIFO的緩沖存储器51,在选择开关电路17和仿真端口15之间切换。CPU时钟信号8从CPU发送到PU仿真控制器18,到緩冲存储器51,并且经由仿真端口15到ED4。以与该CPU时钟信号的某种关系,PU能够经由仿真端口15,将在选择开关电路17或緩冲存储器51的输出呈现的数据,经由通信连接5传输到仿真设备4,由此ED4具有至少一个对应的仿真器输入27。此外,数据类型信号42也从PU仿真控制器18输出到仿真端口15,该数据类型信号42还能够通过缓冲存储器51暂时存储。还可以例如通过设置特定模式管脚或者设置CPU的控制寄存器中的位,切换仿真端口15,使得它用作与ED4没有连接的通常的I/O端口。各个数据至少通过仿真端口15,经由通信连接5(如串行化/解串行化、低电压差分点到点连接21(LVDS串行化/解串行化))传输到仿真器输入27。在离线仿真的情形下,ED4划分为两个单元一个数据输入单元4A以及仿真单元4B,由此仿真单元4B在PC中实现为外部处理和显示设备28。由仿真器输入27捕获的信号,具体地如CPU时钟信号8和数据类型信号42,例如能够馈入到ED仿真控制器16中。ED4具有计数器20,通过其CPU时钟信号8被计数,使得时间分配(所谓的时间戳35)对经由仿真器输入27读入的所有数据可用。如果需要,则给通过仿真器输入27读入的相应数据提供有时间戳,存储在存储器6中,该存储器6能够例如实现为RAM、硬盘等。数据类型36和写信息37从ED仿真控制器16传输到存储器6。对应的时间戳35从计数器20传输到存储器6。输入存储器6中的数据传输到仿真单元4B,其再现PU的CPU的行为,并且创建全部或部分跟踪数据组。为此,在存储器6中发现的数据传输到离线仿真单元9,其实现为PC28中的软件程序。由离线仿真单元9收集的跟踪数据存储在例如跟踪数据存储器11中,该存储器11在此也称作仿真设备的存储设备,并且能够经由连接30传输到评估软件程序13。该评估软件程序13能够可视化例如监视器14上调试过程的结果。根据本发明的设备12的第二实现示例在图3中示出,由此利用该实现示例执行实时仿真。同样,不再需要寄存器存储器拷贝19(见图2),使得PU能够更简单和便宜地构造。在该实现示例中,具体地,CPU2能被由PU仿真控制器18创建和输出的中断点信号39、和/或从ED仿真控制器16创建和输出的中断点信号52停止。除了用寄存器存储器拷贝19分配外,不再需要从PU仿真控制器18输出选通信息34及实现用于传输寄存器存储器拷贝19的线或总线46,见图2。在ED4中,PU1的CPU2的行为由实时仿真单元41例如可编程逻辑模块23或外合芯片24再现。为此,实时仿真单元41用地址总线31和程序数据总线32连接到程序存储器33。与CPU2的程序存储器中的相同的程序代码,特别地部分或全部地位于程序存储器33中。CPU时钟信号8由CPU2经由仿真器输入27以及经由各个通信连接5传输到ED4,并且在这里馈入实时仿真单元41中。ED仿真控制器16使用接收的数据类型信号42和/或CPU时钟信号8来控制多路分离器40,其具体使得CPU2的读数据49或在CPU2上出现的中断号38对实时仿真单元41可用。实时仿真单元41的数据总线对RAM44具有写访问(见连接26)。因为在该实现示例中不读RAM44,所以不需要实现RAM44。为产生全部的跟踪数据组仅需要对RAM44的写数据访问26。对数据总线的读访问25允许实时仿真单元41接收要从多路分离器40读取的数据49。CPU2的功能在实时仿真单元41中再现,然后相应的跟踪数据全部或根据某个标准被过滤,并且存储在跟踪数据存储器11中或直接输出到评估软件程序13。该评估软件程序13优选地运行在处理和显示单元28中,该处理和显示单元28能够是例如PC,并且在监视器14上可视化调试过程的结果。在ED4中,PU的芯片上外围设备的再现能够部分地被分配。利用可编程逻辑模块,例如,使得可以使用单个ED来仿真至少一个微控制器族的大量的各种目标CPU。实时CPU仿真的相关实现能够加载到可编程逻辑模块23中。根据本发明的设备12的第三实现示例在图4中示出。该实现示例也通过仿真PU1的RAM、并因此进一步减小仿真需要的并且要在PU1和ED4之间传输的数据量的能力,扩展图3中示出的实现示例。相关的ED4将包括用于相应的实时仿真的所有功能单元,其能够具有对存储器,特别对一个或更多CPU、和/或一个或更多DMA单元、和/或一个或更多MMU单元的写访问。在具有RAM仿真的实时仿真的情形中,如果RAM的内容不通过可靠、明确的初始化或类似方式预先确定,则PU1的RAM的表示初始也传输到ED4作为静态信息。ED4的RAM44用该表示初始化。在具有RAM仿真的在线仿真的情形中,根据本发明的设备12的PU的相关结构,与图3中示出的作为额外地址比较器22的结果的结构不同,该额外地址比较器22连接在地址总线IO和PU仿真控制器18之间。地址比较器22示出当前在数据总线7上读取的数据是否源自这样的地址范围,ED的实时仿真单元41中包括的功能单元对该地址范围没有写访问。从对该地址范围仅包括在实时仿真单元41中的功能单元具有写访问的地址范围读取的数据,在该实现示例中不再必须传输到ED4。相关地址范围能够在此永久地编程和/或能够自由配置。此外,可编程单元1的结构还对应于结合图3描述的设备12。此外,在该实现示例中ED4具有数据选择器50,其确定从实时仿真单元41读取的数据25的源。如果数据类型信号42向ED仿真控制器16示出、或者如果仿真自动检测应当具有对位于这样的地址范围中的数据的读访问,对该地址范围仅实时仿真单元41中包括的功能单元能够具有写访问,则ED仿真控制器16以实时仿真单元41从ED的RAM44读取数据的方式,切换数据选择器50。如果数据类型信号42向ED仿真控制器16示出、或者如果仿真自动检测应当具有对位于这样的地址范围中的数据的读访问,对该地址范围不同于实时仿真单元41中包括的那些的功能单元能够具有写访问,则ED仿真控制器16以实时仿真单元41从ED的RAM44读取数据的方式,切换数据选择器50。根据本发明的设备12的第四实现示例在图5中示出。该实现示例通过设置复杂中断点的能力扩展图4或图3中示出的实现示例。按照本发明,可以支持用于中断程序执行,以便例如在程序执行的中断点4全查某些值的某些中断点。除了可能在目标CPU上实现、用于支持这些中断点的机制外,其他机制能够由仿真设备4创建用于支持特别复杂的中断点。仿真设备能够停止CPU并访问CPU2的地址和数据总线10和7。仿真设备4具有调试接口45,其用于检测中断点并且由评估软件程序控制。如果检测到有效的中断点,则用中断点信号52停止PU的CPU和仿真的CPU23和24。根据本发明的设备12的第五实现示例在图6中示出。在该实现示例的情形中,图3、图4或图5中示出的实现示例通过使用PU1的管脚的选项来扩展,该PU1的管脚由仿真端口15通过PU1中执行的应用程序占用。适当的控制寄存器54在ED4中在控制寄存器的地址实现,该控制寄存器54控制ED4的一个或更多数字输出55,其控制由仿真端口15在调试过程期间占用的一个或更多管脚。如果实时仿真单元41具有对该控制寄存器54的写访问,则ED管脚55的行为与其相应的PU管脚相同。管脚55还能够操作为输入或组合的输入/输出,并且在此情形中用于传输管脚55的输入信号的数据传输必须在CPU2上实现。为简单起见,该数据传输没有在图6中示出。管脚55还能够由ED中复制的外围设备单元(如脉冲宽度调制器、显示驱动器等)操作为输入和输出。该外围设备单元由控制寄存器54控制。可以经由例如带缆线将管脚55的信号发送回到PU,并将它们提供到承载PU、靠近PU的电路板。跳线器等能用于仿真端口15和管脚55间的切换。如果仿真端口15用于与ED通信,则连接的网络通过输出55控制。跳线器等能用于将连接的网络从仿真端口15的相关管脚断开连接。如果调试过程已经完成并且仿真端口15的管脚对PU可用,则连接的网络能够直接连接到仿真端口15的内部管脚。为此,仿真端口15能够例如通过设置特定模式管脚或CPU的控制寄存器中的位,配置为普通的I/O端口。应当注意的是,为了简单起见,PU1的所有其他芯片上外围设备没有在图2到图6中示出。时间延迟和相应的CPU时钟偏置能够由来自PU1和ED4的数据传输持续引起,其不得不被考虑在获取的跟踪数据的仿真和评估中。特别地,当设置复杂的中断点时,如在实现示例(见图5)中所描述的,不得不相应地考虑可能的时间偏置。在本发明的所有实现示例中,如果例如内部数据的传输发生在CPU时钟信号的上升沿或下降沿时,如果时钟频率增加,或如果要传输的数据在多个CPU周期上分发、并且当数据容量变得太大时插入相应的CPU等待周期,那么与仿真端口的连接数量的减少是可能的。下文中,将为特定示例解释仿真端口设计。注意到,在该环境中给出的公式不一般地应用于所有设计任务,而限于本示例。大多数实际的微控制器为I/O部件提供快速CPU和快速存储器接口,结合显著慢的接口。如果仿真端口用双数据率操作,那么基于CPU时钟,输出同步数据要求的管脚量能够估计如下<formula>complexformulaseeoriginaldocumentpage32</formula>这里,n是要求的管脚数,s是状态位数(目标特定的中断状态、总线等待标志、DMA状态、DMA通道数),w是I/0访问的总线宽度,并且c是每CPU读指令的时钟周期和每DMA读操作的时钟周期的最小值。为了图示该公式,下面给出三个典型示例。第一示例是8位微控制器,对其我们还将呈现实现该仿真接口要求的另外硬件量8+1+1=3(2数据,1时钟)第二个示例是具有另外DSP功能的16位微控制在'<formula>complexformulaseeoriginaldocumentpage32</formula>(3数据,1时钟)最后,我们给出仅使用16位用于外围设备访问的32位微控制器的示例:<formula>complexformulaseeoriginaldocumentpage32</formula>(4数据,1时钟)在高的CPU1/0读带宽,要由仿真器接口传输的数据流可以由FIFO緩冲。在该情形中,1/0加载操作的统计频率确定实际要求的带宽。为了使该统计效果更明显,参照表l,其列举了指令类型的统计分布。要求的带宽依赖于指令集和FIFO的大小(在其他没有如此主要的因素中),并且能够由下面的公式估计这里,dr是从可编程单元到仿真器的数据传输率,f是CPU频率,lio是I/O加载指令的百分比,并且c是每加载指令要求的最小周期。下面的计算仅提供作为要求的带宽的参考框架。第一公式表现在60MHz的16位微控制器的特性cir=-^-^=3,2MB,/s第二示例表现在200MHz的32位微控制器的特性<ir=-^-^=42,5細,/s这些带宽远低于数据传输率,其将必须对用于连续提取跟踪数据的嵌入式跟踪模块可用。当然,在实际实现中,FIFO溢出的任何情形需要通过下面的方法防止-在频繁I/O读访问的情形中,由编译器自动插入多个NOP-在即将发生FIFO溢出的情形中,暂停CPU。申请EP05009621在此通过引用并入其全部内容,本发明要求申请EP05009621的优先权。当在本申请中解释术语时,下面的术语应当被解释为与申请人的申请EP05009621的相应术语具有相同的含义,本发明要求申请EP05009621的优先权。<table>complextableseeoriginaldocumentpage33</column></row><table><table>tableseeoriginaldocumentpage34</column></row><table>权利要求1.一种用于通过外部仿真设备(4)仿真目标可编程单元(1)的方法,该目标可编程单元(1)具有至少一个CPU(2),该外部仿真设备(4)通过通信链路(5)耦合到目标可编程单元,该方法包括下述步骤-通过通信链路(5)向仿真设备(4)传输预定的初始化数据用于初始化仿真,利用该初始化数据,目标可编程单元(1)已经初始化自身和/或已经被初始化;-以与CPU时钟信号(8)的定义关系,通过通信链路向仿真设备传输CPU时钟信号以及下面的仿真数据-由CPU从目标可编程单元的数据总线读取的数据;-那些对程序计数器具有影响的外部事件;-可选地,周期性创建的寄存器存储器的全部或部分拷贝;以及,-可选地,一种或更多数据类型信号;-使用传输的仿真数据,在外部仿真设备中仿真目标可编程单元(1);-在外部仿真设备中确定来自仿真的各个跟踪数据;以及-存储和/或输出该跟踪数据。2.如权利要求1所述的方法,其中CPU时钟信号(8)或允许导出原始CPU时钟信号的信号,从目标可编程单元(1)通过仿真端口(15)传输到仿真设备(4)。3.如权利要求l所述的方法,其中在传输仿真数据的步骤中包括独占地传输-由CPU从目标可编程单元的数据总线读取的数据;-那些对程序计数器具有影响的外部事件;-可选地,周期性创建的寄存器存储器的全部或部分拷贝;以及-可选地,一种或更多数据类型信号。4.如上述任一权利要求所述的方法,其中在从目标可编程单元(1)接收大量数据时,该仿真被执行。5.如上述任一权利要求所述的方法,其中CPU时钟信号(8)传输到可编程单元的仿真控制器(18)和/或目标可编程单元(1)的緩冲存储器(51)。6.如上述任一权利要求所述的方法,其中仿真数据用CPU时钟信号(8)的下降沿或上升沿、或用CPU时钟信号(8)的下降沿和上升沿传输。7.如上述任一权利要求所述的方法,其中驱动仿真数据的传输的时钟频率在仿真数据的传输期间,增加超过CPU时钟频率。8.如上述任一权利要求所述的方法,其中要传输的仿真数据在目标CPU(2)的多个周期上分布。9.如上述任一权利要求所迷的方法,其中CPU等待周期的插入由目标可编程单元或由仿真设备在仿真数据传输时控制。10.如上述任一权利要求所述的方法,其中目标可编程单元(1)切换到操作模式,用于使用仿真端口(15)作为标准输出端口,该仿真端口(15)被配置为目标可编程单元(1)的通信链路(5)的部分,该切换应用到整个仿真端口或仿真端口的各管脚的子集。11.如权利要求IO所述的方法,其中仿真端口的接触管脚在与JTAG接口的共享操作中使用。12.如上述任一权利要求所述的方法,其中如果RAM在开始时还没有全部初始化,则将目标可编程单元(1)的RAM的部分或完整拷贝、和/或程序存储器的部分或完整拷贝传输到仿真设备(4)。13.如上述任一权利要求所述的方法,其中接收的仿真数据存储在仿真设备(4)的存储设备(6)中。14.如上述任一权利要求所述的方法,包括在通过仿真设备(4)输出和/或保存前过滤确定的跟踪数据的步骤。15.如上述任一权利要求所述的方法,其中目标可编程单元(1)的仿真,通过仿真设备使用先前获得并存储的仿真数据离线执行。16.如上述任一权利要求所述的方法,其中CPU时钟信号(8)在仿真设备(4)中用计数设备(20)计数,用于将某个时间点分配给传输的仿真数据。17.如权利要求15或16所述的方法,其中执行目标可编程单元的仿真,而不仿真目标可编程单元的随机存取存储器。18.如上述任一权利要求所述的方法,其中目标可编程单元(1)的程序执行,由仿真设备(4)对在最后检测的、相同环境的寄存器组(3)的完整拷贝时开始的每个各自的环境水平仿真。19.如权利要求14到18之一所述的方法,其中目标可编程单元的CPU通过在计算机上执行的计算机程序仿真。20.如权利要求15所述的方法,其中目标可编程单元的仿真包括仿真目标可编程单元的部分RAM或目标可编程单元的全部RAM。21.如上述任一权利要求所述的方法,包括步骤-在目标可编程单元中确定由CPU当前读取或在DMA操作期间的数据是否源自目标可编程单元的地址范围,该地址范围能够由不同于目标可编程单元(1)的CPU的各功能单元写入,之后-仅将由CPU读取或在DMA操作期间的那些数据传输到仿真设备(4),该数据源自目标可编程单元的地址范围,该地址范围能够由不同于目标可编程单元(1)的CPU的各功能单元写入。22.如权利要求21所述的方法,其中能够由不同于目标可编程单元的CPU的各功能模块写入的地址范围,以固定的方式永久地预编程、或自由配置、或部分永久地编程而部分自由配置。23.如权利要求1到14之一所述的方法,其中仿真在仿真设备(4)中实时执行。24.如权利要求23所述的方法,其中为了执行实时仿真,将目标可编程单元(1)的CPU(2)的相应实现加载到仿真设备(4)的可编程逻辑模块中。25.如上述任一权利要求所述的方法,其中目标可编程单元(1)或目标可编程单元的CPU(2),由仿真设备(4)或由目标可编程单元(1)在检测到有效中断点时停止。26.如上述任一权利要求所述的方法,其中一个或更多中断点由仿真设备(4)启动和管理。27.如上述任一权利要求所述的方法,其中中断点信号(39,52)从目标可编程单元的仿真控制器(18)或仿真设备(16)的仿真控制器,传输到目标可编程单元(1)的CPU(2)。28.如权利要求23到27之一所述的方法,其中在停止目标可编程单元后,仿真设备(4)访问目标可编程单元(1)的地址总线和数据总线(10,7)。29.如权利要求23到28之一所述的方法,其中仿真设备在实时仿真中对其存储器具有写和读访问,并且在读访问的情况下,接收从目标可编程单元(1)传输的数据。30.如权利要求23到29之一所述的方法,其中,如果事件在目标可编程单元(1)中产生,则同时或具有偏置地在仿真设备中触发相同的事件。31.如上述任一权利要求所述的方法,其中切换仿真设备(4)的数据选择器(50)以从仿真设备(4)的存储器设备读取数据、或读取目标可编程单元(1)的数据(49)。32.如权利要求23到31之一所述的方法,其中执行目标可编程单元的实时仿真而不仿真目标可编程单元的RAM。33.如权利要求32所述的方法,其中独占地传输下面的仿真数据-由CPU从目标可编程单元的数据总线读取的数据;以及-那些对程序计数器具有影响的外部事件。34.如权利要求23到32之一所述的方法,其中目标可编程单元的实时35.如权利要求23到34之一所述的方法,其中在实时仿真中,目标可编程单元(1)的至少一个RAM的全部或部分拷贝也在仿真设备(4)中运行。36.如权利要求35所述的方法,其中仿真目标可编程单元的那些功能模块,该功能模块写目标可编程单元(1)的RAM。37.如上述任一权利要求所述的方法,其中仿真数据暂时存储在目标可编程单元的仿真控制器的FIFO存储器中,并且其中在仿真设备中具有偏置地触发中断点的情况下,仿真设备使用直到该点、存储在FIFO存储器中的仿真数据来继续仿真,其中目标可编程单元的CPU由仿真设备停止。38.—种用于可编程单元的仿真的设备,具有目标可编程单元(l),其具有至少一个CPU(2),仿真设备(4),其作为外部单元(4)经由作为通信链路(5)的仿真端口(15)与目标可编程单元(1)连接,用于传输仿真数据,并且配置为确定来自目标可编程单元的仿真的各个跟踪数据,其中仿真设备(4)具有至少一个仿真控制器(16)、以及用于跟踪数据的存储设备(11)、和/或与外部处理和显示装置(28)连接的输出装置,以及该目标可编程单元配置为-以与目标可编程单元(1)的CPU时钟信号(8)的定义关系,通过通信链路(5)传输下面的仿真数据到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及-可选地,一种或更多数据类型的信号;以及-从目标可编程单元将CPU时钟信号传输到仿真设备(4)。39.如权利要求38所述的设备,其中目标可编程单元配置为独占地将下面的仿真数据传输到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及-可选地,一种或更多数据类型的信号。40.如权利要求38或39所述的设备,其中目标可编程单元的仿真控制器(18)配置为将数据类型信号(42)传输到仿真端口(15)作为仿真数据的部分,并且如果存在,传输到目标可编程单元(1)的緩冲存储器(51)用于暂时存储。41.如权利要求38到40之一所述的设备,其配置为提供目标可编程单元(1)和仿真设备(4)之间的双向通信。42.如权利要求38到41之一所述的设备,其中仿真设备(4)具有调试接口(25)。43.如权利要求38到42之一所述的设备,其中仿真设备(4)具有对应于目标可编程单元(1)的程序存储器的程序存储器(33)。44.如权利要求38到43之一所述的设备,其中目标可编程单元(1)可将仿真端口(15)插入到目标系统中,替代没有仿真端口的目标可编程单元(1),用于调试或仿真。45.如权利要求38到44之一所述的设备,其中仿真设备(4)具有可切换的数据选择器(50),其能够连接用于从仿真设备(4)的RAM(44)读出数据、或用于读取从目标可编程单元(1)接收的数据。46.如权利要求38到45之一所述的设备,其中目标可编程单元(1)配置为通过仿真端口(15),将其CPU时钟信号(8)发送到仿真设备(4)。47.如权利要求38到46之一所述的设备,其中仿真设备(4)作为实时仿真单元(41),具有外合芯片或可编程逻辑模块(23)的形式的逻辑模块。48.如权利要求38到44之一所述的设备,其中仿真设备作为实时仿真单元(41),与地址总线(31)、和/或程序存储器(33)、和/或程序数据总线(32)连接。49.如权利要求38到48之一所述的设备,其中仿真设备(4)具有多路分离设备(40)。50.如上述权利要求38到48之一所述的设备,其中仿真设备(4)具有实现的控制寄存器(54),其控制仿真设备(4)的一个或更多数字输出(55)、和/或从仿真设备(4)中的目标可编程单元(1)复制的外围单元。51.如上述权利要求38到50之一所述的设备,其中仿真设备(4)的数字输出(55)作为输出是可切换的,并且其中数字输出(55)的各信号能够经由相应的连接反馈到目标可编程单元(1)。52.如上述权利要求38到51之一所述的设备,其中目标可编程单元(1)中的地址总线线路(20),经由地址比较器(22)与目标可编程单元的仿真控制器(18)连接。53.如权利要求38到52之一所述的设备,其中仿真设备作为实时仿真单元(41),经由数据总线与RAM(44)连接。54.如权利要求38到53之一所述的设备,其中目标可编程单元的仿真端口在其输出侧包括FIFO存储器,并且其中仿真控制器(18)配置为将FIFO存储器中包括的仿真数据发送到仿真设备。55.如权利要求38到54之一所述的设备,其中仿真设备包括时间多路复用器,其具有连接到目标可编程单元的仿真控制器以及仿真设备的随机存取存储器的输入端、以及与仿真设备的CPU连接的输出端,并且该时间多路复用器配置为以时间复用的输出信号形式,提供已经在其输入端接收的信号。56.如权利要求38到55之一所述的设备,在目标可编程单元侧和仿真设备侧包括各自的JTAG接口。57.—种目标可编程单元(1),其具有至少一个CPU(2)以及仿真端口(15),作为用于将仿真数据传输到外部仿真设备(1)的通信链路(5),其中目标可编程单元配置为-以与目标可编程单元(1)的CPU时钟信号(8)的定义关系,在仿真端口提供下面的仿真数据,用于通过通信链路(5)输出到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝;以及-可选地,一种或更多数据类型的信号;以及-提供来自目标可编程单元的CPU时钟信号作为输出,用于传输到仿真设备(4)。58.如权利要求57所述的目标可编程单元,其配置为独占地将下面的仿真数据传输到仿真设备(4):-由CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝;以及-可选地,一种或更多数据类型的信号。59.如权利要求57或58所述的目标可编程单元(1),其配置为用CPU时钟信号(8)的下降沿或上升沿、或用CPU时钟信号(8)的下降沿和上升沿传输仿真数据。60.如权利要求57到59之一所述的目标可编程单元(1),其配置为产生具有增加超过CPU时钟频率的频率的时钟信号,用于驱动仿真数据的传输。61.如权利要求57到60之一所述的目标可编程单元(1),其配置为将要传输的仿真数据分布在目标CPU(2)的多个周期上。62.如权利要求57到61之一所述的目标可编程单元(1),其配置为切换到用于使用仿真端口(15)作为标准I/0端口的操作模式。63.如权利要求57到62之一所述的目标可编程单元(1),其可将仿真端口(15)插入到目标系统中,替代没有仿真端口的目标可编程单元(1),用于调试或仿真。64.如权利要求57到63之一所述的目标可编程单元(1),其配置为如果RAM在开始没有全部初始化,则将程序存储器的部分或完整拷贝、和/或目标可编程单元(1)的RAM的部分或完整拷贝传输到仿真设备(4)。65.如权利要求57到64之一所述的目标可编程单元(1),其配置为-确定当前读取的仿真数据是否源自目标可编程单元的RAM的地址范围,该地址范围可由不同于目标可编程单元(1)的CPU的各功能单元写入,以及-仅将那些来自RAM的仿真数据传输到仿真设备(4),该数据源自目标可编程单元的RAM的地址范围,该地址范围可由不同于目标可编程单元(1)的CPU的各功能单元写入。66.如权利要求57到65之一所述的目标可编程单元,包括仿真控制器(18),其配置为通过仿真端口控制仿真数据流。67.如权利要求57到66之一所述的目标可编程单元,其中仿真控制器(18)配置为将数据类型信号(42)传输到仿真端口(15),并且如果存在,则传输到目标可编程单元(1)的緩沖存储器(51)用于暂时存储。68.如权利要求57到67之一所述的目标可编程单元,其配置为提供目标可编程单元(1)和仿真设备(4)之间的双向通信。69.如权利要求57到68之一所述的目标可编程单元,其配置为通过仿真端口(15)将其CPU时钟信号(8)发送到仿真设备(4)。70.如权利要求57到69之一所述的目标可编程单元,其中目标可编程单元(1)中的地址总线线路(20)与仿真控制器(18)经由地址比较器(22)连接。71.如权利要求57到70之一所述的目标可编程单元,其中仿真控制器在其输出侧包括FIFO存储器,并且配置为在中断点出现后继续将FIFO存储器中包括的仿真数据传输到仿真设备,直到FIFO存储器为空。72.如权利要求57到71之一所述的目标可编程单元,包括连接到仿真控制器的JTAG接口,其配置为在从仿真控制器接收使能信号时,根据JTAG标准将JTAG输出数据提供给仿真端口。73.—种仿真设备,包括-仿真端口(15),用于与外部目标可编程单元(l)通信以接收仿真数据,-程序存储器,用于存储与存储在外部目标可编程单元中的程序代码功能上相同的程序代码;-用于跟踪数据的存储设备(11)和/或与外部处理和显示设备(28)连接的输出设备,其中仿真端口配置为从目标可编程单元接收CPU时钟信号,并且以与目标可编程单元的CPU时钟信号的定义关系接收下面的仿真数据-由外部目标可编程单元的CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及,可选地,一种或更多数据类型的信号;并且其中仿真设备还配置为使用传输的仿真数据和存储在程序存储器中的程序代码,仿真外部目标可编程单元(1),以基于接收的仿真数据从仿真中确定各个跟踪数据,并且存储和/或输出跟踪数据。74.如权利要求73所述的仿真设备,其还配置为基于下面接收的仿真数据从仿真独占地确定跟踪数据-由外部目标可编程单元的CPU从目标可编程单元的数据总线读取的数据,-那些对程序计数器具有影响的外部事件,-可选地,周期性创建的寄存器存储器的全部或部分拷贝,以及,可选地,一种或更多数据类型的信号。75.如权利要求73或74所述的仿真设备,其具有调试接口(25)。76.如权利要求73到75之一所述的仿真设备,其中仿真设备(4)具有可切换的数据选择器(50),其能够被连接用于从仿真设备(4)的RAM(44)读出数据、或用于读取从目标可编程单元(1)接收的仿真数据。77.如权利要求73到76之一所述的仿真设备,其中仿真设备(4)作为实时仿真单元(41),具有外合芯片或可编程逻辑模块(23)的形式的逻辑模块。78.如权利要求73到77之一所述的仿真设备,其中仿真设备作为实时仿真单元(41),与地址总线(31)、和/或程序存储器(33)、和/或程序数据总线(32)连接。79.如权利要求73到78之一所述的仿真设备,其具有多路分离设拟40)。80.如权利要求73到79之一所述的仿真设备,包括实现的控制寄存器(54),其控制仿真设备(4)的一个或更多数字输出(55)、和/或从仿真设备(4)中的外部目标可编程单元(1)复制的外围设备单元。81.如权利要求73到80之一所述的仿真设备,其中仿真设备(4)的数字输出(55)作为输出是可切换的,并且其中数字输出(55)的信号能够经由相应的连接反馈到目标可编程单元(1)。82.如权利要求73到81之一所述的仿真设备,其作为实时仿真单元(41),经由数据总线与RAM(44)连接。83.如权利要求73到82之一所述的仿真设备,包括时间复用器,其具有连接到目标可编程单元的仿真控制器和仿真设备的随机存取存储器的各输入端、以及与仿真设备的CPU连接的输出端,并且该时间复用器配置为以时间复用输出信号的形式,提供已经在其各输入端接收的信号。84.如权利要求73到83之一所述的仿真设备,包括与仿真端口共享的FTAG接口。85.—种用于通过外部仿真设备(4)仿真目标可编程单元(1)的方法,该目标可编程单元具有至少一个CPU(2),该外部仿真设备通过通信链路(5)耦合到目标可编程单元,该方法包括下面步骤-通过通信链路(5)将预定的初始化数据传输到仿真设备(4)用于初始化,利用该初始化数据目标可编程单元(1)仿真已经初始化自身和/或已经净皮初始化;-通过通信链路向仿真设备传输信号,该信号允许导出目标可编程单元的原始CPU时钟信号,并且以与CPU时钟信号(8)的定义关系传输仿真数据,该仿真数据由那些不能基于目标可编程单元的给定模型和不能基于程序代码计算的数据形成,-使用传输的仿真数据仿真目标可编程单元(1);-从仿真确定各个跟踪数据;以及-存储和/或输出跟踪数据。全文摘要本发明涉及一种用于使用外部仿真设备仿真可编程单元的过程和设备。该方法包括传输信号到外部仿真设备,该信号允许导出目标可编程单元的原始CPU时钟信号,并且以与CPU时钟信号(8)的定义关系传输仿真数据,该仿真数据由那些不能基于目标可编程单元的给定模型并且不能基于程序代码计算的数据形成。目标可编程单元通过外部仿真设备(1)使用传输的仿真数据来仿真,并且从仿真确定各个跟踪数据。本发明还涉及一种用于仿真的装置,包括具有至少一个CPU的目标可编程单元,并且包括仿真设备,该仿真设备作为外部单元(14),经由作为通信链路的仿真端口与目标可编程单元连接。最后,本发明涉及一种可编程单元。文档编号G06F11/26GK101198936SQ200680021885公开日2008年6月11日申请日期2006年5月2日优先权日2005年5月2日发明者亚历山大·兰格,亚历山大·韦斯申请人:阿塞米克两合公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1