由一组嵌入式签名寄存器提供fpga器件识别的方法和系统

文档序号:880283 发布日期:2021-03-19 浏览:1次 >En<

阅读说明:本技术 由一组嵌入式签名寄存器提供fpga器件识别的方法和系统 (Method and system for providing FPGA device identification by a set of embedded signature registers ) 是由 朱璟辉 于 2020-12-22 设计创作,主要内容包括:本公开涉及由一组嵌入式签名寄存器提供FPGA器件识别的方法和系统。可编程集成电路(PIC)器件包括可配置逻辑块(LB)、路由连接阵列和配置存储器,用于执行用户定义的编程逻辑功能。每个可配置LB包括一组查找表(LUT)和相关的寄存器。LUT被配置为根据一组输入信号产生一个或更多个输出信号。每个寄存器对应一个LUT。与第一LUT相对应或物理位置上位于第一LUT附近的第一寄存器可指定为嵌入式签名寄存器,用于存储固定值或签名信息,以便于器件或集成电路被识别。(The present disclosure relates to a method and system for providing FPGA device identification from a set of embedded signature registers. A Programmable Integrated Circuit (PIC) device includes a configurable Logic Block (LB), a routing connection array, and a configuration memory for performing user-defined programmed logic functions. Each configurable LB includes a set of look-up tables (LUTs) and associated registers. The LUT is configured to generate one or more output signals from a set of input signals. One for each register. A first register corresponding to or physically located near the first LUT may be designated as an embedded signature register for storing a fixed value or signature information for ease of device or integrated circuit identification.)

由一组嵌入式签名寄存器提供FPGA器件识别的方法和系统

技术领域

本公开的示例性实施例涉及计算机硬件和软件的可编程半导体器件领域。更具体地说,本公开的示例性实施例涉及由一组嵌入式签名寄存器提供FPGA器件识别的方法和系统。

背景技术

随着数字通信、人工智能(Artificial Intelligence,AI)、物联网(Internet ofThings,IoT)和/或机器人控制的日益普及,对具有处理能力的速度更快、高效的硬件和半导体的需求不断增加。要满足这种需求,一般来说,高速、灵活的半导体芯片是更合乎需求的。满足这种需求的一种传统方法是使用专用定制集成电路和/或特殊应用集成电路(Application-Specific Integrated Circuit,ASIC)。特殊应用集成电路方法的一个缺点在于缺乏灵活性,同时消耗大量资源。

另一种日益流行的传统方法是利用诸如可编程逻辑器件(Programmable LogicDevice,PLD)或现场可编程门列阵(Field-Programmable Gate Array,FPGA)之类的可编程半导体器件(Programmable Semiconductor Device,PSD)。可编程半导体器件的一个特点是:允许最终用户在可编程半导体器件制造完成后,对一个或更多个期望功能进行编程,以适合用户的应用。

然而,与传统的现场可编程门阵列或可编程逻辑器件相关的缺点是,现场可编程门阵列或可编程逻辑器件等器件进入现场或用户(或客户)现场后,很难验证这些器件的真伪。

发明内容

一方面,本公开的一个实施例公开了一种可编程半导体器件(PSD)或可编程集成电路(Programmable Integrated Circuit,PIC)器件,包括可配置逻辑块(Logic BlocksLBs)、路由连接阵列和配置存储器,用于执行用户定义的编程逻辑功能。每个所述可配置逻辑块包括:

多个查找表(LUT),其被配置为根据一组输入信号生成一个或更多个输出信号;以及

多个寄存器,其耦合到所述多个查找表并布置成使得所述多个寄存器中的一个寄存器对应于所述多个查找表中的一个查找表,其中,所述多个寄存器中对应于所述多个查找表中的第一查找表的第一寄存器被指定用于存储固定值,以便于识别所述可编程集成电路器件,其中,所述多个寄存器中对应于所述多个查找表中的第二查找表的第二寄存器被配置为存储所述第二查找表产生的第二输出信号。

在一个示例中,每个可配置逻辑块包括一组查找表(Lookup Tables,LUTs)和相关的多个寄存器。例如,查找表被配置为根据一组输入信号产生一个或更多个输出信号。寄存器的排列方式是每个寄存器对应一个查找表。在一个实施例中,一组寄存器,不是在多个可配置逻辑块中分配给一组查找表,而是分配或配置为可编程半导体器件中的嵌入式签名寄存器(embedded signature registers)。例如,与第一查找表相对应或物理位置上位于第一查找表附近的第一寄存器可被指定为嵌入式签名寄存器,用于存储固定值或签名信息,以便于器件或集成电路(Integrated Circuit,IC)被识别。对应第二查找表的第二寄存器被配置为存储第二查找表的第二输出信号。

另一方面,本公开的一个实施例公开了一种能够提供数字处理功能和网络通信的系统,该系统包括前述可编程集成电路器件。

再一方面,本公开的一个实施例公开了一种识别现场可编程门阵列(FPGA)器件的标识的方法,该方法通过多个可配置逻辑块(LB)中的一组签名寄存器来进行识别,该方法包括:

获取第一比特流,并将所述第一比特流转发到第一现场可编程门阵列,用于配置所述第一现场可编程门阵列;

启动对所述第一现场可编程门阵列的验证命令,要求所述第一现场可编程门阵列返回反映所述第一现场可编程门阵列的配置信息的第二比特流,该第二比特流包括从一组签名寄存器中获取的一组固定标识值,所述一组签名寄存器位于一个或多个可配置逻辑块;以及

根据第一比特流和第二比特流比较后从所述第二比特流中提取的一组固定标识值确定所述第一现场可编程门阵列的标识。

再一方面,本公开的一个实施例公开了一种确定可编程逻辑器件(PLD)的标识的方法,该方法通过位于多个可配置逻辑块(LB)中的一组签名寄存器来进行识别,该方法包括:

接收从可编程逻辑器件返回的验证比特流,该验证比特流反映了该可编程逻辑器件中的签名信息和当前编程信息;

识别嵌入在所述验证比特流中的与一组隐藏的签名寄存器相关的签名位位置,所述签名寄存器位于一个或多个可配置逻辑块中;

从与该组签名寄存器相关的签名位位置中提取一组固定标识(ID)值;以及

将一组固定标识值与预定义的可编程逻辑器件标识值进行比较,以识别该可编程逻辑器件的真伪。

再一方面,本公开的一个实施例公开了一种可编程集成电路器件,包括控制器以及与所述控制器耦合的多个逻辑块,所述逻辑块包括多个可配置逻辑切片,至少一个所述可配置逻辑切片包括多个查找表以及与所述查找表一一对应的寄存器;其中:

至少一个寄存器用于存储固定值,所述固定值用于识别所述可编程集成电路器件;

所述控制器用于响应于配置命令将所述固定值存入所述寄存器,以及用于响应于验证命令从所述寄存器中读取所述固定值。

通过以下阐述的详细描述、附图和权利要求,本公开示例性实施例的其他特征和优点将变得明显。

附图说明

