Spartan-II 2,5V Familie FPGAs

Transcription

Spartan-II 2,5V Familie FPGAs
-1 -
Spartan-II 2,5V Familie FPGAs
Proseminar FPGAs
SS 2003
1. Einfuehrung
2. Architektur
2.1 Ein-/Ausgabe Block
2.2 Konfigurierbare Logik Block (CLB)
2.3 Programmierbare Routing Matrix (PRM)
2.4 Block SelectRAM+
2.5 DLLs
3. Zusammenfassung
Li Wenchao
Datenblatt aus( Xilinx: Spartan-II 2.5 FPGAs/ April 7, 2000 Advance Product Specification)
-2 -
1. Einfuehrung
Spartan-II FPGA, wie die Abb.1 gezeigt, wird durch fuenf wichtige konfigurierbare Elemente
implementiert.
l
l
l
l
l
CLBs, die mit einer regelmaessigen, flexiblen, programmierbaren Architektur aufgebaut sind,
liefern die Funktionselemente fuer das Konstruieren der meisten Logik. Durch diese besondere
Architektur des CLBs kann die Logik einfach mit anderen Teilen verbunden werden.
Die programmierbare IOBs bilden das Interface zwischen den Pins und der internen Logik.
Um die Signale zwischen Chips leicht und schnell aendern zu koennen, befinden sich IOBs auf
allen Seite des Chips.
Jeder BlockRAM ist 4 CLBs hoch und umfasst 4096 Bits.
Um die Verzoegerung der Taktgeberverteilung zu eliminieren und die Taktgeber zu
kontrollieren, koennen die DLLs verwendet werden.
Durch eine komplexe Hierarchie von Routingresource, naemlich PRM, werden alle anderen
Elements zusammengeschaltet.
(Abb.1 Spartan-II Family FPGA Block)
-3 -
2. Architektonische Beschreibung
2.1 Ein-/Ausgang Block(IOB)
Die drei Registern in IOBs koennen entweder als flankengesteuerte D-flip-flops oder als
Pegel-gesteuerte Latches implementiert werden. Jedes IOB hat auch Taktgeber(CLK)- und
Freigabesignale, auf die drei Register verteilt. Ausserdem bekommen die drei Registern auch ein
Set/Reset Signal(SR). Dieses Signal kann als ein synchrone Set/Reset oder ein asynchrones
Preset/Clear konfiguriert werden.
Die Eingabe- und Ausgabepuffer und alle IOB-Steuersignale haben Polaritaetskontrollen, die durch
die Software kontrollierbar ist.
Zwei Formen von Ueberspannungsschutz schuetzen die Stromkreis gegen die elektrische Entladung
und transiente Ueberspannung.
Es gibt noch "pull-up" und "pull-down" Widerstaende und ein "weak-keeper" Kanal.
Die Aktivitaet der "pull-up" Widerstaend ist durch die Konfiguration kontrollierbar.
Der "weak-keeper" Kanal wird mit jedem Ausgang verbunden. Wenn er aktiv ist, erzeugt der Kanal
die Spannung und treibt die Pins, das Eingangssignal anzupassen. Wenn die Pins ein Multiple-Source
Signal verbunden sind, haelt der Kanal das Signal in seinem letzten Zustand, wenn alle Treiber
ausgeschaltet sind. Die Schwingungen wird dadurch eliminiert.
Eingabepuffer
Eingabepuffer koennen das Eingangssignal entweder direkt zur internen Logik oder durch eine
Eingangsflip-Flop senden.
Eingabepuffer haben auch ein Element, das D-Eingang dieser Flip-Flop verbunden wird.
Dieses Element garantiert die Verzoegerung immer Null, wenn es verwendet wird.
Jeder Eingangspuffer kann prorammiert werden, um sich an verschiedene Standards mit niedriger
Spannung anzupassen. Bei einigen dieser Standards verwendet der Eingangspuffer eine
"user-supplied" Spannung, Vref. Es gibt pull-up und pull-down Widerstaende an jedem Eingang .
Ihr Wert ist von 50 bis 150 Ohms.
Ausgabepuffer
Tri-State Ausgabepuffer treiben die Ausgangssignale. Das Ausgangssignal kann direkt vom interner
Logik oder durch einen IOB-Ausgangsflip-Flop verlegt werden.
Jeder Ausgangstreibe kann fuer beliebige Standards programmiert werden.
In den meisten Standards haengt die Ausgangsspannung von einer externe gelieferten Spannung
Vcco ab.
Die Notwendigkeit von Vcco oder Vref begrenzt die Verwendungen der Standards.
I/O Banking
Unter I/O Banking versteht man die externe Spannung , die an die IOB-Pins angeschlossen wird. Es
ist wichtig zu wissen , welche I/O-Standards innerhalb einer gegebenen Bank kombiniert werden
koennen.
Es gibt 8 I/O-Banke. Jede Bank hat mehrfache VccoPins, die an die gleiche Spannung
angeschlossen werden muessen. Diese Spannung wird durch den gewaehlten Ausgangsstandard
festgelegt.
-4 -
I/O Standards
Innerhalb einer Bank koennen Ausgangsstandards gemischt werden, wenn sie das gleiche
Vcco verwenden. GTL und GTL+ koennen mit allen Spannungen verwendet werden, weil ihre
Ausgaenge nicht von Vcco abhaengen.
Die Vref pins innerhalb einer Bank koennen nur mit einer Vref Spannung zusammengeschaltet
werden. Eingabepuffer, die Vref benoetigen, sind nicht 5V-tolerant.
Aber LVTTL(Low-Voltage TTL), LVCMOS2(Low-Voltage CMOs for 2.5)und PCI(Peripheral
Component Interface) sind 5V-tolerant. Fuer diese drei Standards ist die Terminationsspannung
(Vtt) auch nicht wichtig.
LVTTL hat ein LVTTL Eingabepuffer und ein Push-Pull Ausgabepuffer. Dieser Standard benoetigt
3.3V Ausgangsspannung(Vcco).
LVCMOS2 benoetigt 2.5V Vcco Spannung.
PCI, egal an 33MHz oder 66MHz PCI-bus, verwendet auch LVTTL Eingabepuffer und ein
Push-Pull Ausgabepuffer. Dieser Standard verlangt auch 3.3V.
(Tab.1 I/OStandards)
I/O Standard
LVTTL
LVCMOS2
PCI(3/5V,33/66MHz)
GTL
GTL+
HSTL Class I
HSTL Class III
HSTL Class IV
SSTL3 Class I&II
SSTL2 Class I&II
CTT
AGP-2X
Input Reference
Voltage (Vref)
N/A
N/A
N/A
0.8
1.0
0.75
0.9
0.9
1.5
1.25
1.5
1.32
Output Source Voltage Board Termination
(Vcco)
Voltage (Vtt)
3.3
N/A
2.5
N/A
3.3
N/A
N/A
1.2
N/A
1.5
1.5
0.75
1.5
0.75
1.5
0.75
3.3
1.5
2.5
1.25
3.3
1.5
3.3
N/A
2.2 Konfigurierbar Logic Block (CLB)
Das Grundelement des Spartann-II CLBs ist die Logikzelle (LC).
Ein LC besteht aus einem Funktionsgenerator mit 4-Eingaengen, Carry-Logik und ein
Speicherelement. Der Ausgang des Funktionsgenerators in jedem LC kann den CLB-Ausgang und
den Eingang des D-Flip-Flops ansteuern. Jedes Spartan-II CLB enthaelt vier LCs, die in zwei
aenliche SLICES organisiert werden.
Der Funktionsgenerator unterstuetzt noch mehr Eingaenge(5 oder 6), die von einem Multiplexer
verteilt werden . Deswegen man schaetzt die Anzahl der LCs in jedem CLB mit 4,5 ab.
-5 -
Lookup-Table
Spartan-II Funktionsgenerator werden als 4-Eingaenge Look-up Table(LUTs) implementiert.
Jedes LUT kann auch ein 16x1-bit synchrones RAM zur Verfuegung stellen. Ausserdem koennen
die zwei LUTs in einer SLICE kombiniert werden, um 16 x 2-bit oder 32 x 1-bit synchrones RAM
oder ein 16 x 1-bit dual-port synchrones RAM herzustellen.
Das Spartan-II LUT kann auch wie ein 16-bit Schieberegister funktionieren, das fuer die Aufnahme
der hohen Geschwindigkeits- oder Stossbetriebsdaten ideal ist. Dieser Modelle kann auch
verwendet werden, um Daten in den Applikationen wie Digitales Signal Verarbeitung zu speichern.
Speicherelemente
Die Speicherelemente in der Spartan-II SLICE koennen entweder als flankengesteuerte
D-flip-Flops oder als Pegel-gesteuert Latches konfiguriert werden. Die D-Eingaenge koennen
entweder durch die Funktionsgeneratoren innerhalb der SLICE oder direkt von den
SLICE-Eingaengen geladen werden .
Ausser Taktgeber und Freigabe hat jede SLICE synchronen Set und Reset-Signale( SR und BY).
SR kann ein Speicherelement in den Initialisierungszustand ansteuern. BY stellt es in den
Gegenzustand ein. Sie koennen auch fuer asynchrone Operationen konfiguriert werden.
Alle Steuersignale sind unabhaengig invertierbar und werden durch die zwei Flip-Flops innerhalb der
SLICE geteilt.
Zusatzlogik
Der F5 Multiplexer in jeder SLICE kombiniert die Ausgaenge von Funktionsgeneratoren. Diese
Kombination kann irgendeine Funktion mit 5-Eingaenge, einen 4:1 Multiplexer oder manche
Funktionen mit zu 9 Eingaengen implementieren.
Aehnlich kombiniert der F6 Multiplexer die Ausgaenge aller vier Funktionsgeneratoren im CLB,
indem er einen der F5-multiplexerausgaenge vorwaehlt. Dieses ermoeglicht die Implementierung
irgendeiner Funktion mit 6-Eingaenge, ein 8:1 Multiplexer oder manche Funktionen mit zu 19
Eingaengen.
Jedes CLB hat vier direkte Rueckkoppelungswege, einen pro LC. Diese Wege liefern
Extradateneingabelinien oder zusaetzliche lokale Routingresourcen.
Arithmetische Logik
Die arithmetische Logik besitzt ein XOR-Gatter und ein UND-Gatter. Das XOR-Gatter kann einen
1-bit VollAddiere in einem LC implementieren. Das UND-Gatter verbessert die Leistungsfaehigkeit
bei der Implementierung von Multiplikation.
BUFTs
Jedes Spartan-II CLB enthaelt zwei 3-State Puffers(BUFTs), die on-chip Busse antreiben koennen.
Jedes Spartan-II BUFT hat einen unabhaengigen 3-state Steuerungspin und einen unabhaengigen
Eingangspin.
-6 -
2.3 Programmierbar Routing Matrix (PRM)
Lokales Routing
Lokale Routing stellt die folgenden drei Arten bereit:
l Verbindungen zwischen den LUTs, den Flip-Flops und den GRMs
l Feedbackwege in CLBs liefern die hohe- Geschwindigkeitsanschluesse zu LUTs innerhalb des
gleichen CLB, ketten sich zusammen mit minimaler Routing-Delay an.
l Direkte Verbindungen zwischen horizontal angrenzendem CLBs eliminieren die Verzoegerung
vom GRM.
Das GRM(General Routing Matrix) ist die Schaltmatrix, durch die die horizontale und vertikale
Routingsresource verbunden werden, und ist auch das Mittel, durch die das CLB zum Routingzugriff
erhaelt.
General Purpose Routing
l
l
Neben jedem CLB ist eine allgemeine Routingmatrix (GRM).
24 Einzelnlaengenlinien verlegen GRM-Signale mit angrenzendem GRMs in alle vier Richtungen.
l
96 Puffered-Hexline leiten die Signale des GRM zu anderen GRMs mit Abstand 6 in alle vier
Richtungen. Hexline koennen nur an ihren Endpunkten getrieben werden. Hexlinessignale
koennen entweder an den Endpunkten oder am Mittelpunkt zugriffen werden. Ein Drittel der
Hexagonlinien sind umkehrbar, die restlichen nicht.
12 umkehrbare Puffered-Longlines leiten die Signale ueber der Chip schnell und effizient.
l
I-/O Routing
Spartan-II haben auch I/O Routingresource, die eine Schnittstelle zwischen CLBs und IOBs bilden.
Dediziert Routing
Zwei Signalbaureihe stellen zur Verfuegung .
l Horizontale Routingresourcen werden fuer 3-State-Busse des Chips zur Verfuegung gestellt.
Vier unabhaengige Busleitungen werden pro CLB-Reihe zur Verfuegung gestellt.
l Zwei Netze im CLB leiten Signale vertikal zum angrenzenden CLB.
Globale Routing
Spartan-II besitzt zwei Arten der globalen Routingsresourcen, die als die primaere und sekundaere
Routingsresource gekennzeichnet sind.
l Die primaeren Routingsresource sind vier dedizierte globale Netze, die die high-fanout
Taktgebersignale mit wenige Verzoegerung verteilt. Jedes globale Taktgebernetz kann alle
CLB, IOB und Block-RAM treiben. Die primaeren globalen Netzen koennen nur durch
globale Puffer betrieben werden. Es gibt vier globale Puffer, einer fuer jedes globale Netz .
l Die sekundaeren globalen Routingsresource bestehen aus 24 backbone Linien , 12 ueber den
Oberseite des chips und 12 ueber den Unterseite. Diese Sekundaerresouce sind flexibler als
die Primaeresource, da diese nur auf Taktgeberspins eingeschraenkt werden.
-7 -
2.4 Block SelectRAM+
Spartan-II liefert synchrones dual-read/write Port RAM, mit 4096 Speicherzellen. Jeder Port des
BlockRAMs kann als Lese/Schreib-Port, ein Lese-Port, ein Schreib-Port unabhaengig konfiguriert
werden und kann zu einer spezifischen Datenbreite konfiguriert werden.
Eigenschaften des BlockRAMs
1 . Alle Eingaenge werden mit dem Portstaktgeber registriert und haben eine Einstellung fuer die
TIMING-Spezifikation.
2 . Alle Ausgaenge haben Lesen oder Schreiben- Funktion abhaengig von dem Zustand des WE
pins.
3 . Block SelectRAM sind SRAM-Speicher und haben keinen Verbindungsleitung von die Adresse
zum Ausgang. LUT SelectRAM+ im CLBs sind noch mit dieser Funktion vorhanden.
4 . Die Ports sind voneinander vollstaendig unabhaengig.
5 . Ein Schreib-/ Leseoperation erfordert nur eine Taktimpulseflanke.
PortSignale
Jedes Port des Block SelectRAM+ funktioniert unabhaengig von den anderen durch Zugriff der
gleichen Anzahl von 4096 Speicherzellen.
(Tab 2 Block SelectRAM+ Port Aspect Ratios)
Width
1
2
4
8
16
Depth
4096
2048
1024
512
256
ADDR Bus
ADDR<11:0>
ADDR<10:0>
ADDR<9:0>
ADDR<8:0>
ADDR<7:0>
Data Bus
DATA<0>
DATA<1:0>
DATA<3:0>
DATA<7:0>
DATA<15:0>
Enable-EN[A|B ]
Die EN-Pins beeinflussen die Funktionalitaet des Schreiben und Lesen.
Inaktive EN-pins halten die Pins im vorhergehenden Zustand. Die Daten duefen nicht mehr zu den
Speicherzellen schreiben.
Write Enable-WE[A|B ]
Wenn dieser Pin aktiv ist, wird der Inhalt in den Datenbusse zum RAM an die Adresse geschrieben,
die durch den Adressbus audgewaehlen wird, und die neuen Eingaben zeigen sich auch am Ausgang.
Wenn unaktiviert, der Inhalt in den Speicherzellen reflektiert sich auf Ausgaengsbus.
Es gibt auch die Moeglichkeit, dass beide Ports gleichzeitig zur gleichen Speicherzellen zugreifen..
Dann funktioniert eine Faehigkeit, die Konflikt aufzuloesen, wie unter gezeigt:
l Wenn beide Port zu gleichen Speicherzelle gleichzeitig schreiben, bleiben in dieser Speicherzelle
gespeichte Daten unveraendert.
l Wenn ein Port das Lesen von einen Speicherzelle versucht und anderer schreibt gleichzeitig,
erfolgt das Schreiben und die Ausgangsdaten von den Schreibenport ist wie die geschriebenen
Daten. Die Ausgangsdaten von den Lesenport bleibt unveraendert.
Konflikte verursachen keine physikalische Beschaedigung.
-8 -
2.5 DLL
Es gibt vier digitale on-chip DLLs. Jedes DLL koennen bis zu zwei globale Taktgebersignale
treiben. Durch die Taktgeberdivision mit die Ausgang CLKDV koennen die Quelletaktgeber durch
N teilen, N ist 1.5. 2. 2.5.3.4.5.8.oder 16. Das ist auch die wichtige CLKDV-DIVIDE-Eigenschaft.
Eine andere wichtige Eigenschaft ist die DUTY-CYCLE-CORRECTION.
Durch die DUTY-CYCLE-CORRECTION=True werden die 1X Ausgaenge(CLK0, CLK90,
CLK180 und CLK270) mit 50/50 Zyklus erzeugt.
Die vorgebende Werte von DUTY-CYCLE-CORRECTION ist True.
Der Ausgang CLK2X liefern einen verdoppelten Taktgeber mit einer automatischen 50/50 Zyklus.
3. Zusammenfassung
Auf der Virtex Familienarchitektur und mit mehr als 15 jaehrige Erfahrung wird Spartan II aufgebaut
. Spartan II liefert 100,000 Gattern unter $10 und die innere Systemtakt bis 200-MHz. Durch seine
besondere Architektur erzielen die Spartan II hoehe Leistung und niedrige Kosten.
Die Spartan-II Familie hat z.Z. fuenf Mitglieder.
Device
XC2S15
XC2S30
XC2S50
XC2S100
XC2S150
XC2S200
Logic
Cells
432
972
1,728
2,700
3,888
5,292
(Tab.3 Spartan II FPGA Glieder)
Typical System
Maximum
Gate Range (Logic
CLB
Total
Available User
and RAM)
Array CLBs
I/O
6,000-15000
96
86
8x12
13,000-30,000
216
132
12x18
23,000-50,000
384
176
16x24
37,000-100,000
600
196
20x30
52,000-150,000
864
260
24x36
71,000-200,000
284
28x42 1,176
Total Block
Ram Blocks
4
6
8
10
12
14
Total Block
RAM Bits
16,384
24,576
32,768
40,960
49,152
57,344