+ All Categories
Home > Documents > 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer...

4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer...

Date post: 25-Jan-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
58
1 4. Die Spartan3-Familie
Transcript
Page 1: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

1

4. Die Spartan3-Familie

Page 2: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

2

Programm für heute:

Die Spartan3-Familie• CLBs (configurable logic blocks), Slices, Logic Cells• IO-Blöcke• Taktung

Page 3: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

3

Configurable Logic Block (CLB)

Ein CLB besteht aus zwei identischen so genannten Slices .

Eine Slice besteht aus zwei sehr ähnlichen Logic Cells .

Die beiden Logic Cells jeder Slice nutzen eine Reihe von Steuersignalen gemeinsam. Zum Beispiel werden sie über eine gemeinsame Taktleitung CLK getaktet. Näheres dazu auf den folgenden Folien.

Durch spezielle Multiplexer (F5- und F6-Multiplexer) können aus den Logic Blocks eines CLBs sehr effizient komplexere Funktionen geformt werden, die mit einem einzelnen Logic Block nicht möglich wären.

Page 4: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

4

Logic Cell (LC)

Der Grundbaustein des Spartan-3 ist die Logic Cell (LC). Sie besteht aus

1. Einer 4-Input-Lookup-Table (LUT, in der Literatur auch als function generatorbezeichnet), mit der eine beliebige Boolesche Funktion mit vier Eingängen implementiert werden kann.

2. Einem Speicherelement. Dieses ist realisiert als taktgesteuertes D-Flipflop mit set-und reset-Eingang. Das Flipflop kann am Ausgang zur Speicherung eines in der LC berechneten Wertes genutzt werden.

3. Einer sogenannten Carry-und-Control-Logik. Diese bietet die Funktionalität, den Ausgang der LUT mit weiteren Eingängen zu kombinieren, geeignete Signale an den Ausgang der LC zu leiten und den Carry-Ausgang zu beschalten, falls die LC als Teil einer Addiererschaltung benutzt werden soll.

Der prinzipielle Aufbau einer Slice aus zwei LCs ist auf der folgenden Folie zu sehen.

Page 5: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

5

2 Logic Cellsbilden eine Slice

Page 6: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

6

Look-Up Tables (LUTs)

Die LUTs können wahlweise in unterschiedlichen Betriebsmodi genutzt werden. Die Standardnutzung ist die Implementierung eines Schaltnetzes mit bis zu vier Eingängen und einem Ausgang.

Da es sich bei einer LUT um ein16x1-Bit synchrones RAM handelt, können sie darüber hinaus für die Logik auch als solches benutzt werden. Ferner können zwei LUTs innerhalb einer Slice kombiniert werden entweder zu einem 32x1-Bit RAM oder zu einem 16x2-Bit RAM oder zu einem 16x1-Bit dual ported RAM, also einem RAM, das gleichzeitig zwei Zugriffe erlaubt. Diese Funktionalität ist ausgesprochen hilfreich in Applikationen, bei denen viele einfache Prozessorelemente auf einem FPGA implementiert werden müssen.

Eine weitere Möglichkeit der LUT ist die Konfiguration zu einem 16-Bit Schieberegister. Dieses kann in Bit-seriellen Applikationen nützlich sein, generiert aber – wenn es mehrfach auf dem selben FPGA genutzt wird - einen hohen Leistungsverbrauch (da RAM immer wesentlich weniger Strom braucht als Schieberegister).

Natürlich geht die Funktion der LC als Schaltnetz verloren, wenn das RAM als Speicher genutzt wird.

Page 7: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

7

Speicherelement

Die Speicherelemente in der Spartan3-Slice können entweder als flankengesteuerte oder als pegelgesteuerte D-Flipflops konfiguriert werden.

Ihr D-Eingang ist entweder der Ausgang der LUT oder ein primärer Eingang der Zelle (BY).

Die Aktivität des Flipflops wird über ein CLK und über ein CE (clock enable) gesteuert.

Zusätzlich hat jedes Flipflop einen synchronen Set/Reset-Eingang (SR).

Alle Steuerungssignale (CLK, CE, SR, BY) gehen an beide Flipflops innerhalb einer Slice, die aus zwei LCs besteht. Ein Bild ist auf der folgenden Folie gezeigt.

Page 8: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

8

Page 9: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

9

