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