Programmierbare Logikbausteine (Studiengang Ingenieurinformatiker, Studiengang Medientechnologen) und



Ähnliche Dokumente
Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen.

Anwenderprogrammierbare

13 Programmierbare Speicher- und Logikbausteine

Programmierbare Logikbausteine (Studiengang Ingenieurinformatiker, Studiengang Medientechnologen) und

Achtung! Nur ausgewählte Folien

Teil 1: Digitale Logik

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Teil 1: Digitale Logik

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Übersicht aktueller heterogener FPGA-SOCs

FPGA. Field Programmable Gate Array

F Programmierbare Logikbausteine

F Programmierbare Logikbausteine

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Hardware Programmierbare Logik

N Bit binäre Zahlen (signed)

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Versuch 3: Sequenzielle Logik

Halbleiterspeicher. Halbleiterspeicher Michael Kuhfahl 1

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

Das große All-in-All CPLD/FPGA Tutorial

Test integrierter Schaltungen

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Teil 1: Digitale Logik

Quanton Manual (de) Datum: URL: )

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

AVT Spartan-3E Development Kit AVT DK S3E-500 (V1.0)

Einführung in die technische Informatik

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Eingebettete Systeme Modellierung und Zielarchitekturen

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Praktikum Grundlagen der Elektronik

4.Vorlesung Rechnerorganisation

Eigenschaften von Zählerschaltungen (1) 1 1. Richtung

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

A.3. A.3 Spezielle Schaltnetze Prof. Dr. Rainer Manthey Informatik II 1

9 Multiplexer und Code-Umsetzer

Programmierbare Logik mit GAL und CPLD

FPGA. Übersicht der Aktuellen Bausteine. Inhaltsverzeichnis. 1. Einführung 1.1 Was ist ein FGPA?

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Einführung in. Logische Schaltungen

10. Elektrische Logiksysteme mit

Mikrocontroller - Schnelleinstieg

Praktikum Digitaltechnik

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw

Tickt ihr Board noch richtig? Frequenzmessung durch ChipVORX als Ergänzung zum Boundary Scan Test. Dipl.-Ing. (FH) Martin Borowski

Hybride Apps DPR und Android auf dem Xilinx ZYNQ. Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm

Modulare Grafische Programmierung (MGP) von FPGAs

Teil 1: Digitale Logik

Protokoll zum Praktikum des Moduls Technische Informatik an der JLU Gießen

KLAUSUR DIGITALTECHNIK SS 00

Benutzte Quellen. Benutzte Bezeichnungen. Logik. Logik

Digital Design 5 Rechnergestützte Schaltungsentwicklung

ASIC. Application-Specific Integrated Circuit. Technische Informatik K. Slotala

Automatische Boundary Scan Testgenerierung für scanunfähige Schaltungspartitionen durch modellbasierte Werkzeuge

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n

Ein Scan basierter Seitenangriff auf DES

Mikrocontroller Grundlagen. Markus Koch April 2011

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Versuch Nr. 8c Digitale Elektronik I

FPGA vs. Mikrocontroller. Agenda

VHDL Verhaltensmodellierung

Sensor board EB

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Protokoll zu Grundelemente der Digitaltechnik

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

Achtung! Nur ausgewählte Folien

SDD System Design Document

LINGO: Eine kleine Einführung

Objektorientierte Programmierung

Cisco Security Monitoring, Analysis & Response System (MARS)

1 Anmerkungen zur Entwicklung von GALs mit LOG/iC

Einführung in die Java- Programmierung

Eine Logikschaltung zur Addition zweier Zahlen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1

Datenübernahme easyjob 3.0 zu easyjob 4.0

Klausur zur Vorlesung

TBE332 Controller. Produktbeschreibung

Übung Hardwareentwurf

Konfigurieren eines HHR Gerät, um es über eine CBX800 an Profibus anzubinden

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

MODBUS/TCP und Beckhoff Steuerelemente

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Funktion Erläuterung Beispiel

Doing Economics with the Computer Sommersemester Excel Solver 1

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

F. Technologische Grundlagen

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Transkript:

ausgewählte Folien zu den Vorlesungsreihen: Programmierbare Logikbausteine (Studiengang Ingenieurinformatiker, Studiengang Medientechnologen) und ASIC s & Design (Studiengang Elektrotechnik und Informationstechnik Dipl. Ing. Thomas Rommel ASIC S & DESIGN Dipl. Ing. Thomas Rommel Fakultät Elektrotechnik und Informationstechnik Fachgebiet Elektronische Schaltungen und Systeme Helmholtzbau Zimmer H 3521 Telefon: 69 1170 Praktikumsraum: H1555 3 1

Praktikumsanleitungen und Vorlesungsscript http://www.tu ilmenau.de/mne ess/ Fakultät Elektrotechnik und Informationstechnik Institute und Fachgebiete oder Durchklicken: Fachgebiet Elektronische Schaltungen und Systeme Lehre und Studium» Inhalte aller Lehrveranstaltungen ASIC & 6 schnelle Realisierung durch parametrisierbare Module (LPM) Schematic: 15 2

Quartus II Web Edition http://www.altera.com Download Center Quartus II Web Edition (9.0 Service Pack 2) Downloaden Get One Time Access Licensing (Download & Licensing, linke Spalte) findet man genaue Information wie es lizenziert wird 19 2. Entwurfssoftware Quartus II von Altera Designflow 20 3

3. Einführung in die Hardwarebeschreibungssprache AHDL (Teil A) high level, modulare Hardwarebeschreibungssprache komplett in das MAX+PLUS II System integriert besonders gut geeignet zum Entwerfen von komplexer kombinatorischer Logik, State Machines, Wahrheitstabellen und parametrisierbarer Logik hierarchische Projekte beschreibbar 33 AHDL gemischt mit anderen Formaten realisierbar Altera Design File (.adf) EDIF Input File (.edf) Graphic Design File (.gdf) OrCad Design File (.sch) State Machine file (.smf) Text Design File (.tdf) Verilog Design File (.v) VHDL Design File (.vhl) Waveform Design File (.wfm) XILINX Netlist Format File (.xnf) über 300 von Altera mitgelieferte Megafunctions and Macrofunctions incl. LPM (Library of Parameterized Modules) integrierbar 34 4

Allgemeines Fortsetzung (Teil A) AHDL ist nicht Case sensitiv es empfiehlt sich aber KEYWORDS, DESIGNNAMES, CONSTANTS und PRIMITIVES groß und alle anderen einschl. filenames, macro und megafunctions klein zu schreiben Liste aller inputs und outputs in der gleichen Zeile! Öffnende und schließende Klammern von Subdesign sections und Parameter Statements immer in einer separaten Zeile (Übersichtlichkeit) Achte auf eine sinnvolle Einrückung! Nutze underscores (_) um "Wörter" in symbolic and simple names zu trennen (reg_load, go_idle). Keywords, Namen und Zahlen müssen durch ein entsprechendes Symbol oder Operator und Leerzeichen getrennt werden. Kommentar muss im Prozentsymbol (%) eingeschlossen sein 35 Constant Define Parameters Function Prototype Title Statement Include Statement Constant Statement Define Statement (Teil A) Optional AHDL Text Design File Structure erforderlich Parameters Statement Function Prototype Stmt. Options Statement Subdesign Section Variable Section Logic Section 36 5

Titel Statement TITLE "Display Controller liefert Kommentar für Reportfile (.rpt), Keyword TITLE Anführungszeichen, Semikolon 37 Include Statement INCLUDE "const.inc"; spezifiziert ein Include File, dass die Include Statements ersetzt, Include Files enthalten Constant, Define, Parameters or Functions Statements Keyword INCLUDE Anführungszeichen, Semikolon, Erweiterung kann weggelassen werden, kein Pfadname, vor allen anderen Sections 38 6

Constant Statement CONSTANT UPPER_LIMIT = 130; CONSTANT FOO = 1; CONSTANT FOO_PLUS_ONE = FOO + 1; spezifiziert einen Symbolic Name, der Constanten ersetzen kann! Keyword CONSTANT Name Gleichheitszeichen Wert (Zahl oder Ausdruck) Semikolon 39 Define Statement DEFINE MAX(a,b) = (a > b)? a : b; definiert eine ausgewertete Funktion, die eine mathematische Funktion ist und einen Wert zurück gibt Keyword DEFINE Name Liste von Argumenten in () 40 7

Parameters Statement PARAMETERS ( FILENAME = "myfile.mif WIDTH, AD_WIDTH = 8, NUMWORDS = 2^AD_WIDTH ); deklariert einen oder mehrere Parameter, die die Implementation der parametrisierbaren megafunctions steuert Keyword PARAMETERS Liste der Parameter durch Komma getrennt und in Semikolon und klammern 41 Function Prototype Statement FUNCTION compare (a[3..0],b[3..0]) RETURNS (less, equal, greater); deklariert die Ports einer Logikfunktion und deren Reihenfolge, in der die Ports in einer In Line Referenz deklariert werden ähnlich wie bei Symbol in einem Schematicfile Keyword FUNCTION Name (Inputs) Keyword RETURNS (Outputs, Biderectional); 42 8

Options Statement OPTIONS BIT0 = MSB; setzt die vorgegebene Bitreihenfolge (LSB oder ANY geht noch) 43 Subdesign Section SUBDESIGN top ( foo, bar, clk1, clk2: INPUT = VCC; a0, a1, a2, a3, a4 : OUTPUT; b[7..0] : BIDIR; ) deklariert die Inputs, Outputs und Bidirectionalen Ports einen AHDL TDF Keyword SUBDESIGN Name des Subdesigns Liste der Signalnamen in () und durch Komma getrennt : porttype ; Name des Subdesigns Name des TDF Der port type kann sein INPUT, OUTPUT, BIDIR, MACHINE INPUT, or MACHINE OUTPUT. The MACHINE INPUT and MACHINE OUTPUT keywords werden genutzt um state machines zwischen TDFs and other design files auszutauschen Zuweisung von Default Werten GND und VCC hinter Port möglich 44 9

Variable Section VARIABLE Macrofunktion a, b, c : NODE; temp : halfadd; ts_node : TRI_STATE_NODE; deklariert Variablen, die in Logic Section genutzt werden (nur buried internal Signale) Instance Declaration Node Declaration Register Declaration State Machine Declaration Machine Alias Declaration If Generate Statements Variable Type kann sein: Node, TRI_STATE_NOTE, primitive, megafunctions, macrofunction or state machines 45 BEGIN out1 = a1 &!a0; out2 = out1 # b; END; BEGIN ss.clk = clk; ss.reset = reset; CASE ss IS WHEN s0 => q = GND; IF d THEN ss = s1; END IF; WHEN s1 => q = VCC; IF!d THEN ss = s0; END IF; END CASE; END; Logic Section definiert die logischen Operationen des Files Boolean Equations Boolean Control Equations Case Statement Defaults Statement If Then Statement If Generate Statement For Generate Statement Assert Statement Truth Tabel Statement beginnt mit Keyword BEGIN und endet mit END Semikolon 46 10

Decimal <series of digits 0 to 9> Default (Teil A) Binary Octal Hexadecimal B"<series of 0's, 1's, X's>" (where X = "don't care") O"<series of digits 0 to 7>" or Q"<series of digits 0 to 7>" X"<series from 0 to 9, A to F>" or H"<series from 0 to 9, A to F>" Beispiele : B"0110X1X10" Q"4671223" H"123AECF" 47 (Teil A) CONSTANT IO_ADDRESS = H 0370 ; CONSTANT foo = 1 + 2 DIV 3 + LOG2 (256); (mit arithmetischem Ausdruck) 48 11

(Teil A) Mathematische Operatoren Operator Example Description Priority + (unary) ; (unary) +1; 1 positive(negativ) 1 ^ A^2 exponent 1 DIV 4 DIV 2 Division 2 * A *2 Multiplication 2 + 1 + 1 Addition 3 1 1 Subtraktion 3 49 (Teil A) Vergleichsoperatoren Operator Example Description Priority == (numeric) 5 == 5 numeric equality 4 == (string) a == b string equality 4!= 5!= 4 not equal to 4 > ; < 5 > 4 greater (less)than 4 >= ; <= a >= b + 2 greater(less) than or equal 4 50 12

(Teil A) Logische Operatoren Operator Example Description Priority & ; AND a & b AND 5!& ; NAND a!& b NAND 5 $ ; XOR a $ b XOR 6!$ ; XNOR a!$ b XNOR 6 # ; OR a #b OR 7!# ; NOR a!# b NOR 7 51 (Teil A) Boolesche Ausdrücke und Gleichungen: SUBDESIGN boole1 ( a0, a1, b : INPUT; out1, out2 : OUTPUT; ) BEGIN out1 =!a1 &!a0; out2 = out1 # b; END; 52 13

Deklarierung eines internen Knotens (burried node) SUBDESIGN boole2 ( ) VARIABLE BEGIN END; a0, a1, b : INPUT; out : OUTPUT; a_equals_2 : NODE; a_equals_2 =!a1 &!a0; out = a_equals_2 # b; (Teil A) 53 (Teil A) Defining Group (Bus) SUBDESIGN group1 ( a[1..2] d[1..2] dual_range[5..4][3..2] ) : INPUT; : OUTPUT; : OUTPUT; BEGIN END; d[ ] = a[ ] + B"10"; dual_range[ ][ ] = VCC; 54 14

Conditional Logic (IF THEN Statement Logic) (Teil A) SUBDESIGN priority ( low, middle, high : INPUT; highest_level[1..0] : OUTPUT; ) BEGIN END; IF high THEN highest_level[ ] = 3; ELSIF middle THEN highest_level[ ] = 2; ELSIF low THEN highest_level[ ] = 1; ELSE highest_level[ ] = 0; END IF; 55 CASE Statement Logic (Teil A) SUBDESIGN decoder ( code[1..0] out[3..0] ) BEGIN CASE code[] IS : INPUT; : OUTPUT; WHEN 0 => out[ ] = B"0001"; WHEN 1 => out[ ] = B"0010"; WHEN 2 => out[ ] = B"0100"; WHEN 3 => out[ ] = B"1000"; END CASE; END; 56 15

Truthtable SUBDESIGN dec2 ( a, code[1..0] : INPUT; control, out[3..0] : OUTPUT; ) BEGIN TABLE a, code[1..0] => out[3..0], control; 0, B"00" => B"0001", 1; 0, B"01" => B"0010", 0; 1, B"0X" => B"0100", 0; X, B"11" => B"0101", 1; END TABLE; END; (Teil A) 57 (Teil A) Sequentielle Logik kann in AHDL implementiert werden durch: * State Machines * registers * latches * LPM (Library of Parameterized Modules) Declaring Register: mögliche Flipflops: DFF, DFFE, TFF, TFFE, JKFF, JKFFE, SRFF, SRFFE, LATCH Wenn Register deklariert ist, dann können Aus- und Eingänge von FF mit anderer Logik verbunden werden. <instance name>.<port name> 58 16

Creating Registers: (Teil A) SUBDESIGN bur_reg ( clk, load, d[7..0] q[7..0] ) VARIABLE ff[7..0] : INPUT; : OUTPUT; : DFFE; BEGIN ff[ ].clk = clk; ff[ ].ena ff[ ].d = d[ ]; q[ ] = ff[ ].q; = load; END; 59 (Teil A) Creating Counters: SUBDESIGN count_clr ( clk, clr : INPUT; q[15..0] : OUTPUT; ) VARIABLE count[15..0] BEGIN count[ ].clk count[ ].clrn :DFF; = clk; =!clr; count[ ].d = count[ ].q + 1; q[ ] = count[ ].q; END; 60 17

(Teil A) Um einen State Machine in AHDL zu spezifizieren, sind folgende Punkte nötig: * State Machine Declaration (Variable Section) * Boolean control equations (Logic Section) * State transitions in Truth Table Statements or Case Statements (Logic Section) 61 State Machines VARIABLE ss: MACHINE WITH STATES (s0, s1); VARIABLE ss: MACHINE OF BITS ( y1, y0) WITH STATES ( s0 = B 00, s1 = B 01, s2 = B 10, s3 = B 11 ); 62 18

SUBDESIGN stepper ( clk, reset : INPUT; ccw, cw : INPUT; phase[3..0] : OUTPUT; ) VARIABLE ss: MACHINE OF BITS (phase[3..0]) WITH STATES ( s0 = B"0001", s1 = B"0010", s2 = B"0100", s3 = B"1000"); BEGIN ss.clk = clk; ss.reset = reset; TABLE ss, ccw, cw => ss; s0, 1, x => s3; s0, x, 1 => s1; s1, 1, x => s0; s1, x, 1 => s2; s2, 1, x => s1; s2, x, 1 => s3; s3, 1, x => s2; s3, x, 1 => s0; END TABLE; END; (Teil A) 63 ASIC & Desigen (Teil B) Übersicht über verschiedene Architekturen, Systematisierung 66 19

Gliederung 0 Zielfunktion beim Entwurf 1 Hardware oder Software? 2 Systematisierung 2.1 CMOS-Technologie 2.2 Entwurfsstile 3 Programmierbare Logikbausteine () 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf (z.b. eines FPGA) 3.4 Programmiertechnologien 3.5 Verbindungsarchitekturen 3.6 Speicher in komplexen 3.7 Beschreibung der verschiedenen Bausteinarchitekturen 3.7.1 geringer Dichte 3.7.2 Complex Programmable Logic Devices 3.7.3 Field Programmable Gate Array FPGA 3.8 Embedded Processor Solutions (Excalibur) 3.9 Analoge 4 Wichtige Adressen und Literaturhinweise 67 0. Zielfunktion beim Entwurf Das magische Dreieck beim Entwurf integrierter Digitalschaltungen: Taktfrequenz Flächenaufwand zur Realisierung einer Schaltung wird bestimmte Fläche auf Silizium benötigt bestimmte Einflussfaktoren für festverdrahtete und programmierbare Bauelemente synchrone Schaltung benötigt bestimmte Anzahl von Taktzyklen je höher die Taktfrequenz, desto schneller die Schaltung hohe Taktfrequenz = hohe Verlustleistung Verlustleistungsaufnahme Verlustleistungsaufnahme in herkömmlicher CMOS-Realisierung ist proportional zu Anzahl der Gatter und Schalthäufigkeit Annäherung: Anzahl der Register + Taktfrequenz +Prozentsatz an logischen Gattern 68 20

1 Hardware oder Software? Algorithmus Mikroprozessor X = A + B Y = C D Z = X * Y strukturierbare Hardware A B C D + - X Y * Z load A load B add store X load C load D sub store Y load X load Y mul store Z weitere Kriterien: Skalierbarkeit Hardwareaufwand Echtzeitfähigkeit Verlustleistungsaufnahme Flexibilität Entwurfsprozess 2 Zyklen 12 Zyklen Räumliche Sequentialisierung - Datenflussorientierung - Parallelisierung (Addition und Subtraktion) - Pipelining (Add/Sub und Mul) Zeitliche Sequentialisierung - Kontrollflussorientierung - Pipelining bei modernen Mikroprozessoren (DSP) auch möglich 69 71 21

2.1 CMOS Technologie (Complimentary Metal Oxide Semiconductor) häufigst verwendete Technologie in ASIC und Vorteil: Gate ist isoliert gegenüber Substrat hoher Eingangswiderstand geringer Eingangsstrom geringer Stromverbrauch 72 CMOS Technologie einfache Darstellung eines Feldeffekttransistors (N Channel MOSFET) 73 22

Entwurfsstile Gate-Array Cell-Array Full Custom vollständig vorentworfen Master und Macros vorentworfen vorentworfene Zellen kein Vorentwurf vollständig vorgefertigt Master vorgefertigt keine Vorfertigung - durchgängiger Prozess mit allen Masken keine Vorfertigung - durchgängiger Prozess mit allen Masken Design beim Anwender Design beim Anwender Design beim Anwender Design beim Anwender und Hersteller Zuweisung von Funktionselementen auf Zielarchitektur Abbildung auf Bibliothek des Zielsystems Abbildung auf Bibliothek des Zielsystems Entwurf aller geometrischen Strukturen evtl. Place & Route Place & Route Place & Route Place & Route Implementation beim Anwender Implementation bei Anwender und Hersteller Implementation bei Anwender und Hersteller Implementation beim Hersteller Fertigstellung beim Anwender Fertigstellung beim Hersteller Fertigstellung beim Hersteller Fertigstellung beim Hersteller 76 Entwurfsstile Layout aller geometrischen Strukturen optimierte Entwürfe (Geschwindigkeit, Fläche, Verlustleistung usw.) sehr lange Entwurfsdauer (Effizienz) Ausnutzung von Regularitäten viel Erfahrung notwendig Teamarbeit nötig, (Interfacebeschreibung problematisch) Quelle: A.Mäder Chipgröße, Zellenanzahl, Zellengröße, Anschlusslage variabel 77 23

Entwurfsstile Makrozellgenerator vorgefertigte Zellen wie Zellen Speicher, aus ALUs Bibliothek oder Datenpfade werden über Layout Generatoren der Standardzellen erzeugt in Full Custom Qualität flexibler Entwurf Makrozellen in Full Custom Qualtität meist in Verbindung mit Makrozellgeneratoren Chipgröße, Zellenanzahl Zellenhöhe Zellengröße Anschlusslage Leiterbahnkanäle variabel variabel fest variabel variabel variabel Quelle: A.Mäder 79 Entwurfsstile Aufbau eines NAND Gatters (CMOS Technologie) und. 80 24

Entwurfsstile vorgefertigte Transistoren Layout durch Verbindungsstruktur (Verdrahtung, Kontakte) intra Zell Verdrahtung aus Zellbibliotheken vorgegebener Master: Komplexität eingeschränkt, keine optimale Auslastung schnelle Verfügbarkeit Chipgröße, Zellenanzahl Zellenhöhe Zellengröße Anschlusslage Leiterbahnkanäle fest fest fest fest fest fest Quelle: A.Mäder 82 Entwurfstile Full Custom Standardbaustein Semi Custom Preis pro Gatter gering gering mittel hoch Performance mittel hoch mittel gering Prozesschritte voll voll 4 10 0 Silizium Ausnutzung sehr gut sehr gut gut gering time to market sofort Monate Wochen Tage bis Wochen NRE Kosten sehr hoch hoch gering Entwurfsänderungen sehr aufwendig aufwendig einfach Lieferanten viele einer zumeist einer viele 85 25

Entwurfstile 86 3 Programmierbare Logikbausteine () 3.1 Allgemeine Eigenschaften von niedrige bis hohe Komplexität (100... 5 Mio. Gatter) Vielfalt enthaltener Baugruppen SRAM Blöcke (64 Mb), Bereitstellung aufwendiger Taktaufbereitung spezielle Blöcke für arithmetische Funktionen zur digitalen Signalverarbeitung, Ankopplung weiterer leistungsfähiger Systemelemente an die I/O Schnittstellen des (gängigen Protokolle für Speicheranbindung, Kommunikationsprotokolle bis in GHz Bereich sehr kurze Entwicklungs und Fertigungszeiten (Stunden bis Wochen) Änderungen sehr leicht möglich Keine NRE Kosten wirtschaftliche Stückzahl: 1000 pro Jahr (!) Schnellere Datenverarbeitung als bei Mikrocontrollern (aber auch teurer) bausteinseitig vollständig getestet (bei RAM basierten Bausteinen) 87 26

Technologieentwicklung Strukturgröße Zeit Gate Array Standardzell ASIC in 80er Jahren mussten mit den Produktionstechnologien der letzten oder vorletzten Generation auskommen heute jeweils neueste Technologie (kleinste Strukturen (65nm), modernste Prozesstechnologie) oft sogar zum Einfahren neuer Produktionslinien eingesetzt, wegen sehr regelmäßigen Strukturen und hohen Stückzahlen (ähnlich wie bei RAM) 94 Modernste Prozesstechnik 90 nm Chips nur 55 % der Fläche Virtex II Pro Familie: 130 nm 400 Mio Transistoren 90 nm 1 Mrd. Transistoren 95 27

Umsetzung eines FPGA-Chips in ein Hardcopy-ASIC Auf Grund von Strukturanalogien ist eine direkte Übernahme des Designs in ASIC möglich Flash Demo I starten 96 Hardcopy im Vergleich mit ASIC Entwurf 98 28

Synthese Unter der Synthese beim Entwurf digitaler Systeme versteht man die Erzeugung einer hardwarenäheren Beschreibung aus einer abstrakten Beschreibung Synthese kann auf verschiedenen Ebenen erfolgen: Die algorithmische Synthese übersetzt eine verhaltensbasierte Beschreibung in die RTL Ebene Die Logiksynthese überführt ein RTL Modell in eine gatterbasierte Beschreibung Die Layoutsynthese überführt eine Gatternetzliste in ein Layout für die Zielarchitektur 101 Entwurfsschritte (Synthese) Funktionelle Simulation Technologieabbildung Wahl einer Zielarchitektur (FPGA, C) RTL Beschreibung unter Einbeziehung von Bibliothekselementen Beschr. auf Logikebene unter Verw. der Grundbausteine Zielarchitektur Ausgabe einer Netzliste Place & Route Konkreter Zielbaustein muss vorliegen Auswahl und Platzierung der Primitivzellen im Zielbaustein Realisierung der Verdrahtung (intern und zu den E/A Pins) Extraktion von realen Zeitparametern aus Geometrie Zeitliche Simulation des Entwurfs nach der Synthese Hardware Test 102 29

Steuerung der Synthese Optimierung bzgl. Geschwindigkeit zweistufige Logik, möglichst viele parallele Berechnungen, um kurze Laufzeiten zu erreichen Optimierung bzgl. Fläche mehrstufige Logik mit möglichst vielen gemeinsamen Subtermen Weitere Randbedingungen der Synthese werden über bestimmte Eingabeparameter gesteuert, die als Constraints bezeichnet werden 103 Place & Route Layoutsynthese Abbildung der Schaltung auf den konkreten Zielbaustein (d.h. es muss festgelegt werden, welche CLBs eines vorgegebenen Chips nun zur Realisierung benutzt werden und wie die Verdrahtung zu realisieren ist) Es erfolgt zunächst eine Platzierung: beginnend z.b. in der linken oberen Ecke werden den Elementen aus der Netzliste die nächsten freien CLBs zugeordnet und eng gekoppelte Elemente sollten auch auf benachbarte CLBs platziert werden evtl. angegebene Constraints bzgl. Geometrie werden berücksichtigt Anschließend Routing: die benötigten Verbindungen aus der Netzliste werden auf die nächsten freie Kanäle abgebildet (Verbindungen sollen hierbei möglichst kurz sein und mit möglichst wenigen Segmenten auskommen) 104 30

3.2 Systematisierungs - und Auswahlkriterien Anzahl der Funktionselemente (CLB, LE, PFU usw.) Größe der Funktionselemente Art und Anzahl der Verbindungsleitungen Realisierung der Kombinatorik (Aufbau der Logikblöcke) Programmiertechnologie 105 Beispiel für Granularität bzw. Körnung Programmable Function Unit (PFU) der OR2C-Familie (Lucent Technologies) 106 31

Systematisierung der globale Architektur: ein klassisches (FE) Aufbau Funktionselement: wenige FE + Verbindungen (bis 100) viele FE (ab 100) Kombinatorik + FF (mit bis zu ca. 25 Eingängen) g Aufbau Verbindung zwischen den FE: keine Realisierung Kombinatorik: PAL, ROM, FPLA Programmiertechnologie: Link:PAL relativ breite Kombinatorik + viele FF (20-50 Eingänge, FF 8 vorwiegend global PAL, PLA EEPROMH relativ schmale Kombinatorik + FF (Inputs < 10, max. 2 FF) vorwiegend local RAM, LUT, MUX SRAM Antifuse: 107 Effektivität von 1. Logikdichte, d. h. Schaltungsfunktionalität pro Flächeneinheit, und damit von: Größe des Bausteins in Gatteräquivalenten und Anzahl der Flip Flops 2. Durchlaufzeiten der Logikblöcke und der Verbindungswege und damit: erreichbare Systemgeschwindigkeit erreichbarer Ausnutzungsgrad 3. Anwenderfreundlichkeit: Wie leicht läßt sich die Anwenderschaltung implementieren? Synthesefreundlichkeit Testbarkeit Geschwindigkeit und Einfachheit der Konfigurierung 4. Stromverbrauch 108 32

Schwierigkeiten beim Entwurf von (C und FPGA) steigende Integrationsdichte kürzere Lebensdauer der Produkte alle FPGA-Strukturen sind unterschiedlich Schaltungskomplexität muss beherrscht werden kurze Entwicklungszeiten neue Einarbeitungszeit Entwurf möglichst unabhängig von Architektur 109 Sicherung hoher Entwurfsqualität Zehner-Regel: Kosten der Fehlerbeseitigung 1M relative Kosten 100k 10k 1k 100 10 1 Entwurfsschritt Spezifikation Simulation Synthese Bitstream Platine System Feld 111 33

3.4 Programmiertechnologie 112 Fused Links (Teil B) Word Line Pullup Resistor 40-60µm Programmed Connection Transistor Data Bit Line 114 34

SRAM-Zellen (Teil B) Zwei kreuzweise gekoppelte Inverter A und B als Speicherelement 5 Transistor SRAM Zelle von XILINX 116 Programmierelemente mit Speicherzelle: SRAM-Zellen S = Speicherzelle S S S S S S S S S S Durchgangsgatter Pass Transistor Multiplexer Lookup Table (LUT) LUT als 4x1 RAM 00 0 X 0 1-aus-4 01 1 Y = X 0 xor X X Decoder 10 1 1 1 11 0 Wired-Or LUT mit 2 Eingängen 117 35

Vorteile kein Programmiergerät erfoderlich Nachteile schlechter bzw. umständlicher Kopierschutz jede beliebige Funktion aus Eingangssignalen realisierbar Konfigurationsspeicher erforderlich Rekonfigurierung, ISP sorgfältige Planung nach Neustarts notwendig schnelle Entwurfsänderungen möglich empfindlich gegen radioaktive Strahlung 118 Aufbau einer EPROM Zelle V cc Wortleitung G1 G2 Bitleitung Q 120 36

Wirkungsweise EPROM Zelle Beschreiben einer EPROM Zelle 121 Wirkungsweise EPROM Zelle Lesen einer EPROM Zelle 122 37

Flash EEPROM FLASH-Zellen können nicht wortweise gelöscht werden, sondern nur in größeren Blöcken NOR-Architektur: alle Speicherzellen sind parallel an die Bitleitung angeschlossen NAND-Architektur: typischerweise 8 oder 16 Speicherzellen in Serie geschaltet notwendige Kontakte zu den Bitleitungen entfallen Zelle ca. 40% kleiner höhere Speicherdichte als bei NOR geringere Kosten, ABER Zeit für Auslesen durch die Serientransistoren deutlich größer als bei NOR 123 EPROM Zelle UV EPROM EEPROM Flash EEPROM Löschen UV Licht elektrisch elektrisch Relative Zellgröße 1 4,2 (zusätzlich Transistoren) 1 extrem dünne Silizium Schicht unter Floating Gate Programmierzeit < 1 ms < 1 ms 200 µs Löschzeit 20 min 1 ms < 1 ms 126 38

Antifuse Technologie durch Anlegen einer Programmierspannung wird die isolierende Schicht zwischen den beiden Anschlüssen durchgeschmolzen es entsteht eine niederohmige, dauerhafte Verbindung Anwendung: vorwiegend in FPGA Herkömmliche Bipolar Fuses wird mehr in angewendet 127 PLICE Antifuse (programmable low impedance ciruit element) Feldoxid <1 µm Polysilizium Diffusionsgebiet Dielektrikum das trennende Dielektrikum (sehr dünn) wird aufgeschmolzen 3 zusätzliche Herstellungsschritte (im Vergleich zum CMOS-Prozeß) notwendig Programmierzeit mehrere Minuten (A1012 z.b. 18 Minuten) 128 39

ViaLink Antifuse (Teil B) Verbindung Metall amorphes Silizium Metall SiO 2 sehr geringer Platzbedarf niedriger elektrischer Widerstand kleine Kapazitäten 129 Vergleich der Technologien SRAM FLASH Eprom Plice ViaLink Konfigurierung flüchtig? ja nein nein nein rekonfigurierbar? ja ja nein nein in System programmierbar? ja theoretisch ja nein nein Zellengröße mittel; als groß (sehr)klein sehr klein Array klein Schalttransitoren groß groß On Widerstand 0,6.1 kω 0,6.1 kω 200Ω 20.50Ω Off Kapazität 10 20 ff 10.20 ff 5 ff 1 ff zusätzliche Prozessschritte 0 3 bis 5 3 3 133 40

Logik Designs vor Reverse Engeneering schützen Level I Bausteine gelten als unsicher (SRAM, EPROM) Level II Moderat sicher, da nur von sehr gut ausgebildeten Personen mit teurer Laborausrüstung durchgeführt werden kann. (Antifuse) Level III In hohem Maße sicher, Reverse Engeneering kaum möglich (Bei kaum realisierbar) 134 Verschlüsselung des Datenstoms bei SRAMbasierenden Bausteinen Kleiner nicht flüchtiger Speicher 135 41

Bewertung der Vor und Nachteile Schutz der Innovation Unterschied zwischen Kopierschutz und Schutz vor genauen Analyse - Anifuse sicherer als SRAM - Programmieren des Security-Fuse Rekonfigurierbarkeit, ISP konfigurierbar rekonfigurierbar parallel rekonfigurierbar dynamisch rekonfigurierbar Kosten und Schaltungsaufwand Testbarkeit und Zuverlässigkeit Anzahl der Programmierelemente 137 3.5 Verbindungsarchitekturen Anforderungen an die Verbindungsarchitekturen programmierbarer Logikbauelemente: möglichst viele Leitungen möglichst flexible Programmierbarkeit Verbindungsarchitekturen möglichst geringer Flächenaufwand möglichst geringe Verzögerungszeiten Typen von Verbindungsleitungen: Lokale Verbindungsleitungen Globale Verbindungsleitungen Spezielle Verbindungsleitungen für die Verteilung von Taktsignalen und anderen zeitkritischen Signalen Leitungen die zum Preset oder Reset der Schaltungen genutzt werden Leitungen für Spannungsversorgung der Logikzellen 138 42

3.6 Speicher in komplexen Register einige Bit Verteilter Speicher einige 10 bit (pro Instanz) Embedded Speicher pro Instanz einige 100 bit bis 10kb pro Bauelement einige 10 bis 10Mb Kriterien: Größe Wortbreite Zugriffszeit zusätzliche Funktionalitäten Externer Speicher Mb 139 3.7 Beschreibung der verschiedenen Bausteinarchitekturen 3.7.1 geringer Dichte Grundsätzlicher Aufbau: programmierbare Rückkopplung Eingang Eingabe Block Programmierbare UND / ODER - Matrix Ausgabe Block Ausgang Handelsbezeichnungen: PAL, PLA, GAL, E, PLS, FPLA 140 43

Chiparchitekturen bei niedriger Dichte Realisierung der Kombinatorik durch zweistufige Logik: UND- und ODER-Felder UND Matrix ODER Matrix Normalform RAM, ROM fest programmierbar KDNF PAL programmierbar fest DNF PLA programmierbar programmierbar DNF 141 Implementierbarkeit bei geringer Dichte Anzahl der Register Konfigurationsmöglichkeiten für Register (CLK, S, R usw.) Anzahl Ausgänge Anzahl Eingänge Anzahl Produktterme Hauptaugenmerk bei Untersuchung der Kombinatorik ROM: Anzahl der Eingänge PAL: Anzahl Produktterme pro Eingang PLA: Anzahl Produktterme gesamt 142 44

Gemeinsamkeiten zwischen C s und FPGA s: (Teil B) Aufbau aus mehreren Blöcken, die untereinander geeignet verbunden werden können Programmierbare Blöcke mit programmierbaren Verbindungsstrukturen flexible Blockstruktur im Vergleich zum niedriger Dichte - bessere Logikzuordnung - flexiblere Makrozellen - bessere Entkopplung interner Ressourcen weitgehende Entkopplung von Logik und E/A-Blöcken (mit Einschränkungen) E/A-Blöcke als Eingang, Ausgang oder bidirektional konfigurierbar; universelle Steuerungsmöglichkeiten für vorhandene Tristate-Buffer Platzierung notwendig Technologie: CMOS Programmiertechnologien: Fused Link, Antifuse, EPROM, SRAM 145 Unterschiede: Eigenschaften C FPGA Aufbau der Logikzellen wenige große Blöcke mit integrierter Logik und E/A Makrozellen PAL Logik (AND/OR Matrix) 22 48 Eingänge 8 32 Makrozellen pro/bl. 8 32 Ausgänge alle Makrozellen benutzen die gleichen Eingänge große Anzahl relativ kleiner Funktionselemente (feinkörnig) Logik: MUX oder LUT (RAM) 4 13 Eingänge 2 4 Makrozellen 2 4 Ausgänge Verbindungen zentrale globale Verbindungen keine Verdrahtung notwendig dezentrale lokale Verbindungen Verdrahtung notwendig 146 45

Eigenschaften C FPGA E/A relativ feste Konfiguration der Verbindungsleitungen zwischen Makrozellen und Pins schneller Signalweg von Logikmakrozellen zu Pins keine separaten Ausgangsregister Ring aus frei zuordenbaren E/A Blöcken jede Logikmakrozelle kann mit jedem Pin verbunden werden separate Ausgangsregister vor den Pins Signallaufzeiten homogen konstant relativ kurz vorhersagbar Geschwindigkeit nicht abhängig von Schaltung stark vom konkreten Signalweg abhängig ungleichmäßig auch hohe Werte möglich erst durch Layoutextraktion zu bestimmen Geschwindigkeit abhängig von der Schaltung Komplexität mittel hoch 147 Eigenschaften C FPGA Flexibilität mittel hoch Flächenausnutzung 40% 60% 50% 95% Stromverbrauch hoch bis sehr hoch gering bis mittel Einsatzgebiete Vor /Nachteil bei breiten Eingangsfunktionen einfache Realisierung schneller komplexer statemachines Preis pro Gatter mittel bis hoch schmale Eingangslogik registerintensive Schaltungen Preis pro Gatter gering bis hoch anspruchsvolle Software erforderlich angemessene Verdrahtungsressourcen erforderlich einfacher Umstieg auf Bausteine öherer Komplexität bei Beibehaltung der Leistungsdaten 148 46

Eigenschaften C FPGA Anzahl Makrozellen/LE 8... 512 128... 2000.000 Anzahl I/O Pins 44... 270 44... 1200 Komplexität 500... 12.000 Gatter 40 2000 FF 1000...5.000.000 Gatter 100 2 Mio FF Total RAM Blocks 0 8Kbits 0 68 MBits Taktfrequenzen bis 600 MHz 500 MHz 149 3,3 volt Device Families Family Density Speed I/O Logic Block Macrozellen t PD (ns) F max (MHz) Inputs isplsi 5000VE 128-512 5 180 72-256 68 ispmach4a3 32-512 5 182 32-256 33-36 isplsi 2000VE 32-192 3 300 32-128 18 isplsi 8000V 600-1080 8,5 125 192-360 44 2,5 volt Device Families isplsi 2000VL 32-192 5 180 32-128 18 5.0 volt Device Families ispmach 4A5 32-256 5 182 32-128 33-36 isplsi 2000E 32-128 3.5 225 32-128 18 Lattice 153 47

Blockschaltbild des MAX7000 (Altera) (Teil B) 156 Device Macrocell (Teil B) 157 48

3.7.3 Field Programmable Gate Array FPGA Routing notwendig lokale Verbindungsressourcen über den ganzen Chip (Functional) Logic Block Connection Box wenigstens eine Leitung (Steuerleitungen,CLK) k + Sonderleitung Verbindungstracks Connection Box Switch Box 161 Parameter: 1. w Anzahl der Verbindungstracks 2. A f Größe des Funktionalblocks (Logicblock) A f ~ 2 k + A S 3. F S Flexibilität der Switchbox Anzahl der erreichbaren Leitungen /Switchbox (Maximalwert = 3 w) 4. F c Flexibiltät der Connection Box Anzahl der Tracks (w), die von einem Blockpin aus erreichbar sind (programmierbar z.b. durch Transistor) 5. A p Größe eines Programmierpunktes (Fläche des Transistors oder ähnliches) 162 49

PROGRAMMIERBARE SCHALTMATRIX 163 gegenseitige Abhängigkeit von Parametern: A F groß (z.b. 2 FF + breite LUT) relativ schlechte Chipauslastung relativ unflexibel (oft gegenüberliegende Pins viel Verdrahtungsaufwand) relativ schnell w klein (da weniger Außenverdrahtung notwendig) A P darf groß sein (z.b. Transistoren RAM-Zelle) typischer Vertreter: XILINX A F klein (höchstens 1 FF) relativ gute Chipauslastung relativ flexibel relativ langsam w groß A P müssen klein sein (z.b. Antifuse [PLICE]) typischer Vertreter: TI / ACTEL 164 50

Xilinx Product Portfolio Quelle: Xilinx.com 182 183 51

Virtex 5 Familie LX30 LX50 LX85 LX110 LX220 LX330 CLB Array Size 80 x 30 120 x 30 120 x 54 160 x 54 160x108 240x108 Logic Cells 30.720 46.080 82.944 110.592 221.184 331.776 Total Block RAM (kbits) 1.152 1.728 3.456 4.608 6.912 10.328 Digital Clock Manager 4 12 12 12 12 12 PLL 2 6 6 6 6 6 Maximum IO-Pin 400 560 560 800 800 1200 184 185 52

186 Blockschaltung von Virtex 2,5V FPGA s DLL IOBs DLL VersaRing IOBs VersaRing BRAMs CLBs BRAMs VersaRing IOBs VersaRing DLL IOBs DLL verschiedene IO-Blöcke sind mit unterschiedlichen Spannungspegeln belegbar 191 53

Spartan 6 Family 203 Xilinx Analog Mixed Signal Quelle: Xilinx.com 205 54

Intellectual Proberty (IP) Simulation des Coreverhaltens im System Überprüfen der Designfunktionalität und bestimmen der Größe und Geschwindigkeit Generieren eines zeitlich begrenzten Programmierfiles für das Design Programmieren des Bausteines und überprüfen des Designs in Hardware 206 Entwurfswerkzeuge (Teil B) Universelle FPGA-Enturfswerkzeuge - Galileo - Leonardi - MicroSim FPGA Große EDA-Systeme - Cadance (FPGA-Designer) - Mentor Graphics (FPGA-Station + AutoLogicII) - Synopsys (FPGA-Express) Herstellereigene Werkzeuge - Designer Series von Actel - Max+Plus II / Quartus von Altera - Alliance/Foundation von XILINX 212 55

3.8 Embedded Processor Solutions (Teil B) Traditional Benefits New Benefits Faster Time to Market Programmable Flexibility Low Risk Cost Effective Access to Embedded Processor Cores Higher Integration 213 Altera FPGA Embedded processor Logic Memory Vorteile: kombiniert programmierbare Logik, Speicher und einen Prozessorkern Einchiplösungen von kompletten Systemen [SOPC] 214 56

(Teil B) ARM- & MIPS-Based Embedded Processors Solutions ARM- & MIPS-Based Embedded Processors Embedded Processor Core Core JTAG/Debug External Devices Serial Port On-Chip RAM ARM/MIPS Embedded Processor Cache External Bus Interface UART Altera Programmable Logic Architecture Nur noch bis Anfang 2008 verfügbar 215 NIOS II Design Flow 218 57

3.9 Analoge (Teil B) (z. B. der Firma Lattice) Features: mehrere analoge Funktionen realisierbar (OV, Filter usw.) In-System-Programmable analog Circuit keine externen Komponenten notwendig über JTAG Schnittstelle zu konfigurieren über Parallelport PC programmierbar Software unter Windowsoberfläche 228 Analoge s FPAA (Field Programmable Analog Array) An10E40 der Fa. Anadigm Inc. 230 58

CAB des FPAA (Field Programmable Analog Array) An10E40 231 Switched Capacitor Technik R äq U I T C f 1 C schalt 232 59

Bauelementevorrat der Zellen 238 4 Literaturhinweise (Teil B) Markus Wannemacher: Das FPGA-Kochbuch Bonn, International Thomson Publishing GmbH ISBN 3-8266-2712-1 Axel Sikora: Programmierbare Logikbauelemente, Architekturen und Anwendungen München, Wien, Carl Hander Verlag ISBN 3-446-21607-3 A. Auer: Programmierbare Logik-IC Hüthig Buchverlag Heidelberg ISBN 3-7785-1910-7 A. Auer: -Handbuch Hüthig Buchverlag Heidelberg ISBN 3-7785-1991-3 F. Kesel/R. Barthalomä: Entwurf von digitalen Schaltungen und Systemen mit HDLs und FPGAs Oldenbourg Verlag München ISBN 3-486-57556-2 Chr. Siemers: Logikbausteine Vogel Buchverlag Würzburg ISBN 3-8023-1873-0 243 60