通过以下详细描述和本公开的各种实施例的附图,将更充分理解本公开的示例性实施例,然而,附图不应被认为将本公开限制到具体的实施例,而仅用于解释和理解。

图1A-1B是根据本公开的一个实施例示出的可编程半导体器件(PSD)或可编程集成电路(PIC)框图,该可编程半导体器件或可编程集成电路包含用于识别器件标识(deviceidentity,deviceID)的签名寄存器。

图2是根据本公开的一个实施例示出的路由逻辑或路由结构框图,该路由逻辑或路由结构包括含有签名信息路由的可编程互连阵列(programmable interconnectionarray)。

图3A-3B是根据本公开的一个实施例示出的可编程半导体器件中包含签名寄存器的可配置逻辑元件(Logical Element,LE)框图。

图4是根据本公开的一个实施例示出的含有签名寄存器的可配置逻辑元件或逻辑阵列块框图。

图5是根据本公开的一个实施例示出的含有签名寄存器的可配置逻辑元件、可配置逻辑切片(CLS)或逻辑阵列块框图。

图6A-6B是根据本公开的一个实施例示出的识别器件标识的过程框图。

图7是根据本公开的一个实施例示出的使用一个或更多个可编程半导体器件的系统或计算机图,该可编程半导体器件含有一组签名寄存器。

图8是根据本公开的一个实施例示出的、在云环境中使用的可编程半导体器件的各种应用框图,该可编程半导体器件含有签名寄存器。

图9是根据本公开的一个实施例示出的确定器件标识的过程流程图。

具体实施方式

本公开的实施例公开了用于提供能够使用一组签名寄存器识别器件标识的可编程半导体器件(PSD)的方法和/或装置。

以下详细描述的目的是提供对本公开的一个或更多个实施例的理解。本领域的普通技术人员会意识到,以下详细描述仅是说明性的,并不意在以任何方式加以限制。受益于本公开和/或本描述的技术人员很容易联想到其它实施例。

为清楚起见,本文所述实施方式的常规特征并没有全部展示和描述。当然,可以理解,在任何这种实际实施方式的开发过程中,为了实现开发者的特定目标,例如遵守应用相关和商业相关的限制,可能会做出许多特定于实施方式的决定,而且这些特定目标会因不同的实施方式和不同的开发者而有所不同。此外,可以理解,这些开发工作虽然可能复杂耗时,但对于那些受益于本公开的实施例的本领域普通技术人员而言,这些开发工作只是一项常规的工程工作。

附图中所示的本公开的各种实施例并非按比例绘制。相反,为清楚起见,可以扩大或缩小各种特征的尺寸。此外,为清楚起见,一些图可能会被简化。因此,附图中可能没有描绘出给定装置(例如:设备)或方法的所有组件。在整个附图和下面的详细描述中将使用相同的参考标志来指代相同或类似的部件。

根据本公开的实施例,此处描述的组件、过程步骤和/或数据结构可以使用各种类型的操作系统、计算平台、计算机程序和/或通用机器来实现。此外,本领域的普通技术人员会认识到,在不偏离本文所公开的概念的范围和精神的情况下,也可以使用不那么通用的设备,例如硬件设备、现场可编程门列阵(FPGA)、特殊应用集成电路(ASIC)等。如果包含一系列过程步骤的方法是由计算机或机器实现的,并且这些过程步骤可以存储为机器可读的一系列指令,则可以存储在诸如计算机存储设备等的有形介质上,例如但不限于:磁阻随机存取存储器(Magnetoresistive Random Access Memory,MRAM)、相变存储器或铁电随机存取存储器(Ferroelectric Random Access Memory,FeRAM)、快闪存储器(Flash Memory)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable ReadOnlyMemory,PROM)、电可擦可编程只读存储器(Electrically Erasable ProgrammableReadOnly Memory,EEPROM)、跳跃驱动器(Jump Drive)、磁性存储介质(例如:磁带、磁盘驱动器等)、光存储介质(例如:只读光盘存储器(CD-ROM)、数字只读光盘存储器(DVD-ROM)、纸卡和纸带等)以及其他已知类型的程序存储器。

术语“系统”或“设备”在此一般用于描述任何数量的组件、元件、子系统、设备、分组开关元件、分组开关、接入开关、路由器、网络、计算机和/或通信设备或机制,或其组成部分的组合。术语“计算机”包括能够执行指令的处理器、存储器和总线,其中计算机是指一台计算机或一个计算机集群、个人计算机、工作站、主机或其计算机的组合。

本文中所述“一个或更多个”和“一个或多个”含义相同,均包括以下任意情况之一:一个、两个、两个以上。本文中所述“输入/输出”(I/O)包括输入和/或输出。

可编程半导体器件(或称可编程集成电路器件、现场可编程门阵列或可编程逻辑器件)是关键基础设施中的基础控制设备,其安全性涉及到整个控制系统的稳定运行,如果攻击者利用通信或系统漏洞篡改可编程半导体器件的功能可能无法被用户察觉,这将给控制系统的安全运行带来威胁。

另一方面,由于可编程半导体器件本身没有防伪的功能,如果用户无意间购买或使用了假冒的可编程半导体器件,假冒的可编程半导体器件无法保证使用寿命和售后,导致用户合法的权益受损。

有鉴于此,申请人提供一种用于执行编程逻辑功能的可编程集成电路(PIC)器件(所述PIC例如为FPGA或PLD),至少包含可配置逻辑块(LB)、路由连接阵列和配置存储器,其中,至少一个所述可配置逻辑块包括:

多个查找表(LUT),其被配置为根据一组输入信号生成一个或更多个输出信号;以及

多个寄存器,其耦合到所述多个查找表并布置成使得所述多个寄存器中的一个寄存器对应于所述多个查找表中的一个查找表,其中,所述多个寄存器中对应于所述多个查找表中的第一查找表的第一寄存器被指定用于存储固定值,以便于识别所述可编程集成电路器件,其中,所述多个寄存器中对应于所述多个查找表中的第二查找表的第二寄存器被配置为存储所述第二查找表产生的第二输出信号。

在一些示例性实施例中,可以每个可配置逻辑块均包括上述多个查找表和多个寄存器。

所述寄存器耦合到所述多个查找表并布置成使得所述多个寄存器中的一个寄存器对应于所述多个查找表中的一个查找表是指:所述寄存器与查找表一一对应连接。所述用于存储固定值的寄存器可以是所述可配置逻辑块中的任意一个寄存器。当一个寄存器被配置为用于存储固定值时,与该寄存器一一对应连接的查找表产生的输出信号可以存储在其他寄存器中,或者直接输出。

通过在可配置逻辑块中设置一个用于存储固定值的寄存器,可以实现该可编程集成电路器件的被识别。该固定值可以是用户自行设置的任何值,用户通过定期读取该值,可以实现防攻击验证。该固定值可以是厂家设置的防伪信息(如签名信息),用户通过读取该值,可以实现产品的防伪功能。

在一示例性实施例中,所述第一寄存器中的固定值可以是由本地控制器强加的。本地控制器可以响应于外部控制器(例如主机控制器)的命令,向第一寄存器中写入固定值。本公开实施例对写入固定值的时机不做限制,例如可以是在集成电路识别过程中写入。