-- Sieben-Segment-Anzeigelibrary IEEE;use IEEE.STD_LOGIC_1164.ALL;-- use IEEE.STD_LOGIC_ARITH.ALL;-- use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity SiebenSeg isport (

Binary : in std_logic_vector(3 downto 0);S6 : out std_logic );

end SiebenSeg;

architecture Behavioral of SiebenSeg is

begin

-- S6 ist Segment 6 der Anzeige -- also der oberste Querbalkenwith Binary select

S6 <= '0' when "0001", -- 1'0' when "0100", -- 4'0' when "1011", -- B'0' when "1101", -- D'1' when others;

end Behavioral;

Page 10: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

10

Page 11: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

11

Page 12: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

12

Additional Logic

In jeder Slice befindet sich ein so genannter F5-Multiplexer. Dieser kombiniert die Ausgänge der funktion generators (LUTs), um damit - eine beliebige 5-Input Schaltnetzfunktion oder- spezielle Funktionen mit bis zu 9 Inputszu realisieren.

Ferner gibt es in jedem CLB einen so genannten F6-Multiplexer. Dieser kann wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit- eine beliebige 6-Input Schaltnetzfunktion oder- spezielle Funktionen mit bis zu 19 Inputszu realisieren.

Page 13: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

13

-- G ist 1, wenn der Bit-Vektor X drei-- oder mehr Einsen enthält

library IEEE;use IEEE.STD_LOGIC_1164.ALL;

entity F5MUXdemo isport(

X : in std_logic_vector(4 downto 0);G : out std_logic );

end F5MUXdemo;

architecture Behavioral of F5MUXdemo is

begin

G <= ( X(0) and X(3) and X(4) ) or( X(0) and X(1) and X(2) ) or( X(0) and X(2) and X(3) ) or( X(0) and X(1) and X(3) ) or( X(0) and X(1) and X(4) ) or( X(1) and X(3) and X(4) ) or( X(1) and X(2) and X(3) ) or( X(1) and X(2) and X(4) ) or( X(2) and X(3) and X(4) ) or( X(0) and X(2) and X(4) );

end Behavioral;

Page 14: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

14

Page 15: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

15

Arithmetische Logik

In den CLBs befinden sich spezielle Gatter und Leitungen, die für die Implementierung schneller Arithmetik genutzt werden können.

Spezielle Carry-Logik innerhalb jeder Logic Cell. Also 2 Bits innerhalb der Slice.

Ein XOR-Gatter (XORG) pro Logic Cell. Dadurch wird die Implementierung eines Volladdierers pro LC möglich.

Ein AND-Gatter pro Logic Cell (GAND). Dadurch wird die Implementierung von Multiplizierern unterstützt.

Man kann auf der folgenden Folie sehen, wie ein Volladdierer aus den vorhandenen Blöcken der LC gebastelt werden kann: Die Eingänge A[3] und A[1] werden in der LUT durch XOR verknüpft und liefern D. Das Summenbit entsteht durch die XOR-Verknüpfung von D mit dem eingehenden Carry der unteren LC bzw. durch das CIN. Es wird an den Y-Ausgang geliefert. Das ausgehende Carry ist gleich dem eingehenden Carry, wenn D=‘1‘ ist und gleich dem Wert von A[3] (oder A[1], denn in diesem Fall ist A[3]=A[1]), wenn D=‘0‘ ist. Dies leistet der obere Multiplexer CYMUXG.

Page 16: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

16

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations th at are-- provided for instantiating Xilinx primitive component s. library UNISIM; use UNISIM.VComponents.all; entity RCA_PRI is

generic( WIDTH : positive := 8 ); port ( A : in std_logic_vector(WIDTH-1 downto 0);

B : in std_logic_vector(WIDTH-1 downto 0); CI : in std_logic; S : out std_logic_vector(WIDTH-1 downto 0); CO : out std_logic);

end RCA_PRI; architecture Behavioral of RCA_PRI is

signal sum: std_logic_vector(WIDTH downto 0); signal zeros: std_logic_vector(WIDTH-1 downto 0) := ( others => '0');

beginprocess (CI, A, B, sum) begin

sum <= ('0' & A) + ('0' & B) + (zeros & CI); S <= sum(WIDTH-1 downto 0); CO <= sum(WIDTH);

end process; end Behavioral;

Page 17: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

17

Page 18: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

18

Page 19: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

19

Page 20: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

20

Maximum delay is 16.392ns.Delay: 16.392ns (data path)

