Hardware

Speichertechnologien

  • Fuse
  • Antifuse
  • EPROM
    • Floating gate
    • Programmieren: hot-electron-injection
    • Löschen: UV-Licht (ionisierung des dielektrikums)
  • EEPROM
    • Floating gate
    • Programmieren: Fowler-Nordheim tunneling
    • Löschen: Fowler-Nordheim tunneling (Wortweise)
  • Flash
    • Floating gate
    • Programmieren: Unterschiedliche tunneleffekte
    • Löschen: Unterschiedliche tunneleffekte (Block-/Chipweise ⇒ Schnell ⇒ „Flash“)
  • SRAM
    • „static“ = Keine periodische Auffrischung
    • Flip Flop (2xPNP und 2x NPN Transistor)
    • Leitungen
      • WL = word line = Zelle zum schreiben auswählen
      • PRE = precharge = Schreibt treiber dazuschalten (sonst lesen)
      • BL = Ausgang
    • Arten
      • 6-Zell SRAM: Invertierten und nicht invertierten FF Anschluss nutzen
      • 5-Zell SRAM: Nur einen FF anschluss nutzen
      • 4-Zell SRAM: Anderer FF mit 2 Wiederständen und 2 Transistoren + beide Seiten nutzen

Geschichte der Logik Bausteine

  • ASIC
    (Application Specific Integrated Circuit)
  • PLD
    (Programmable Logic Device)
    • PROM
      (Programmable Read Only Memory)
    • SPLD
      (Simple Programmable Logic Dvice)
      • PLA
        (Programmable Logic Device)
        1. Inputs ⇒ Input + invertierter Input
        2. Programmierbares AND-Array
        3. Programmierbares OR-Array
      • PAL
        (Programmable Array Logic)
        1. Inputs ⇒ Input + invertierter Input
        2. Programmierbares AND-Array
        3. Fixes OR-Array ⇒ Schneller/Billiger
    • CPLD
      (Complex Programmable Logic Device)
      • Komplexere Funktionen ⇒ Größere SPLDs ⇒ splitten
        • Geringerer Strom verbrauch
        • Kleinere Arrays ⇒ Schneller
        • Günstiger
      • SPLDs, Flip Flops und I/O über zentrale switching matrix verschaltbar ⇒ geeignet für controll flow
      • Konfigurationsspeicher: Flash
    • FPGA
      (Field Programmable Gate Array)
      • switching matrix gesplittet (Vertikal/Horizontal Channels, wiederum gesplittet)
      • Vorgefertigte Komponeten (Multiplyer, …)
      • Flexibler
      • Teurer
      • Mehr Strom verbrauch
      • Konfigurationsspeicher: SRAM

FPGA

Komponenten

  • interconnect tile
    • switch matrix (können auch mehrer sein, z.B. bei BRAM)
      • S-Boxes
        (switch box)
        an kreuzung der H- und V-Stränge (6 PIPs)
      • C-Boxes
        (connection box)
        Schalten CLB auf H- und V-Stränge (1 PIP)
    • CLB = Basic logic cell
      (Configurable Logic Block)
      • 2 x SLICEM und 2 x SLICEM
        • G-LUT (Look up Table) / FFY (FlipFlop Y)
        • F-LUT (Look up Table) / FFX (FlipFlop X)
  • IOB
    (I/O Block)
  • BRAM
    (Block RAM)
  • DCM
    Digital Clock Manager
  • Multiplier
  • Slices werden von links untern nach rechts oben, beginnend bei 0, durchnummeriert.
  • SLICEL (Linke Seite von CLB)
    (Slice Memory)
    • Logic
    • Distributed RAM
    • Shift Register
  • SLICEL (Rechte Seite von CLB)
    (Slice Logic)
    • Logic

Optimale Werte (Xilinx's choose)

  • LUT Inputs 4-6 (4) ⇒ $n^2$ Inputkombinationen
  • LUT/FFs pro CLB 3-10 (8 = 4 Slices * 2 LUT/FFs)
  • LUT mit n inputs, kann $n^{2^2} = n^{2*2} = n^4$ Funktionen
  • LUTs kombinierbare und teilbar
  • PIP
    (Programmable Interconnect Point)
    • Transistor
    • Konfigurationsspeicher
      • SRAM
      • Flash
      • Fuse/Antifuse

Leitungen

Direction Paralel Länge Alle
Long Line Bidirectional 24 voll 6
Hex Line Unidirectional 8 6 3
Double Line Unidirectional 8 2 1
Direct Connections Unidirectional Zu den Nachbarn

Kompromiss aus

  • Kurzem delay
  • Hoher flexibilität

Konfiguration

  • SRAM
  • Verteilt zwischen den CLB
  • Flüchtig
  • bitstream von
    • extern
    • intern
      • flash
      • fuse/antifuse

BRAM

  • In Spalten
    • ⇒ Variable data width
    • ⇒ Variable data depths

2 Spalten à 10 BRAMs Verwendung

  • RAM
  • ROM
  • Shift Register
  • FIFO

Features

  • 18Kbit
    • 16Kbit Daten
    • 2Kbit Parität
  • 2 unabhängige r/w Ports
  • dual- single-port betrieb möglich
  • Keine combinatorial pathes
  • 100e GB/s
  • Kann mit 0 inizialisiert werden

Multiplyer

  • 18-Bit x 18-Bit = 36-Bit
  • 2er Kompliment
  • Kann FFs an den ein und Ausgängen haben
  • 2 Spalten à 10 Multiplyer
  • In Spalten mit BRAMs, da meistens effizienter.
  • Kann barrel shifters realisieren (shift register der in einem schritt weiter rotieren kann)

Längerer Addierer:

  • Kette über BCIN und BCOUT
  • Erster: A & B als Eingang
  • Weitere: A als Eingang
  • Alle: P als Ausgang

Digital Clock Manager (DCM)

4 DCMs

Funktionen

  • DLL
    Delay-Locked Loop
    • Digitales Pendant zu Phase-Locked Loop
    • Synchronisation auf eine Global Clock Input (GCLK)
    • Feedback um clock skews (Verzug über das die) zu verhindern
    • Eine „Probe Leitung“ führt clock von wichtiger Komponente zum Messen
  • DFS
    Digital Frequency Synthesizer
    1. Multipliziert clock
    2. Dividiert clock
    • CLKFX und CLKFX180 output
  • PS
    Phase Shift
    • Anwendung: Double Data Rate (DDR)
  • Status logic
    • Is Locked?
    • Reset
users/skruppy/ext/uni/4/fpga/hw.txt · Zuletzt geändert: 2013/06/29 04:10 (Externe Bearbeitung)