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

Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

  • Upload
    others

  • View
    7

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

1

ausgewählte Folien zu den Vorlesungsreihen:

Programmierbare Logikbausteine

(Studiengang Ingenieurinformatiker, Studiengang Medientechnologen)

und

ASIC‘s & PLD‐Design(Studiengang Elektrotechnik und Informationstechnik

Dipl.‐Ing. Thomas Rommel

ASIC‘S & PLD‐DESIGN

Dipl.‐Ing. Thomas Rommel

Fakultät Elektrotechnik und Informationstechnik

Fachgebiet Elektronische Schaltungen und Systeme

Helmholtzbau Zimmer H 3521

Telefon: 69 1170

Praktikumsraum: H1555

Dipl.‐Ing. Th. Rommel PLD3

Page 2: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

2

http://www.tu‐ilmenau.de/mne‐ess/

Praktikumsanleitungen und Vorlesungsscript

• Fakultät Elektrotechnik und Informationstechnik

– Institute und Fachgebiete

• Fachgebiet Elektronische Schaltungen und Systeme– Lehre und Studium

» Inhalte aller Lehrveranstaltungen

• ASIC & PLD

Dipl.‐Ing. Th. Rommel PLD6

oder Durchklicken:

schnelle Realisierung durch parametrisierbare Module (LPM)

Dipl.‐Ing. Th. Rommel PLD15

Schematic:

Page 3: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

3

Quartus II Web Edition

• 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

Dipl.‐Ing. Th. Rommel PLD19

http://www.altera.com

2. Entwurfssoftware Quartus II von Altera

Dipl.‐Ing. Th. Rommel PLD20

Designflow

Page 4: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

4

(Teil A)

3. Einführung in die Hardwarebeschreibungssprache AHDL

Dipl.‐Ing. Th. Rommel PLD33

• 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

AHDL gemischt mit anderen Formaten realisierbar

Dipl.‐Ing. Th. Rommel PLD34

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 andMacrofunctions incl. LPM (Library of Parameterized Modules) integrierbar

Page 5: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

5

(Teil A)

Allgemeines Fortsetzung

• AHDL ist nicht Case‐sensitiv es empfiehlt sich aber KEYWORDS, DESIGNNAMES, CONSTANTS und PRIMITIVES groß und alle anderen einschl. filenames, macro‐ undmegafunctions 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 Zahlenmüssen durch ein entsprechendes Symbol oder Operator und Leerzeichen getrennt werden.

• Kommentar muss im Prozentsymbol (%) eingeschlossen sein

Dipl.‐Ing. Th. Rommel PLD35

Logic Section

Variable Section

Subdesign Section

Options Statement

Function Prototype Stmt.

Parameters Statement

Define Statement

Constant Statement

Include Statement

Title StatementOptional

erforderlich

Constant

Define

Parameters

PrototypeFunction

AHDL Text Design File Structure

Dipl.‐Ing. Th. Rommel PLD36

(Teil A)

Page 6: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

6

Titel Statement

• liefert Kommentar für Reportfile (.rpt),

• Keyword TITLE Anführungszeichen, Semikolon

Dipl.‐Ing. Th. Rommel PLD37

TITLE "Display Controller“

Include Statement

• 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

Dipl.‐Ing. Th. Rommel PLD38

INCLUDE "const.inc";

Page 7: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

7

Constant Statement

• spezifiziert einen Symbolic Name, der Constanten ersetzen kann!

• Keyword CONSTANT Name Gleichheitszeichen Wert (Zahl oder Ausdruck) Semikolon

Dipl.‐Ing. Th. Rommel PLD39

CONSTANT UPPER_LIMIT = 130; CONSTANT FOO = 1;CONSTANT FOO_PLUS_ONE = FOO + 1;

Define Statement

• definiert eine ausgewertete Funktion, die eine mathematische Funktion ist und einen Wert zurück gibt

• Keyword DEFINE Name Liste von Argumenten in ()

Dipl.‐Ing. Th. Rommel PLD40

DEFINE MAX(a,b) = (a > b) ? a : b;

Page 8: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

8

Parameters Statement

• deklariert einen oder mehrere Parameter, die die Implementationder parametrisierbaren megafunctions steuert

• Keyword PARAMETERS Liste der Parameter durch Komma getrennt und in Semikolon und klammern

Dipl.‐Ing. Th. Rommel PLD41

PARAMETERS (FILENAME = "myfile.mif WIDTH, AD_WIDTH = 8, NUMWORDS = 2^AD_WIDTH

);

Function Prototype Statement

• 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);