Source: B<0> (PAD)Destination: CO (PAD)Data Path Delay: 16.392ns (Levels of Logic = 6)

Data Path: B<0> to CODelay type Delay(ns) Logical Resource(s)---------------------------- -------------------Tiopi 0.924 B<0>

B_0_IBUFnet (fanout=1) 4.364 B_0_IBUFTopcyf 1.486 rca_pri_S<0>lut

rca_pri_S<0>cyrca_pri_S<1>cy

net (fanout=1) 0.000 rca_pri_S<1>_cyoTbyp 0.096 rca_pri_S<2>cy

rca_pri_S<3>cynet (fanout=1) 0.000 rca_pri_S<3>_cyoTbyp 0.096 rca_pri_S<4>cy

rca_pri_S<5>cynet (fanout=1) 0.000 rca_pri_S<5>_cyoTbyp 0.096 rca_pri_S<6>cy

rca_pri_S<7>cynet (fanout=1) 3.774 CO_OBUFTioop 5.556 CO_OBUF

CO---------------------------- ----------------------- ----Total 16.392ns (8.254ns logic, 8.138 ns route)

(50.4% logic, 49.6% route)

Page 21: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

21

LUT als Schieberegister

Die Speicherelemente in der Spartan-3-Slice können auch als Schieberegister fester oder variabler Länge konfiguriert werden. Dabei wird die Länge in vier Bit (A0 bis A3) codiert, wobei die effektive Länge (zwischen 1 und 16 Bit) sich als 8A3+4A2+2A1+A0+1 ergibt.

D ist der serielle Eingang und Q der serielle Ausgang. Das Schieberegister schiebt bei der steigenden Taktflanke.

Page 22: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

22

SRL16 16-Bit Shift Register Look-Up-Table (LUT)

Architectures Supported

No CoolRunner-II

No CoolRunner XPLA3

No XC9500, XC9500XV, XC9500XL

Primitive Virtex-II, Virtex-II Pro, Virtex-II Pro X

Primitive Virtex, Virtex-E

Primitive Spartan-3

Primitive Spartan-II, Spartan-IIE

SRL16

Page 23: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

23

Instanzierung:

-- SRL16: 16-bit shift register LUT operating on posedg e of clock-- All FPGAs -- Xilinx HDL Libraries Guide version 7.1i

SRL16_inst : SRL16

port map ( Q => Q, -- SRL data outputA0 => A0, -- Select[0] inputA1 => A1, -- Select[1] inputA2 => A2, -- Select[2] inputA3 => A3, -- Select[3] inputCLK => CLK, -- Clock inputD => D -- SRL data input );

-- End of SRL16_inst instantiation

Page 24: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

24

LUT als Read Only Memory

Die Speicherelemente in der Spartan-3-Slice können auch explizit als ROM verwendet werden. Hier finden wir ein Beispiel für ein 16x1 Bit ROM. Andere Größen (bis zu 32x1) sind möglich.

Page 25: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

25

ROM16X1 16-Deep by 1-Wide ROM

Architectures Supported

No CoolRunner-II

No CoolRunner XPLA3

No XC9500, XC9500XV, XC9500XL

Primitive Virtex-II, Virtex-II Pro, Virtex-II Pro X

Primitive Virtex, Virtex-E

Primitive Spartan-3

Primitive Spartan-II, Spartan-IIE

ROM16X1

Page 26: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

26

Instanzierung:

-- ROM16X1: 16 x 1 Asynchronous Distributed => LUT ROM -- Xilinx HDL Language Template version 6.1i

ROM16X1_inst : ROM16X1

-- Edit the following generic to define the contents of the ROM. generic map ( INIT => X"0000")

port map ( O => O, -- ROM outputA0 => A0, -- ROM address[0] A1 => A1, -- ROM address[1] A2 => A2, -- ROM address[2] A3 => A3 -- ROM address[3] );

-- End of ROM16X1_inst instantiation

Page 27: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

27

LUT als Random Access Memory

Die Speicherelemente in der Spartan-II-Slice können auch explizit als RAM verwendet werden. Hier finden wir ein Beispiel für ein 16x1 Bit RAM. Andere Größen (bis zu 32x16) sind möglich.

