EP3665610B1

Secure logic locking and configuration with camouflaged programmable micro netlists

Abstract

This record has no abstract on file.

EP3665610B1, drawing sheet 1
Sheet 1 of 10

Term

Projected expiry 2 August 2038.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

15 claims: 15 independent, 0 dependent

  1. 1
    A camouflaged application specific integrated circuit (ASIC), comprising:core logic having a first plurality of interconnected functional logic cells;a programmable micro netlist (PMNL) comprising: a second plurality of interconnected functional logic cells that together comprise a logical input and a programming input, the PMNL performing a PMNL function, the programming input communicatively coupleable to a non-volatile memory to receive configuration programming data from the non-volatile memory to configure the PMNL to perform the PMNL function;wherein at least one of the first plurality of functional logic cells and the second plurality of functional logic cells comprise: an uncamouflaged functional logic cell performing a first functional logic cell function and having a first physical layout;anda camouflaged functional logic cell performing a second functional logic cell function and having a second physical layout substantially indistinguishable from the first physical layout;wherein the combined first plurality of interconnected functional logic cells, the PMNL, and the configuration programming data perform one or more ASIC logical functions. Circuit intégré à application spécifique (ASIC) camouflé, comprenant : une logique centrale ayant une première pluralité de cellules logiques fonctionnelles interconnectées ;une micro-liste d'interconnexion programmable (PMNL) comprenant : une seconde pluralité de cellules logiques fonctionnelles interconnectées qui comprennent ensemble une entrée logique et une entrée de programmation, la PMNL exécutant une fonction PMNL, l'entrée de programmation pouvant être couplée en communication à une mémoire non volatile pour recevoir des données de programmation de configuration à partir de la mémoire non volatile pour configurer la PMNL afin d'exécuter la fonction PMNL ;dans lequel au moins l'une de la première pluralité de cellules logiques fonctionnelles et de la seconde pluralité de cellules logiques fonctionnelles comprend : une cellule logique fonctionnelle non camouflée exécutant une première fonction de cellule logique fonctionnelle et ayant une première présentation physique ;etune cellule logique fonctionnelle camouflée exécutant une seconde fonction de cellule logique fonctionnelle et ayant une seconde présentation physique sensiblement impossible à distinguer de la première présentation physique ;dans lequel la première pluralité combinée de cellules logiques fonctionnelles interconnectées, la PMNL et les données de programmation de configuration exécutent une ou plusieurs fonctions logiques ASIC. Getarnte anwendungsspezifische integrierte Schaltung (application specific integrated circuit - ASIC), die Folgendes umfasst: eine Kernlogik, die erste mehrere miteinander verbundene funktionale Logikzellen aufweist;eine programmierbare Mikronetzliste (PMNL), die Folgendes umfasst: zweite mehrere miteinander verbundene funktionale Logikzellen, die zusammen einen logischen Eingang und einen Programmiereingang umfassen, wobei die PMNL eine PMNL-Funktion ausführt, wobei der Programmiereingang mit einem nichtflüchtigen Speicher kommunikativ koppelbar ist, um Konfigurationsprogrammierdaten von dem nichtflüchtigen Speicher zu empfangen, um die PMNL zu konfigurieren, um die PMNL-Funktion auszuführen;wobei die ersten mehreren funktionalen Logikzellen und/oder die zweiten mehreren funktionalen Logikzellen Folgendes umfassen: eine ungetarnte funktionale Logikzelle, die eine erste funktionale Logikzellenfunktion ausführt und ein erstes physikalisches Layout aufweist;undeine getarnte funktionale Logikzelle, die eine zweite funktionale Logikzellenfunktion ausführt und ein zweites physikalisches Layout aufweist, das im Wesentlichen nicht von dem ersten physikalischen Layout zu unterscheiden ist;wobei die kombinierten ersten mehreren miteinander verbundenen funktionalen Logikzellen, die PMNL und die Konfigurationsprogrammierdaten eine oder mehrere ASIC-Logikfunktionen ausführen.
  2. 2
    ASIC nach Anspruch 1, wobei die PMNL ferner ein Speicherelement umfasst, das mit dem Programmeingang kommunikativ gekoppelt ist, um die durch den nichtflüchtigen Speicher empfangenen Konfigurationsprogrammierdaten anzunehmen und zu speichern. ASIC selon la revendication 1, dans lequel la PMNL comprend en outre un élément de stockage, couplé en communication à l'entrée de programme pour accepter et stocker les données de programmation de configuration reçues par la mémoire non volatile. The ASIC of claim 1, wherein the PMNL further comprises a storage element, communicatively coupled to the program input to accept and store the configuration programming data received by the non-volatile memory.
  3. 3
    ASIC nach Anspruch 2, wobei das Speicherelement beim Booten aus dem nichtflüchtigen Speicher initialisiert wird. ASIC selon la revendication 2, dans lequel l'élément de stockage est initialisé au moment du démarrage à partir de la mémoire non volatile. The ASIC of claim 2, wherein the storage element is initialized at boot time from the non-volatile memory.
  4. 4
    ASIC nach Anspruch 1, wobei die zweiten mehreren miteinander verbundenen funktionalen Logikzellen ferner Don't Care-Eingänge umfassen. ASIC selon la revendication 1, dans lequel la seconde pluralité de cellules logiques fonctionnelles interconnectées comprend en outre des entrées indifférentes. The ASIC of claim 1, wherein the second plurality of interconnected functional logic cells further comprise don't care inputs.
  5. 5
    ASIC nach Anspruch 1, wobei die Konfigurationsprogrammierdaten geheim sind und nicht ohne Autorisierung gelesen oder geschrieben werden können. ASIC selon la revendication 1, dans lequel les données de programmation de configuration sont secrètes et ne peuvent pas être lues ou écrites sans autorisation. The ASIC of claim 1, wherein the configuration programming data is secret and cannot be read or written without authorization.
  6. 6
    ASIC nach Anspruch 2, die ferner einen Adressendecoder umfasst, der zwischen dem nichtflüchtigen Speicher und dem Speicherelement kommunikativ gekoppelt ist. ASIC selon la revendication 2, comprenant en outre un décodeur d'adresse, couplé en communication entre la mémoire non volatile et l'élément de stockage. The ASIC of claim 2, further comprising an address decoder, communicatively coupled between the non-volatile memory and the storage element.
  7. 7
    ASIC nach Anspruch 1, wobei wenigstens ein Teil der Konfigurationsprogrammierdaten Programmierdaten zum Programmieren der zweiten funktionalen Logikzellenfunktion umfasst. ASIC selon la revendication 1, dans lequel au moins une partie des données de programmation de configuration comprend des données de programmation pour programmer la seconde fonction de cellule logique fonctionnelle. The ASIC of claim 1, wherein at least a portion of the configuration programming data comprises programming data for programming the second functional logic cell function.
  8. 8
    ASIC nach Anspruch 1, wobei das zweite physikalische Layout gegenüber dem ersten physikalischen Layout modifiziert ist, um eine Zellstruktur zu beseitigen. ASIC selon la revendication 1, dans lequel la seconde présentation physique est modifiée à partir de la première présentation physique pour éliminer une structure de cellule. The ASIC of claim 1, wherein the second physical layout is modified from the first physical layout to eliminate a cell structure.
  9. 9
    ASIC nach Anspruch 1, wobei das zweite physikalische Layout gegenüber dem ersten physikalischen Layout modifiziert ist, um eine Zellstruktur hinzuzufügen. ASIC selon la revendication 1, dans lequel la seconde présentation physique est modifiée à partir de la première présentation physique pour ajouter une structure de cellule. The ASIC of claim 1, wherein the second physical layout is modified from the first physical layout to add a cell structure.
  10. 10
    ASIC nach Anspruch 1, wobei ein Ausgang der getarnten funktionalen Logikzelle mit einer Spannung der ASIC kurzgeschlossen ist. ASIC selon la revendication 1, dans lequel une sortie de la cellule logique fonctionnelle camouflée est court-circuitée selon une tension de l'ASIC. The ASIC of claim 1, wherein an output of the camouflaged functional logic cell is shorted to a voltage of the ASIC.
  11. 11
    ASIC nach Anspruch 1, wobei ein Routing der getarnten funktionalen Logikzelle Folgendes umfasst:einen Eingang der getarnten funktionalen Logikzelle, der mit wenigstens einer der anderen miteinander verbundenen funktionalen Logikzellen verbunden ist, wobei eine Signalspur der anderen der miteinander verbundenen Logikzellen über dem Eingang der getarnten funktionalen Logikzelle angeordnet ist;undeinen Ausgang der getarnten funktionalen Logikzelle, der mit einem unverbundenen Eingang einer nahe gelegenen zweiten getarnten Logikzelle verbunden ist. ASIC selon la revendication 1, dans lequel un routage de la cellule logique fonctionnelle camouflée comprend : une entrée de la cellule logique fonctionnelle camouflée est connectée à au moins l'une des autres des cellules logiques fonctionnelles interconnectées dans lequel une trace de signal de l'autre des cellules logiques interconnectées est disposée sur l'entrée de la cellule logique fonctionnelle camouflée ;etune sortie de la cellule logique fonctionnelle camouflée est connectée à une entrée non connectée d'une seconde cellule logique camouflée voisine. The ASIC of claim 1, wherein a routing of the camouflaged functional logic cell comprises: an input of the camouflaged functional logic cell is connected to at least one of other of the interconnected functional logic cells wherein a signal trace of the other of the interconnected logic cells is disposed over the input of the camouflaged functional logic cell;andan output of the camouflaged functional logic cell is connected to an unconnected input of a nearby second camouflaged logic cell.
  12. 12
    A method of fabricating an application specific integrated circuit (ASIC), comprising:defining core logic having a first plurality of interconnected functional logic cells that perform one or more ASIC logical functions including a subset of the first plurality of interconnected functional logic cells for performing a programmable micro-netlist (PMNL) function;defining a PMNL for performing the PMNL function, the PMNL comprising: a second plurality of interconnected functional logic cells that together comprise logical inputs and a programming input to configure the PMNL to perform the PMNL function, the programming input communicatively coupleable to a non-volatile memory to receive configuration programming data from the non-volatile memory to configure the PMNL to perform the PMNL function;substituting the PMNL for the subset of the first plurality of interconnected functional logic cells for performing the PMNL function;wherein at least one of the first plurality of functional logic cells and the second plurality of logic cells comprise: an uncamouflaged functional logic cell performing a first functional logic cell function and having a first physical layout;anda camouflaged functional logic cell performing a second functional logic cell function and having a second physical layout substantially indistinguishable from the first physical layout;andwherein the combined first plurality of interconnected functional logic cells, the PMNL, and the configuration programming data perform one or more ASIC logical functions. Procédé de fabrication d'un circuit intégré à application spécifique (ASIC), comprenant : la définition d'une logique centrale comme ayant une première pluralité de cellules logiques fonctionnelles interconnectées qui exécutent une ou plusieurs fonctions logiques ASIC y compris un sous-ensemble de la première pluralité de cellules logiques fonctionnelles interconnectées pour exécuter une fonction de micro-liste d'interconnexion programmable (PMNL) ;la définition d'une PMNL pour exécuter la fonction PMNL, la PMNL comprenant : une seconde pluralité de cellules logiques fonctionnelles interconnectées qui comprennent ensemble des entrées logiques et une entrée de programmation pour configurer le PAINT pour exécuter la fonction PAINT, l'entrée de programmation pouvant être couplée en communication à une mémoire non volatile pour recevoir des données de programmation de configuration à partir de la mémoire non volatile pour configurer le PAINT pour exécuter la fonction PAINT ;le remplacement de la PMNL par le sous-ensemble de la première pluralité de cellules logiques fonctionnelles interconnectées pour exécuter la fonction PMNL ;dans lequel au moins l'une de la première pluralité de cellules logiques fonctionnelles et de la seconde pluralité de cellules logiques comprend : une cellule logique fonctionnelle non camouflée exécutant une première fonction de cellule logique fonctionnelle et ayant une première présentation physique ;etune cellule logique fonctionnelle camouflée exécutant une seconde fonction de cellule logique fonctionnelle et ayant une seconde présentation physique sensiblement impossible à distinguer de la première présentation physique ;et dans lequel la première pluralité combinée de cellules logiques fonctionnelles interconnectées, la PMNL et les données de programmation de configuration exécutent une ou plusieurs fonctions logiques ASIC. Verfahren zum Herstellen einer anwendungsspezifischen integrierten Schaltung (ASIC), das Folgendes umfasst: Definieren einer Kernlogik, die erste mehrere miteinander verbundene funktionale Logikzellen aufweist, die eine oder mehrere ASIC-Logikfunktionen ausführen, einschließlich einer Teilmenge der ersten mehreren miteinander verbundenen funktionalen Logikzellen zum Ausführen einer programmierbaren Mikronetzlisten(PMNL)-Funktion;Definieren einer PMNL zum Ausführen der PMNL-Funktion, wobei die PMNL Folgendes umfasst: zweite mehrere miteinander verbundene funktionale Logikzellen, die zusammen logische Eingänge und einen Programmiereingang umfassen, um die PMNL zu konfigurieren, um die PMNL-Funktion auszuführen, wobei der Programmiereingang mit einem nichtflüchtigen Speicher kommunikativ koppelbar ist, um Konfigurationsprogrammierdaten von dem nichtflüchtigen Speicher zu empfangen, um die PMNL zu konfigurieren, um die PMNL-Funktion auszuführen;Ersetzen der PMNL durch die Teilmenge der ersten mehreren miteinander verbundenen funktionalen Logikzellen zum Ausführen der PMNL-Funktion;wobei die ersten mehreren funktionalen Logikzellen und/oder die zweiten mehreren Logikzellen Folgendes umfassen: eine ungetarnte funktionale Logikzelle, die eine erste funktionale Logikzellenfunktion ausführt und ein erstes physikalisches Layout aufweist;undeine getarnte funktionale Logikzelle, die eine zweite funktionale Logikzellenfunktion ausführt und ein zweites physikalisches Layout aufweist, das im Wesentlichen nicht von dem ersten physikalischen Layout zu unterscheiden ist;und wobei die kombinierten ersten mehreren miteinander verbundenen funktionalen Logikzellen, die PMNL und die Konfigurationsprogrammierdaten eine oder mehrere ASIC-Logikfunktionen ausführen.
  13. 13
    Procédé selon la revendication 12, comprenant en outre :la définition d'un élément de stockage, couplé en communication à l'entrée de programme pour accepter et stocker les données de programmation de configuration reçues par la mémoire non volatile. The method of claim 12, further comprising: defining a storage element, communicatively coupled to the program input to accept and store the configuration programming data received by the non-volatile memory. Verfahren nach Anspruch 12, das ferner Folgendes umfasst: Definieren eines Speicherelements, das mit dem Programmeingang kommunikativ gekoppelt ist, um die durch den nichtflüchtigen Speicher empfangenen Konfigurationsprogrammierdaten anzunehmen und zu speichern.
  14. 14
    Procédé selon la revendication 13, dans lequel l'élément de stockage est initialisé au moment du démarrage à partir de la mémoire non volatile. The method of claim 13, wherein the storage element is initialized at boot time from the non-volatile memory. Verfahren nach Anspruch 13, wobei das Speicherelement beim Booten aus dem nichtflüchtigen Speicher initialisiert wird.
  15. 15
    An application specific integrated circuit (ASIC), produced by performing a process comprising the steps of:defining core logic having a first plurality of interconnected functional logic cells that perform one or more ASIC logical functions including a subset of the first plurality of interconnected functional logic cells for performing a PMNL function;defining a programmable micro netlist (PMNL) for performing the PMNL function, the PMNL comprising: a second plurality of interconnected functional logic cells that together comprise logical inputs and a programming input to configure the PMNL to perform the PMNL function, the programming input communicatively coupleable to a non-volatile memory to receive configuration programming data from the non-volatile memory to configure the PMNL to perform the PMNL function;andsubstituting the PMNL for the subset of the first plurality of interconnected functional logic cells for performing the PMNL function;wherein at least one of the first plurality of functional logic cells and the second plurality of logic cells comprise: an uncamouflaged functional logic cell performing a first functional logic cell function and having a first physical layout;anda camouflaged functional logic cell performing a second functional logic cell function and having a second physical layout substantially indistinguishable from the first physical layout;andwherein the combined first plurality of interconnected functional logic cells, the PMNL, and the configuration programming data perform one or more ASIC logical functions. Anwendungsspezifische integrierte Schaltung (ASIC), die durch Ausführen eines Prozesses erzeugt wird, der die folgenden Schritte umfasst: Definieren einer Kernlogik, die erste mehrere miteinander verbundene funktionale Logikzellen aufweist, die eine oder mehrere ASIC-Logikfunktionen ausführen, einschließlich einer Teilmenge der ersten mehreren miteinander verbundenen funktionalen Logikzellen zum Ausführen einer PMNL-Funktion;Definieren einer programmierbaren Mikronetzliste (PMNL) zum Ausführen der PMNL-Funktion, wobei die PMNL Folgendes umfasst: zweite mehrere miteinander verbundene funktionale Logikzellen, die zusammen logische Eingänge und einen Programmiereingang umfassen, um die PMNL zu konfigurieren, um die PMNL-Funktion auszuführen, wobei der Programmiereingang mit einem nichtflüchtigen Speicher kommunikativ koppelbar ist, um Konfigurationsprogrammierdaten von dem nichtflüchtigen Speicher zu empfangen, um die PMNL zu konfigurieren, um die PMNL-Funktion auszuführen;undErsetzen der PMNL durch die Teilmenge der ersten mehreren miteinander verbundenen funktionalen Logikzellen zum Ausführen der PMNL-Funktion;wobei die ersten mehreren funktionalen Logikzellen und/oder die zweiten mehreren Logikzellen Folgendes umfassen: eine ungetarnte funktionale Logikzelle, die eine erste funktionale Logikzellenfunktion ausführt und ein erstes physikalisches Layout aufweist;undeine getarnte funktionale Logikzelle, die eine zweite funktionale Logikzellenfunktion ausführt und ein zweites physikalisches Layout aufweist, das im Wesentlichen nicht von dem ersten physikalischen Layout zu unterscheiden ist;undwobei die kombinierten ersten mehreren miteinander verbundenen funktionalen Logikzellen, die PMNL und die Konfigurationsprogrammierdaten eine oder mehrere ASIC-Logikfunktionen ausführen. Circuit intégré à application spécifique (ASIC), produit en exécutant un processus comprenant les étapes de : définition d'une logique centrale comme ayant une première pluralité de cellules logiques fonctionnelles interconnectées qui exécutent une ou plusieurs fonctions logiques ASIC y compris un sous-ensemble de la première pluralité de cellules logiques fonctionnelles interconnectées pour exécuter une fonction PMNL ;définition d'une micro-liste d'interconnexion programmable (PMNL) pour exécuter la fonction PMNL, la PMNL comprenant : une seconde pluralité de cellules logiques fonctionnelles interconnectées qui comprennent ensemble des entrées logiques et une entrée de programmation pour configurer la PMNL afin d'exécuter la fonction PMNL, l'entrée de programmation pouvant être couplée en communication à une mémoire non volatile pour recevoir des données de programmation de configuration à partir de la mémoire non volatile pour configurer la PMNL afin d'exécuter la fonction PMNL ;etremplacement de la PMNL par le sous-ensemble de la première pluralité de cellules logiques fonctionnelles interconnectées pour exécuter la fonction PMNL ;dans lequel au moins l'une de la première pluralité de cellules logiques fonctionnelles et de la seconde pluralité de cellules logiques comprend : une cellule logique fonctionnelle non camouflée exécutant une première fonction de cellule logique fonctionnelle et ayant une première présentation physique ;etune cellule logique fonctionnelle camouflée exécutant une seconde fonction de cellule logique fonctionnelle et ayant une seconde présentation physique sensiblement impossible à distinguer de la première présentation physique ;etdans lequel la première pluralité combinée de cellules logiques fonctionnelles interconnectées, la PMNL et les données de programmation de configuration exécutent une ou plusieurs fonctions logiques ASIC.
Independent claims15