一种用于数据加载的逻辑器件转让专利

申请号 : CN201110040242.X

文献号 : CN102129379B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王涛秦永乐王伟威

申请人 : 杭州迪普科技有限公司

摘要 :

本发明是一种逻辑器件,其应用于计算机系统中,所述计算机系统包括,与该逻辑器件相连的CPU以及与该逻辑器件相连的第二逻辑器件,所述逻辑器件包括写操作检测单元以及时钟产生单元,其中所述写操作检测单元,用于检测CPU通过第一逻辑器件向第二逻辑器件发起的写入逻辑数据的写操作,并在检测到所述写操作发生时通知所述时钟信号产生单元;所述时钟信号产生单元,用于在接收到检测单元的通知后,按照预定的周期产生时钟信号,并将该时钟信号提供给第二逻辑器件供其采集写入的数据。

权利要求 :

1.一种逻辑器件,其应用于计算机系统中,所述计算机系统包括,与该逻辑器件相连的CPU以及与该逻辑器件相连的第二逻辑器件,所述逻辑器件包括写操作检测单元以及时钟产生单元,其特征在于:所述写操作检测单元,用于检测CPU通过该逻辑器件向第二逻辑器件发起的写入逻辑数据的写操作,并在检测到所述写操作发生时通知所述时钟信号产生单元;

所述时钟信号产生单元,用于在接收到该写操作检测单元的通知后,按照预定的周期产生时钟信号,并将该时钟信号提供给所述第二逻辑器件,以供第二逻辑器件利用该时钟信号采集写入的逻辑数据。

2.根据权利要求l所述的逻辑器件,其特征在于,所述时钟信号的周期与第二逻辑器件的时序要求适配。

3.根据权利要求1所述的逻辑器件,其特征在于,所述第二逻辑器件包括数据采样单元,该数据采样单元根据该时钟信号对写入的逻辑数据进行采样,并将该逻辑数据更新到自身的存储空间中。

4.根据权利要求1所述的逻辑器件,其特征在于,其中所述逻辑器件以及第二逻辑器件为CPLD或者FPGA。

5.根据权利要求1所述的逻辑器件,其特征在于,所述写操作检测单元通过检测与CPU相连总线的数据线上是否有数据写入到相应的寄存器中确定是否有写操作发生。

说明书 :

一种用于数据加载的逻辑器件

技术领域

[0001] 本发明涉及逻辑器件加载技术,尤其涉及一种快速数据加载的逻辑器件技术。

背景技术

[0002] 随着逻辑器件技术的发展,FPGA和CPLD等可编程逻辑芯片逐渐得到大量的应用,这类芯片通常需要进行程序或配置文件的加载(通常称为逻辑加载),一般的传统方式是先烧逻辑后将逻辑芯片焊接在电路板上。但是这种方法明显不够灵活,如果需要调试或者是版本的升级就比较困难,对于市场上已经使用的成品,版本的升级更大大增加了运营成本。
[0003] JTAG技术的出现给加载带来了非常大的改变,逻辑芯片加载流程被简化为:先固定器件到电路板上再用JTAG对芯片编程。这样的流程大大加快工程进度。通过JTAG线来下载逻辑逐渐成为调试、维护、生产的主流方式。然而随着技术的发展,芯片的复杂度和容量越来越大,通过JTAG下载便产生不小的缺陷:
[0004] 首先,对于一个广泛应用在市场上的产品来说,版本的更新和维护都需要打开机箱,连接JTAG下载线进行逻辑更新,造成的不便不言而喻,运营成本更是一个不小的数字。
[0005] 其次,JTAG是串行接口,使用打印口的简单JTAG电缆,利用的是打印口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。时序由JTAG标准决定,通过JTAG写/读一个字节需要一系列的操作。假设使用简单JTAG电缆,利用打印口,通过JTAG输出一个字节到目标板,平均需要43个打印口I/O,对于一台P4主频1.7G的计算机,每秒大约可进行660K次I/O操作,下载速度大约等于15K Byte/S。然而这样的速度,对于一个以MB为单位大小的逻辑,需要加载很长时间。
[0006] 请参考图1,目前还有一种方案,即改用CPU或微控制器从存储介质中读取出逻辑芯片的配置文件/程序进行逻辑加载,模拟JTAG时序或器件支持的其他的加载时序,将配置文件加载到逻辑芯片中去。这种通过CPU或微处理器模拟时序实现在线加载解决了从JTAG线进行加载的不便性。目前有两种实现方式。
[0007] 一种实现方式是使用CPU或微处理器GPIO口模拟时序实现在线加载。这种方式可以获得较快的速度,但是占用了CPU或微处理器的较多管脚。
[0008] 另一种实现方式是考虑当前广泛应用的嵌入式系统中都含有CPLD编程器件,通过将CPLD挂接在CPU或微处理器的总线上,将FPGA连接在CPLD上,通过CPU或微处理器控制总线上的CPLD来模拟在线加载时序。这样既不会额外占用CPU或微处理器的管脚,又实现了对逻辑器件的在线配置。这种方式成本低、有很强的便利性,但是这种方案的加载速度并不是特别快,并不能满足开发人员的需求。