Dipl.‐Ing. Th. Rommel PLD42

FUNCTION compare (a[3..0],b[3..0])RETURNS (less, equal, greater);

Page 9: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

9

Options Statement

• setzt die vorgegebene Bitreihenfolge (LSB oder ANY geht noch)

Dipl.‐Ing. Th. Rommel PLD43

OPTIONS BIT0 = MSB;

Subdesign Section

• 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 machineszwischen TDFs and other design files auszutauschen

• Zuweisung von Default Werten GND und VCC hinter Port möglich

Dipl.‐Ing. Th. Rommel PLD44

SUBDESIGN top( foo, bar, clk1, clk2: INPUT = VCC; a0, a1, a2, a3, a4 : OUTPUT; b[7..0] : BIDIR; )

Page 10: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

10

Variable Section

• 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

Dipl.‐Ing. Th. Rommel PLD45

VARIABLEa, b, c : NODE;temp : halfadd;ts_node : TRI_STATE_NODE;

Macrofunktion

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

Dipl.‐Ing. Th. Rommel PLD46

BEGIN out1 = a1 & !a0; out2 = out1 # b;END;

BEGINss.clk = clk;ss.reset = reset;CASE ss IS

WHEN s0 =>q = GND;

IF d THENss = s1;

END IF;WHEN s1 =>

q = VCC;IF !d THEN

ss = s0;END IF;

END CASE;END;

Page 11: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

11

Decimal <series of digits 0 to 9>

Binary B"<series of 0's, 1's, X's>"

(where X = "don't care")

Octal O"<series of digits 0 to 7>" or

Q"<series of digits 0 to 7>"

Hexadecimal 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"

(Teil A)

Default

Dipl.‐Ing. Th. Rommel PLD47

CONSTANT IO_ADDRESS = H”0370”;

CONSTANT foo = 1 + 2 DIV 3 + LOG2 (256);

(mit arithmetischem Ausdruck)

(Teil A)

Dipl.‐Ing. Th. Rommel PLD48

Page 12: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

12

(Teil A)

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

Mathematische Operatoren

Dipl.‐Ing. Th. Rommel PLD49

(Teil A)

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 orequal

4

Vergleichsoperatoren

Dipl.‐Ing. Th. Rommel PLD50

Page 13: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

13

(Teil A)

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

Logische Operatoren

Dipl.‐Ing. Th. Rommel PLD51

• Boolesche Ausdrücke und Gleichungen:

SUBDESIGN boole1(

a0, a1, b : INPUT;out1, out2 : OUTPUT;

)BEGIN

out1 = !a1 & !a0;out2 = out1 # b;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD52

Page 14: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

14

Deklarierung eines internen Knotens (burried node)

SUBDESIGN boole2(

a0, a1, b : INPUT;out : OUTPUT;

)VARIABLE

a_equals_2 : NODE;BEGIN

a_equals_2 = !a1 & !a0;out = a_equals_2 # b;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD53

Defining Group (Bus)

SUBDESIGN group1(

a[1..2] : INPUT;d[1..2] : OUTPUT;dual_range[5..4][3..2] : OUTPUT;

)

BEGIN

d[ ] = a[ ] + B"10";dual_range[ ][ ] = VCC;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD54

Page 15: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

15

Conditional Logic (IF THEN Statement Logic)

SUBDESIGN priority(

low, middle, high : INPUT;highest_level[1..0] : OUTPUT;

)

BEGIN

IF high THENhighest_level[ ] = 3;

ELSIF middle THENhighest_level[ ] = 2;

ELSIF low THENhighest_level[ ] = 1;

ELSEhighest_level[ ] = 0;

END IF;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD55

CASE Statement Logic

SUBDESIGN decoder(

code[1..0] : INPUT;out[3..0] : OUTPUT;

)

BEGIN

CASE code[] IS

WHEN 0 => out[ ] = B"0001";WHEN 1 => out[ ] = B"0010";WHEN 2 => out[ ] = B"0100";WHEN 3 => out[ ] = B"1000";

END CASE;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD56

Page 16: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

16

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)

Dipl.‐Ing. Th. Rommel PLD57

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>

(Teil A)

Dipl.‐Ing. Th. Rommel PLD58

Page 17: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

17

Creating Registers:

SUBDESIGN bur_reg(

clk, load, d[7..0] : INPUT;q[7..0] : OUTPUT;

)