在一个示例性实施例中,可编程集成电路器件可以包括控制器以及与所述控制器耦合的多个逻辑块,所述逻辑块包括多个可配置逻辑切片,至少一个所述可配置逻辑切片包括多个查找表以及与所述查找表一一对应的寄存器;其中:

至少一个寄存器用于存储固定值,所述固定值用于识别所述可编程集成电路器件;

所述控制器用于响应于配置命令将所述固定值存入所述寄存器,以及用于响应于验证命令从所述寄存器中读取所述固定值。

例如,可编程集成电路器件中的控制器基于外部控制器的控制,将第一比特流中预设位置的预配置值作为用于识别器件的固定值存入寄存器,当用户需要识别该器件时,可编程集成电路器件中的控制器可以基于外部控制器的控制,从该寄存器中读取固定值写入第二比特流,第二比特流回流至外部控制器,根据第二比特流中的固定值是否与预配置值匹配来判断所述器件是否被攻击或者是否为假冒器件。

本公开实施例提供了一种可以实现防伪和防攻击的可编程集成电路器件,无需增加额外的元件,实现成本低,且可以实现远程识别,便于用户操作。

本公开的一个实施例示出了具有可配置逻辑块、路由连接阵列和配置存储器的可编程半导体器件(或称可编程集成电路器件、现场可编程门阵列或可编程逻辑器件),用于执行用户定义的编程逻辑功能。在一个示例中,每个可配置逻辑块包括一组查找表和相关的多个寄存器。例如,每个查找表被配置为根据一组输入信号产生一个或更多个输出信号。寄存器的排列方式是每个寄存器对应一个查找表。在一个实施例中,在一个或多个可配置逻辑块中,至少一个寄存器不是分配给一组查找表,而是分配或配置为嵌入式签名寄存器。例如,与第一查找表相对应或物理位置上位于第一查找表附近的第一寄存器可被指定为嵌入式签名寄存器,用于存储固定值或签名信息,以便于器件或集成电路被识别。对应第二查找表的第二寄存器被配置为存储第二查找表的第二输出信号。

在一示例性实施例中,可以分配多个寄存器用于存储固定值,例如,所述可配置逻辑块中的多个寄存器对应于所述多个查找表中的第三查找表的第三寄存器被指定用于存储固定值,以便于识别所述可编程集成电路器件。设置多个用于存储固定值的寄存器可便于用户设置更多的用于识别所述可编程集成电路器件的信息。

当设置多个用于存储固定值的寄存器时,该些寄存器可以位于相同的可配置逻辑块中,也可以位于不同的可配置逻辑块中。不排除可以由用户指定寄存器的情况,以增加防攻击的效果。

在一示例性实施例中,所述多个寄存器中对应于所述多个查找表中的第四查找表的第四寄存器被配置为存储由所述第四查找表产生的第四输出信号。

在一示例性实施例中,所述多个寄存器中对应于所述多个查找表中的第五查找表的第五寄存器被配置为存储由所述第五查找表产生的第五输出信号;所述多个寄存器中对应于所述多个查找表中的第六查找表的第六寄存器被配置为存储由所述第六查找表产生的第六输出信号。

在一示例性实施例中,所述多个寄存器中对应于所述多个查找表中的第七查找表的第七寄存器被配置为存储由所述第七查找表产生的第七输出信号;以及所述多个寄存器中对应于所述多个查找表中的第八查找表的第八寄存器被配置为存储由所述第八查找表产生的第八输出信号。

在一示例性实施例中,所述多个寄存器中对应于所述多个查找表中的第三查找表的第三寄存器被指定用于存储签名信息,以便于识别所述可编程集成电路器件;以及所述多个寄存器中对应于所述多个查找表中的第四查找表的第四寄存器被指定用于存储签名信息,以便于识别所述可编程集成电路器件。其中,所述签名信息可以是能够识别器件真伪的产品签名。可选地,所述可编程集成电路器件中可以既包含用于存储固定值的第一寄存器,又包含用于存储签名信息的第三寄存器,此时,可以同时实现产品防伪和防攻击的功能。该用于存储固定值的第一寄存器与用于存储签名信息的第三寄存器可以在相同的可配置逻辑块中,也可以在不同的可配置逻辑块中,本公开实施例对此不做限制。该用于存储签名信息的寄存器可以有一个或多个,当有多个时,该多个用于存储签名信息的寄存器可以位于相同的可配置逻辑块中,也可以位于不同可配置逻辑块中。

在一示例性实施例中,所述可配置逻辑块还可包括多个多路复用器,每个多路复用器耦合到一个所述查找表和一个与所述查找表对应的寄存器,并被配置为在所述查找表和所述寄存器之间提供内部路由。

图1A是根据本公开的一个实施例示出的可编程半导体器件框图,该可编程半导体器件含有签名寄存器,以便于所述可编程半导体器件被识别(identification ID)。可编程半导体器件,也称为现场可编程门阵列或一种可编程逻辑器件(PLD),包括能够使用一组嵌入式签名寄存器来验证可编程半导体器件的器件标识符(device identifier)。例如,器件标识符能够通过比特流的实现来验证现场可编程门阵列的真伪。即使将一个或更多个块(电路或元件)添加到框图170中或从框图170中移除,本公开示例性实施例的基本概念也不会改变。

可编程半导体器件包括由输入/输出块(Input/Output Blocks IOs)182环绕的可配置逻辑块180阵列,和可编程互连资源(Programmable Interconnect Resources,PIR)188,该可编程互连资源包括在逻辑块180和输入/输出块182的行和列之间延伸的垂直互连和水平互连。可编程互连资源188还可包括互连阵列解码器(Interconnecting ArrayDecoders,IADs)或可编程互连阵列(Programmable Interconnection Array,PIA)。术语“可编程互连资源”、“互连阵列解码器”和“可编程互连阵列”在下文中可互换使用。

在一个示例中,每个逻辑块包括可编程组合电路和可选择输出寄存器,该可选择输出寄存器被编程为实现至少一部分的用户逻辑功能。互连资源的可编程互连、连接或通道可使用各种开关配置,以在逻辑块180之间产生用于执行逻辑功能的信号路径。每个输入/输出块182都是可编程的,以选择性地使用可编程半导体器件的输入/输出引脚(未示出)。

在一个实施例中,可编程半导体器件可以划分为多个可编程分区区域(Programmable Partitioned Region PPR)172,其中每个可编程分区区域172包括一部分逻辑块180、一些可编程互连资源188以及输入/输出块182。将可编程半导体器件组织成多个可编程分区区域172的益处是以下一个或多个:优化存储容量,方便电源管理以及便于网络输出的管理。

