DE102012207065A1 - Verfahren zur Herstellung einer logischen Schaltung - Google Patents

Verfahren zur Herstellung einer logischen Schaltung Download PDF

Info

Publication number
DE102012207065A1
DE102012207065A1 DE102012207065A DE102012207065A DE102012207065A1 DE 102012207065 A1 DE102012207065 A1 DE 102012207065A1 DE 102012207065 A DE102012207065 A DE 102012207065A DE 102012207065 A DE102012207065 A DE 102012207065A DE 102012207065 A1 DE102012207065 A1 DE 102012207065A1
Authority
DE
Germany
Prior art keywords
standard cells
circuit
loss
called
power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102012207065A
Other languages
English (en)
Inventor
Friedrich Eppensteiner
Majid Ghameshlu
Herbert Taucher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG Oesterreich
Original Assignee
Siemens AG Oesterreich
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG Oesterreich filed Critical Siemens AG Oesterreich
Priority to DE102012207065A priority Critical patent/DE102012207065A1/de
Priority to CN201380022118.8A priority patent/CN104246779A/zh
Priority to US14/396,500 priority patent/US20150095861A1/en
Priority to PCT/EP2013/057651 priority patent/WO2013160122A1/de
Priority to EP13717247.4A priority patent/EP2842066A1/de
Publication of DE102012207065A1 publication Critical patent/DE102012207065A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Erstellung einer logischen Schaltung, insbesondere einer so genannten anwendungsspezifischen, integrierten Schaltung oder ASIC. Dabei wird eine Beschreibung der logischen Schaltung in einer Hardwarebeschreibungssprache abgefasst (2) und dann von einem Übersetzungsprogramm, einem so genannten Synthese-Tool, in eine zumindest zum Großteil aus so genannten Standardzellen (S1, S2, S3, S4, S5) bestehende Beschreibung einer entsprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt (3). Bei dieser Umwandlung werden die verwendeten Standardzellen (S1, S2, S3, S4, S5) in der Netzliste durch entsprechend verlustleistungsbalancierte Versionen (vS1, vS2, vS3, vS4, vS5) dieser verwendeten Standardzellen (S1, S2, S3, S4, S5) ersetzt (4). Auf diese Weise wird vorteilhaft – insbesondere bei sicherheitsrelevanten Schaltungen – ein Ausspionieren einer Funktionsweise der Schaltung durch Analyse eines Energieverbrauchs dieser Schaltung erschwert bzw. verhindert.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der der elektronischen und logischen Schaltungen, insbesondere so genannter anwendungsspezifischen, integrierten Schaltungen oder so genannter ASICs. Im Speziellen bezieht sich die vorliegende Erfindung auf ein Verfahren zur Herstellung einer logischen Schaltung, insbesondere einer anwendungsspezifischen, integrierten Schaltung, welche zumindest teilweise aus Standardelementen bzw. Standardfunktionen, so genannten Standardzellen, aufgebaut ist. Dabei wird eine in einer Hardwarebeschreibungssprache abgefasste Beschreibung der logischen Schaltung von einem Übersetzungsprogramm in eine zumindest zum Großteil aus den so genannten Standardzellen bestehende Beschreibung einer entsprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt.
  • Stand der Technik
  • Logische bzw. elektronische Schaltungen, welche insbesondere als so genannte integrierte Schaltungen realisiert sind, bilden heutzutage die Grundlage für jegliche Elektronik, insbesondere in der Computertechnik. Üblicherweise bestehen elektronische Schaltungen aus auf einem einzelnen Substrat (z.B. Halbleitersubstrat, etc.) untergebrachten und miteinander verdrahteten elektronischen Bauelementen. Eine integrierte Schaltung besteht damit aus einer großen Anzahl von verschiedenartigen Bauelementen sowie verbindenden Leiterzügen auf oder in einem einkristallinen Substrat. Erst durch diese Integration ist es möglich, umfangreiche Funktionalitäten und Anwendungen auf einem kleinen Raum zur Verfügung zu stellen. Durch integrierte Schaltungen wird eine Vielzahl von Anwendungen (z.B. in mobilen Geräten, SIM-Karten, RFIDs, Mobiltelefonen, etc.) erst technisch realisierbar, da diese Anwendungen sonst oft zu teuer, zu komplex, zu leistungsintensiv oder zu groß (z.B. für einen Einbau in das jeweilige Gerät, etc.) wären.
  • Werden logische bzw. integrierte Schaltungen für eine spezielle Anwendung erstellt, so werden diese Schaltungen häufig als anwendungsspezifische, integrierte Schaltungen oder application-specific integrated circuit oder kurz als ASICs bezeichnet. ASICs werden damit in vielen verschiedenen elektronischen Geräten – beispielsweise von einem Radiowecker über Mobilfunkgeräte bis zu Hochleistungsrechnern – eingesetzt. Ein Grund für die Entwicklung von anwendungsspezifischen, integrierten Schaltungen oder ASICs, welche nach der Realisierung nicht mehr manipulierbar sind, ist vor allem bei einer hohen Fertigungsstückzahl eine Kostenersparnis gegenüber einem diskreten Aufbau von Schaltungen. Insbesondere bei digitalen ASICs kann die jeweilige integrierte Schaltung so für die jeweilige Anwendung entworfen werden, dass von diesem ASIC dann z.B. platz-, verbrauchs-, kosten- und/oder leistungsoptimiert gearbeitet wird. Der Unterschied zu anderen logischen Schaltungen wie z.B. Field Programmable Gate Arrays (FPGAs) oder programmierbaren logischen Schaltungen (PLDs) besteht vor allem darin, dass bei einem ASIC die Funktionalität der integrierten Schaltung bei der Herstellung eindeutig festgelegt wird und von einem Anwender nicht mehr verändert werden kann. Dabei können moderne ASICs oft nicht nur einfache logische Funktionen bzw. Logikgatter umfassen, sondern auch Systemblöcke, Speicherblöcke, Prozessoren, etc., um die gewünschten Funktionalitäten bzw. Funktionen zu realisieren.
  • Für die Erstellung bzw. für einen Entwurf eines ASICs bzw. einer anwendungsspezifischen, integrierten Schaltung wird üblicherweise eine so genannte Hardwarebeschreibungssprache wie z.B. die so genannten Very High Speed Integrated Circuit Hardware Description Language (VHDL) oder Verilog eingesetzt. Die Hardwarebeschreibungssprache ist dabei eine formale Sprache, mit welcher Operationen von integrierten Schaltungen sowie ihr Design beschrieben werden können. In der Hardwarebeschreibungssprache wird eine Beschreibung der jeweiligen logischen Schaltung – d.h. beispielsweise zeitliche Abläufe und/oder (räumliche) Schaltkreisstrukturen – abgefasst.
  • Aus einer mit der Hardwarebeschreibungssprache erstellten Beschreibung einer logischen Schaltung bzw. eines ASICs wird dann mit Hilfe eines Übersetzungsprogramms – eines so genannten Synthese-Tools – eine Beschreibung einer entsprechenden, physikalischen Schaltung bzw. des ASICs – eine so genannte Netzliste – generiert. Dieser Vorgang wird auch als Synthese bezeichnet. Bei der Synthese werden auf Basis der mit der Hardwarebeschreibungssprache abgefassten Beschreibung die jeweils vorgegebenen Funktionen für die logische Schaltung bzw. den ASIC aus vorgeplanten bzw. katalogmäßig verfügbaren Elementen – den so genannten Standardzellen – zusammengesetzt, welche z.B. in Form von Bibliotheken für das Übersetzungsprogramm bzw. Synthese-Tool zur Verfügung gestellt werden können. Diese Standardzellen können z.B. spezifisch für den Herstellungsprozess entworfen werden, wobei ein Layout der jeweiligen Standardzelle bereits vor Entwurfbeginn der Schaltung feststeht. Ergebnis der Synthese ist dann die Beschreibung einer entsprechenden, physikalischen Schaltung bzw. des ASICs – die so genannte Netzliste, welche zum Großteil aus den Standardzellen (z.B. Logikgatter, Speicherblöcke, etc.) besteht. Die Netzliste ist im Bereich des Elektronik- bzw. Schaltungsentwurfs üblicherweise eine Beschreibung der Verbindungen zwischen den in der Schaltung bzw. im ASIC enthaltenen Standardzellen.
  • Derart realisierte und implementierte logische Schaltungen, insbesondere ASICs, weisen eine strikte Abhängigkeit von den zu verarbeitenden Daten auf. D.h. die in der Schaltung implementierte Logik steht in engem Zusammenhang mit der oder den auszuführenden Funktionen und den dabei verwendeten und/oder entstehenden Daten. Dies kann insbesondere bei sicherheitsrelevanten Schaltungen/ASICs oder bei Schaltungen/ASICs mit eingebetteten sicherheitskritischen Systemen einen Angriffpunkt für Attacken darstellen. Dabei werden insbesondere so genannte Side-Channel-Attacks oder Seitekanalattacken eingesetzt.
  • Bei einer Seitenkanalattacke werden üblicherweise von einer logischen Schaltung ausgeführte Funktionen und/oder Algorithmen beobachtet und es wird versucht, Korrelationen zwischen den beobachteten Daten und abhängigen, d.h. manipulierten Daten (z.B. Schlüssel, verschlüsselte Daten, etc.), zu finden. Diese Informationen werden beispielsweise aus einer Analyse der Laufzeit eines Algorithmus, dem Energieverbrauch der Schaltung während des Ausführens einer Funktion, etc. gewonnen. Dabei kommen z.B. Methoden wie eine einfache und/oder differentielle Verlustleistungsanalyse zum Einsatz.
  • Bei der einfachen Verlustleistungsanalyse wird ein Energieverbrauch einer Schaltung bzw. eines ASICs während beispielsweise sicherheitskritischer (z.B. kryptographischer) Funktionen direkt aufgezeichnet. Da der Energieverbrauch in Abhängigkeit von den jeweils in der Schaltung ausgeführten Operationen variiert, können Rückschlüsse auf Schaltungsaufbau des ASICs, ausgeführte Funktionen und sicherheitskritische Daten gezogen werden. Bei der differentiellen Verlustleistungsanalyse wird der Energieverbrauch einer Schaltung bzw. eines ASICs nicht nur aufgezeichnet, sondern auch statisch analysiert. Es werden dabei Messabweichungen beim Energieverbrauch ausgenutzt, um auf sicherheitsrelevante Funktionen und/oder Daten schließen zu können. Die differentielle Verlustleistungsanalyse wird insbesondere bei Schaltungen, etc. angewendet, bei welchen zu große Störungen für die einfache Verlustleistungsanalyse auftreten. Damit können mittels Verlustleistungsanalyse vor allem geheime und/oder sensible Daten wie z.B. Schlüssel, etc. anhand einer Analyse des Energieverbrauchs bei in einer Schaltung/ASIC ausgeführten Funktionen ausspioniert werden.
  • Um ein derartiges Ausspionieren von Funktionen und Daten anhand des Energieverbrauchs der Schaltung bzw. ASICs zu verhindern, besteht z.B. die Möglichkeit Verarbeitungszyklen – d.h. eine Abfolge von Funktionen und/oder Operationen, bei welchen sensible Daten verarbeitet werden – mit zufälligen Verzögerungen zu beaufschlagen, wodurch aus dem Energieverbrauch nicht mehr auf einfache Weise auf Funktion bzw. verarbeitete Daten geschlossen werden kann. Diese Vorgehensweise hat allerdings den Nachteil, dass es zu einer Verschlechterung der Performance der Schaltung bzw. des ASICs kommt.
  • Alternativ können für logische Schaltungen bzw. ASICs auch spezielle Zellen in so genannter Silizium-Technologie entwickelt werden, um die Schaltung bzw. den ASIC vor Seitenkanalattacken zu schützen. Allerdings sind derartige Zellen sehr speziell und stehen daher nicht für eine breite Masse der ASIC-Technologien zur Verfügung.
  • Darstellung der Erfindung
  • Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Erstellung von logischen Schaltungen, insbesondere anwendungsspezifischen, integrierten Schaltungen bzw. ASICs anzugeben, durch welches auf einfache Weise und geringeren zusätzlichen Aufwand eine logische Schaltung hergestellt werden kann, welche vor einem Ableiten ausgeführter Funktionen mittels Analyse einer Verlustleistung geschützt wird.
  • Die Lösung dieser Aufgabe erfolgt, durch ein Verfahren der eingangs angeführten Art, bei welchem bei einer Umwandlung der in einer Hardwarebeschreibung abgefassten Beschreibung der logischen Schaltung in eine so genannte Netzliste durch ein Übersetzungsprogramm verwendete Standardzellen in der Netzliste durch entsprechende verlustleistungsbalancierte Versionen dieser Standardzellen ersetzt werden.
  • Der Hauptaspekt des erfindungsgemäßen Verfahrens besteht darin, dass auf einfache Weise und mit relativ geringem zusätzlichen Aufwand bzw. ohne zusätzlichen Aufwand eine Schaltung erstellt wird, bei welcher eine weitgehende Balancierung der Verlustleistung erreicht wird. Die Verlustleistung wird damit weitgehend unabhängig von den zu verarbeiteten Daten gemacht. Weiterhin wird durch das erfindungsgemäße Verfahren eine Schaltung erstellt, bei welcher mittels der verlustleistungsbalancierten Standardzellen alle Basisoperationen (z.B. UND-Verknüpfungen, ODER-Verknüpfungen, etc.) gleichzeitig berechnet werden. Dies geschieht durch den Einsatz der verlustleistungsbalancierten Standardzellen unabhängig von der eigentlich vorgesehenen bzw. geforderten Funktion. Nicht benötigte Ausgänge von Standardzellen in der Schaltung werden dabei mit einer so genannten Dummy-Load oder Ersatzlast beaufschlagt, damit keine Störungen in der Schaltung auftreten. Durch den Einsatz der verlustleistungsbalancierten Standardzellen in einer logischen Schaltung bzw. in einem ASIC kann ein Erfolg von Seitenkanalattacken, welche auf Methoden der Verlustleistungsanalyse basieren, sehr einfach und effizient für sicherheitsrelevante Funktionen in dieser logischen Schaltung und insbesondere in dieser ASIC-Zelle reduziert werden. Das erfindungsgemäße Verfahren erlaubt außerdem eine einfache Realisierung von logischen Schaltungen bzw. ASICs mit Standard-Design-Tools für diverse Standard-CMOS-Technologien.
  • Es ist vorteilhaft, wenn in der Netzliste verwendete Standardzellen um die verlustleistungsbalancierten Versionen dieser Standardzellen ergänzt werden. Dabei wird die Standardzelle derart erweitert, dass von der verlustleistungsbalancierten Version dieser Standardzelle immer eine ursprüngliche Funktion und eine entsprechend zugehörige, invertierte Funktion am Ausgang zur Verfügung gestellt wird. Damit wird auf einfache Weise nach einem so genannten Dual-Rail-Prinzip dafür gesorgt, dass in den in der Schaltung bzw. im ASIC verwendeten Standardzellen immer alle Basisoperationen gleichzeitig berechnet werden und damit aus der Verlustleistung die eigentlich vorgesehene bzw. geforderte Funktion der jeweiligen Standardzelle aus dem Energieverbrauch nicht mehr ableitbar ist. Bei der Umwandlung der mittels Hardwarebeschreibung erstellten Beschreibung der logischen Schaltung in eine Netzliste mit dem Übersetzungsprogramm bzw. Synthese-Tool wird für jede Netzliste bzw. Netz einer logischen Schaltung eine Netzliste bzw. Netz für die jeweils invertierten Funktionen erstellt und entsprechend verbunden. Nicht benötigte Ausgänge werden dabei beispielsweise mit einer so genannten Dummy-Load oder Ersatzlast beaufschlagt.
  • Als Standardzellen werden idealer Weise so genannte Logikgatter verwendet. Ein Logikgatter oder auch kurz Gatter ist in der technischen Information bzw. bei der Erstellung oder Beschreibung einer logischen Schaltung die Realisierung einer so genannten Booleschen Funktion. Durch ein Logikgatter werden Eingangssignale zu Ausgangssignalen verarbeitet. Die Eingangssignale werden dabei durch Implementierung logischer Operationen wie z.B. UND, ODER, NEGATION, NICHT UND oder NAND, NICHT ODER oder NOR, XOR, etc. zu einem einzigen logischen Ergebnis umgewandelt und durch die Ausgangssignale abgebildet. Durch das erfindungsgemäße Verfahren werden in einer Schaltungsbeschreibung verwendete Logikgatter bei der Synthese durch das Übersetzungsprogramm mit der jeweiligen invertierten Operation bzw. Funktion zur verlustbalancierten Version ergänzt. Das bedeutet, dass beispielsweise ein UND-Gatter durch ein negiertes UND-Gatter – ein so genannten NAND-Gatter – erweitert wird. Bei einem ODER-Gatter wird z.B. ein so genanntes NOR-Gatter ergänzt und so weiter.
  • Häufig umfassen logische Schaltungen bzw. ASICs neben Logikgattern auch Speicherblöcke, insbesondere so genannte Flip-Flops. Daher werden zweckmäßiger Weise auch Speicherblöcke, insbesondere Flip-Flops, als Standardzellen für die Erstellung einer logischen Schaltung vorgesehen. Speicherblock wie z.B. Flip-Flops, welche auch als bistabile Kippstufe oder bistabiles Kippglied bezeichnet werden, sind elektronische Schaltungen bzw. Elemente, von welche zwei stabile Zustände eingenommen werden können. Damit kann in einem Speicherblöcke bzw. einem Flip-Flop eine Datenmenge von einem Bit über eine bestimmte, vorgegebene Zeitdauer gespeichert werden. Speicherblöcke sind Grundbausteine von so genannten sequentiellen Schaltungen und damit eine unverzichtbares Bauelement für einen Aufbau einer logischen bzw. elektronischen Schaltung oder einen ASIC.
  • Bei einer speziellen Ausführungsvariante des erfindungsgemäßen Verfahrens, insbesondere bei Speicherblöcken als Standardzellen, wird für eine verlustleistungsbalancierte Version eines Speicherblocks ein erster Speicherblock mit einem zweiten Speicherblock derart ergänzt, dass immer wenn der erste Speicherblock geschaltet wird, vom zweiten Speicherblock ein jeweiliger Zustand beibehalten wird und umgekehrt. Das bedeutet, wenn von einem – z.B. dem ersten – Speicherblock sein Zustand beibehalten wird, dann wird vom anderen – z.B. dem zweiten Speicherblock getoggelt. Auf diese einfache Weise ist dann die Gesamtverlustleistung der verlustleistungsbalancierten Version des Speicherblocks weitgehend unabhängig vom jeweiligen Zustandswechsel. Ein Zustandswechsel des Speicherblocks (z.B. Flip-Flops) kann damit nicht mehr aus der Gesamtverlustleistung abgeleitet werden. Eine Performance des verlustleistungsbalancierten Speicherblocks bleibt aber weitgehend gleich einer Performance des ursprünglichen Speicherblocks.
  • Es ist beim erfindungsgemäßen Verfahren auch günstig, wenn die verlustleistungsbalancierten Versionen der Standardzellen in einer oder gegebenenfalls auch mehreren Bibliotheken für ein Ersetzen der jeweiligen Standardzellen in der Netzliste hinterlegt bzw. zur Verfügung gestellt werden. Auf diese Weise können beispielsweise Übersetzungsprogramme bzw. Synthese-Tools rasch und kostengünstig angepasst bzw. erweitert werden. Standardzellen wie z.B. Logikgatter, Speicherblöcke, etc. werden üblicherweise für einen Herstellungsprozess von logischen Schaltungen bzw. ASICs entworfen und beispielsweise katalogmäßig in Form von Bibliotheken dem Übersetzungsprogramm für die Umwandlung der in der Hardwarebeschreibungssprache abgefassten Beschreibung der Schaltung in eine Netzliste zur Verfügung gestellt. Durch ein Hinterlegen der verlustleistungsbalancierten Versionen der Standardzellen können diese sehr einfach und ohne großen Aufwand dem Übersetzungsprogramm zur Verfügung gestellt werden. Vom Übersetzungsprogramm kann dann ohne großen Aufwand eine verlustleistungsbalancierte Version einer logischen Schaltung bzw. eines ASICs aus der in der Hardwarebeschreibungssprache abgefassten Beschreibung der jeweiligen Schaltung erstellt werden, ohne dass beim Erstellen bzw. Designen dieser Schaltung in der Hardwarebeschreibungssprache darauf Rücksicht genommen werden müsste.
  • Kurzbeschreibung der Zeichnung
  • Die Erfindung wird nachfolgend schematisch in beispielhafter Weise anhand der beigefügten Figuren erläutert. 1 zeigt dabei schematisch einen beispielhaften Ablauf des erfindungsgemäßen Verfahrens zur Herstellung einer logischen Schaltung. Die 2a und 2b zeigen Beispiele für ein Ersetzen von Standardzellen durch jeweilige verlustbalancierte Versionen.
  • Ausführung der Erfindung
  • 1 zeigt in schematischer Weise einen beispielhaften Ablauf des erfindungsgemäßen Verfahrens zur Erstellung einer logischen Schaltung. Das erfindungsgemäße Verfahren beginnt mit einem Startschritt 1. Dann wird in einem zweiten Verfahrensschritt 2 eine Beschreibung einer logischen Schaltung, insbesondere einer anwendungsspezifischen, integrierten Schaltung bzw. eines ASICs, abgefasst. Für einen derartigen Entwurf bzw. eine derartige Beschreibung der logischen Schaltung (ASIC) werden üblicherweise so genannte Hardwarebeschreibungssprachen wie z.B. VHDL, Verilog, etc. eingesetzt. Von dieser Beschreibung der logischen Schaltung werden dabei Operationen, Funktionen, etc. beschrieben, welche von der Schaltung bzw. dem ASIC ausgeführt werden sollen. Die Beschreibung umfasst z.B. zeitliche Abläufe, räumliche Schaltungsstrukturen, etc. für die Schaltung.
  • Aus einer in der Hardwarebeschreibungssprache abgefassten Beschreibung einer logischen Schaltung bzw. eines ASICs wird in einem dritten Verfahrensschritt 3 eine Beschreibung einer entsprechenden, physikalischen Schaltung generiert. Die Umwandlung der Beschreibung der logischen Schaltung in die Beschreibung der entsprechenden, physikalischen Schaltung wird mit Hilfe eines Übersetzungsprogramms – eines so genannten Synthese-Tools – durchgeführt. Dieser Vorgang wird auch als Synthese bezeichnet und das Ergebnis der Synthese – d.h. die entsprechende, physikalische Schaltungsbeschreibung – wird auch als Netzliste bezeichnet.
  • Beim Verfahrensschritt 3 bzw. bei der Synthese werden auf Basis der mit der Hardwarebeschreibungssprache abgefassten Beschreibung die jeweils vorgegebenen Funktionen für die Schaltung bzw. den ASIC beispielsweise aus vorgeplanten bzw. katalogmäßig verfügbaren Elementen – den so genannten Standardzellen – zusammengesetzt. Durch die Netzliste, welche zumindest zum Großteil aus derartigen Standardzellen wie z.B. Logikgattern, Speicherblöcken, etc. besteht, werden üblicherweise Verbindungen zwischen den in der Schaltung bzw. im ASIC verwendeten Standardzellen und damit eine Struktur dieser Schaltung beschrieben. Die Standardzellen können für das Übersetzungsprogramm bzw. für das Synthese-Tool beispielsweise in Form von Bibliotheken zur Verfügung gestellt werden, wobei die Standardzellen z.B. spezifisch für den jeweiligen Herstellungsprozess entworfen werden können. Damit stehen die jeweiligen Standardzellen z.B. bereits vor Beginn eines Schaltungsentwurfs fest.
  • In einem vierten Verfahrensschritt 4 werden dann die Standardzellen, welche in der im Verfahrensschritt 3 generierten Netzliste verwendet werden, durch entsprechende verlustleistungsbalancierte Versionen dieser jeweils verwendeten Standardzellen ersetzt. Der vierte Verfahrensschritt 4 kann dabei beispielsweise nach dem dritten Verfahrensschritt 3 ausgeführt werden. Das bedeutet, dass z.B. zuerst aus der Beschreibung der logischen Schaltung eine Netzliste generiert wird, und dann in dieser Netzliste die verwendeten Standardzellen durch entsprechende verlustleistungsbalancierte Versionen ersetzt werden. Dabei kann z.B. eine Standardzelle derart ergänzt werden, dass von der verlustleistungsbasierten Version der Standardzelle am Ausgang der Standardzelle immer eine Funktion sowie ein zugehörige invertierte Funktion zur Verfügung gestellt wird. Alternativ können die entsprechenden verlustleistungsbalancierten Versionen der Standardzellen auch in Form von einer oder mehreren speziellen Bibliotheken zur Verfügung gestellt werden.
  • Alternativ kann der vierte Verfahrensschritt 4 beispielsweise auch in den dritten Verfahrensschritt 3 integriert sein. D.h., dass beim Erstellen der Netzliste anstatt einer bestimmten Standardzelle immer die entsprechende verlustleistungsbalancierte Version dieser Standardzelle genommen wird. Auch bei dieser Variante können die verlustleistungsbalancierten Versionen der Standardzellen beispielsweise dem Übersetzungsprogramm als spezielle Bibliothek zur Verfügung gestellt werden oder durch Ergänzen der entsprechenden Standardzellen – d.h. es werden Funktion und invertierte Funktion am Ausgang angezeigt – in die Netzliste eingesetzt werden.
  • In den 2a und 2b sind beispielhaft und schematisch in Netzlisten gebräuchliche Standardzellen S1 bis S4 bzw. S5 sowie die entsprechenden verlustleistungsbalancierten Versionen vS1 bis vS4 bzw. vS5 dargestellt, wobei die verlustleistungsbalancierte Version vS1 bis vS4 bzw. vS5 immer funktionsäquivalent zur entsprechenden Standardzelle ist.
  • 2a zeigt dabei die beispielhaften Standardzellen S1, S2, S3 und S4. Diese Standardzellen S1 bis S4 sind so genannte Logikgatter, welche eine Realisierung von so genannten Booleschen Funktionen darstellen, und von welchen Eingangsignale A, B zu einem Ausgangssignal Y verarbeitet wird.
  • Ein erste, beispielhafte Standardzelle S1 wird für eine Realisierung einer logischen UND-Funktion verwendet – d.h. die Eingangssignale A, B werden durch eine so genannte UND-Funktion zu einem Ausgangssignal Y verknüpft. Im vierten Verfahrensschritt 4 des erfindungsgemäßen Verfahrens wird die erste Standardzelle S1 durch eine erste entsprechende verlustbalancierte Version vS1 der Standardzelle S1 ersetzt. Die erste verlustbalancierte Version vS1 der Standardzelle S1 wird dadurch ausgezeichnet, dass von ihr alle Basisoperationen gleichzeitig berechnet werden können – unabhängig von der eigentlich geforderten Funktion. Die erste verlustbalancierte Version vS1 besteht aus einem oberen Teil und einem unteren Teil.
  • Im oberen Teil sind z.B. vier Logikgatter, welche beispielsweise vier logische Grundfunktionen (UND, ODER, NAND, NOR) darstellen, derart vernetzt bzw. derart geschaltet, dass die Eingangssignale A, B zu einer UND-Funktion und einem Ausgangssignal Y verknüpft werden – d.h. das Ausgangssignal Y weist nur dann z.B. einen Wert 1, wenn beide Eingangssignale ebenfalls den Wert 1 aufweisen. Im unteren Teil, welcher ebenfalls z.B. vier Logikgatter für die vier logischen Grundfunktionen (UND, ODER, NAND, NOR) wie der obere Teil umfasst, sind die vier Logikgatter derart geschaltet, dass bei negierten Eingangssignalen A_N, B_N am Ausgang die invertierte Funktion bzw. ein invertiertes Ausgangssignal Y_N zum Ausgangssignal Y des oberen Teils zur Verfügung gestellt wird. Die restlichen Ausgänge der ersten verlustbalancierten Version vS1, welche nicht benötigt werden, sind z.B. mit einem so genannten Dummy-Load beaufschlagt. Damit wird von der ersten verlustbalancierte Version vS1 der ersten Standardzelle S1 am Ausgang z.B. nach dem Dual-Prinzip am Ausgang immer die Funktion bzw. das Ausgangssignal Y und die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur Verfügung gestellt und in der Netzliste dann entsprechend verbunden.
  • Eine zweite in 2a beispielhaft dargestellte Standardzelle S2 wird für eine Realisierung der logischen ODER-Funktion verwendet, bei welcher Eingangssignale A, B über eine ODER-Operation zum Ausgangssignal Y verknüpft werden. Bei einer ODER-Funktion weist das Ausgangssignal Y dann den Wert 1 auf, wenn zumindest eines der beiden Eingangssignale A, B den Wert 1 aufweist. Im vierten Verfahrensschritt 4 wird die ODER-Funktion derart ergänzt oder ersetzt, dass in der Netzliste eine zweite verlustleistungsbalancierte Version vS2 der zweiten Standardzelle S2 verwendet wird. Diese zweite verlustleistungsbalancierte Version vS2 der zweiten Standardzelle S2 besteht ebenfalls aus einem oberen und einem unteren Teil, welcher jeweils aus den vier logischen Grundfunktionen (UND, ODER, NAND, NOR) besteht. Der obere Teil ist allerdings so gestaltet, dass die Eingangssignale A, B über die ODER-Funktion zum Ausgangssignal Y verknüpft werden. Im unteren Teil werden die negierten Eingangssignal A_N, B_N derart verknüpft, dass am Ausgang die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur Verfügung gestellt wird. c
  • Weiters sind in 2a in einer dritten Standardzelle S3 beispielhaft eine NICHT-UND- oder NAND-Funktion und in einer vierten Standardzelle S4 eine NICHT-ODER- oder NOR-Funktion dargestellt. Bei der NAND-Funktion ergibt das Ausgangssignal Y nur dann einen Wert 0, wenn beide Eingangssignale A, B den Wert 1 aufweisen. Hat zumindest eines der Eingangssignal A, B den Wert 0, so wird am Ausgang als Ausgangssignale Y der Wert 1 ausgegeben. Bei der NOR-Funktion weist das Ausgangssignal Y nur dann den Wert 1 auf, wenn beide Eingangssignale A, B den Wert 0 haben. Ist der Wert von zumindest einem Eingangssignal A, B 1, so weist das Ausgangssignal Y bzw. die Funktion am Ausgang den Wert 0 auf. Durch den vierten Verfahrensschritt 4 werden diese Standardzellen S3, S4 durch eine entsprechende dritte bzw. vierte verlustleistungsbalancierte Version vS3, vS4 der jeweiligen dritten bzw. vierten Standardzelle S3, S4 in der Netzliste ersetzt.
  • Auch diese verlustleistungsbalancierten Version vS3, vS4 der dritten bzw. vierten Standardzelle S3, S4 bestehen aus einem oberen und unteren Teil bestehend aus den vier logischen Grundfunktionen (UND, ODER, NAND, NOR). Dabei ist bei der dritten verlustleistungsbalancierten Version vS3 der dritten Standardzelle S3 im oberen Teil die NAND-Funktion vernetzt und im unteren Teil werden die negierten Eingangssignale A_N, B_N derart verknüpft, dass am Ausgang die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur NAND-Funktion zur Verfügung gestellt wird. Bei der vierten verlustleistungsbalancierten Version vS4 der vierten Standardzelle S4 wird im oberen Teil eine NOR-Funktion dargestellt. Durch den unteren Teil werden die negierten Eingangssignale A_N, B_N derart vernetzt, dass am Ausgang die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur NOR-Funktion ausgegeben wird. Nicht benötigte Ausgänge werde beispielsweise mit einem so genannten Dummy-Load beaufschlagt, um z.B. Störungen, etc. zu verhindern.
  • In 2b ist beispielhaft und schematisch eine fünfte Standardzelle S5 dargestellt. Die fünfte Standardzelle S5 ist ein beispielhafter Speicherblock S5, welcher z.B. als Flip-Flop ausgeführt ist. Ein derartige Speicherblock S5 bzw. Flip-Flop S5 ist eine elektronische Schaltung, von welcher zwei stabile Zustände eingenommen werden können und von welcher damit eine Datenmenge von einem Bit gespeichert werden kann. Der beispielhaft und schematisch dargestellte Speicherblock S5 ist z.B. ein so genanntes D-Flip-Flop oder Delay-Flip-Flop, durch welches ein Datensignal um einen Takt verzögert werden kann. Der Speicherblock S5 weist einen Dateneingang D und einen Takteingang auf, sowie einen Ausgang Q und einen zugehörigen invertierten Ausgang QN. Durch den Speicherblock S5 bzw. das D-Flip-Flop S5 wird bei freigeschaltetem Takteingang oder aktiver Taktflanke ein am Eingang D anliegender logischer Zustand gespeichert und in der Folge sein Wert am Ausgang Q ausgegeben. Liegt keine aktive Taktflanke an oder ist der Takteingang deaktiviert, so wird der Eingangswert D nicht übernommen.
  • Im vierten Verfahrensschritt 4 wird eine verlustleistungsbalancierte Version vS5 des Speicherblocks S5 eingeführt bzw. der Standard-Speicherblock S5 durch diese Version vS5 in der Netzliste ersetzt. Bei der verlustleistungsbalancierten Version vS5 des Speicherblocks S5 bzw. des Flip-Flops S5 wird ein erster Speicherblock SP1 bzw. ein erstes Flip-Flop SP1 durch einen zweiten Speicherblock SP2 bzw. ein zweites Flip-Flop SP2 ergänzt. So wird z.B. beim Flip-Flop S5 das erste D-Flip-Flop SP1 mit einem zweiten D-Flip-Flop SP2 erweitert. Dateneingang D und Ausgang Q des ersten Speicherblocks SP1 bzw. ersten Flip-Flops SP1 werden z.B. über ein erstes Logikgatter miteinander verknüpft und bilden dann nach einer Verknüpfung mit einem Ausgang des zweiten Speicherblocks SP2 bzw. Flip-Flops SP2 einen Dateneingang des zweiten Speicherblocks SP2 bzw. Flip-Flops SP2. Insgesamt weist die verlustleistungsbalancierte Version vS5 des Speicherblocks S5 einen Dateneingang D sowie einen Ausgang Q und einen zugehörigen invertierten Ausgang QN für die Vernetzung in der Netzliste auf. Allerdings ist die Verlustleistung der verlustleistungsbalancierten Version vS5 des Speicherblocks S5 weitgehend unabhängig von einem Zustandswechsel, da beispielsweise das zweite Flip-Flop SP2 toggelt, wenn vom ersten Flip-Flop SP1 ein Zustand beibehalten wird und umgekehrt. Damit werden so genannte Seitenkanal-Attacken erheblich erschwert.
  • Derartige verlustleistungsbalancierte Versionen können auch zu weiteren Speicherblöcken bzw. Flip-Flops wie z.B. T-Flip-Flops oder Toggle-Flip-Flops, etc. erstellt werden.
  • Durch das erfindungsgemäße Verfahren werden Standardzellen S1, S2, ..., S5 wie z.B. Logikgatter, Speicherblöcke, etc. in einer Netzliste durch entsprechende verlustleistungsbalancierte Versionen vS1, vS2, ..., vS5 dieser Standardzellen S1, S2, ..., S5 ersetzt oder zu diesen ergänzt. Damit kann ein Erfolg von so genannten Seitenkanal-Attacken auf eine logische Schaltung bzw. einen ASIC maßgeblich reduziert werden.