VARIABLEff[7..0] : DFFE;

BEGIN

ff[ ].clk = clk;ff[ ].ena = load;ff[ ].d = d[ ];q[ ] = ff[ ].q;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD59

Creating Counters:

SUBDESIGN count_clr(

clk, clr : INPUT;q[15..0] : OUTPUT;

)

VARIABLEcount[15..0] :DFF;

BEGINcount[ ].clk = clk;count[ ].clrn = !clr;

count[ ].d = count[ ].q + 1;q[ ] = count[ ].q;

END;

(Teil A)

Dipl.‐Ing. Th. Rommel PLD60

Page 18: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

18

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 orCase Statements (Logic Section)

(Teil A)

Dipl.‐Ing. Th. Rommel PLD61

State Machines

Dipl.‐Ing. Th. Rommel PLD62

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“);

Page 19: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

19

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");

BEGINss.clk = clk;ss.reset = reset;

(Teil A)

TABLEss, 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;

Dipl.‐Ing. Th. Rommel PLD63

ASIC & PLD Desigen

Dipl.‐Ing. Th. Rommel PLD66

(Teil B)

Übersicht über verschiedenePLD‐Architekturen,Systematisierung

Page 20: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

20

0 Zielfunktion beim Entwurf1 Hardware oder Software?2 Systematisierung2.1 CMOS-Technologie2.2 Entwurfsstile3 Programmierbare Logikbausteine (PLD)3.1 Allgemeine Eigenschaften3.2 Systematisierungs- und Auswahlkriterien3.3 Entwurfsablauf (z.B. eines FPGA)3.4 Programmiertechnologien3.5 Verbindungsarchitekturen3.6 Speicher in komplexen PLD3.7 Beschreibung der verschiedenen Bausteinarchitekturen3.7.1 PLD geringer Dichte3.7.2 Complex Programmable Logic Devices3.7.3 Field Programmable Gate Array FPGA3.8 Embedded Processor Solutions (Excalibur)3.9 Analoge PLD4 Wichtige Adressen und Literaturhinweise

Gliederung

Dipl.‐Ing. Th. Rommel PLD67

Taktfrequenz

Verlustleistungs-aufnahme

Flächenaufwand

synchrone Schaltung benötigt bestimmte Anzahl von Taktzyklen

je höher die Taktfrequenz, desto schneller die Schaltung

hohe Taktfrequenz = hohe Verlustleistung

zur Realisierung einer Schaltung wird bestimmte Fläche auf Silizium benötigt

bestimmte Einflussfaktoren für festverdrahtete und programmierbare Bauelemente

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

Das magische Dreieck beim Entwurf integrierter Digitalschaltungen:

0. Zielfunktion beim Entwurf

Dipl.‐Ing. Th. Rommel PLD68

Page 21: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

21

Algorithmus

X = A + BY = C – DZ = X * Y

strukturierbare Hardware

2 Zyklen

A

B

C

D -

+

*Z

Y

X

Mikroprozessor

load Aload B

addstore Xload Cload D

substore Yload Xload Y

mulstore Z

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

weitere Kriterien:

• Skalierbarkeit• Hardwareaufwand• Echtzeitfähigkeit• Verlustleistungsaufnahme• Flexibilität• Entwurfsprozess

1 Hardware oder Software?

Dipl.‐Ing. Th. Rommel PLD69

Dipl.‐Ing. Th. Rommel PLD71

Page 22: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

22

2.1 CMOS‐Technologie(Complimentary Metal Oxide Semiconductor)

• häufigst verwendete Technologie in ASIC und PLD

• Vorteil: Gate ist isoliert gegenüber Substrat→ hoher Eingangswiderstand→ geringer Eingangsstrom→ geringer Stromverbrauch

Dipl.‐Ing. Th. Rommel PLD72

CMOS‐Technologie

Dipl.‐Ing. Th. Rommel PLD73

einfache Darstellung eines Feldeffekttransistors (N‐Channel MOSFET)

Page 23: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

23

Entwurfsstile

Dipl.‐Ing. Th. Rommel PLD76

PLD

vollständig vorentworfen

vollständig vorgefertigt

Design beimAnwender

Zuweisung von Funktionselementen auf Zielarchitektur

evtl. Place & Route

Implementation beim Anwender

Fertigstellung beimAnwender

Gate-Array

Master und Macrosvorentworfen

Master vorgefertigt

Design beimAnwender