比特流是一个二进制序列(或文件),包含现场可编程门列阵或可编程逻辑器件的编程信息。比特流的创建是为了反映用户的逻辑功能和某些控制信息。为了使现场可编程门阵列或可编程逻辑器件正常工作,至少需要对现场可编程门阵列中的一部分寄存器或触发器进行编程或配置,然后才能工作。比特流作为现场可编程门阵列的输入配置数据,而回读(readback)比特流是回读二进制序列,用于验证使用中的现场可编程门阵列的当前配置状态。回读比特流是一个二进制序列,其是通过从当前使用的至少一部分现场可编程门阵列寄存器中检索比特值而产生的。

使用回读比特流的好处是验证使用中的现场可编程门阵列,以及备份配置信息以便紧急恢复。

在一示例性实施例中,前述第一寄存器可用于在比特流回读过程中输出存储的固定值,以验证所述可编程集成电路器件的标识。

图1B是根据本公开的一个实施例示出的可编程半导体器件或可编程集成电路框图,该可编程半导体器件或可编程集成电路含有用于识别器件标识的嵌入式签名寄存器。为简化上述讨论,术语“可编程半导体器件”、“可编程集成电路”、“现场可编程门列阵”、“可编程逻辑器件”均指相同或相似的器件,在下文中可互换使用。框图100包括多个可编程分区区域102-108,可编程互连阵列150和区域输入/输出端口166。任意一个或多个可编程分区区域102-108包括控制单元110(或称控制器)、存储器112以及逻辑块116。控制单元110可配置成单个控制单元,同样,存储器112也可配置成单个存储器以存储配置。即使将一个或更多个块(电路或元件)添加到框图100中或从框图100中移除,本公开示例性实施例的基本概念也不会改变。

逻辑块116也称为可配置功能单元(Configurable Function Unit,CFU),包括多个逻辑阵列块(Logic Array Block,LAB)118,逻辑阵列块也称为可配置逻辑单元(Configurable Logic Unit,CLU)。例如,每个逻辑阵列块118可以进一步组织成包括一组可编程逻辑元件(LE)、可配置逻辑切片(Configurable Logic Slice,CLS)或宏单元(图1B未示出)或其他电路。在一个示例中,每个逻辑阵列块可以包括32-512个可编程逻辑元件。输入/输出引脚(图1B未示出)、逻辑阵列块和逻辑元件通过可编程互连阵列150和/或其它总线(例如:第一总线114或第二总线162)连接,以促进可编程互连阵列150和可编程分区区域102-108之间的通信。

每个逻辑元件除了包括查找表和寄存器外,还可包括可编程电路,如乘积项矩阵(product-term matrix)。逻辑元件也称为单元、可配置逻辑块(Configurable LogicBlock,CLB)、切片、可配置功能单元、宏单元等。每个逻辑元件可独立配置以执行顺序和/或组合逻辑操作。即使将一个或更多个块和/或电路添加到可编程半导体器件或从中移除,可编程半导体器件的基本概念也不会改变。

控制单元110也称为配置逻辑,可以是一个单个控制单元。例如,控制单元110基于存储在存储器112中的配置信息来管理和/或配置逻辑阵列块118中的单个逻辑元件。一些输入/输出端口或输入/输出引脚是可配置的,因此其可被配置为输入引脚和/或输出引脚。一些输入/输出引脚被编程为双向引脚(包括输入和输出),而其它输入/输出引脚被编程为单向引脚(包括输入或输出)。诸如单元110的控制单元被用于根据系统时钟信号来处理和/或管理可编程半导体器件操作。

逻辑块116包括可由最终用户编程的多个逻辑阵列块。每个逻辑阵列块包含多个逻辑元件,其中每个逻辑元件还包括一个或更多个查找表(LUT)以及一个或更多个寄存器(或D型触发器或锁存器)。根据应用,逻辑元件可被配置为基于由配置软件实现的预定义功能库执行用户特定功能。在某些应用中,可编程半导体器件还可包括用于执行特定功能的一组固定电路。例如,固定电路包括但不限于以下一个或更多个:处理器、数字信号处理(Digital Signal Processing DSP)单元、无线收发器等。

可编程互连阵列150通过诸如第一总线114或第二总线162之类的各种内部总线耦合到逻辑块116。其中,第一总线114为存储器112和/或控制器110与可编程互连阵列150之间的总线,第二总线162为逻辑块116与可编程互连阵列150之间的总线。在一些实施例中,第一总线114或第二总线162是可编程互连阵列150的一部分。每条总线包括用于传输信号的通道或导线。术语“通道”、“路由通道”、“导线”、“总线”、“连接”和“互连”均指相同或相似的连接,在此处可互换使用。可编程互连阵列150还可用于通过输入/输出引脚和逻辑阵列块直接或间接地从其它设备接收数据和/或向其他设备传输数据。

存储器112可以包括位于可编程分区区域上的多个存储单元。另外,存储器112可在可编程半导体器件中组合成一个单一存储器单元。在一个实施例中,存储器112是非易失性存储器存储单元,既可用于配置,也可用于用户存储。非易失性存储器存储单元可以是但不限于磁阻随机存取存储器、快闪存储器、铁电随机存取存储器和/或相变存储器(或硫系化合物随机存取存储器)。为了简化前面的讨论,磁阻随机存取存储器在所有其余讨论中被用作示例性非易失性存储器。根据应用,存储器112的一部分可被指定、分配或配置为块随机存取存储器(Block RAM,BRAM),用于在可编程半导体器件中存储大量数据。

可编程半导体器件包括由可编程互连阵列150互连的多个可编程逻辑块116,其中每个可编程逻辑块被进一步划分为多个逻辑阵列块118。在一实施例中,每个逻辑阵列块118可包括多个查找表、多路复用器和寄存器。在配置过程中,用户为每个查找表编程一个真值表,以实现所需逻辑功能。每个逻辑阵列块可进一步组织以包括多个逻辑元件(LE),可视为可配置逻辑单元(Configurable Logic Cell,CLC)或可配置逻辑切片。例如,四输入(16位)查找表从路由结构(图1B未示出)接收输入查找表的逻辑值。基于在配置可编程半导体器件期间编程进查找表的真值表,根据输入查找表的逻辑值,通过查找表的已编程真值表生成组合输出。随后,组合输出在时钟周期结束之前被锁存或缓冲到寄存器或触发器中。

在一个实施例中,一组签名寄存器被嵌入和/或分散于多个逻辑元件。例如,已配置的逻辑元件可配置一个或更多个专用于签名寄存器120的寄存器。器件标识的功能是允许用户或应用通过一组签名寄存器120确定使用中的现场可编程门阵列的标识。例如,用户可以使用器件标识来确定是否已经检测到假冒器件。

相应地,使用器件标识的好处是通过清除低质量的假冒器件来提高整体器件责任和完整性。

图2是根据本公开的一个实施例示出的路由逻辑或路由结构框图200,该路由逻辑或路由结构包括含有路由签名信息的可编程互连阵列。框图200包括控制逻辑206、可编程互连阵列202、输入/输出引脚230和时钟单元232。控制逻辑206类似于图1B所示的控制单元,提供各种控制功能,包括通道分配、差分输入/输出标准和时钟管理。控制逻辑206可以包含易失性存储器、非易失性存储器或易失性和非易失性存储器设备的组合,用于存储诸如配置数据的信息。在一个实施例中,控制逻辑206可被整合到可编程互连阵列202中。即使将一个或更多个块(电路或元件)添加到框图200中或从框图200中移除,本公开示例性实施例的基本概念也不会改变。