Auszug aus der Spezifikation von XilinX:RAM16X1S_1 is a 16-word by 1-bit static random access memory with synchronouswrite capability and negative-edge clock. When the write enable (WE) is Low, transitions on the write clock (WCLK) are ignored and data stored in the RAM is notaffected. When WE is High, any negative transition on WCLK loads the data on thedata input (D) into the word selected by the 4-bit address (A3 – A0). For predictableperformance, address and data inputs must be stable before a High-to-Low WCLK transition. This RAM block assumes an active-Low WCLK. However, WCLK can beactive-High or active-Low. Any inverter placed on the WCLK input net is absorbedinto the block. The signal output on the data output pin (O) is the data that is stored in the RAM at the location defined by the values on the address pins.

Page 28: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

28

RAM16X1S_1 16-Deep by 1-Wide Static Synchronous RAM with Negative-Edge Clock

Architectures Supported

No CoolRunner-II

No CoolRunner XPLA3

No XC9500, XC9500XV, XC9500XL

Primitive Virtex-II, Virtex-II Pro, Virtex-II Pro X

Primitive Virtex, Virtex-E

Primitive Spartan-3

Primitive Spartan-II, Spartan-IIE

RAM16X1S_1

Page 29: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

29

Instanzierung:

-- RAM16X1S_1: 16 x 1 negedge write distributed => LUT RAM -- All FPGA -- Xilinx HDL Language Template version 6.1i

RAM16X1S_1_inst : RAM16X1S_1

-- Edit the following generic to change the inital contents-- of the RAM.

generic map ( INIT => X"0000")

port map ( O => O, -- RAM outputA0 => A0, -- RAM address[0] inputA1 => A1, -- RAM address[1] inputA2 => A2, -- RAM address[2] inputA3 => A3, -- RAM address[3] inputD => D, -- RAM data inputWCLK => WCLK, -- Write clock inputWE => WE -- Write enable input );

-- End of RAM16X1S_1_inst instantiation

Page 30: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

30

5. Taktung

Page 31: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

31

Taktung

Alle synchronen Schaltungen werden durch ein oder mehrere Taktsignale gesteuert. Die Frequenzen dieser Taktsignale bestimmen in der Regel die Performance. Durch die Entwicklung der Halbleitertechnologie wurden in der Vergangenheit immer schnellere Gatter möglich, was zwangsläufig einen Bedarf an immer höheren Taktfrequenzen generierte. Solange die Schaltzeit der Gatter signifikant über den Laufzeiten der (Takt-) Signale auf den Leitungen lag (etwa bis zur Mitte der 80er Jahre), war dies kein Problem.

Bei heutigen CMOS-Schaltungen werden die Signale etwa mit einem Zehntel der Lichtgeschwindigkeit über (Metall-) Leitungen transportiert (Dieser Wert variiert mit dem Widerstand der Leitung, der Kapazität der aufzuladenden Transistorgatter und der Treiberleistung des treibenden Gatters; trotzdem kann diese Approximation für unsere Zwecke als genau genug angesehen werden). Mit dieser Geschwindigkeit kann ein Signal in einer Taktphase eines Taktes mit einer Frequenz von 1GHz die Strecke von 3 cm zurücklegen. Häufig steht aber nur eine halbe Taktphase zur Verfügung, ferner werden Signale nicht durchgehend auf Metallleitungen übertragen, so dass die Laufzeit auf den Leitungen sich bei heutiger Technologie bereits in der Größenordnung der Schaltzeit von Elementargattern befindet. Dadurch entstehen Probleme, die wir auf den folgenden Folien studieren und lösen wollen.

Page 32: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

32

Setup- und Hold-Zeiten von Latches und Flipflops

Die Hold-Zeit eines Latches oder eines Flipflops ist die Zeitspanne, die das Eingangssignal nach dem Übernahmeevent (Taktflanke beim Flipflop, Ende des Taktpegels beim Latch) noch unverändert anliegen muss, um korrekt übernommen zu werden.

Die Setup-Zeit eines Flipflops ist die Zeitspanne, die das Eingangssignal vor dem Übernahmeevent anliegen muss, um korrekt übernommen zu werden. In Bezug auf Latches spielt die Setup-Zeit nur in sofern eine Rolle, als das Eingangssignal mindestens für die Setup-Zeit stabil anliegen muss, damit es übernommen werden kann. Allerdings sind die Setup-Zeiten immer deutlich kürzer als die Dauer der positiven oder negativen Taktphase.

Typische Setup-Zeiten bei Flipflops in heutiger CMOS-Technologie (z.B. 0,18µ-Prozess) 60-120 ps, d.h. etwa ein Zehntel ns.