Abbildung auf Bibliothek des Zielsystems

Place & Route

Implementation bei Anwender und

Hersteller

Fertigstellung beimHersteller

Cell-Array

vorentworfene Zellen

keine Vorfertigung -durchgängiger Prozess

mit allen Masken

Design beim Anwender

Abbildung auf Bibliothek des Zielsystems

Place & Route

Implementation bei Anwender und

Hersteller

Fertigstellung beimHersteller

Full Custom

kein Vorentwurf

keine Vorfertigung -durchgängiger Prozess

mit allen Masken

Design beim Anwender und

Hersteller

Entwurf aller geometrischen

Strukturen

Place & Route

Implementation beim Hersteller

Fertigstellung beimHersteller

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)

Dipl.‐Ing. Th. Rommel PLD77

Quelle: A.Mäder

Chipgröße, Zellenanzahl, Zellengröße, Anschlusslage variabel

Page 24: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

24

Entwurfsstile

• vorgefertigte Zellen aus Bibliothek• Layout der Standardzellen in Full‐Custom Qualität• flexibler Entwurf• meist in Verbindung mit

Dipl.‐Ing. Th. Rommel PLD79

Quelle: A.Mäder

Chipgröße, variabelZellenanzahl variabelZellenhöhe festZellengröße variabelAnschlusslage variabelLeiterbahnkanäle variabel

Makrozellgeneratoren

Makrozellgenerator

Zellen wie Speicher, ALUs oder Datenpfade werden über Generatoren erzeugt

Makrozellen in Full‐Custom Qualtität

Entwurfsstile

Dipl.‐Ing. Th. Rommel PLD80

Aufbau eines NAND‐Gatters (CMOS‐Technologie) und…….

Page 25: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

25

Entwurfsstile

• vorgefertigte Transistoren• Layout durch Verbindungsstruktur (Verdrahtung, Kontakte)• intra‐Zell Verdrahtung aus Zellbibliotheken• vorgegebener Master: Komplexität eingeschränkt, keine optimale Auslastung• schnelle Verfügbar‐

keit

Dipl.‐Ing. Th. Rommel PLD82

Quelle: A.Mäder

Chipgröße, festZellenanzahl festZellenhöhe festZellengröße festAnschlusslage festLeiterbahnkanäle fest

Entwurfstile

Dipl.‐Ing. Th. Rommel PLD85

Standard‐baustein

Full‐Custom Semi‐Custom

PLD

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 WochenTage bis Wochen

NRE‐Kosten ‐ sehr hoch hoch gering

Entwurfsänderungen ‐ sehr aufwendig aufwendig einfach

Lieferanten viele einer zumeist einer viele

Page 26: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

26

Entwurfstile

Dipl.‐Ing. Th. Rommel PLD86

Dipl.‐Ing. Th. Rommel PLD87

3 Programmierbare Logikbausteine (PLD)3.1 Allgemeine Eigenschaften von PLD

• niedrige bis hohe Komplexität (100 ... 5 Mio. Gatter)

• Vielfalt enthaltener BaugruppenSRAM Blöcke (64 Mb), Bereitstellung aufwendiger Taktaufbereitungspezielle Blöcke für arithmetische Funktionen zur digitalen Signalverarbeitung,Ankopplung weiterer leistungsfähiger Systemelemente an die I/O‐Schnittstellen des PLD (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)

Page 27: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

27

Strukturgröße

Zeit

PLD

Gate Array

Standardzell ASIC

Technologieentwicklung

• in 80er Jahren mussten PLD mit den Produktions‐technologien der letzten oder vorletzten Generation auskommen

Dipl.‐Ing. Th. Rommel PLD94

• 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)

90 nm‐ Chips nur 55 % der Fläche

Virtex II Pro –Familie: 130 nm 400 Mio Transistoren90 nm 1 Mrd. Transistoren

Modernste Prozesstechnik

Dipl.‐Ing. Th. Rommel PLD95

Page 28: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

28

Umsetzung eines FPGA-Chips in ein „Hardcopy-ASIC“

Dipl.‐Ing. Th. Rommel PLD96

Auf Grund von Strukturanalogien ist eine direkte Übernahme des PLD‐Designs in ASIC möglich

Flash‐Demo I starten

Hardcopyim Vergleich mit ASIC‐Entwurf

Dipl.‐Ing. Th. Rommel PLD98

Page 29: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

29

Synthese

Dipl.‐Ing. Th. Rommel PLD101