通过第三总线231连接到可编程互连阵列202的输入/输出引脚230包含多个可编程输入/输出引脚,该输入/输出引脚被配置为接收和/或向外部设备传输信号。例如,每个可编程输入/输出引脚可被配置为输入引脚、输出引脚或双向引脚。根据应用,输入/输出引脚230可并入控制逻辑206中。

在一个示例中,时钟单元232通过第四总线233连接到可编程互连阵列202,接收来自其他组件(如时钟树电路或全局时钟振荡器)的各种时钟信号。在一个示例中,时钟单元232响应系统时钟和参考时钟,产生时钟信号,用于实现输入/输出通信。根据应用,例如,时钟单元232向可编程互连阵列202提供包括参考时钟(多个参考时钟)在内的时钟信号。

在一个方面,可编程互连阵列202可被组织成包括第一通道组210和第二通道组220、第五总线204和输入/输出总线(如图中154、164、174、184)的阵列方案。第一通道组210、第二通道组220用于基于可编程互连阵列配置促进在逻辑块之间路由信息。通道组也可通过内部总线或连接(如第五总线204)相互通信。在图2所示实施例中,第一通道组210包括四个互连阵列解码器(IAD)212-218。第二通道组220包括四个互连阵列解码器222-228。互连阵列解码器的功能是为数据传输提供可配置的路由资源。在其他实施例中,所述通道组中互联阵列解码器数量可根据需要设定,本公开对此不做限制。

诸如互连阵列解码器212的互连阵列解码器包括路由多路复用器或选择器,用于在以下一种或多种器件之间路由信号:输入/输出引脚、反馈输出和逻辑阵列块输入,以到达其目的地。例如,一个互连阵列解码器可以包括多达36个多路复用器,该多路复用器可置于四组中,其中每组包含九行多路复用器。每个通道组内的互连阵列解码器数量是逻辑阵列块内逻辑元件数量的函数。

在一个实施例中,可编程互连阵列202指定一个特殊互连阵列解码器(如互连阵列解码器218),以方便签名信息路由。例如,互连阵列解码器218被指定用于处理比特流传输期间的连接和/或路由签名信息。可分配额外的互连阵列解码器用于处理器件标识。

在可编程互连阵列中使用互连阵列解码器218作为指定签名路由的优点是方便可编程半导体器件或现场可编程门阵列中用于器件标识的签名信息的路由。

图3A是根据本公开的一个实施例示出的可编程半导体器件中包含嵌入式签名寄存器的可配置逻辑块、可配置逻辑元件或可配置逻辑切片302的框图300。框图300包括多个查找表310-318、多路复用器(multiplexer Muxes)330-338、嵌入式签名寄存器320-322以及寄存器326-328。在一个示例中,多路复用器330-338用于响应查找表的输入如输入查找表的逻辑值(所述输入包括但不限于以下信号中的一个或多个:A1-z、B1-z、......X1-z、Data1-z),选择中间输出。即使将一个或更多个块(电路或元件)添加到框图300或从框图300移除,本公开的示例性实施例的基本概念也不会改变。

在一个方面,嵌入式签名寄存器320-322,也称为签名寄存器、签名锁存器或签名触发器,用于存储能够识别器件真伪的产品相关签名或者存储能够识别器件是否被攻击的固定值。例如,嵌入式签名寄存器320-322存储由签名生成器生成的一组固定值或签名信息。存储的固定值随后在比特流回读过程中被检索。在一个实施例中,所述固定值或签名信息可以通过查找表(如图3A中的信号A1、B1、......X1-Am、Bm、......Xm)输入签名寄存器,或者可以通过数据线(如图3A中的数据1-数据m)输入签名寄存器。在一个实施例中,嵌入式签名寄存器320-322可以对用户或客户不可见。

如图3A所示示例,当寄存器320-寄存器322被配置作为签名寄存器,则该寄存器对应的查找表LUT310-LUT312的输出可以被配置给其他寄存器存储,或者直接输出。

寄存器326-328是对应于各种查找表(如查找表316-318)的一组寄存器。寄存器326-328的功能是在时钟周期结束之前锁存由查找表316-318产生的输出。根据应用,寄存器326-328用于数据完整性。

查找表的功能基本上是一个真值表,该真值表根据一组输入如A1...X1生成一个输出。在一个示例中,真值表决定或模拟一个组合逻辑应该如何表现。查找表一般包括一组逻辑与门和一组能够接受四(4)到六十四(64)个输入的多路复用器。

位于现场可编程门阵列内的查找表、多路复用器和寄存器(或触发器)等组件或构件创建了逻辑功能块,该逻辑功能块提供了逻辑实现,以执行某些用户定义的功能,例如但不限于以下一种或多种:数学计算、网络通信、人工智能、功率调节、安全监控等。寄存器和/或触发器提供存储功能,能够在时钟周期内存储查找表的输出。

可配置逻辑元件302包括多个查找表310-318、多路复用器330-338、嵌入式签名寄存器320-322和寄存器326-328。在一示例性实施例中,嵌入式签名寄存器320-322可以通过第六总线308存储用作器件标识符的签名信息或固定值。在一个方面,可以通过主机控制器(例如可以是外部控制器)的控制使器件标识符以本身或其他形式写入各签名寄存器(如寄存器320-322)中,写入签名寄存器的值用作对器件标识的值。在一个示例中,器件标识符被配置为根据传入比特流(incoming bitstream)的比特值以及时钟信号生成一组固定值。在一个示例中,可以响应传入比特流和时钟信号生成随机数。在一个实施例中,随机数用于作为固定值或签名信息或者用于生成固定值或签名信息。

在一个方面,可配置逻辑元件302中的一部分查找表没有相关的寄存器来锁存输出或结果,因为这些寄存器被专用于作为签名寄存器。例如,查找表310-312没有相应的寄存器或触发器来锁存输出或结果,因为寄存器320-322可以被分配成一组签名寄存器。查找表310-312可以是任何数量的查找表,能够分别接收任何数量的输入,如A1-m至X1-m。另外,查找表的另一部分(如查找表316-318)被配置为具有相应的寄存器(如寄存器326-328)。查找表316-318可以是任何数量的查找表,能够分别接收任何数量的输入,如A1-n至X1-z

使用器件标识的优点是,其能根据从回读比特流中检测到的签名信息来识别现场可编程门阵列制造商身份或型号。

图3B是根据本公开的一个实施例示出的可编程半导体器件中包含嵌入式签名寄存器的可配置逻辑切片303的框图301。可配置逻辑切片303包括多个查找表310-318、多路复用器(Muxes)330-338、嵌入式签名寄存器356-358以及寄存器350-352。在一个示例中,多路复用器330-338用于响应查找表的输入(例如包括以下信号中一个或多个:A1-z、B1-z、......X1-z、Data1-z)选择中间输出。框图301类似于图3A所示的框图300,只是框图301中的嵌入式签名寄存器356-358与框图300中的嵌入式签名寄存器320-322位于不同的物理位置。即使将一个或更多个块(电路或元件)添加到框图301中或从框图301中移除,本公开示例性实施例的基本概念也不会改变。