发明内容

[0009] 本发明的目的在于提供一种快速加载的逻辑器件,以克服现有技术逻辑数据加载速度慢的问题,本发明是通过以下方案实现的。
[0010] 一种逻辑器件,其应用于计算机系统中,所述计算机系统包括,与该逻辑器件相连的CPU以及与该逻辑器件相连的第二逻辑器件,所述逻辑器件包括写操作检测单元以及时钟产生单元,其中:
[0011] 所述写操作检测单元,用于检测CPU通过第一逻辑器件向第二逻辑器件发起的写入逻辑数据的写操作,并在检测到所述写操作发生时通知所述时钟信号产生单元;
[0012] 所述时钟信号产生单元,用于在接收到检测单元的通知后,按照预定的周期产生时钟信号,并将该时钟信号提供给所述第二逻辑器件,以供第二逻辑器件利用该时钟信号采集写入的逻辑数据。
[0013] 优选地,其中所述时钟信号的周期与第二逻辑器件的时序要求适配。
[0014] 优选地,其中第二逻辑器件包括数据采样单元,该数据采样单元根据该时钟信号对写入的逻辑数据进行采样,并将该逻辑数据更新到自身的存储空间中。
[0015] 优选地,其中所述逻辑器件以及第二逻辑器件为CPLD或者FPGA。
[0016] 优选地,所述写操作检测单元通过检测与CPU相连总线的数据线上是否有数据写入到相应的寄存器中确定是否有写操作发生。

附图说明

[0017] 图1是现有技术逻辑原理图。
[0018] 图2是现有技术时序图。
[0019] 图3是本发明逻辑原理图。
[0020] 图4是本发明时序图。

具体实施方式