• Unter der Synthese beim Entwurf digitaler Systeme versteht man die Erzeugung einer hardwarenäheren Beschreibung aus einerabstrakten 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

Entwurfsschritte (Synthese)

Dipl.‐Ing. Th. Rommel PLD102

• Funktionelle Simulation

• Technologieabbildung• Wahl einer Zielarchitektur (FPGA, CPLD)• 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

Page 30: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

30

Steuerung der Synthese

Dipl.‐Ing. Th. Rommel PLD103

• 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 bestimmteEingabeparameter gesteuert, die als Constraints bezeichnetwerden

Place & Route

Dipl.‐Ing. Th. Rommel PLD104

Layoutsynthese

Abbildung der Schaltung auf den konkreten Zielbaustein(d.h. es muss festgelegt werden, welche CLBs eines vorgegebenen Chips nun zurRealisierung 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 derNetzliste die nächsten freien CLBs zugeordnet und eng gekoppelte Elementesollten 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)

Page 31: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

31

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

Dipl.‐Ing. Th. Rommel PLD105

Programmable Function Unit (PFU) der OR2C-Familie (Lucent Technologies)

Beispiel für Granularität bzw. Körnung

Dipl.‐Ing. Th. Rommel PLD106

Page 32: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

32

einklassisches (FE)

wenige FE+ Verbindungen

(bis 100)

viele FE(ab 100)

g g )

Kombinatorik + FF(mit bis zu ca. 25 Eingängen)

relativ breiteKombinatorik

+ viele FF(20-50 Eingänge,

FF 8

relativ schmaleKombinatorik + FF

(Inputs < 10 , max. 2 FF)

keine vorwiegendglobal

vorwiegend local

PAL, ROM,

FPLAPAL, PLA RAM, LUT, MUX

Link:PAL EEPROMHSRAM

Antifuse:

globale Architektur:

Aufbau Funktionselement:

Aufbau Verbindung zwischen den FE:

Realisierung Kombinatorik:

Programmiertechnologie:

Systematisierung der PLD

Dipl.‐Ing. Th. Rommel PLD107

Effektivität von PLD

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

Dipl.‐Ing. Th. Rommel PLD108

Page 33: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

33

Schwierigkeiten beim Entwurf von PLD (CPLD 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

Dipl.‐Ing. Th. Rommel PLD109

1M

100k

10k

1k

100

10

1

Spe

zifik

atio

n

Sim

ula

tion

Syn

thes

e

Bits

tre

am

Pla

tine

Sys

tem

Fe

ld

relativeKosten

Entwurfs-schritt

Zehner-Regel: Kosten der Fehlerbeseitigung

Sicherung hoher Entwurfsqualität

Dipl.‐Ing. Th. Rommel PLD111

Page 34: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

34

3.4 Programmiertechnologie

Dipl.‐Ing. Th. Rommel PLD112

40-60µm

(Teil B)

Fused Links

Dipl.‐Ing. Th. Rommel PLD114

Word Line

Data Bit Line

PullupResistor

ProgrammedConnection

Transistor

Page 35: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

35

(Teil B)

SRAM-Zellen

Dipl.‐Ing. Th. Rommel PLD116

Zwei kreuzweise gekoppelte Inverter A und B als Speicherelement

5‐Transistor‐SRAM‐Zelle von XILINX

S

SSSSSSSSS

S

= Speicherzelle

DurchgangsgatterPass Transistor

Multiplexer Lookup Table(LUT)

00011011

1-aus-4Decoder

01

01

Wire

d-O

r

LUT als 4x1 RAM

X0X0

X1

X1Y = xor

LUT mit 2 Eingängen

SRAM-Zellen

Dipl.‐Ing. Th. Rommel PLD117

Programmierelemente mit Speicherzelle:

Page 36: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

36

Vorteile Nachteile

kein Programmiergerät erfoderlichschlechter bzw. umständlicher

Kopierschutz

jede beliebige Funktion ausEingangssignalen realisierbar

Konfigurationsspeicher erforderlich

Rekonfigurierung, ISPsorgfältige Planung nach Neustarts

notwendig

schnelle Entwurfsänderungen möglich empfindlich gegen radioaktive Strahlung

Dipl.‐Ing. Th. Rommel PLD118

Aufbau einer EPROM‐Zelle

Dipl.‐Ing. Th. Rommel PLD120

Wortleitung

Bit-leitung Q

G1G2

Vcc

Page 37: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

37

Wirkungsweise EPROM‐Zelle• Beschreiben einer EPROM‐Zelle

Dipl.‐Ing. Th. Rommel PLD121

Wirkungsweise EPROM‐Zelle• Lesen einer EPROM‐Zelle

Dipl.‐Ing. Th. Rommel PLD122

Page 38: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

38

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

Dipl.‐Ing. Th. Rommel PLD123

EPROM‐Zelle

Dipl.‐Ing. Th. Rommel PLD126

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

Programmier‐zeit

< 1 ms < 1 ms 200 µs

Löschzeit 20 min 1 ms < 1 ms

Page 39: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

39

• 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 PLD angewendet

Antifuse‐Technologie

Dipl.‐Ing. Th. Rommel PLD127

<1 µmFeldoxid Polysilizium

DiffusionsgebietDielektrikum

• 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)

PLICE‐Antifuse(programmable low‐impedance ciruit‐element)

Dipl.‐Ing. Th. Rommel PLD128

Page 40: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

40

SiO2

Metall

Metall amorphesSilizium

Verbindung

• sehr geringer Platzbedarf

• niedriger elektrischer Widerstand

• kleine Kapazitäten

(Teil B)

ViaLink‐Antifuse

Dipl.‐Ing. Th. Rommel PLD129

Vergleich der Technologien

Dipl.‐Ing. Th. Rommel PLD133

SRAMFLASH‐Eprom

Plice ViaLink

Konfigurierung flüchtig? ja nein nein nein

rekonfigurierbar? ja ja nein nein

in System programmierbar? ja theoretisch ja nein nein

Zellengrößegroß

mittel; als Array klein

(sehr)klein sehr 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 Prozessschritte0 3 bis 5 3 3

Page 41: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

41

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 PLD kaum

realisierbar)