嵌入式签名寄存器356-358,又称签名寄存器、签名锁存器或签名触发器,用于识别使用中器件的真伪。例如,嵌入式签名寄存器356-358存储由签名生成器生成的一组固定值或签名信息。存储的固定值或签名信息随后在比特流回读过程中被检索。在一个实施例中,嵌入式签名寄存器356-358对用户或客户不可见。在可配置逻辑切片303内容纳嵌入式签名寄存器的物理位置可以为任何位置。例如,用于容纳嵌入式签名寄存器的物理位置可以在可配置逻辑切片303的顶部(如图3A所示位置)、可配置逻辑切片303的中部、可配置逻辑切片303的底部(如图3B所示位置),或者在嵌入式签名寄存器和寄存器之间以打乱顺序排列的随机位置。

寄存器350-352是对应于各种查找表(如查找表310-312)的一组寄存器。寄存器350-352的功能是在时钟周期结束之前分别锁存由查找表310-312产生的输出。根据应用,寄存器350-352用于数据完整性。

允许在可配置逻辑切片内灵活分配嵌入式签名寄存器的好处是,其可提高基于应用的资源分配效率。

在一示例性实施例中可以定期变更签名寄存器,例如在第一周期,将寄存器356-358作为签名寄存器,在第二周期,将签名寄存器变更为350-352。通过定期变更签名寄存器的位置,可以增加防攻击的效果。

图4是根据本公开的一个实施例示出的包含签名寄存器的可配置逻辑元件、可配置逻辑切片或逻辑阵列块402-406的框图400。在一个实施例中,可配置逻辑元件402包括可配置路由单元或可编程互连阵列426、八(8)个查找表410-424、可编程多路复用阵列(Programmable Multiplexing Array,PMA)428和寄存器430-444。在一个实施例中,寄存器430-432被指定或分配为嵌入式签名寄存器,从而对最终用户不可见。即使将一个或更多个块(电路或元件)添加到框图400中或从框图400中移除,本公开示例性实施例的基本概念也不会改变。本实施例中,可配置逻辑元件402中查找表的数量仅为举例说明。

在一个实施例中,可配置逻辑元件406包括可配置路由单元或可编程互连阵列456、六(6)个查找表460-470、可编程多路复用阵列458和寄存器480-490。在一个实施例中,寄存器480-482被指定或分配为嵌入式签名寄存器,从而对最终用户不可见。寄存器480-482用于处理固定值或签名信息,而查找表460-462没有相应的寄存器用于锁存输出。本实施例中,可配置逻辑元件406中查找表的数量仅为举例说明。

在一个实施例中,可编程半导体器件包括可配置逻辑块、路由连接阵列和配置存储器,用于根据用户的比特流执行编程逻辑功能。例如,每个可配置逻辑块包括一个或更多个可配置逻辑元件,其中每个可配置逻辑元件包括多个查找表和寄存器。在一个示例中,查找表被配置为根据一组输入信号产生一个或更多个输出信号。

耦合到查找表的寄存器的排列方式是一个寄存器对应一个查找表。在一个示例中,对应第一查找表(如查找表410)的第一寄存器(如寄存器430)被指定用于存储固定值以便于识别所述可编程集成电路器件。对应第二查找表(如查找表414)的第二寄存器(如寄存器434)被配置为存储由第二查找表(如查找表414)产生的第二输出信号。例如,在比特流回读过程中读取固定值或签名信息,以验证器件标识。

在一个实施例中,对应第三查找表(如查找表412)的第三寄存器(如寄存器432)被指定作为嵌入式签名寄存器以便于器件被识别。对应第四查找表(如查找表416)的第四寄存器(如寄存器436)被配置为存储由第四查找表(如查找表416)产生的第四输出信号。或者,在另一实施例中,与诸如查找表412的第三查找表对应的第三寄存器(如签名寄存器432)被指定用于存储固定值或签名信息,以便于识别所述可编程集成电路器件。此外,对应第四查找表(如查找表416)的第四寄存器(如寄存器436)被指定用于存储签名信息,以便于识别所述可编程集成电路器件。

在一个方面,对应第五查找表(如查找表418)的第五寄存器(如寄存器438)存储由第五查找表产生的第五输出信号,对应第六查找表(如查找表420)的第六寄存器(如寄存器440)存储由第六查找表产生的第六输出信号。对应第七查找表(如查找表422)的第七寄存器(如寄存器442)存储由第七查找表产生的第七输出信号,以及对应第八查找表(如查找表424)的第八寄存器(如寄存器444)存储由第八查找表产生的第八输出信号。在一个示例中,可编程多路复用阵列428中的多个多路复用器用于在查找表410-424和寄存器430-444之间提供内部路由。

根据应用,在可编程半导体器件或现场可编程门阵列中分配的嵌入式签名寄存器的数量可以由制造商进行编程。例如,选定的可配置逻辑块可以包括至少两个嵌入式签名寄存器。

图5是根据本公开的一个实施例示出的包含签名寄存器的可配置逻辑元件(可配置逻辑切片或逻辑阵列块)502-504的框图500。可配置逻辑元件502类似于可配置逻辑元件402,只是嵌入式签名寄存器的物理位置不同。在一个实施例中,可配置逻辑元件502包括可配置路由单元或可编程互连阵列426、八(8)个查找表410-424、可编程多路复用阵列428和寄存器432-444、530-534。在一个实施例中,寄存器530和534被指定或分配为嵌入式签名寄存器,从而对最终用户不可见。即使将一个或更多个块(电路或元件)添加到框图500中或从框图500中移除,本公开示例性实施例的基本概念也不会改变。本实施例中,可配置逻辑元件502中查找表的数量仅为举例说明。

在一个实施例中,可配置逻辑元件504包括可配置路由单元或可编程互连阵列456、六(6)个查找表460-470、可编程多路复用阵列458以及寄存器480-490和584。在一个实施例中,寄存器480-482和寄存器584被指定或分配为嵌入式签名寄存器,从而对最终用户不可见。当寄存器480-482和寄存器584用于处理固定值或签名信息时,查找表460-464没有相应的寄存器用于锁存输出。本实施例中,可配置逻辑元件504中查找表的数量仅为举例说明。

根据应用,制造商能够在向最终用户发货之前,有选择地将嵌入式签名寄存器的总数和嵌入式签名寄存器的位置编程到制造的现场可编程门阵列器件上。能够灵活分配所需签名寄存器的好处是可以提高资源分配的效率。例如,对于某些应用来说,可能不需要专门设置一组签名寄存器,因此可以分配或编程总数量为零的嵌入式签名寄存器。