Typische Hold-Zeiten bei Flipflops in heutiger CMOS-Technologie (z.B. 0,18µ-Prozess) 0-30 ps.

Typisches Clock-to-Output-Delay eines taktflankengesteuerten Flipflops in 0,18µ-Technologie 200 ps.

Page 33: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

33

Setup- und Hold-Zeiten von Latches und Flipflops

CLK

D

Q

tS tS tStH tH

tCO Clock-to-Output Delay

Setup zu kurzdaher keineÜbernahme

Setup-Zeit Hold-Zeit

Page 34: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

34

Taktverzögerungen in synchronen Schaltungen

Beispiel: Ein Schieberegister aus Flipflops:

D Q

CLK

M2 M4 M6

t

CLK

D

M2

M4

M6

Q

Page 35: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

35

Wenn wir diese Schaltung betrachten, gehen wir davon aus, dass die Setup-Zeit tS und Hold-Zeit tH mit der Taktfrequenz f harmonieren, d.h.

tS < 1/(2f)

tH < tCO <1/(2f)

Ein Taktzyklus hat die Länge 1/f. tCO bezeichnet dabei die Verzögerungszeit des Flipflops vom Taktereignis bis zur Änderung des Ausgangs. CO steht für clock-to-output

Wenn diese Bedingungen gegeben sind, kann ein solches Schieberegister aus Latches aufgebaut werden, die abwechselnd positiv und negativ pegel-gesteuertsind.

Page 36: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

36

D Q

D Q

CLK

M1 M2 M3 M4 M5 M6 M7

M2 M4 M6

tCLK

D

M1

M2

M4

M6

Q

Schieberegister aus Latches

Page 37: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

37

Digital Clock Manager (DCM)

Häufig kommt es vor, dass das Taktsignal, mit dem der Chip von außen gesteuert wird,

• Durch die Übertragung über den Anschlussdraht und den Input-Paddegeneriert wird

• Eine über die Zeit veränderliche Taktverschiebung (Jitter) aufweist

• Für die Funktionalität unterteilt werden muss, da eine höhere Frequenz erforderlich ist

• In der Phase verschoben werden muss.

Diese Funktionen übernimmt eine Digital Clock Manager (DCM), ein Regelkreis, der kurzfristige Taktschwankungen eliminiert, und nach Bedarf Takte der doppelten oder halben Frequenz generiert. Ferner erzeugt die DCM an ihrem Ausgang ein sauberes Rechteck, auch wenn der Eingang z.B. eine Sinusform aufweist.

Unser Spartan-3 Chip verfügt über 4 DCMs für bis zu 4 globale Taktsignale. Die DCMs können anwendungsspezifisch für die obigen Zwecke genutzt werden. Weitere Beispiele für Anwendungen von DCMs sehen wir auf den folgenden Folien.

Page 38: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

38

Funktionalität einer DCM beim Spartan-3

CLKInput

CLKOutput

Rückkopplngsschleife

GlobalBuffer Input

GlobalClockBuffer

IBUFG BUFG

CLKIN

CLKFB

Output

Digital Clock Manager

Page 39: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

39

Anschlüsse einer DCM beim Spartan-3

CLKINCLKFB

RSTPSENPSINCDECPSCLK

CLK0CLK90

CLK180CLK270CLK2X

CLK2X180

CLKDIVCLKFX

CLKFX180

STATUS[7:0]LOCKED

PSDONE

Page 40: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

40

Anschlüsse einer DCM beim Spartan-3

CLKIN: Eingang des externen (getriebenen) Clock-SignalCLKFB: Feedback-Eingang um Eingang und Ausgang zur

Deckung zu bringenRST ResetPSEN Phase Shift EnablePSINCDEC Phase Shift Increment (1) oder Decrement (0)PSCLK Taktflanke um zu inkrementieren oder dekrementieren

„Dynamic fine phase shifting“ 256 Stufen möglichCLK90 Um 90 Grad verschobener ClockCLK2X Clock mit doppelter FrequenzCLKDIV Clock mit halber Frequenz (über Attribut auch anders teilbar)CLKFX Clock mit Frequenz, die kein ganzzahliges Vielfaches der

Ursprungsclock ist. Kofiguriert über Attribute

Page 41: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

41

Was passiert, wenn das Taktsignal auf der Leitung v erzögert wird?

D Q

CLK

M2 M4 M6

t

CLK

D

M2