Claims (6)

  1. Verfahren zur Erstellung einer logischen Schaltung, insbesondere einer so genannten anwendungsspezifischen, integrierten Schaltung oder ASIC, wobei eine in einer Hardwarebeschreibungssprache abgefasste Beschreibung der logischen Schaltung von einem Übersetzungsprogramm in eine zumindest zum Großteil aus so genannten Standardzellen (S1, S2, S3, S4, S5) bestehende Beschreibung einer entsprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt wird (2, 3), dadurch gekennzeichnet, dass bei der Umwandlung die verwendeten Standardzellen (S1, S2, S3, S4, S5) in der Netzliste durch entsprechende verlustleistungsbalancierte Versionen (vS1, vS2, vS3, vS4, vS5) der verwendeten Standardzellen (S1, S2, S3, S4, S5) ersetzt werden (4).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in der Netzliste verwendete Standardzellen (S1, S2, S3, S4, S5) für die verlustleistungsbalancierten Versionen (vS1, vS2, vS3, vS4, vS5) dieser Standardzellen (S1, S2, S3, S4, S5) derart ergänzt werden (4), dass von der verlustleistungsbalancierten Version (vS1, vS2, vS3, vS4, vS5) einer Standardzelle (S1, S2, S3, S4, S5) eine ursprüngliche Funktion und eine entsprechend zugehörige, invertierte Funktion zur Verfügung gestellt wird.
  3. Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass als Standardzellen (S1, S2, S3, S4) so genannte Logikgatter verwendet werden.
  4. Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass als Standardzellen (S5) Speicherblöcke, insbesondere so genannte Flip-Flops, verwendet werden.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass für eine verlustbalancierte Version (vS5) eines Speicherblocks (S5) ein erster Speicherblock (SP1) mit einem zweiten Speicherblock (SP2) derart ergänzt wird (4), dass immer wenn der erste Speicherblock (SP1) geschalten wird, vom zweiten Speicherblock (SP2) ein jeweiliger Zustand beibehalten wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die verlustleistungsbalancierten Versionen (vS1, vS2, vS3, vS4, vS5) der Standardzellen (S1, S2, S3, S4, S5) in einer speziellen Bibliothek für ein Ersetzen in der Netzliste hinterlegt und zur Verfügung gestellt werden.