Dipl.‐Ing. Th. Rommel PLD134

Verschlüsselung des Datenstoms bei SRAM-basierenden Bausteinen

Dipl.‐Ing. Th. Rommel PLD135

Kleiner nicht flüchtiger Speicher

Page 42: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

42

dynamischrekonfigurierbar

parallel rekonfigurierbar

rekonfigurierbar

konfigurierbar

• Schutz der Innovation

Unterschied zwischen Kopierschutz und Schutz vor genauen Analyse

- Anifuse sicherer als SRAM

- Programmieren des Security-Fuse

• Rekonfigurierbarkeit, ISP

• Kosten und Schaltungsaufwand

• Testbarkeit und Zuverlässigkeit

• Anzahl der Programmierelemente

Bewertung der Vor‐ und Nachteile

Dipl.‐Ing. Th. Rommel PLD137

Verbindungsarchitekturen

möglichst geringeVerzögerungszeiten

möglichst flexibleProgrammierbarkeit

möglichst vieleLeitungen

möglichst geringer Flächenaufwand

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

Anforderungen an die Verbindungsarchitekturen programmierbarer Logikbauelemente:

3.5 Verbindungsarchitekturen

Dipl.‐Ing. Th. Rommel PLD138

Page 43: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

43

Registereinige Bit

VerteilterSpeicher

einige 10 bit (pro Instanz)

Embedded Speicherpro Instanz einige 100 bit bis 10kbpro Bauelement einige 10 bis 10Mb

Externer SpeicherMb

Kriterien:

• Größe

• Wortbreite

• Zugriffszeit

• zusätzliche

Funktionalitäten

3.6 Speicher in komplexen PLD

Dipl.‐Ing. Th. Rommel PLD139

ProgrammierbareUND / ODER - Matrix

AusgabeBlock

EingabeBlock

programmierbare Rückkopplung

Eingang Ausgang

Handelsbezeichnungen: PAL, PLA, GAL, EPLD, PLS, FPLA

Grundsätzlicher Aufbau:

3.7 Beschreibung der verschiedenen Bausteinarchitekturen3.7.1 PLD geringer Dichte

Dipl.‐Ing. Th. Rommel PLD140

Page 44: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

44

Realisierung der Kombinatorik durch zweistufige Logik: UND- und ODER-Felder

Chiparchitekturen bei PLD niedriger Dichte

Dipl.‐Ing. Th. Rommel PLD141

UND‐Matrix ODER‐Matrix Normalform

RAM, ROM fest programmierbar KDNF

PAL programmierbar fest DNF

PLA programmierbar programmierbar DNF