M4

M6

Q

CLK‘

CLK‘

Page 42: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

42

1. Lösung: Taktsignale den Datensignalen entgegen f ühren:

D Q

CLK

M2 M4 M6

t

CLK

D

M2

M4

M6

Q

CLK‘

CLK‘

Page 43: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

43

d0q0

CLK

2. Lösung: Pipelining (geht, wenn zwischen den FF ko mbinatorische Logik sein darf)

C1

d1 q1

C2

d2

t

CLK

d0

q0

d1

q1

d2

CLK‘

∆CLK‘

Page 44: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

44

d0q01

CLK

2. Lösung: Pipelining, optimiert

C10

d10 q10

C10

d11

t

CLK

d0

q01

d10

q10

d11

q11

q11

Page 45: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

45

D Q

D Q

CLK

M1 M2 M3 M4 M5 M6 M7

M2 M4 M6

t

CLK

D

M1

M2

M4

M6

Q

CLK

3. Lösung: 2-Phasen-Takt: Möglich, wenn lokale Synchronisation sichergestellt ist.

CLK

Page 46: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

46

D Q

D Q

CLK1

M1 M2 M3 M4 M5 M6 M7

M2 M4 M6

t

CLK1

D

M1

M2

M4

M6

Q

CLK2

4. Lösung: Besser: Nichtüberlappender 2-Phasen-Takt :

CLK2

Page 47: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

47 t

Erzeugung eines nichtüberlappenden 2-Phasen-Taktes aus einem Muttertakt (CLK) mittels einer DLL. Diese erzeugt e inen um 90 o

verschobenen zweiten Takt CLK 90:

CLK

CLK90

≥1

&CLK

CLK90 CLK1

CLK2

CLK1

CLK2

DLL

BUFG

Page 48: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

48

Vor- und Nachteile dieser Taktungsstrategien

Der große Vorteil beim Aufbau von Schaltwerken mit 2-Phasen-Takten ist die Möglichkeit, die aufeinander folgenden Latches unterschiedlicher Polarisation zu trennen: Man kann kombinatorische Logik zwischen je ein p-Latch und ein n-Latcheinfügen. Dadurch werden beide Phasen des Taktes ausgenutzt. Außerdem bringt die kombinatorische Logik ein zusätzliches Delay zwischen dem Signal am Ausgang des ersten Latches und dem Signal am Eingang des zweiten Latches. Um dieses Delay können die Taktphasen zueinander verschoben sein, ohne zu Fehlverhalten zu führen.

Der Nachteil ist die relativ genaue Synchronisation zweier Signale auf dem Chip. Je größer die Anzahl der Gatter auf dem Chip wird, desto schwieriger wird diese Aufgabe. Mit nichtüberlappenden 2-Phasen-Takten konnte man in den 90er Jahren diese Probleme bis zu Taktfrequenzen von 66 MHz bewältigen. Darüber hinaus aber nicht.

In den Jahren 1989 und 1991 veröffentlichte der Däne Christer Svensson zwei Arbeiten über eine neue Taktungsstrategie, den True-Single-Phase-Clock (TSPC). Diese Technik revolutionierte die Taktung aller komplexer synchroner Systeme auf einem Chip angefangen vom Mikroprozessor bis hin zum DSP. Heutige Mikroprozessoren verwenden ausschließlich TSPC, mit dem Taktfrequenzen bis zu 10GHz oder mehr möglich ist.

Page 49: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

49

Nicht invertierendes positiv level-gesteuertes Flipflop für TSPC(die Autoren bezeichnen dieses irreführenderweise als n-Latch,weil der Takttransistor ein n-Transistor ist)

CLK

Vdd

GND

IN

OUT

Page 50: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

50

Nicht invertierendes negativ level-gesteuertes Flipflop für TSPC(die Autoren bezeichnen dieses irreführenderweise als p-Latch,weil der Takttransistor ein p-Transistor ist)

CLK

Vdd

GND

IN

OUT

Page 51: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

51

Negativ taktflankengesteuertes Flipflop für TSPC

OUT

CLK

Vdd

GND

IN

Page 52: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

52

Vorteile von TSPC

Es gibt auf dem ganzen Chip nur ein globales Taktsignal, d.h. Clock-skew (also die Verschiebung der Takte gegeneinander) ist kein Problem mehr.

Jedes Flipflop hat nur zwei Takttransistoren, d.h. die Taktlast ist nur noch halb so groß wie bei dynamischen Flipflops mit herkömmlichen Taktstrategien.