DE102012207065A 2012-04-27 2012-04-27 Verfahren zur Herstellung einer logischen Schaltung Withdrawn DE102012207065A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102012207065A DE102012207065A1 (de) 2012-04-27 2012-04-27 Verfahren zur Herstellung einer logischen Schaltung
CN201380022118.8A CN104246779A (zh) 2012-04-27 2013-04-12 用于制造抗dpa的逻辑电路的方法
US14/396,500 US20150095861A1 (en) 2012-04-27 2013-04-12 Method for producing a dpa-resistant logic circuit
PCT/EP2013/057651 WO2013160122A1 (de) 2012-04-27 2013-04-12 Verfahren zur herstellung einer dpa-resistenten logischen schaltung
EP13717247.4A EP2842066A1 (de) 2012-04-27 2013-04-12 Verfahren zur herstellung einer dpa-resistenten logischen schaltung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012207065A DE102012207065A1 (de) 2012-04-27 2012-04-27 Verfahren zur Herstellung einer logischen Schaltung

Publications (1)

Publication Number Publication Date
DE102012207065A1 true DE102012207065A1 (de) 2013-10-31

Family

ID=48141962

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012207065A Withdrawn DE102012207065A1 (de) 2012-04-27 2012-04-27 Verfahren zur Herstellung einer logischen Schaltung