[0021] 本申请的发明人通过实验和深入分析发现图1的方案在进行在线加载的时候,需要将从存储介质里读出来的逻辑配置文件/程序(以下简称逻辑)发送到逻辑芯片器件中去,在发送一次数据的时候需要提供一个时钟沿。目前这个时钟沿通常是通过软件来模拟的,但CPU根据软件代码控制总线操作CPLD模拟产生时钟沿需要较长时间,严重影响了加载速度。
[0022] 请参考图2,其中各个时间的含义如下:
[0023] Tpre表示写数据的时间长度;
[0024] Ts表示写完数据后调用代码再写数据的时间;
[0025] Trc则时钟cclk在软件操作下写高/低电平的操作时间。
[0026] 从上图可以看出,整个时序是通过运行在CPU上的软件来模拟的,图2清晰地行使出完成一个完整的数据写操作需要的时间是T1=Tpre+Trc+Trc+Ts。由于写数据操作和写时钟操作都是通过总线上写寄存器操作实现,所以Tpre和Trc这两个时间的长度基本一致。Ts的时间长度非常短,在整个T1中可以忽略,因为在工程设计上大致可以认为T1=3Tpre。现有方案逻辑数据写入一般包括以下步骤:
[0027] 1.CPU向D[0:7]对应寄存器写入数据
[0028] 2.CPLD向D[0:7]数据线上反应出数据变化
[0029] CPU将CCLK对应寄存器写0
[0030] CPLD将CCLK拉低
[0031] CPU将CCLK对应寄存器写1
[0032] CPLD将CCLK拉高,FPGA在时钟上升沿采样,获得数据
[0033] 由此可见CPU根据软件代码控制总线操作CPLD模拟产生时钟需要较长时间,严重影响了加载速度。而且当CPU承担的业务处理比较繁忙的时候,有可能影响其控制CPLD模拟产生时钟的操作,加载速度将进一步受到影响。
[0034] 请参考图3,图3所示是本发明典型的应用场景,比较典型的是一个带有CPU的嵌入式处理系统,比如说网络安全设备等;然而本发明并不局限于此。通常带有CPU的计算机系统需要进行逻辑加载时均可以应用本发明。所述计算机系统包括CPU、存储介质、第一逻辑器件以及第二逻辑器件。其中第一逻辑器件与CPU之间通过总线相连。所述第一逻辑器件包括写操作检测单元以及时钟信号产生单元;所述第二逻辑器件包括数据采样单元。其中所述写操作检测单元用于检测CPU通过第一逻辑器件向第二逻辑器件发起的写入逻辑数据的写操作,并在检测到所述写操作发生时通知所述时钟信号产生单元。所述时钟信号产生单元,用于在接收到检测单元的通知后,按照预定的周期产生时钟信号,并将该时钟信号提供给所述第二逻辑器件,以供第二逻辑器件利用该时钟信号采集写入的逻辑数据。其中所述时钟信号的周期与第二逻辑器件的时序要求适配。第二逻辑器件的数据采样单元根据该时钟信号对写入的逻辑数据进行采样,并将该逻辑数据更新到自身的存储空间中。以下以第一逻辑器件是CPLD,第二逻辑器件是FPGA为例进行示例性说明。
[0035] 请参考图3,第一逻辑器件(即CPLD)和第二逻辑器件(即FPGA)连接部分包括:PROGRAM、CS、RDWR_B、INIT对应CPLD中的控制寄存器,INIT、DONE、BUSY对应CPLD中的状态寄存器,对状态寄存器进行操作时,无需提供时钟脉冲。其中D[0:7]对应CPLD中的数据寄存器,在对其进行操作时需要提供时钟脉冲。
[0036] 在将逻辑数据写入FPGA之前,CPU先要从存储介质中将FPGA的逻辑数据(比如配置文件)读入内存(未图示),然后按适配FPGA的时序和命令对FPGA进行配置,即将所述逻辑数据写入到所述FPGA中。
[0037] 首先,CPU向D[0:7]对应寄存器写入上述逻辑数据;CPLD内部的写操作检测单元检测到与CPU相连的总线的D[0:7]数据线上反应出数据变化,即CPLD检测到向相应寄存器写入数据的操作,随即将CCLK拉低,然后按照预定的时序要求将CCLK拉高,此时所述CCLK即为CPLD内部的时钟产生单元提供给FPGA的时钟信号,在CPLD中也有相应的寄存器。FPGA在时钟上升沿采样,进而获得CPU要写入到FPGA的逻辑数据。
[0038] 请参考图4,从图4中可以看出来,由于CPLD这一可编程的硬件协助产生时钟信号,T2的大小变为了Tpre+Ts。由于Ts比较小,可以忽略。因此可以大致认为T2=Tpre,相对于现有技术所需要的T1=Tpre的时间长度,T2只有T1的1/3大小。因此逻辑数据的写入过程大大缩短了,在线加载速度得到了质的提升。同时该时钟是由CPU的写操作触发的,所以也完全符合正常时序要求。
[0039] 以上所描述的仅仅是本发明较佳的实现方式,并不用以限定本发明的保护范围,任何等同的变化和修改皆应涵盖在本发明的保护范围之内。