• 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ängePAL: Anzahl Produktterme pro EingangPLA: Anzahl Produktterme gesamt

Implementierbarkeit bei PLD geringer Dichte

Dipl.‐Ing. Th. Rommel PLD142

Page 45: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

45

• Aufbau aus mehreren Blöcken, die untereinander geeignet verbunden werden können„Programmierbare Blöcke mit programmierbaren Verbindungsstrukturen“

• flexible Blockstruktur im Vergleich zum PLD 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

(Teil B)Gemeinsamkeiten zwischen CPLD’s und FPGA’s:

Dipl.‐Ing. Th. Rommel PLD145

Eigenschaften CPLD 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

Unterschiede:

Dipl.‐Ing. Th. Rommel PLD146

Page 46: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

46

Eigenschaften CPLD 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

Dipl.‐Ing. Th. Rommel PLD147

Eigenschaften CPLD FPGA

Flexibilität mittel hoch

Flächenausnutzung 40% ‐ 60% 50% ‐ 95%

Stromverbrauch hoch bis sehr hoch gering bis mittel

Einsatzgebiete bei breiten Eingangsfunktioneneinfache Realisierung schneller komplexer statemachines

schmale Eingangslogikregisterintensive Schaltungen

Vor‐/Nachteil Preis pro Gatter mittel bis hoch

• Preis pro Gatter gering bis hoch• anspruchsvolle Software erforderlich• angemessene Verdrahtungsressourcen erforderlich

• einfacher Umstieg auf Bausteine öhererKomplexität bei Beibehaltung der Leistungsdaten

Dipl.‐Ing. Th. Rommel PLD148

Page 47: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

47

Eigenschaften CPLD 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 Gatter100‐2 Mio FF

Total RAM Blocks 0‐ 8Kbits 0‐68 MBits

Taktfrequenzen bis 600 MHz 500 MHz

Dipl.‐Ing. Th. Rommel PLD149

3,3 volt Device Families

Family Density Speed I/O LogicBlock InputsMacro-

zellentPD (ns) Fmax (MHz)

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 18Lattice

Dipl.‐Ing. Th. Rommel PLD153

Page 48: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

48

(Teil B)

Blockschaltbild des MAX7000 (Altera)

Dipl.‐Ing. Th. Rommel PLD156

(Teil B)

Device Macrocell

Dipl.‐Ing. Th. Rommel PLD157

Page 49: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

49

Routing notwendig

lokale Verbindungsressourcen über den ganzen Chip

(Functional)LogicBlock

SwitchBox

ConnectionBox

ConnectionBox

k + Sonderleitung

wenigstens eine Leitung(Steuerleitungen,CLK)

Verbindungstracks

3.7.3 Field Programmable Gate Array FPGA

Dipl.‐Ing. Th. Rommel PLD161

Parameter:

1. w – Anzahl der Verbindungstracks

2. Af – Größe des Funktionalblocks (Logicblock)

Af ~ 2k + AS

3. FS – Flexibilität der SwitchboxAnzahl der erreichbaren Leitungen /Switchbox(Maximalwert = 3 w)

4. Fc – Flexibiltät der Connection BoxAnzahl der Tracks (w), die von einem Blockpin aus erreichbar sind(programmierbar z.B. durch Transistor)

5. Ap – Größe eines Programmierpunktes(Fläche des Transistors oder ähnliches)

Dipl.‐Ing. Th. Rommel PLD162

Page 50: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

50

PROGRAMMIERBARE SCHALTMATRIX

Dipl.‐Ing. Th. Rommel PLD163

AF 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)

• AP darf groß sein (z.B. Transistoren RAM-Zelle)

typischer Vertreter: XILINX

AF klein (höchstens 1 FF)

• relativ gute Chipauslastung

• relativ flexibel

• relativ langsam

• w groß

• AP müssen klein sein (z.B. Antifuse [PLICE])

typischer Vertreter: TI / ACTEL

gegenseitige Abhängigkeit von Parametern:

Dipl.‐Ing. Th. Rommel PLD164

Page 51: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

51

Xilinx Product Portfolio

Dipl.‐Ing. Th. Rommel PLD182

Quelle: Xilinx.com

Dipl.‐Ing. Th. Rommel PLD183

Page 52: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

52

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

Virtex‐5 Familie

Dipl.‐Ing. Th. Rommel PLD184

Dipl.‐Ing. Th. Rommel PLD185

Page 53: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

53

Dipl.‐Ing. Th. Rommel PLD186