图6A是根据本公开的一个实施例示出的识别器件标识过程的逻辑框图600。框图600包括示例性的可配置逻辑元件602、回读比特流606、器件标识组件618和预定义器件标识(Predefined Device Identity,PDI)块628。在一个示例中,可配置逻辑元件602包含四(4)个查找表610-616,其中包括两(2)个嵌入式签名寄存器620和两(2)个常规寄存器622。即使将一个或更多个块(电路或元件)添加到框图600中或从框图600中移除,本公开示例性实施例的基本概念也不会改变。

在一个方面,比特流606可以是由制造商的主机发起的回读比特流,用于验证使用中的器件或可编程半导体器件。当发起比特流回读命令时,可编程半导体器件或现场可编程门阵列与主机控制器(如果有的话)一起开始生成回读比特流或比特流606。在一个实施例中,比特流606包括预定义物理位位置(bit location)中的签名信息或固定值608。在可编程半导体器件中的各个可配置逻辑块中从嵌入式签名寄存器中检索签名信息或固定值608。例如,比特流606包含从嵌入式签名寄存器620检索的签名信息或固定值。虽然签名寄存器620对应查找表610-612或物理位置上位于查找表610-612附近,但查找表610-612在当前配置中没有寄存器或触发器用于锁存输出。

在一个实施例中,器件标识组件618包括签名提取器630、签名数据库632和比较器636。在其他实施例中,可以添加额外的组件,例如但不限于随机数解码器、签名位位置(signature-bit location)分配器、时钟组件等。在操作时,签名提取器630从比特流606的各个物理位置检索或提取签名信息或固定值,如标号658所示。比较器636将来自签名提取器630的提取值与来自签名数据库(database,DB)632的预定义或预加载的签名进行比较,并生成比较结果。预定义或预加载的签名是用于识别器件标识或芯片制造商的制造商签名。例如,由数字序列表示的一个预定义签名为由高云半导体TM制造GW1NZ系列产品。比较结果随后被用于引用到预定义器件标识块628。

在一个实施例中,预定义器件标识块628包括但不限于以下子块中的一种或多种:验证子块650、制造标识子块652、未知器件子块654和其它子块656。已验证的子块650提供信息,以验证所使用的可编程半导体器件或现场可编程门阵列器件是否是可靠的或由经过验证的公司制造的。制造商标识子块652用于根据比较结果,报告生产可编程半导体器件的制造商的来源。未知器件654用于根据比较结果,报告发现的假冒器件。根据应用,在一个实施例中,其他子块656可用于根据比较结果验证最终用户的身份。不同的应用可能会响应比较结果生成不同的报告。

在操作期间,能通过位于多个逻辑块中的一组指定寄存器(如嵌入式签名寄存器620)确定可编程逻辑器件的标识的过程包括接收从可编程逻辑器件返回的验证比特流,该比特流反映了可编程逻辑器件中的固定值(签名信息)和当前编程信息。例如,验证比特流称为回读比特流606。识别嵌入在验证比特流中的一组隐藏签名寄存器相关的签名位位置(如位置608)后,从与该组签名寄存器相关的签名位位置608中提取固定标识值。随后将固定的标识值与可编程逻辑器件的预定义的标识值进行比较,以识别可编程逻辑器件的真伪。所述签名寄存器位于一个或多个可配置逻辑块中。在一示例性实施例中,根据应用,固定的标识值可以按照主机定义的时间戳进行解密。例如,响应于根据初始输入比特流生成的随机值和系统时钟,对固定标识值进行解密。解密的方法取决于加密的方法,本实施例仅提供一种用系统时钟进行加解密的示例性方式,在其他实施例中,可以采用其他方式进行加解密,以增加防攻击效果。

使用器件标识模块(其可以是软件、硬件或软件和硬件的组合)的优点是可以验证器件和识别器件规格。

图6B是根据本公开的一个实施例示出的、用于识别器件标识的固定值或签名信息的生成过程的逻辑框图660。框图660示出了基于传入比特流662生成回读比特流680的示例性过程。当传入比特流662到达可编程半导体器件时,从比特流662中提取位于传入比特流662内特定物理位位置的预签名位信息666,如标号664所示。组合器668组合或收集来自传入比特流662的预签名位信息666,并将组合后的预签名位信息转发到传入比特块670。在一个实施例中,预签名位信息666还被转发到数字生成器672,用于基于至少一部分预签名位信息666生成随机数。预签名位信息666位于与签名信息或固定值相同的物理位位置。

在一个实施例中,标识生成器676生成一组签名信息,该签名信息从可编程半导体器件中各种可配置逻辑块中的各种嵌入式签名寄存器中检索得到。另外,标识生成器676也能响应数字生成器672生成的随机数和系统时钟674,生成签名信息。在一个方面,数字生成器672被用于通过基于至少一部分预签名位信息生成随机数来减少未经授权的数据篡改。

在本例中,前述签名生成器包括标识生成器676,或者包括数字生成器672和标识生成器676。

在一个实施例中,在生成签名信息后,分配器678将代表签名信息的比特序列分配到回读比特流680的位的位置682。回读比特流680随后(如识别过程中)被转发到制造商的主机(或者用户的主机),以确定使用中的可编程半导体器件或现场可编程门阵列的真伪。即使将一个或更多个块(电路或元件)添加到框图660中或从框图660中移除,本公开示例性实施例的基本概念也不会改变。

图7是根据本公开的一个实施例示出的系统或计算机的示意图700,该系统或计算机使用包含一组签名寄存器的一个或更多个可编程半导体器件。计算机系统700包括处理单元701、接口总线712和输入/输出(Input/Output IO)单元720。处理单元701包括处理器702、主存储器704、系统总线711、静态存储设备706、总线控制单元705、输入/输出元件(设备)730和现场可编程门列阵785。即使将一个或更多个块(电路或元件)添加到图7中或从图7中移除,本公开示例性实施例的基本概念也不会改变。

系统总线711用于在各种组件和处理器702之间传输信息以进行数据处理。处理器702可以是多种通用处理器、嵌入式处理器和微处理器中的任何一种,例如嵌入式处理器、 CoreTMDuo、CoreTMQuad、PentiumTM微处理器、MotorolaTM68040、系列处理器或Power PCTM微处理器。

主存储器704,可以包括多级缓存存储器,存储经常使用的数据和指令。主存储器704可以是随机存取存储器(Random Access Memory,RAM)、磁性随机存取存储器(MagneticRandom Access Memory,MRAM)或快闪存储器。静态存储器706可以是只读存储器(ROM),其与系统总线711耦合,用于存储静态信息和/或指令。总线控制单元705耦合到系统总线711和接口总线712,并且控制能够使用总线的组件,诸如主存储器704或处理器702。总线控制单元705管理系统总线711和接口总线712之间的通信。大容量存储内存或固态硬盘(SolidState Disk)诸如磁盘、光盘、硬盘驱动器、软盘、只读光盘存储器或快闪存储器,用于存储大量数据。

