PCI card ontwerp
Jan Genoe KHLim
PCI Signalen en timing
Jan Genoe KHLim
Versie: maandag 16 oktober 2000
1
PCI card ontwerp
Jan Genoe KHLim
Doelstellingen PCI bus: 1. Laag vermogenverbruik
• 5 V en 3.3 V signaalomgeving – Verschillende kaarten voor 3.3 V en 5 V – Het doel is een evolutie naar 3.3 V bus en 3.3 V componenten. – Op een 5 V PCI bus kunnen IC met voedingsspanning 3.3 V werken
• Maakt gebruik van gereflecteerde golven – Geen afsluitweerstanden » Geen vermogenverbruik in deze weerstanden – Uitgestuurde golf wordt weerkaatst – Verdubbeling van het spanningsniveau
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
2
PCI card ontwerp
Jan Genoe KHLim
Impedantie van de lijn w h Microstrip
t pd =
0.475ε r + 0.67 c
PCI card ontwerp
Versie: maandag 16 oktober 2000
w
h2
t
t
h1
b
Striplijn
t pd = bv 5.8 ns/m
εr c
bv 7.4 ns/m Jan Genoe KHLim
3
PCI card ontwerp
Jan Genoe KHLim
Capacitieve belasting
• Een capacitieve belasting verhoogt de vertragingstijd en verlaagt de karakteristieke impedantie
t ′pd = t pd
PCI card ontwerp
c 1+ d Co
Z o′ =
Zo 1+
cd Co
Jan Genoe KHLim
Dit houdt in dat de vertraging en de karakteristieke impedantie zullen veranderen als er een kaart bij ingebracht wordt op de bus. Hiermee dient rekening gehouden te worden.
Versie: maandag 16 oktober 2000
4
PCI card ontwerp
Jan Genoe KHLim
Serie terminatie • steile flanken op het einde van de lijn • voordelen: – weinig power consumptie
• Nadelen – Tussenliggende aftakpunten hebben een breed onbepaald gebied
PCI card ontwerp
Jan Genoe KHLim
Een MOS transistor heeft steeds een uitgangsweerstand. Dit is dus inherent steeds aanwezig. Het is belangrijk om beide weerstanden goed op elkaar af te stemmen.
Versie: maandag 16 oktober 2000
5
PCI card ontwerp
Jan Genoe KHLim
Parallelle terminatie
• Pull-up Pull-down terminatie – De weerstanden worden gekozen rekening houdende met de drempel van de logica
• Parallelle AC terminatie – Geen DC dissipatie – belangrijke extra vertraging
PCI card ontwerp
Jan Genoe KHLim
Parallelle terminatie wordt niet gebruikt voor de PCI bus omdat het gedissipeerde vermogen dan veel te groot wordt, of omdat de extra vertraging van de condensator een probleem geeft.
Versie: maandag 16 oktober 2000
6
PCI card ontwerp
Jan Genoe KHLim
Schottky Diode terminatie • Kies zeer snelle diodes, omdat hun capaciteit een vertraging van het signaal geeft. • PN junctiediodes zijn steeds aanwezig aan de ingang van een IC als overspanningsbeveiliging – grote stromen door deze diodes moeten vermeden worden (latchup)
PCI card ontwerp
Jan Genoe KHLim
De aanwezige diodes zorgen ervoor dat de ringing door meervoudige reflecties zo klein mogelijk gemaakt wordt.
Versie: maandag 16 oktober 2000
7
PCI card ontwerp
Jan Genoe KHLim
De grootte van de reflectie • De amplitude van de reflectie wordt bepaald door: Vreflected Vincident
=ρ=
Z L − Z0 Z L + Z0
• Dit geldt zowel aan de ontvangerszijde als aan de stuurzijde
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
8
PCI card ontwerp
Jan Genoe KHLim
Signaal niveau op de PCI bus
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
9
PCI card ontwerp
Jan Genoe KHLim
Timingvereisten van de PCI-bus • •
Klokfrequentie van 33 MHz Periode van 30 ns – – – –
‘Clock to signal valid delay’: maximaal 11 ns ‘Propagatietijd: Maximaal 10 ns‘ Input Setup Time’: minimaal 7 ns Clock skew’: maximaal 2 ns
• •
Klokfrequentie van 66 MHz Periode van 15 ns – – – –
‘Clock to signal valid delay’: maximaal 6 ns ‘Propagatietijd: Maximaal 5 ns‘ Input Setup Time’: minimaal 3 ns Clock skew’: maximaal 1 ns
Zéér Zéér strenge strengeTimingvereisten Timingvereisten
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
10
PCI card ontwerp
Jan Genoe KHLim
Micro-Channel (MCA) type connector
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
11
PCI card ontwerp
Jan Genoe KHLim
3.3 Volt en 5 Volt connectors • Het verschil tussen de PCI kaarten is – niet de voedingsspanningen van de IC's die erop gebruikt worden » De I/O buffers van de IC's moeten wel op deze spanning werken – wel het spanningsniveau op de bus
PCI card ontwerp
Jan Genoe KHLim
Er zijn 3 types PCI kaarten: Een type ontworpen om te werken met 5 Volt signalen op de PCI bus Een type ontworpen om te werken met 3.3 Volt signalen op de PCI bus Een type dat zelf detecteert welk signaalniveau er op de bus wordt gebruikt en de input-output buffers daaraan aanpast. De connectors zij zodanig ontworpen dat het onmogelijk is een verkeerde kaart in het PCI slot te steken.
Versie: maandag 16 oktober 2000
12
PCI card ontwerp
Jan Genoe KHLim
5 Volt PCI en 3.3 Volt voedingsspanning
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
13
PCI card ontwerp
Jan Genoe KHLim
Suggestie moederbord layout (Intel)
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
14
PCI card ontwerp
Jan Genoe KHLim
Aangeraden PCB lagenstructuur (intel)
• Voor een single pentium II volstaat nog steeds een 4 lagen PCB
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
15
PCI card ontwerp
Jan Genoe KHLim
Aangerade volgorde van de devices
• On board PCI devices komen op het einde • De tweede PCI IC zorgt voor een “aangepaste” afsluiting
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
16
PCI card ontwerp
Jan Genoe KHLim
Gebruik van PCI-to PCI bridge • Maak geen bridge tot een derde niveau • werk met een boomstructuur
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
17
PCI card ontwerp
Jan Genoe KHLim
Signalen op de PCI connector
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
18
PCI card ontwerp
Jan Genoe KHLim
Beste routing: PCI component - connector
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
19
PCI card ontwerp
Jan Genoe KHLim
Karakteristieke impedantie van de signaallijnen
• De onbelaste karakteristieke impedantie van de signaal moet tussen 60 Ω en 100 Ω zijn. – Dit komt overeen met een signaalsnelheid tussen de 150 ps/inch en 190 ps/inch
• Er is maar één pin die de signaallijn belast – De capaciteit van deze pin moet kleiner zijn dan 10 pF
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
20
PCI card ontwerp
Jan Genoe KHLim
Lengte van de baantjes op de PCI kaart
• Alle 32 bit interface signaallijnen zijn maximum 1.5 inch (3.8 cm) – Behalve systeem pinnen, interrupt pinnen en JTAG pinnen
• Alle extension 64 bit interface signaallijnen zijn maximum 2 inch (5.1 cm) • De kloklijn is exact 2.5+0.1 inch (6.4 cm) lang en mag maar met een pin verbonden zijn.
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
21
PCI card ontwerp
Jan Genoe KHLim
Voedingsspanningen op de PCI connector Power Rail
Expansion Cards (Short and Long)
5V ±5% 3.3V ±0.3V
5A max. (systeem afhankelijk) 7.6A max. (systeem afhankelijk)
12V ±5% -12V ±10%
500 mA 100 mA
• Ontkoppelcapaciteiten plaatsen, ook over de voedingsspanningen die je niet gebruikt • bv 12 hoogfrequent capaciteiten van 0.01 µF
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
22
PCI card ontwerp
Jan Genoe KHLim
Multi-Master capability
• Elke PCI master heeft peer-to-peer toegang tot elke andere PCI master of PCI slave
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
23
PCI card ontwerp
Jan Genoe KHLim
Eigenschappen van de transfers • Bus Parking – De vorige master behoud de toestemming de bus te gebruiken tot een andere master een request stelt. – granted master kan een volgende transfer starten zonder daarvoor arbitratie
• Willekeurige lengte van bursts – initiator en target kunnen de transfer rekken met xRDY – target kan onderbreken met STOP (abort of retry) – master kan een transfer onderbreken door FRAME te lossen – arbiter kan een transfer onderbreken door GNT te lossen
• Data kan doorgestuurd worden in blokken – Laat toe de bus vrij te houden in geval van trage I/O devices
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
24
PCI card ontwerp
Jan Genoe KHLim
PCI bus commands
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
25
PCI card ontwerp
Jan Genoe KHLim
Read transaction
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
26
PCI card ontwerp
Jan Genoe KHLim
Write transaction
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
27
PCI card ontwerp
Jan Genoe KHLim
Hidden arbitrage
PCI card ontwerp
Jan Genoe KHLim
Het verloop van de arbitrage is als het volgt: Master a heeft een request (vraag): het REQ#-a is reeds laag van voor de klokflank 1. De arbiter reageert hierop door een granted (GNT#-a) die laag is op klokflank 2 Master A stuurt op klokflank 3 en 4 het adres en de data door. Ondertussen heeft master b echter een request gedaan (klokflank 2). Op voor klokflank 4 neemt de arbiter de granted weg van master a en geeft die aan master b. Dit is terwijl de transfer van de master A nog bezig is. Dit houdt in de de master B onmiddellijk na de master A kan beginnen met de data transfer. Dit noemt men "hidden" arbitrage, dit wil zeggen dat de arbitrage gebeurt tijdens de vorige data transfer en er dus geen extra klokcycli nodig zijn voor de arbitrage. Master B moet natuurlijk wel nakijken of alle controle signalen hoog zijn, zodat de transactie van A zeker volledig afgelopen is.
Versie: maandag 16 oktober 2000
28
PCI card ontwerp
Jan Genoe KHLim
Signaal types • In • Out • T/S: Tristate bidirectionele in/out • S/T/S: Sustained Tristate – Een actief laag tristate signaal – Dit signaal wordt maar aangedreven door een enkele driver tegelijk – De driver moet dit signaal gedurende één klokpuls hoog aansturen voordat hij het mag laten zweven. – Een pull-up weerstand zorgt voor het behoud van de inactieve toestand als de lijn niet aangedreven wordt » Deze wordt centraal voorzien
• O/D: Open drain – Een wired OR – Een pull-up weerstand zorgt voor de inactieve toestand » Deze wordt centraal voorzien
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
29
PCI card ontwerp
Jan Genoe KHLim
Systeem pinnen
• CLK (Klok): – Signaal van het IN type – alle signalen (behalve RST#, INTA#, INTB#, INTC#, INTD#) zijn gedefinieerd op de stijgende flank van de klok. – Moet kunnen variëren tussen » 0 en 33 MHz » 0 en 66 MHz
• RST (Reset) – Signaal van het IN type – Normaal gebruikt tijdens het boot/configuratie process – Kan asynchroon zijn ten opzichte van de klok
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
30
PCI card ontwerp
Jan Genoe KHLim
Adres en data pinnen • AD[31::0] (Adres/Data) – Signaal van het T/S type – Adres en data zijn gemultiplexed – Het is een adres als het FRAME signaal voor het eerst laag wordt » AD[1::0] worden niet gebruikt voor geheugen adressering, wel voor I/O adressering
• C/BE[3::0] (Bus command en Byte Enable) – Signaal van het T/S type – Gedurende de adres fase is het een commando – Gedurende de data fase is het een byte enable » voor I/O is het niet noodzakelijk 32 bits door te sturen, 1 byte is OK
• Pariteit – Signaal van het T/S type – Totaal (AD,C/BE en PAR) is even – volgt 1 klok later » van de master tijdens het schrijven » van de slave tijdens het lezen
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
31
PCI card ontwerp
Jan Genoe KHLim
Interface control pinnen
• • • • • •
FRAME# : Frame cycle : type S/T/S IRDY# : Initiator ready : type S/T/S TRDY#: Target ready : type S/T/S STOP# : Stop : type S/T/S LOCK#: lock: type S/T/S DEVSEL# : Device select: type S/T/S – Geeft aan dat het device een adres als een geldig adres beschouwt en dus data ontvangt.
• IDSEL: initialisation device select: type In – Geeft aan dat het device gedurende de configuratie read en write geselecteerd wordt. (Alle devices hebben dezelfde configuratie adressen)
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
32
PCI card ontwerp
Jan Genoe KHLim
Arbitratie pinnen
• Alleen aanwezig voor een master • Zijn verbonden met de arbiter • moet t/s zijn om universele borden de kans te geven tijdens het opstarten uit te vissen of er signalen van 3.3V of van 5V worden gebruikt. – REQ#: request: point to point naar de arbiter, type t/s » moet tristate zijn bij reset – GRT#: grant: point to point naar de arbiter, type t/s » mag niet naar gekeken worden bij reset
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
33
PCI card ontwerp
Jan Genoe KHLim
Error reporting pinnen
• PERR#: type s/t/s – geeft een pariteitserror op de data aan – kan alleen maar gegeven worden door de target, nadat hij devsel hoog heeft.
• SERR#: systeem error: type o/d – geeft een pariteitserror op het adres aan – iedereen kan dit geven. – Het kan een tijdje (meerdere klokcycli) duren eer het signaal terug hoog is, omwille van de niet kleine weerstand.
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
34
PCI card ontwerp
Jan Genoe KHLim
Interrupt pinnen (optioneel) • Zijn niveau gevoelig uitgevoerd • normaal is enkel INTA# geïmplementeerd • bij devices die meer dan 1 functie hebben kunnen ook – INTB# – INTC# – INTD#
geïmplementeerd zijn
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
35
PCI card ontwerp
Jan Genoe KHLim
Verbinding interupts op het moederbord Device Number
Interrupt Pin on
on Motherboard
device
Motherboard
0, 4, 8, 12,
INTA#
IRQW
16, 20, 24, 28
INTB#
IRQX
INTC#
IRQY
INTD#
IRQZ
1, 5, 9, 13,
INTA#
IRQX
17, 21, 25, 29
INTB#
IRQY
INTC#
IRQZ
INTD#
IRQW
2, 6, 10, 14,
INTA#
IRQY
18, 22, 26, 30
INTB#
IRQZ
INTC#
IRQW
INTD#
IRQX
3, 7, 11, 15,
INTA#
IRQZ
19, 23, 27, 31
INTB#
IRQW
INTC#
IRQX
INTD#
IRQY
PCI card ontwerp
Versie: maandag 16 oktober 2000
Interrupt Pin on
Jan Genoe KHLim
36
PCI card ontwerp
Jan Genoe KHLim
Verbinding van de Present signalen
PRSNT1#
PRSNT2#
Expansion Configuration
Open
Open
No expansion board present
Ground
Open
Expansion board present, 25W maximum
Open
Ground
Expansion board present, 15W maximum
Ground
Ground
Expansion board present, 7.5W maximum
PCI card ontwerp
Versie: maandag 16 oktober 2000
Jan Genoe KHLim
37