verschiedene IO-Blöcke sind mit unterschiedlichen Spannungspegeln belegbar

DLL DLL

DLL DLLIOBs

IOB

s

IOBs

IOB

s

VersaRing

Ve

rsaR

ing

Ve

rsaR

ing

VersaRing

BR

AM

sB

RA

Ms

CLBs

Blockschaltung von Virtex 2,5V FPGA‘s

Dipl.‐Ing. Th. Rommel PLD191

Page 54: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

54

Spartan‐6 Family

Dipl.‐Ing. Th. Rommel PLD203

Xilinx – Analog Mixed Signal

Dipl.‐Ing. Th. Rommel PLD205

Quelle: Xilinx.com

Page 55: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

55

Intellectual Proberty (IP)

Dipl.‐Ing. Th. Rommel PLD206

• Simulation des Coreverhaltens im System

• Überprüfen der Designfunktionalität und bestimmen der Größe undGeschwindigkeit

• Generieren eines zeitlich begrenzten Programmierfiles für das Design

• Programmieren des Bausteines und überprüfen des Designs in Hardware

Entwurfswerkzeuge• 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

Dipl.‐Ing. Th. Rommel PLD212

(Teil B)

Page 56: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

56

3.8 Embedded Processor Solutions

Dipl.‐Ing. Th. Rommel PLD213

Traditional PLD Benefits NewBenefits

• Faster Time‐to‐Market

• Programmable Flexibility

• Low Risk

• Cost‐Effective Access to Embedded Processor Cores

• Higher Integration

(Teil B)

Dipl.‐Ing. Th. Rommel PLD214

Embedded processor Memory

Logic

Altera FPGA

Vorteile:

• kombiniert

programmierbare Logik,

Speicher und einen

Prozessorkern

• Einchiplösungen von

kompletten Systemen

[SOPC]

Page 57: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

57

ARM- & MIPS-Based Embedded Processors PLD Solutions

ARM- & MIPS-Based Embedded Processors

On-ChipRAM

ARM/MIPSEmbeddedProcessor

Cache

ExternalBus Interface

UART

AlteraProgrammable Logic

Architecture

Embedded Processor Core PLD Core

JTAG/Debug

External Devices

Serial Port

(Teil B)

Nur noch bis Anfang 2008 verfügbar

215 Dipl.‐Ing. Th. Rommel PLD

NIOS II Design Flow

218 Dipl.‐Ing. Th. Rommel PLD

Page 58: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

58

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

(z. B. der Firma Lattice)

(Teil B)3.9 Analoge PLD

Dipl.‐Ing. Th. Rommel PLD228

Analoge PLD‘s

Dipl.‐Ing. Th. Rommel PLD230

FPAA (Field Programmable Analog Array) An10E40 der Fa. Anadigm Inc.

Page 59: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

59

Dipl.‐Ing. Th. Rommel PLD231

CAB des FPAA (Field Programmable Analog Array) An10E40

Switched‐Capacitor‐Technik

Dipl.‐Ing. Th. Rommel PLD232

CfC

T

I

UR

schaltäq

1

Page 60: Programmierbare Logikbausteine ASIC‘s€¦ · 3 Programmierbare Logikbausteine (PLD) 3.1 Allgemeine Eigenschaften 3.2 Systematisierungs- und Auswahlkriterien 3.3 Entwurfsablauf

14.07.2014

60

Bauelementevorrat der Zellen

Dipl.‐Ing. Th. Rommel PLD238

• Markus Wannemacher: „Das FPGA-Kochbuch“Bonn, International Thomson Publishing GmbHISBN 3-8266-2712-1

• Axel Sikora: „Programmierbare Logikbauelemente, Architekturen und Anwendungen“München, Wien, Carl Hander VerlagISBN 3-446-21607-3

• A. Auer: „Programmierbare Logik-IC“Hüthig Buchverlag HeidelbergISBN 3-7785-1910-7

• A. Auer: „PLD-Handbuch“Hüthig Buchverlag HeidelbergISBN 3-7785-1991-3

• F. Kesel/R. Barthalomä: „Entwurf von digitalen Schaltungen und Systemen mit HDLs und FPGAs“Oldenbourg Verlag MünchenISBN 3-486-57556-2

• Chr. Siemers: „Logikbausteine“Vogel Buchverlag WürzburgISBN 3-8023-1873-0

(Teil B)4 Literaturhinweise

Dipl.‐Ing. Th. Rommel PLD243