在一个实施例中,输入/输出单元720包括显示器721、键盘722、光标控制设备723和低功耗可编程逻辑器件725。显示设备721可以是有机发光半导体(OLED)显示设备、液晶设备、阴极射线管(Cathode Ray Tube CRT)、触摸屏显示器或其它合适的显示设备。显示器721用于投影或显示图像(如图形规划板的图像)。键盘722可以是常规的字母数字输入设备,用于在计算机系统700和计算机操作员之间传送信息。另一种类型的用户输入设备是光标控制设备723,例如传统的鼠标、触摸鼠标、轨迹球或其他类型的光标,用于在系统700和用户之间进行通信。

可编程逻辑器件725被耦合到接口总线712,以通过广域网向本地和远程计算机或服务器提供可配置逻辑功能。可编程逻辑器件725和/或现场可编程门列阵785包括一个或更多个用于验证器件真伪的器件标识模块。在一个示例中,可编程逻辑器件725可用于调制解调器或网络接口设备中,以促进计算机700和网络之间的通信。计算机系统700可以通过网络基础设施与多个服务器耦合,如下讨论所示。

图8是根据本公开的一个实施例示出的、可在云环境中使用的可编程半导体器件的各种应用的框图800,该可编程半导体器件含有能够识别现场可编程门阵列的器件标识的签名寄存器。框图800示出了一种能够提供数字处理功能和网络通信功能的系统,该系统中包括前述可编程集成电路器件,所述可编程集成电路器件包括可配置逻辑块,至少一个可配置逻辑块包括多个查找表以及与所述多个查找表一一对应的多个寄存器,其中至少一个寄存器用于存储固定值,以用于识别所述可编程集成电路器件。在一示例性实施例中,所述系统包括人工智能服务器808、通信网络802、交换网络804、互联网850和便携式电气设备815-819。在一个方面,具有器件标识功能的可编程半导体器件可被用于以下一种或多种环境中:人工智能服务器、便携式电气设备和交换网络。网络或云网络802可以是广域网、城域网(Metropolitan Area Network,MAN)、局域网(Local Area Network,LAN)、卫星/地面网络、或广域网、城域网和局域网的组合。即使将一个或更多个块(或网络)添加到框图800中或从框图800中移除,本公开的示例性实施例的基本概念也不会改变。

网络802包括多个网络节点(图8未示出),其中每个节点可以包括移动性管理实体(Mobility Management Entity,MME)、无线网络控制器(Radio Network Controller,RNC)、服务网关(Serving Gateway,S-GW)、分组数据网络网关(Packet Data NetworkGateway,P-GW)或家庭代理以提供各种网络功能。网络802与互联网850、人工智能服务器808、基站812和交换网络804相耦合。在一个实施例中,服务器808可以包括机器学习计算机(Machine Learning Computer,MLC)806。

交换网络804,可称为分组核心网络,包括能够提供无线接入通信的小区站点822-826,例如第三代(3rd generation,3G)、第四代或第五代蜂窝网络。在一个示例中,交换网络804包括基于网际互连协议(Internet Protocol,IP)和/或多协议标签交换(Multiprotocol Label Switching,MPLS)的网络,能够在开放系统互连基本参考模型(Open Systems Interconnection Basic Reference Model,OSI model)的层上运行,用于客户端和网络服务器之间的信息传输。在一个实施例中,交换网络804是通过蜂窝和/或无线网络在地理区域内有逻辑地耦合多个用户和/或便携式设备816-820。地理区域可指学校、城市、都市区、国家、洲等。

基站812,也称为小区站点、节点B或eNodeB,包括能够耦合到各种用户设备(UserEquipment,UE)和/或电气用户设备(Electrical User Equipment,EUE)的无线电塔。术语“用户设备”和“电气用户设备”是指类似的便携式设备,其可互换使用。例如用户设备或便携式电子设备(portable electronic device,PED)可以是通过无线通信的以下设备中的一种或多种:蜂窝电话815、笔记本电脑817、816、平板电脑和819。手持设备也可以是智能手机,如手机、手机、手机等。在一个示例中,基站812通过有线和无线通信网络促进诸如便携式手持设备815-819等移动设备之间的网络通信。基站812可包括额外的无线电塔和其他陆路交换电路。

互联网850是一个使用传输控制协议/网际互连协议(Transmission ControlProtocol/Internet Protocol,TCL/IP)的计算网络,以提供地理位置上分离的设备间的通信联系。在一个示例中,互联网850通过卫星接收器832耦合到供应商服务器838和卫星网络830。在一个示例中,卫星网络830可提供许多功能,例如无线通信和全球定位系统(GlobalPositioning System,GPS)。无线应用协议(Wireless Application Protocol,WAP)可以应用于很多领域,例如但不限于智能手机815-819、卫星网络830、汽车813、人工智能服务器808、商业807、家庭820等。

本公开的示例性实施例包括各种处理步骤,这些步骤将在下文中描述。实施例的步骤可体现于机器或计算机可执行的指令中。指令可用于使得编程有该指令的通用或专用系统执行本公开示例性实施例的步骤。另外,本公开示例性实施例的步骤可由包含执行步骤的硬线逻辑的特定硬件组件执行,或者由经编程的计算机组件和定制的硬件组件的任意组合执行。

图9是根据本公开的一个实施例示出的识别器件标识过程的流程图900。在方框902处,能够通过在多个可配置逻辑块上的一组指定寄存器验证使用中的现场可编程门阵列标识的过程包括获得第一比特流。第一比特流是基于用户定义的逻辑。

在方框904处,第一比特流被转发到现场可编程门阵列以配置现场可编程门阵列。例如,第一比特流通过通信网络从主机传输到包含现场可编程门阵列的系统。

在方框906处,向现场可编程门阵列发起验证命令,要求现场可编程门阵列返回反映现场可编程门阵列当前配置信息的第二比特流或回读比特流,该比特流包括从一组签名寄存器中获取的一组固定标识值或签名信息。在一个方面,签名寄存器位于各种可配置逻辑块和/或可配置逻辑元件中。在一个示例中,从各种可配置逻辑元件或可配置逻辑块中的多个签名寄存器读取寄存器存储值、签名信息或固定值。在一个示例中,预定义值或固定值被存储以及从各种可配置逻辑元件中的多个签名寄存器中检索。可配置逻辑块中至少有部分签名寄存器是对用户隐藏的,用于逻辑配置。

在方框908处,该过程能够根据从第二比特流或回读比特流中提取的一组固定标识值或签名信息,在第一比特流和第二比特流之间进行比较后,确定或验证使用中的现场可编程门阵列的标识。例如,现场可编程门阵列或可编程半导体器件可响应于预定义的现场可编程门阵列签名与嵌入在第二比特流中的签名之间的不匹配而被识别为假冒器件。该过程还可以响应于预定义的现场可编程门阵列签名和嵌入在回读比特流中的签名之间的比较,确定生产现场可编程门阵列的制造商以及器件型号。

虽然已经展示和描述了本公开的示例性实施例,但显而易见,基于本文的教导,本领域的普通技术人员可以在不偏离本公开的示例性实施例及其更广泛的方面的情况下进行改变和修改。因此,所附权利要求旨在将所有符合本公开本示例性实施例的真正精神和范围的变化和修改包含在权利要求的范围内。

33页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:硬盘延迟检测方法、装置及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!