Pro Taktphase schalten immer nur maximal die Hälfte der beteiligten Transistoren.

Zusätzlich können – wie bei den 2-Phasen-Takten - kombinatorische Logik und Latches gemischt werden.

An kritischen Punkten im Entwurf erlaubt TSPC den Einbau von so genannten Synchronisations-Latches. Ein Beispiel für das Problem und seine Lösung ist auf den folgenden Folien zu sehen.

Dadurch, dass clock-skew bis zu einem gewissen Grad toleriert werden kann, entschärft sich das Problem der ungleichmäßigen Str omaufnahme während des Taktzyklus: Ein genau synchronisiertes System hat im Taktzyklus nur einen oder zwei Zeitpunkte, an denen alle Transistoren schalten. In diesem Moment kann die Versorgungsspannung zusammenbrechen, so dass keine korrekte Funktion mehr möglich ist. Dies passiert nicht mehr, wenn die Taktflanke überall zu leicht unterschiedlichen Zeiten entsteht.

Page 53: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

53

Q1

t

CLK

Q1

M1

CLK‘

D1

Q2D2

CLK

CLK‘

M1 M2

M2

M1

M2erwartet

tatsächlich

Page 54: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

54

Q1

t

CLK

Q1

M1

CLK‘

D1

Q2

CLK

CLK‘

M1 M2

M2

M1

M2erwartet

tatsächlich

M0

Synchronisationslatch

M0

Page 55: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

55

Taktverteilung

Auch mit TSPC bleibt das Problem, dass man den ganzen Chip annähernd zur selben Zeit mit einer Taktflanke bedienen muss (Die Toleranz ist bei Verwendung von Synchronisations-Latches maximal der halbe Taktzyklus minus einer Setup-Zeit eines Latches). Wie kann man das erreichen?

Ferner: Auf einem Chip mit 250.000.000 Transistoren (oder mehr) kann man sicher mit einer Größenordnung von 106 Takt-Transisoren rechnen. Diese stellen in ihrer Gesamtheit eine große Kapazität dar (Größenordnung 1µF). Sie müssen von einem zentralen Punkt aus zu etwa dem selben Zeitpunkt eine Taktflanke bekommen.

Um ein solches Signal zu treiben, benutzt man eine Kette von sogenannten Treibern. Das sind Inverter, deren Transistoren gegen Ende der Kette immer größer werden. Das Verhältnis zweier aufeinander folgender Treiber in einer solchen Kette variiert typischerweise zwischen 1:3 und 1:8. Ein solcher großer Treiber kann auch als mehrere parallele entsprechend kleinere Treiber realisisert werden, wobei man darauf achten muss, dass all diese gleichgroß sind, so dass sie die gleiche Schaltverzögerung generieren.

Die folgende Folie zeigt eine Treiberkette und eine Mögliche Taktverteilung auf einem Chip.

Page 56: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

561

11

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Taktverteilung mit dem H-Baum

Page 57: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

57

Taktverteilung mit einem Kamm (Systola-Chip, mit 64 Prozessoren)Weil die Systola vom Modell her nicht sonderlich anfällig gegen Taktverschiebung ist, genügt eine relativ einfache Taktverteilung, die lediglich dafür sorgt, daß Prozessoren, die physikalisch nebeneinander liegen, auch den Takt zu (fast) gleicher Zeit bekommen. Prozessoren, die nicht benachbart sind, tauschen ja nie Daten aus; daher ist deren Synchronisation nicht erforderlich. Gewählt wurde ein Kamm-Layout des Taktes:

Am Eingang und am unteren Anfang jeder Zinke sitzt ein Takt-Treiber (ein Inverter). Ferner ist in jedem Prozessor eine Einheit, die die drei geschalteten Takte (normal, Multiplizierer, Shifter) erzeugt und ebenfalls über zwei Inverter treibt. Insgesamt läuft das Taktsignal also durch vier invertierende Treiberstufen.

11 1 1 1 1 1 1 1

Page 58: 4. Die Spartan3-Familie - Technische Informatik · wiederum die Ausgänge der beiden F5-Multiplexer der beiden Slices des CLB zusammenführen, um damit - eine beliebige 6-Input Schaltnetzfunktion

58

Taktverteilung auf dem Spartan-3-Chip (Mischung aus Kamm und H-Baum)


Recommended