Country Status (5)

Country Link
US (1) US20150095861A1 (de)
EP (1) EP2842066A1 (de)
CN (1) CN104246779A (de)
DE (1) DE102012207065A1 (de)
WO (1) WO2013160122A1 (de)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10217375B4 (de) * 2002-04-18 2006-08-24 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
US7260808B1 (en) * 2004-12-11 2007-08-21 National Semiconductor Corporation Method and metric for low power standard cell logic synthesis
CN101187963B (zh) * 2006-11-15 2010-05-12 北京同方微电子有限公司 一种对抗差分功耗分析的逻辑单元
US20110066906A1 (en) * 2009-09-14 2011-03-17 LSI Corporate Pulse Triggered Latches with Scan Functionality
CN101695021A (zh) * 2009-10-22 2010-04-14 杭州晟元芯片技术有限公司 一种抗spa/dpa攻击的系统和方法

Also Published As

Publication number Publication date
CN104246779A (zh) 2014-12-24
EP2842066A1 (de) 2015-03-04
US20150095861A1 (en) 2015-04-02
WO2013160122A1 (de) 2013-10-31

Similar Documents

Publication Publication Date Title
DE102012202747B4 (de) Doppeltrigger-Niedrigenergie-Flip-Flop-Schaltung
DE102013103806B4 (de) Verschieben von Zellengrenzen beim Layout eines Halbleiterbauteils
DE102014218218A1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels in einem System-on-a-Chip
DE102016120009B4 (de) Digitalschaltung und verfahren zum herstellen einer digitalschaltung
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE4211162C2 (de) Hardware-Emulationssystem
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102005024917A1 (de) Dynamische Synchronisierersimulation
Welch et al. A direct mapping FPGA architecture for industrial process control applications
EP3244326A1 (de) Verfahren zum erstellen einer fpga-netzliste
DE102009000322A1 (de) Nichtlinear rückgekoppeltes Schieberegister sowie Verfahren zur nichtlinearen Signaturbildung
DE102005037357B3 (de) Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE102012207065A1 (de) Verfahren zur Herstellung einer logischen Schaltung
WO2014044510A1 (de) Identifikationsschaltung
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
EP3136268A1 (de) Verfahren zur sicherheitsanalyse einer logischen schaltung
EP2264901A2 (de) Integrierter Schaltkreis und Standartzelle eines integrierten Schaltkreises
DE102005037355B3 (de) Schaltung und Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden
EP3739479B1 (de) Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen
EP3246832B1 (de) Verfahren zum schutz eines fpgas vor einer unautorisierten anwendung des rtl-quellcodes
DE112008003831B4 (de) Synchrone sequentielle Logikvorrichtung mit doppelt getriggerten Flipflops sowie eine Methode zum gezielt zeitversetzten Triggern solcher zustandsspeichernden Register
EP3657363A1 (de) Registertransfer-modell und verfahren zur simulation eines integrierten schaltkreises
EP3142032B1 (de) Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins
DE102009041815B4 (de) Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen
WO2016020098A1 (de) Erzeugen eines identifizierers für eine schaltung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000