Home
Diplomarbeit - Dominik Mader - Weblearn
Contents
1. 2 og T 2 ToU lt T gt g E D uou y E Eg vy vy y c 4 c E SR oY gt E J L amp 2 Pp Y aou rem BT 8 8 5 8 E BT P lt 5 gt g BT ar HEH ar TT Y Sigo kl TT i ZT LETZ et ett ETT EE ET D FIT vt I SE SI ST Y EM de Tou ET AT JT epu re e are ate 2 1 BCE dE E gt Bavervddn Bavervddn em TM stn SITI SEI YILI END e e e H A A N AZ gt SS 3901 y 22n On lt Bes lt sse gt E SEN SS Jdeo uae EB sg eg y NOT LIN D k 9 Jd HOIHAdOO 112 Zeien LU fF bE II qeg 31138 JI god Schematics e INAS Ad 99n asa DIN INOHDOUYIMO DIN ANOYIAIMOS DIN ANOYIYVIMOS DON ANONDAFIMOA SE ww ELT N e ef lt 2 I lt gt gt lt gt gt lt gt q IC Im Q E ee G a EI lt gt gt d ZE Y gt Es 4 D 5 E uu ix sz Pu 22 lt gt T ES lt lt fe a G A 4H L gs Eg 7 39 vA gt vA gt vA gt TA gt PAI A rr SD p2 ei rrr ES Ab de u TL A T 2 9 Hea J LE iE s 2 E eh E A E el E
2. 39 UART Status Register Quelles D 10 san as 40 VO Port Interrupt Configuration Register Quelle L10 40 Memory Interface des LEON Quelle EIO l l etn u R etie R i hts 42 DSU und DCL AGUS LEO a uuu ea 43 erat LEON ea 48 Hierarchie des ProZeSSObS 2 1 sans 49 Block Diagramm AMBA PCI Bridge Quelle L15 50 Blockschaltbild Xilinx XC18V00 Serie Quelle D11 57 Belegung des FPGAs nach Ekunktonsoerupnpen u ut La 65 Beispielhaftes PCI Interrupt Routilng 74 Interrupt Kontroll Register der AMBA PCI Bridge irq reg 75 Blockschaltbild des PCI Interrupt Controllers 76 Er DD RP uu ua a i gr 82 Testautbau 2 UART O Tossa 82 Testaufbau 3 PCI Test LEON als Initiator 83 Testaufbau 4 PCI Test LEON wird adresstert 83 Programmstruktur des Boot Loaders ana a nen 85 PRO STAM MSU UKUUE Hello word uu uyu a EH ve ma susu naa ub unap 87 Prosramiistruktur VART res y ae 88 Probrammstruktar E E 89 Proserammstruktur Flash Pest a sta a u edid 92 Programmstruktur f r Test des IRQ Controller Timer 1 Timer 2 96 Abkurzungsverzeichn
3. JN ONTIS3L HOj SIHOLIMS SNOLINE Sag NO 4 Lx a ea ae WISN SWEN uniedpxspol 2ev BO aun mapasa dU IS Jdao eadun IER se eg H an Ep 7s NOT LYNN Mal Odd HOIMHAdOO 114 Schematics N CR 4 ma Bs Li er 3683838 KT Eau LSE queag KC NO Md GIHOIM T E 7 uses E i SHO g w N 1 tal zuu y 31138 33143 aod A SH ER 8g as 24 SE Ag 0 Gt t EL ES sa e a M Su sg e x a v n E va o a T EH Eur eq 0 c T a ER e eg boc Ta e ER IMSdid al r ASA ASA P o EE sagan Sga INB LMS Aye EVA TVA S61 OTI ASA gt Y HS4 e HS4 UE SBN EES GO SO0Suuo gry pH zv avi BOT 851 961 29 Anhang A 2 vt e e lt Gsm o9 S282 T3 O e The gra 968I MEpS SQSQHO EE HOLIMSLOYL rS I LA N OS d Tee EJIE TPG Sew NN Ob SQSQHO Get EBL e 7 0 e GEI EN Mo Alo LBTI 0 a 46793 SGOGOHO SEM MT TTHMO 379 e IGI Sa lt 4 e e NN Oto SUSY Sex AT TTAMO STO e 261 dy s ti S e NN N E LUE NN HOFA VES NT TTEMO FIS 6ST SAT 9 g 9 su Del H59 G EEM
4. 77 d IMPI MEA este 77 4 1 1 Kontisutation des LEON Lai 78 4 1 2 nderungen am Source Code sss 79 A a E E 80 42 1 E LR OE EOE E A 81 22 2 bool EOS oio eeu aa e Obs 84 4 2 3 Test der Schnittstellen und zugeh riger LEON Funktionen 86 4 2 4 Test der internen LEON Funkti0ONeN oooonccncccncnnncnnnnnnnonononnnnonnnnnnnnnnnnnnnnnnnnnnnss 94 ADs Ak Os I eslsu uuu k sanu din Een 977 5 Implementierung und Test des LEON auf PMC Board 98 Sob I SR E TE E OTA N 98 6 Fazit und Ausblicke uu uyu ea 100 Rel Apel 102 Ae2 SNEMMA NES ori olaaa 104 COMME GIU 117 Verzeichnis der Tabellen Tabelle 2 1 Tabelle 2 2 Tabelle 2 3 Tabelle 2 4 Tabelle 2 5 Tabelle 2 6 Tabelle 2 7 Tabelle 2 8 Tabelle 2 9 Tabelle 2 10 Tabelle 2 11 Tabelle 2 12 Tabelle 2 13 Tabelle 2 14 Tabelle 3 1 Tabelle 3 2 Tabelle 3 3 Tabelle 3 4 Tabelle 3 5 Tabelle 3 6 Tabelle 4 1 Beziehung zwischen Abstand Host CMC und Bauteilh hen 15 BUSMODE K dierune nee hod Fendi es 16 PNIC Steckverbinder POLI Pala au 17 PMC Steckverbinder Pn3 Pond 18 Register Adressierung und Benennung innerhalb eines Register Fensters 22 Trap Table des LEON Quelle LTO ana a aka nhe 29 ASI Gebrauch Quelle JETO uk ul u a al aa asss 31 Standard AHB Mapping Quelle L 10 33 On Chip Register APB Map
5. uayeyiua pya dewy ray ul uoneiepyap anug yayHibueygqeabojouysay 5apo3 10HA sap awen une e Aug Jap awe SHLELIZUEISL JON393 ni Jap Ziesuaisibay ni ayia Hierarchie des Prozessors Abb 2 27 49 Kapitel 2 Grundlagen 2 2 2 AMBA PCI Bridge Die Firma Astrium GmbH besitzt einen IP Core im Umfang von ca 6000 Zeilen der eine AMBA PCI Bridge beschreibt Die Aufgabe der AMBA PCI Bridge ist bei bertragungen zwischen Komponenten die an verschiedene Bussysteme angeschlossen sind die Busprotokolle zu bersetzen Diese Bussysteme sind der AMBA AHB Bus on chip und der PCI Bus extern Der verwendete IP Core unterst tzt 32 Bit PCI bei einer Taktfrequenz von 33 MHz Die in HDL Code beschriebene Bridge kann auch als Host Bridge eingesetzt werden d h durch sie k nnen andere Busteilnehmer am PCI Bus konfiguriert werden PCI Interrupts werden nicht verarbeitet Um die Bridge vom LEON aus konfigurieren zu k nnen wird der APB Bus benutzt Die Bridge hat deshalb zusatzlich ein APB Interface Abb 2 28 zeigt schematisch den Aufbau der Bridge PCI AMB A Bridge A Fifo In M I PCI M T Core AMB A Interface Fifo Out M We 1 S a Fito In 8 i Fifo Out T Abb 2 28 Block Diagramm AMBA PCI Bridge Quelle L15 Der Block PCI M T Core enth lt das komplette PCI Interface mitsamt dem Konfigurationsbereich der f r den PCI Bus notwendig ist Der Block AMBA Interface enth lt
6. Die einfachste M glichkeit einen FPGA durch einen permanenten Speicher zu konfigurieren ist der MasterSerial Modus Dazu ben tigt man einen PROM Speicher der die Daten seriell an den FPGA wahrend der Konfiguration sendet Dieses PROM muss beschrieben werden k nnen Z B kann dies ber eine serielle Schnittstelle und ein dazwischenliegendes CPLD geschehen Xilinx bietet zur Konfiguration seiner FPGAs und CPLDs spezielle PROMs an XC18V00 Reihe die ber die JTAG Schnittstelle programmiert werden k nnen ohne dass ein CPLD benotigt wird Abb 3 1 zeigt dass das CPLD nur deshalb nicht ben tigt wird weil Ansteuerlogik und Seriell Parallel Wandlung in die PROMSs integriert worden sind Zusatzlich zum MasterSerial Modus k nnen sie auch ein FPGA im SelectMap Modus 56 Kapitel 3 Eigenentwicklungen konfigurieren was den Anforderungen an das Board entspricht Die Verwendung dieser PROMs vereinfacht die Inbetriebnahme des Boards erheblich da kein spezielles Design f r ein CPLD entwickelt werden muss um einfache Tests durchzuf hren CLK CE OE Reset rm rm rm TCK Data or Control CEO TMS and W Memory ps Aum JTAG ata TDI Team Address Parallel Serial or Parallel Mode Interface TDO 7 7 D 1 7 Parallel Interface AA A RN GE DS026 Abb 3 1 Blockschaltbild Xilinx XC1
7. 7 puts File received vi as start addr addr break while 1 copy data in memory controller puts Starting copy RAM gt Memory Controller n n r size Last addr first addr size gt gt 2 size in words set remap registers bridge cfgt0x3c mem bridge cfgt0x3d OxFFFFOOOO bridge etgt0x3e 0x3 value unsigned int first addr for 1 0 1 lt size i pci i value i E verify suts Verieyingiainir failure 0 value unsigned int first_addr for i 0 i lt size i 1f pci 1 valueti fair luret Ke pues VerrfIrostron completed A Le failure O puts no errors n 2 128 Anhang A 3 Quellcodes else puts errors n n r IRQ Test Da IRQs eine Form von Traps darstellen muss eine Trap Table benutzt werden Diese ist in Assembler geschrieben und belegt nach dem Linken den Speicherbereich ab 0x40000000 rdefrine TRAP H call Hy nop 3mpl rl7 SrO rete 3718 global trap table start Skip timerl timerZ 1irdqi3 trap table TRAP _ start 00 reset trap TRAP _skip 01 instruction_access_exception TRAP _skip 02 illegal instruction TRAP _skip 03 priveleged_instruction TRAP _skip 04 fp disabled TRAP skip z DEn window overt Low TRAP _skip 06 window underflow TRAP skip 07 memory address not aligned TRAP skip 1 08 fp exception TRAP skip 09 data acce
8. calculate number of used sectors in flash 0x20000 address space on AHB per sector size end addr start addr sectors size 0x20000 sector 0 is always used puts Starting erasing Anr reset flash if sectors gt 100 _erase_flash else for i 0 i lt sectors i _erase_flash_sector i Er j Copy data in flash p ts Starting copying Mime Size gt gt 2 size in words _unlock_bypass value unsigned int start_addr for 1 0 1 lt size j i d _ub_program 1 4 value 1 sl frxerafy pues Verifying in as failure 0 value unsigned int start_addr for i 0 i lt size i 1f flash_begin 1 valuet i failuret pus veri yng Conprleted ys if failure 0 puts no errors n n r else puts errors n n r 126 Anhang A 3 Quellcodes PCI Test KK KK KK KK KK KK KK KK KK Kk K K K K K K K K K K K KOK KOK KOK KOK KOK K Kk KOK KOK KOK K ck k KK K kck kck kck ck k k KK K k K x KK KK d Z test Of BClermiterface KOK KK KK KK KK KK KK KK KH K K K K K K K K K K K K KOK K OK KOK KOK K HK RA RARA RARA K KK kck kck kck ck k k KK KOK K include ro leon A define pci_addr 0xA0000000 define bridge_cfg_addr 0x80000100 VOLO Start unsigned char r 256 it XR Sizes ador last addr Tirst addr Sectors Start addr first addr set Char data struct lregs regs struct lregs 0x80000000 unsigned int value unsigned
9. kt OI N a s Dum e x I i L y d im um ER UD TITTEN UT m A a Serer E al ra DI m D e m TER oem p i a 3 u ge c MP DO Let I La E E CH Jem E al E HHH oup amt r i arma f y 1 TER fl Ed ae i LI JL PKS U PI a Al T LIEZEN TETEPTETETETET EDIT LEG STA I TET AIS ETE itae iiile amp y T E E d yat 3 mm WER n Sie E m E d WIRTEX E DEVELOPMENT BOARD ne P E J T himumidjidid bir id Litiasis ia bab iets Rarabik IT gt a Ve GER MA tn A m BU BH s Ze E TO e VEHIT I1 rw 1 iden 1 mm n m TPT eT Ei P Pu 1 p ni AS Wa Eis A 1 I TII I OI LLLI DTE TT Tre S M Beinen u ns alah kiss dd m ARE RE Abb 2 1 AVNET Virtex E 1000 Evaluation Board Quelle D18 10 Kapitel 2 Grundlagen 64 MBytes SDRAM Micron MT48LC16M16A2TG 75 RS 232 32 MBytes FLASH USB PHY Cypress CY7C68000 10 100 Ethernet PHY Serial EEPROM AvBus LEDs Switches PC Card Socket PCI 2 1 PMC Abb 2 2 AVNET Board Blockdiagramm Quelle D18 FPGA Als FPGA steht ein XCV1000E 6 FP1156 der Firma Xilinx zu Verf gung Es arbeitet mit einer Core Spannung von 1 8 V und einer I O Treiber Spannung von 3 3 V Die Eing nge sind nicht 5V tolerant Das FPGA wird f r Tests das gesamte LEON Design enthalten und dar ber Speicher und Schnittstellen ansteuern Die K
10. 0x80000000 regs irqclear 0x00000200 clear timre2 irq could be pending regs gt scalerload Ox1B about 1 us regs gt timerload2 time time specifies the wait time in us regs gt timerctrl2 0x5 load and enable timer2 while regs irqpend amp 0x00000200 220 regs irqclear 0x00000200 void _erase_flash_sector unsigned int SA ine Flash begin l ine Ilash start erase sequence flash begin 0x555 0x00aa00aa Elash begin leet ke 0x005500555 tT lash begin lt O0x555 0x00900090 flash begin 0x555 Ox00aa00aa flash begin 0xZaa 0x00550055 flash_begin SA lt lt 15 0x00300030 wait 2000000 I WALL 2 See void _erase flash Lot Elasa begin ant rlash start erase flash flash begin 0x555 0x00aa00aa flash begin Ox2aa 0x00550055 flash begin 0x555 0x00800080 flash begin 0x555 0x00aa00aa flash begin Ox2aa 0x00550055 flash begin 0x555 0x00100010 wait 180000000 wait at least 3 min void reset flash Anhang A 3 Quellcodes int Elasa begin int tlesh start flash begin Ox00f000f0 adiu qp ewe at least ll usec j void _program unsigned int offset int value int flash_begin int flash_start program sequence flash begin 0x555 0x00aa00aa flash begin 0x2aa 02005530055 flash begin 0x555 0x00a000a0 flash begin o
11. das Flash U8 und die beiden Xilinx PROMs U9 U10 Das CPLD ist durch zwei Symbole dargestellt um die 144 Pins zu verteilen hnlich dem Virtex 1000 s Kapitel 3 1 4 2 Die beiden Xilinx PROMs sind gem den Herstellerangaben 68 Kapitel 3 Eigenentwicklungen zusammengeschaltet um gen gend Speicher f r die Konfiguration eines Virtex1000 bereitzustellen Im Folgenden werden die verschiedenen Konfigurations bzw Scrubbingm glichkeiten beschrieben Tabelle 3 5 fast die Einstellungen durch Jumper zusammen A SelectMap mit Flash Bei Konfigurierung im SelectMap Modus mit Daten des Flashs generiert das CPLD die Adressen f r den Speicher Im SelectMap Modus wird die CCLK nicht durch das FPGA erzeugt sondern durch einen anderen Baustein Im vorliegenden Design macht dies das CPLD B SelectMap mit PROMs Sollen zur Konfiguration die Xilinx PROMs benutzt werden ist kein CPLD zur Adressgenerierung notwendig Die PROMs unterst tzen diesen Betriebsmodus Trotzdem muss das CPLD die Signale C8 N und WRITE N auf Low ziehen und CCLK treiben da dies f r SelectMap notwendig ist C Serielle Konfiguration mit PROMs Seriell kann nur mit den PROMs konfiguriert werden Das CPLD ist nicht n tig Ob FPGA Master Serial Mode oder CPLD Slave Serial Mode CCLK treiben ist von der Wahl des Modus abhangig D Scrubbing mit Flashdaten Das CPLD steuert das Flash E Scrubbing mit PROMs Das CPLD steuert die PROMs Die Art der Konfiguratio
12. gyre 1esja1sibay ni 105522014 120 Sap 1u vn Quen Woop yen woop VO Sap 5eli lul 131seW gHV Qisuique suique Xur uoneoiunudulo SO qe uoneinbijuoy UOA 1bueg zueijsu sjeuondo 3301 uawyey zuejsu ZJEeMYIS uauluey npowajun Bungia1yosag Bye bunqiauu55ag auawa jy Zuejsul Ayque uayeyjua puA deuiu a ul uoneaepyosp A1nu3 yayb bueygesibojouydaL s po2 1GHA sap awen yne e A143 Jap JWEN Saweuzuejsuj 30N39311 191101405 WWyOS ops ups WOYd 1009 Solo poda woidq Ja D33u05 AJOWay omw pui Sped O auyo ubisag a1uesab sep jqiaiydsag 03109W 9J02UJ DO uoal uo LEON le h Hierarc Abb 2 26 48 Grundlagen Kapitel 2 yAzidsey y UOA Mdd ondj ouy un puw oyl uu ur aveau JNU dia ondj ooxieur 358 1934 ul l1 s WwW fidd DndlJ 2102 ndy AR aue uaje sap Wy Ualeg orlepp WEISUAS aupe s u j g sap Wy uated E asarzyd y nyy OPE weus i y 7 nus mu uoneindyuoy Jap uoA bibueuqesbunjaisul dieu D n Bibueuqe 151 ago vaaz dain 9005 uajeg sap wiyy bey osbeip uuer u sdp uupisu s m QA DEP aupe3ap on ojnu 1 lonuo2 345 sjyajag Jap Hausen UD2P23I On OAIp 13 10 4405 ayey Yuri sabayuy Quae LULU DPD 10559Z01d qe uoneinbijuoy uor 1bueH zuejsu ejeuondo 201 U LULEY zuejsu ZIEMUIS uates Inpouui lur bungisuyssog bye Bbunglauypsag aulawabyy zuejsu Aus
13. sowohl den Cache als auch das Datum im Speicher Unter der Vorraussetzung dass keine Fehler beim Schreiben des Speichers auftreten herrscht Datenkonsistenz zwischen Cache und Speicher Ist kein Eintrag unter der Schreibadresse im Cache vorhanden sog Write Miss bleibt der Cache unverandert Der Daten Cache enthalt noch zus tzlich einen Write Buffer WRB der aus drei 32 Bit Registern besteht Diese werden verwendet um die zu schreibenden Daten kurzzeitig zu speichern bis sie an der Zieladresse empfangen worden sind Ein Register speichert die Adresse die zwei restlichen enthalten den zu schreibenden Wert zwei Register sind notwendig wenn Daten vom Typ double geschrieben werden Spezielle Cachezugriffe Der LEON implementiert eine Reihe von speziellen Cachezugriffen Diese sind ber die Load Store from alternate Space LDA STA Befehle benutzbar Diese Befehlstypen sind durch die SPARC V8 Spezifikation vorgegeben Dabei wird neben der obligatorischen Adresse auch noch ein Alternate Space Identifier ASI mit dem Befehl angegeben der z B von der Systemsoftware dazu benutzt werden kann bestimmte gesch tzte Register zu adressieren ASI ist ein 8 Bit Wert es stehen demnach 256 unterschiedliche ASI zu Verf gung Die SPARC Spezifikation macht nur Vorschlage wie diese zu benutzten sind Der LEON benutzt die unteren 4 Bit um spezielle Zugriffe auf den Cache zu machen 30 Kapitel 2 Grundlagen 0x0 Ox 1 0x2 0x3 Forced cache miss
14. 33 MHz und 40 MHz Um die Anforderungen niedrig zu halten wird der langsamste Takt verwendet 24 576 MHz Der PCI Bus arbeitet mit 33 MHz und die PCI Spezifikation stellt f r fast alle Bussignale folgende Anforderung Signale m ssen vom Sender sp testens 11 ns nach PCI Taktflanke g ltig sein und empfangene signale sind fr hestens 7 ns vor der Taktflanke als g ltig zu betrachten Es werden keine r umlichen Vorgaben durch Floorplaning gemacht Das Pinout wird dem AVNET Board angepasst Der vorhandene Flash Speicher wird als ROM Bank 1 verbunden 6 der 8 freien PIO Ports werden auf DIP Schalter gelegt und zwei auf LEDs Zwei DIP Schalter dienen als DSUEN und DSUBRE Signal eine LED als Anzeige f r Debug Mode Ein Push Button wird als Prozessor Reset verwendet UART 1 wird auf die auf dem AVNET Board vorhandene RS232 Schnittstelle gelegt UART 2 und DCL auf die Ports die mit einem externen Board mit zwei RS232 Treibern und Schnittstellen verbunden sind Das SRAM Interface wird nicht benutzt da nur SDRAM auf dem Evaluations Board vorhanden ist Dieses wird an das SDRAM Interface des LEON angeschlossen Der Place amp Route Prozess kann ohne Floorplaning und mit einem normalen Aufwandslevel des Tools Einstellung f r Place amp Route Prozess der Xilinx Entwicklungsumgebung durchgef hrt werden Drei Kriterien m ssen erf llt sein um den Prozess als erfolgreich abgeschlossen zu betrachten Nach Durchlaufen des Place amp Route Proz
15. 3F undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 40 43 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 44 47 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 48 4B undefined 129 Anhang A 3 Quellcodes TRAP _skip TRAP _skip TRAP _skip TRAP _skip 4C 4F undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 50 53 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 54 57 undefined TRAP skap TRAP Skip IRAP Skip TRAP skip 4 58 5B under ined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 5C SF undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 60 63 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 64 67 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 68 6B undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 6C 6F undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 70 73 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 74 77 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 78 7B undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 7C 7F undefined Software traps TRAP Skip TRAP _skip TRAP _skip TRAP _skip 80 84 TRAP _skip TRAP _skip TRAP _skip TRAP _skip 84 87 TRAP Skip TRAP skip
16. 4 INTD gt np NAND gt cS gt mar 0 Abb 3 5 Blockschaltbild des PCI Interrupt Controllers 76 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4 Implementierung und Test des LEON auf AVNET Board Das LEON Design wird inklusive AMBA PCI Bridge auf einem Evaluierungs Board der Firma AVNET getestet s Kapitel 2 1 1 Das LEON Design bietet eine gro e M glichkeit an Konfigurationen Die gew hlte wird 1n Kapitel 4 1 1 beschrieben Es werden verschiedene Tests durchgef hrt die einerseits die Funktionsf higkeit der schnittstellen des Boards sicherstellen sollen andererseits aber auch die Funktionsf higkeit des implementierten Designs berpr fen Die Ergebnisse k nnen f r spatere Tests des PMC Boards als Vergleich herangezogen werden Testumgebung und Tests werden in Kapitel 4 2 beschrieben In Kapitel 4 3 werden Tests beschrieben die in Zukunft noch durchgef hrt werden m ssen um die volle Funktionsf higkeit des implementierten LEONs zu berpr fen 4 1 Implementierung Das Design wird mit dem Synthese Tool Synplify 7 2 synthetisiert und im Anschluss mit der ISE Entwicklungsumgebung 5 2 von Xilinx weiterverarbeitet Die zeitlichen Anforderungen an den Place amp Route Prozess sind auf der einen Seite durch den Systemtakt des LEON auf der anderen Seite durch die Zeitkriterien des PCI Busses gegeben Als Systemtakt f r den LEON stehen vier verschiedene Taktfrequenzen zu Verf gung 24 576 MHz 27 MHz
17. Alle internen LEON Funktionen m ssen getestet werden Dies sind z B Cache Multiplizierer und Dividierer Der LEON muss als Host getestet werden Daf r 1st Hardware zu entwickeln oder zu benutzen in der auch die Funktionalit t eines PCI Arbiters getestet werden kann Diese Komponente wird durch Gaisler Research zu Verf gung gestellt konnte aber nicht getestet werden da pro PCI Komponenten ein Request und ein Grant Signal an den Arbiter gef hrt werden m ssen Dies 1st durch einen PC PCI Steckplatz nicht gewahrleistet 97 Kapitel 5 Implementierung und Test des LEON aut PMC Board 5 Implementierung und Test des LEON auf PMC Board Die ursprungliche Planung der Diplomarbeit umfasste die Inbetriebnahme des entwickelten PMC Boards und Tests des LEONs darauf Da zum 31 07 03 das Layout des Boards noch nicht abgeschlossen ist und die Produktion die zum Teil an Fremdfirmen vergeben wird nach dem Layout noch ca 6 Wochen ben tigt muss darauf verzichtet werden Die Testverfahren f r das Board sind vorerst schon festgelegt worden Nach Absprache mit dem zustandigen Betreuer sollen die f r die Tests notwendigen Entwicklungen erst in Zukunft durchgef hrt werden um eventuelle Anderungen im Design oder in der Zielsetzung der Tests miteinbeziehen zu k nnen Vor Inbetriebnahme des Boards m ssen die elektrischen Verbindungen berpr ft werden Dies geschieht durch die Abteilung die die Best ckung der Leiterplatte ausf hrt Um die Funkt
18. Bes lt EE B27 Wo BSYJNAINUISeJFU ER DRESCH Ss EB Sdrer Bunuaps Bs u nazug un Coug 7 7 NOT DINNA ER Jase Yaa El E d HSMGAdoo 110 3683853 BET Eagle SEStFFOI IN doa4 uoe au J NO Jhd aan 45 i 1 Ja chematics N TSS 3M m REER e N WE IN lt B TON Suda IN lt E gt N M2 MO TNT ON FOWGR e o e IN Q TE UOLUG Q T2UNS lt B T gt UND lt T gt OND XQ T UNS gt e 6 4 5 4 e o lt 1 PE lt 1 gt 0 1 aT lt 1 gt 0 1 Q T2071 ER lt 2 gt 0 1 lt 2 gt 0 1 Ad D lt 2 gt 0 1 eT lt 2 gt 0 1 I D u 2 32 ST m oT Z lt 7 gt 0 1 JE ET Y 0 1 TTY lt v gt 0 1 vv I 37 lt 5 gt 0 1 DE e 55071 T e lt 5 gt 0 1 E 8207 1 lt 9 gt 0 1 lt por1 p lt 9 gt 0 1 5 2507 E ETE 2071 PTY lt 2 gt 0 gv lt 8 gt 0 1 lt B gt 0 1 aro lt B gt 0 1 7 X Z g u J T U ToU eu p goo D DE e ou di vog pod ech
19. DUART IF UART ohne Handshake M glichkeit UART3 RX 1 2 2 VIRTEX1000 1 enthalt RS232 Treiber 2 die UART LED 1 2 DLED SW BUT Signalleitungen f r LEDs Taster und SWI1 2 2 VIRTEX1000 Schalter die zu Testzwecken BT 1 2 implementiert werden 61 Kapitel 3 Eigenentwicklungen ENET MDIO 1 2 1 ETHERNET IF Media Independent Interface MII ENET MDCT1 2 2 VIRTEX1000 Signale ENET MDINT N 1 2 ENET MDDIS 1 2 ENET TX CLKL I 2 DETHERNET IF signale zwischen Ethernet MAC und ENET TX EN 1 2 2 VIRTEX1000 Ethernet PHY f r Senden ENET TX ER 1 2 ENET TXD 1 2 ENET RX CLKT 1 2 DETHERNET IF signale zwischen Ethernet MAC und ENET RX DV 1 2 2 VIRTEX1000 Ethernet PHY f r Empfangen ENET RX ER 1 2 ENET RX CRS 1 2 ENET RX COL 1 2 ENET RXD 1 2 ENET RESET N 1 2 DETHERNET IF Steuersignale f r Intel LXT971A ENET PWRDWN 1 2 2 VIRTEX1000 ENET PAUSE 1 2 ENET SLEEP 1 2 ENET LED CFG 1 2 PCI CLK 1 2 1 PMC IF PCI Signale PCI REQ64 N und PCI RST N 1 2 2 VIRTEX1000 PCI M66EN sind pro forma an den PCI AD 1 2 FPGA gef hrt 64 Bit Transfer ist mit PCI CBE 1 2 diesem Design nicht m glich 66MHz PCI FRAME N 1 2 Betrieb ist nicht vorgesehen aber f r PCI IRDY N 1 2 die Zukunft denkbar PCI DEVSEL N 1 2 PCI TRDY N 1 2 PCI STOP N 1 2 PCI PAR 1 2 PCI PERR N 1 2 PCI SERR N 1 2 PCI LOCK N 1 2 PCI IDSEL 1 2 PCI REQ N 1 2 PCI GNT N 1 2 PCI INTA N 1
20. Im vorliegenden Design sind alle Bypass Kondensatoren auf Seite 2 von PMC TOP LEVEL zusammengefasst So ist berschaubar wie viele und welche Kondensatoren pro Versorgungsspannung benutzt werden F r den Ethernet PHY von Intel und das CPLD von Xilinx gibt es genaue Empfehlungen der Hersteller welche Kondensatoren benutzt werden sollen F r den Intel LXT971A Baustein wird ein 10 uF Kondensator empfohlen und f r jeden der vier VCC Pins einen 100 nF Kondensator Xilinx empfiehlt f r jeden VCC Pin also VCCINT und VCCO einen 10 nF und 100 nF Kondensator In Anlehnung an die Application Note von Xilinx Power Distribution System Design Using Bypassing Decoupling Capacitors A6 sind die Kondensatoren f r den Virtex bestimmt worden Dabei ist von einer maximalen Auslastung des FPGAs ausgegangen worden Die Richtlinien aus A6 besagen dass Kondensatoren jeder Zehnerpotenz in einem bestimmten Kapazit tsbereich vertreten sein sollen Das dort angezeigte Beispiel hat Kondensatoren in einem Bereich zwischen 470 uF und 4 7 nF in Zehnerpotenzen abgestuft Dabei ist nicht der Multiplikator 4 7 ausschlaggebend sondern die Bereiche der jeweiligen Zehnerpotenz Pro benutztem VCC Pin soll ein Kondensator verwendet werden Die Anzahl der Kondensatoren aus den jeweiligen Bereichen wird ber eine prozentuale Verteilung geregelt Als Faustregel gilt dass pro Zehnerpotenz nach unten die Anzahl der benutzten Kondensatoren sich verdoppelt Um die Anzahl de
21. SG636PTF40MHz der Firma Epson Beide Taktsignale k nnen als Systemtakt dem FPGA zu Verf gung gestellt werden Zu Testzwecken werden 8 Schalter 4 Taster und 8 LEDs in SMD Version benutzt Au erdem kommt eine Reihe von Jumpern zum Einsatz Auf die genaue Bedeutung wird Im n chsten Kapitel eingegangen 3 1 4 Schematics und Funktionalitat Das Design ist nach dem Top Down Verfahren entwickelt worden D h dass die Aufgabe von der obersten Hierarchie bzw h chsten Abstraktionsebene in Funktionseinheiten zergliedert ist die ihrerseits verfeinert werden wenn dies n tig erscheint Dabei sind die Funktionseinheiten weitgehend in sich abgeschlossen so dass innerhalb ihrer gearbeitet werden kann ohne andere Funktionseinheiten ver ndern zu m ssen Der Top Level hei t PMC LEON TOP F r die gesetzte Aufgabe wurden folgende Funktionseinheiten gew hlt die sich in der obersten Hierarchie befinden s Anhang A 2 Blatt 1 13 Name pmc leon top VIRTEX1000 Stellt das FPGA dar CONNECTOR BLOCK Flachbandkabel Stecker POW RES CLK Die Generierung der Spannungen die Uberwachung derselben und die Erzeugung der Taktsignale wird hier beschrieben JTAG IF CFG PROM Enthalt alle speziell zur Konfiguration benotigten Bauteile SRAM Dient dem LEON als SRAM 59 Kapitel 3 Eigenentwicklungen ROM Dient dem LEON als ROM UART IF Beschreibt die Verdrahtung des Treiberbausteins der UARTs und den DSUB9 Stecker LED SW BUT Enth
22. T alata ie a INX192 581f NOO lt LE d e x392 3d e lt S2 gt d OH INN CHIIHM 9Ulf NOO MED INN SO OULD NOD aoe INI IO A ASHE DY LIT NOD 255 m ex INOAL 5ULlf NOO Eod E EN vere INN LINI OYLT NOO INSWL OH NOS INN SOHd LI NOO LL NOD LL NOO ea rf NOD lt pTod g lt T gt d 3 lt 2T gt d G lt TT gt a y lt 1 gt lt c 52d lt Qod T arg 72 Sn INXUTELAUNTNOD ied INXL ELUIUNTNOD IN lt Ja DUL NOD lt br INSIO ELIO NOS seve INSIUTZLUENTNOD AEN INXH ELMO NOD ST INXL ZLNUR NOD HU ci TER Att HS Zel TI 8 H y E amp T Pi NE E e er _ I Z TER UI IO IW Arn ie l xopu UN AYOSINYIANS H3MOd NOIlSS3N3S 2032 ANY H3MOd NO4 1 ONdgd gas Vr BER SAREEN A A da aun SA Targus Jdao eadun IER se eg H Bunuapa 6s u nazug aN Doug NOT LINN aya od HOTYAdOD 108 13025 JS 41 LU FV bE JAS Queag M m Old ouer TW ungen 31135 3113 dOd Schematics N Odd EN IN NOUM N COM PU em 3838 22n NN 13838 MOd 1802xUl4 all ES BIT GO OA ay E IL L ray LNON NIA UNS NZHWSZT 19 e j So 42 EE SZEZMD BIN TOIL a73 Wen See NART WEXNSTO vn e sv VELER 4 e T 28T EE SQ AH fe sega vu g Zl vV L 5 E ST Y Ssasa 03 j lt N e AT Se B
23. glich sein Es stehen zwei Moglichkeiten zu Verf gung aus der 5V Spannung die niedrigeren Spannungen zu generieren Man benutzt entweder Linearregler oder Schaltnetzregler Der Vorteil der Schaltnetzregler ist eine geringere Verlustleistung und damit weniger Temperaturentwicklung F r raumfahrttechnische Anwendungen sind diese beiden Aspekte wichtige Kriterien Linearregler sind deutlich kleiner als Schaltnetzregler Wie in Kapitel 3 1 2 4 beschrieben ist sich darauf geeinigt worden berlegungen zur Flugtauglichkeit bei der Stromversorgung in vollem Umfang im Redesign zu machen Deshalb werden Linearregler verwendet Es sind die SMD Linearregler LT1085CM der Firma Linear Technology ausgesucht worden Die erzeugte Ausgangsspannung ist abhangig von der Beschaltung mit einem Widerstandteiler deshalb wird f r beide Spannungen der gleiche Komponententyp verwendet sinkt die Versorgungsspannung ab ist die Funktionsfahigkeit der Komponenten nicht mehr gewahrleistet Allerdings ist der Spannungsabfall ab dem ein Bauteil nicht mehr funktioniert von Bauteil zu Bauteil unterschiedlich Um zu vermeiden dass ein Bauteil ausfallt wahrend die anderen noch funktionieren und damit undefinierte Systemzust nde zu produzieren wird 58 Kapitel 3 Eigenentwicklungen eine gesonderte Komponente zur Spannungsuberwachung verwendet Diese erzeugt bei Unterschreitung einer bestimmten Spannung ein Reset Signal Dies gewahrleistet dass nach Spannungszusammen
24. replace if cacheable 0x4 0x7 Forced cache miss update on hit 0x5 Flush instruction cache 0x6 Flush data cache 0x8 0x9 OxA OxB Normal cached access replace if cacheable Instruction cache tags Instruction cache data Data cache data Tabelle 2 7 ASI Gebrauch Quelle L10 Tabelle 2 7 zeigt die verschiedenen Zugriffe Bei Verwendung von ASI 0x0 0x3 wird cacheintern ein Cache Miss erzeugt unabh ngig davon ob ein passender Eintrag vorhanden ist oder nicht Ein schon vorhandener Eintrag im Cache wird aktualisiert ein noch nicht vorhandener wird als neuer Eintrag in den Cache geschrieben ASI 0x4 und ASI 0x7 funktionieren hnlich mit dem Unterschied das keine neuen Eintr ge angelegt werden ASI 0x5 und ASI 0x6 l schen den entsprechenden Cache siehe L schen des Cache ASI 0x8 ASI OxB entspricht der normalen oben beschriebenen Funktionsweise der Caches ASI 0xC ASI OxF werden verwendet um gezielt das Tag RAM oder das Daten RAM des jeweiligen Caches zu lesen oder zu beschreiben LDA und STA k nnen nur ausgef hrt werden wenn der Prozessor im Supervisor Mode arbeitet d h das S Bit im PSR ist aktiv Es k nnen nur solche Daten aus externen Bauteilen gecached werden deren Adressbereich in der Konfiguration des LEON als cachef hig angegeben wurde Als Standard ist dies der PROM und der RAM Bereich L schen des Cache Befehls und Daten Cache k nnen unabh ngig voneinander gel scht werden Dies ge
25. 1 ja disable Traps Abb 4 10 Programmstruktur fur Test des IRQ Controller Timer 1 Timer 2 96 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4 3 Zuk nftige Tests Im Rahmen der Diplomarbeit sind nur Tests durchgef hrt worden die allgemeine Funktionen testen und als erster Beweis f r die Funktionsf higkeit des Designs dienen Tests die f r kommerzielle Zwecke durchgef hrt werden m ssen sind noch zu entwickeln Bevor diese Tests jedoch durchgef hrt werden muss zuerst eine Fehleranalyse und Fehlerbehebung bez glich der PCI AMBA Bridge gemacht werden da die durchgef hrten Tests kein zufriedenstellendes Ergebnis zeigten vgl Kapitel 4 2 3 6 Im Folgenden sind Testziele beschrieben die aus Sicht des Autors zwingend erforderlich sind um eine umfassende Funktionsfahigkeit des Designs gewahrleisten zu k nnen Um die Benutzung einer Ethernet Schnittstelle zu erm glichen muss ein Ethernet MAC in das LEON Design integriert und getestet werden Ein solcher MAC liegt als VHDL Core vor Es sind Datenstr me mit anderen Ethernet Komponenten auszutauschen Dies kann z B ein PC sein Die PCI IRQ Verarbeitung und Erzeugung muss getestet werden Bei Erzeugung eines IRQ muss zumindest das Aktivieren auf dem PCI Bus sichtbar gemacht werden Besser ware eine IRQ Service Routine die z B auf dem Host PC lauft Das Verarbeiten von PCI IRQs durch den LEON geschieht in einem PCI System in dem der LEON der Host ist
26. 135838 INN L3S3M basda INN L3S3M sedo INN L3S3M tagan INN L3534 ERR SLIM 3LIBNM 31 INP INN M INN 3M INN 3M i INN AM 2 30 s 3o INN ONO 30 m INN 3OHOt E INN 3OWor e Sey INN SHOH Cer INN SWOX SH INN SHOMH ze INN SOM S a TY AS AH pP A LEVAS t A Ain c9 d ABZAMB Wb I COTBsAGZWE L oe D L oe ZEO7DN HE zen Ten EEN e Xi Me BS 39009 y lt Q S lt NOS Old PENTO Hd ERA jp Bev ao aun sa EU NONIS Jdao eadun IER se eg H 9 Jd HOI 113 13625 JS 45 LU fF E JAS Queag 2 a d dog uoa oud I N en Keil rn an l gt aerch gt uU NO Old SIHSIN 171 f I f HOT un en Schematics lt 6 gt d g d 2d Sd I lt gt a jp gd amp c d lt T gt d cansa Eg HH F T IND N I ELE EE MXHOELHUIT NOD INSIO cluuUn UY e INSIO ELlHUn NOS INXY ELlugn REALE INXH CITT HO NED Len 22NICXH INXA T LSA IERCH TELE NOD Ree ING He HU NOS lt b gt NI CUANTO Nx lHUJh NOO XEONI CMIAING NAAT EEN SIB EI St E TO cv m coc lt Bes lt
27. 2 PCI INTB N 1 2 PCI INTC N 1 2 PCI INTD N 1 2 PCI REQ64 N 1 2 PCI M66EN 1 2 PMC I O 1 2 1 PMC IF Verbindet die User I Os der PMC 2 VIRTEX1000 Schnittstelle mit dem FPGA Tabelle 3 1 Signalbeschreibung des Top Levels gt gt gt gt gt Seite 2 Digitale Bauteile ben tigen eine Versorgungsspannung die nur in kleinen Grenzen schwanken darf um eine korrekte Funktion zu gewahrleisten Gerade bei Schaltvorgangen findet in kurzer Zeit eine Ver nderung im Strombedarf statt Da aber die Spannungsversorgung nicht ohne Zeitverz gerung auf diesen erh hten Bedarf reagieren kann d h genug Strom zu Verf gung stellt f hrt dies eventuell dazu dass die Spannung kurzzeitig zusammenbricht und die Funktionsf higkeit des Bauteils nicht gew hrleistet ist Um dies zu verhindern werden sog Bypass Kondensatoren verwendet die zwischen Versorgungsspannung und Masse geschaltet werden Diese haben keinen Einfluss auf die Funktionalit t der Komponente und dienen als lokaler Energietr ger Sie k nnen keine 62 Kapitel 3 Eigenentwicklungen Gleichspannung liefern da die gespeicherte Energie gering ist aber kurzzeitig Energie in Form von Ladungstragern zu Verfugung stellen Kondensatoren sind keine idealen Kapazit ten Sie haben paras t re Widerst nde und parasitare Induktivit ten Besonders die Induktivitaten sind durch geometrische Ausdehnung von leitendem Material bestimmt Kleine Kondensatoren und k rzere
28. 2 3 Test der Schnittstellen und zugehoriger LEON Funktionen In der gew hlten Konfiguration hat der LEON auf dem AVNET Board folgende Schnittstellen die er bedienen muss DCL DSU Communication Link UART 1 UART 2 PIO Flash Memory SDRAM PCI In Zukunft soll zus tzlich eine Ethernet Schnittstelle zu Verf gung stehen Dies zu realisieren ist nicht Aufgabe der Diplomarbeit F r den SDRAM wird kein spezielles Testprogramm entworfen da alle hier beschriebenen Testprogramme im SDRAM abgelegt und von dort aus ausgef hrt werden Im Laufe der Entwicklung der Testprogramme zeigte sich dass nicht die Entwicklung der Testprogramme zeitaufwendig war sondern das Verstehen der Schnittstellenkomponenten und die Einstellung von LEON Registern bis Programme korrekt ausgef hrt wurden Im Rahmen der Diplomarbeit sollen grundlegenden Funktionen getestet werden Einige Funktionen bleiben deshalb ungetestet In den folgenden Kapiteln wird darauf gegebenenfalls hingewiesen 4 2 3 1 Test DCL Der DSU Communication Link DCL wird ber eine RS232 Schnittstelle hergestellt die mit einem PC verbunden ist Der Test besteht darin dass das von Gaisler Research mitgelieferte Programm DSU Monitor uber diese Schnittstelle auf den Prozessor zugreifen kann Die Benutzung der DSU war fur die Entwicklung von Programmen im Laufe der Diplomarbeit zwingend erforderlich um Fehler in diesen aufzuspuren 4 2 3 2 Test UART 1 Quellcode Seite 120 ff Beim Booten g
29. Befehl oder spatere Befehle verandert worden sein Dabei muss es u U m glich sein die Trap ausl sende Instruktion bei der Trap Behandlung zu emulieren e Interrupting trap Darunter werden externe Interrupt Anforderungen oder Ausnahmen die nicht in Bezug zu einem Befehl gesetzt werden k nnen verstanden Ausnahmen die deferred Traps ahnlich sind jedoch nicht die Trap ausl sende Instruktion emulieren k nnen werden auch unter diese Kategorie gezahlt Zusatzlich zum ET Feld wird auch das PIL Feld des PSR mit dem angeforderten Interrupt Level verglichen um eine Aussage dar ber zu treffen ob der Trap behandelt wird oder nicht Der angeforderte Interrupt Level muss gr er als der Wert des PIL sein um behandelt zu werden Ein Interrupt Level von 15 wird immer behandelt vorrausgesetzt ET 1 Im LEON ist das Standard Trap Modell der SPARC Spezifikation implementiert Dieses besagt dass alle Traps precise Traps sein m ssen mit folgenden Ausnahmen e Ausnahmen die durch die FPU oder den CP signalisiert werden d rfen deferred sein e Ausnahmen die es unm glich machen den Prozessor wieder in den Zustand zu versetzen als die Ausnahme verursacht wurde k nnen interrupting oder deferred sein e Von Befehlen unabh ngige Ausnahmen sind interrupting Traps 21 Kapitel 2 Grundlagen Traps werden dadurch angezeigt dass die Hardware einen Eintrag in das Trap Type TT Feld des Trap Base Register TBR macht s Abb 2 13 Die 8 Bit de
30. ECO Sco asl 6STI AS Tame LED VLTI BT IK e HJMOd E E gt I NId aT V l Id Id Z N PA E LIDIA amp Id er Nia zv Id id 0 b Nid E TOL lt Od1L gt Y Nid v Nid INN BINI ID i ES u S Ni vr S Nic INN SIN Ja A JINI I2d 9 Nid sf 9 NId P 9 NId INN OINI IO a N 3 4 d Ic es Ic A B Nile S nia 9 6 Nid ar 5 Id 5 Id INN GINI Loe AT NI 6 AT NId Al NId M A AN l Nid OTt l Id ld 0 ET Nid TT SF Id ct Jor A El Nid EE c d NN L IOJ e d N O 19d v NId CTT V Id P Id gt a SIN vit ST Nid CCC Ce 3UONSODS Ta3doblsna ST NI QT NId GF 9 Id 9 Id NN INS yd LI Mid aT 2 ar 2 d INN O3HM IO N ET 8 Id e Id e Uje os Nid 8T T Id Id K ET Ic T h 5 NId uz Y d O d AA y d N Nia TZ Y id Qc ld NI 22 Tz Pe T _ j e Nid Ec Y id id gt p T AR are NId ve L d N19501 Idd n NId Sz Y EI Ec T Sc gd eT NId Sz lap LE NId bis el Ic ER Oz NI NId SER mm oro a b i 8 c Nid Ber d o 13 O N ve Y E Nid STY j Wem NId TE Y ZE NId ZE Nid AIN N ze EE HI e EE NI INN Weed T d e NId p ve NId E NId lt S Se GE NId pe Y SE Id INN AGU LIO SE Id S NI sey SE NI 2 SE Ni INN AQHI 199 Nid se Y E Nid ZE Nid INN 13S N30 ID BE NIG LE SE Nid INN dOLS Idd SE NId hd 5E NId seq SE NId SN BS I5d 5E NId hd q av NId SE Ov Nid O Ov Nid INN ooN Io Ty NI av Y Ty NIc Ty Nid A E cv Nia Ir T civ d MN MNS 2d cv d c y A C gt sn op 4 EY Nic ev er d v INeUd d
31. LANH c Xe Al NU j v Ci X Y 4 N T x Y q Bj xA LANG H3 XH Lang QU XH LING U XH LING Q 68 071d0 UDS 858207180 9904 x4 LING M19 XM LENS y lt a E UX Q E OXI 13N3 ZIUON SEW SEKR TITON 3 XL LINI N3 XL 13N3 23 ON O xL LENG SID X1 L3N3 SIGAW LANG STA Lang N 31199 NTINIOWTLINIO NTINTOWT 1 San LINZ OUN LINZ 1NO0 ASNE e LNOT ASNA OrdW OIUW LINZ NOU e NOG Y x O Y N LJ N NMOSMdI 4 Hd LING N C 8 NCLISIMC LINZ C N7L3833 LH CD JH ooNd e 2 2 gIgd 50H I ec I 122 e 122 Il LANSSH LS 9 SW TOM aL oaM Lt H E SB oen HWOHd 940 JI 9911 A MS lt D 2 MS OT gt D OUM ZHWAP I LUM LAS MIO Sad MOG xu g LYN xl ElHun 51 GIO zLaMuf S1972138N Dr gt BLBOTDBLLTNOD xu Lyn TD N SL TUMOR LE NOOO x1721301 LL N782 9ULf NO2 el TI Lin LT 1no z48ng 9ulft NOO S187T188n INOTTOHLLTNOD XxH TIU i QqNLLINIC9ULPTNO2 x LT Leon COINTIOHHTSYLLTNOD 122 5U81f NOO2 ALTOSLLTNOD P NOD OD O2 H Kat N ELON H
32. OI Q qu U C cC Le Lum C cC O O O O O O a o o o E O O O O O O lt lt x x x U U U U U a a A a at a INTW A D a B A D B A D E B A HOST SYSTEM INTA INTY C B A D C B INTZ D C B A D Abb 3 3 Beispielhaftes PCI Interrupt Routing PCI Komponenten mit nur einer Funktion k nnen nur einen Interrupt benutzten Dieser muss immer INTA sein PCI Komponenten mit mehreren Funktionen k nnen mehrere Interrupts benutzten Es wird deutlich dass das Hostsystem nicht zwangslaufig anhand INTW INTX usw entscheiden kann welche Komponente einen Interrupt signalisiert Dies muss durch Softwareabfragen entschieden werden PCI Interrupts sind low aktiv 3 2 2 PCI Interrupt Controller Der LEON muss nach Vorgabe von Astrium als Host eines Systems aber auch als Prozessor ohne Hosteigenschaften einsetzbar sein Dies f hrt zu unterschiedlichen Anforderungen an den Interrupt Controller Dies ist im Folgenden erl utert Zur Unterscheidung zwischen diesen beiden Betriebsarten dient die schon vorhandene Variable HOST BRIDGE c der AMBA PCI Bridge 74 Kapitel 3 Eigenentwicklungen 3 2 2 1 LEON als Host Ist der LEON das Hostsystem konnen auf allen vier Leitungen INTW INTX usw Interruptsignale von PCI Komponenten gesendet werden Diese werden uber die Pins INTA INTB usw an das FPGA weitergegeben Wird der LEON mit nur einem internen Interrupt Controller benutzt stehen die Interrupts IRQ 12 15 noch zu Verf gung die high aktiv si
33. Quelle D18 10 AVNET Board Blockdiagramm Quelle D18 11 Eege 13 Blockschaltbild des PMC Caddys Quelle D16 13 Dypische single CMC Quelle LTD ios 14 CNMC aur emer Host Karte Quelle LTD aus 15 Einh llende einer Single CMC Quelle L7 16 Blockdiagramm des LEON Quelle L 10 20 LEON IU Blockdiagramm Quelle L10 0000002220 22 eeeeeeeeeeeen 21 3 berlappende Register Fenster und die globalen Register Quelle L14 22 Allg Registersatz mit 8 Fenstern ohne globale Register Quelle L14 24 Processor State Register PSR Quelle L 10 25 Trap Base Register TBR Quelle E10 sans iii 26 Watehpomt Register Quelle TLIO aroan dc 27 Tag RAM Zeile Quelle LIO ara u u ae a 29 Cache Control Register CCR Quelle IO 3l Blockdiagramm des Interrupt Controller Quelle L10 35 Blockdiagramm der Timer Quelle L10 36 Blockdiasramm UART Quelle LITO Eau 38 Sendeformat der UART Quelle L10 38 UART Control Register Quelle L10
34. S u i lt S gt u d lt 9 gt y a 59 lt 9 gt y zm H ou lt gt u 7 NM G y a Y ev lt B gt gt a eno p TT b Tg e po KET gt U ET ET er vT U PT vlog YT Sp lt ST gt g cr Sp DU ET oT 9 oT pu eu v GU e DU DREI mE 21 gt 7 T gt Got ZT BT BIl ug Ian QT y e o IN lt 82 SS 39009 lt Bes lt O27 BD fe EE VE le a eet dan H3dg gas ue JJ 9c AJAN ga OC y LES HOIHAdOO 111 023033533 LITLI TS g NO Jhd Sion 4 o LIS PI d dOd chematics Qu N 09 a a D a N LJ 3 f Z e a T2 N2 lt T gt ONS lt T gt ONS Pe lt T gt 071 lt T gt 0 1 UC LD ai S gg aoo 23 e ot E lt E gt 0 1 57 e lt E gt 0 1 ST b ER p SE Out z D lt b gt 0 1 io lt 7 gt 0 BT lt p gt 0 1 TTY 0L S lt S gt 0 1 22 ES KE SCH y 92071 6 ep 9207 1 Te E ep 071 me 4250 1 ZZ 20 1 PIT 6200 1 5 p N i m N N Ch N TO N To 30 MA N T3O
35. TRAP _skip E4 El LRAP skip IRAP Skip TRAP skip IRAP skip EB TRAP SKIP FRAP skip TRAP skip TRAP I SKID T EC BF TRAP skip 7 TRAP Skip IRAP Skip TRAP skip l FU ES IRAP Skip TRAP Skip TRAP ski TRAP 2 skip 5 Fa EF TRAP Skrp TRAP skip TRAP skip TRAP skip i ES EB DRAP Skip TRAP skip TRAP skio IRAP skip FE EE _skip nop rett Das eigentliche Programm enthalt die IRQ Behandlungs Routinen f amp KKK KKK KK KK RI RARA ARK K K K K K K KOK K K KOK K K KOK KO KOK K K KOK K K KOK K OK S ih SS OF pDrdp table wich ROS from amar ay omer 2 and EROS KK KK KK KK KK KKK KK KK KK KK AA Tinebude Tor Leon Er 130 Anhang A 3 Quellcodes VOLA SER struct lregs regs struct lregs 0x80000000 pues TROLS activated KONNE void _timerl struct lregs regs struct lregs 0x80000000 pues Timer IROX ne void _timer2 struct lregs regs struct lregs 0x80000000 puts Timer2 IROXninyr ys VOTO Start unsigned int i unsigned int IRQ13 unsigned int TIMERI unsigned Int TIMER unsigned char pio byte pe SS PO struct lregs regs struct lregs 0x80000000 i regs gt piodir read pio direction register i i amp OxFFFFFFOF pio 4 7 as input i coq 0x FF PLO 12 3 as output regs gt piodir i fy Se Circe ron megilster IROLS3 D TIMER1 0 TIMER2 0 e initialize Timers and Sc
36. Test des LEON auf AVNET Board sind in 128 Sektoren unterteilt die jeweils 64 kB zusammenhangenden Speicherbereich enthalten Das entwickelte Testprogramm ist in Abb 4 9 graphisch dargestellt und besteht aus vier Teilen 1 2 3 4 Nach Ausgabe von Send SREC File auf UART 1 wird ein File im SREC Format eingelesen Dies geschieht analog zum Einlesen einer Executable durch den Boot Loader Es wird Anfangs Adresse start adr und End Adresse end adr gespeichert um daraus die Gr e der bertragenen Datei size zu ermitteln Die Ausgabe File received zeigt das Ende der bertragung an Nach der Ausgabe Starting erasing werden in Abh ngigkeit der Anzahl der zu l schenden Sektoren entweder die ben tigten Sektoren ab Sektor 0 oder das gesamte Flash gel scht Hintergrund dieser Unterscheidung ist der Zeitaufwand der f r das L schen ben tigt wird Ab ca 100 zu l schenden Sektoren dauert das L schen der einzelnen Sektoren langer als das L schen des gesamten Flashs Um zu signalisieren dass mit dem Programmieren begonnen wird wird Starting copying auf UART 1 ausgegeben Danach wird eine unlock bypass Sequenz in Form eines Unterprogramms ausgef hrt und das im SDRAM gespeicherte File wortweise in das Flash ab Adresse 0x10000000 kopiert Die einzelnen Programmier Sequenzen werden durch eine Routine realisiert Dies ist nicht aus dem Programmablaufplan zu erkennen Zum Abschluss wird mit einer u
37. alle Komponenten die f r die Anbindung an den AHB und den APB Bus notwendig sind Daten werden zwischen diesen beiden Bl cken durch vier FIFOs bertragen Je zwei sind f r eine Ubertragungsrichtung zust ndig von AHB zu PCI oder PCI zu AHB Die Konfigurierung des PCI Interfaces ber den APB Bus geschieht nicht durch diese FIFOs sondern durch spezielle Steuerleitungen f Adressbereiche einzelner Komponenten die an einen Bus angeschlossen sind k nnen entweder fest oder dynamisch sein Die Adressbereiche des AHB Busses des LEON sind nach der Synthetisierung fest vorgegeben Sie k nnen nicht mehr dynamisch m Betrieb des LEONs ge ndert werden Auf dem PCI Bus werden Adressbereiche dynamisch vergeben 50 Kapitel 2 Grundlagen Ist der LEON das Hostsystem stellt dies kein Problem dar Die Systemsoftware des LEON kann allen externen am PCI Bus angeschlossenen Komponenten die Adressbereiche zuweisen die noch nicht intern vergeben sind Ist des LEON nicht das Hostsystem kann dies u U zu Problemen f hren da der Bridge vom Hostsystem ein Adressbereich zugewiesen wird der nicht dem dahinterliegenden AHB Adressbereich entspricht Um diese Probleme zu umgehen kann die Bridge w hrend der Synthetisierung so konfiguriert werden dass Adressbereiche die auf dem PCI Bus f r die hinter der Bridge liegenden AHB Komponenten vergeben sind bridgeintern auf die starren Adressbereiche des AHB Bus umgewandelt werden Auf dem PCI Bus wir
38. also 8 in Register und 8 local Register und zusatzlich den 8 in Registern des angrenzenden Register Satzes Diese werden out Register genannt Ein aktuell laufender Prozess hat also immer nur Zugriff auf maximal 32 Register Die Registernummer und relative Adresse bzw der Assembler Name ist dabei f r alle Fenster identisch Deshalb k nnen Prozesse in Jedem Fenster abgearbeitet werden ohne dass der Programmcode angepasst werden muss Assembler Bezeichnung Register Adresse in 0 in 7 10 17 r 24 r 31 local 0 local 7 10 17 r 16 r 23 out 0 out 7 00 07 r 8 r 15 global 0 global 7 80 Vog7 r 0 r 7 Tabelle 2 5 Register Adressierung und Benennung innerhalb eines Register Fensters window CWP 1 locals window CW P locals window CWP 1 locals elohals A o Abb 2 10 3 uberlappende Register Fenster und die globalen Register Quelle L14 Abb 2 10 zeigt 3 verschiedene Register Fenster und ihre Beziehungen zueinander Die globalen Register sind von allen Prozessen aus adressierbar und besonders daf r geeignet 27 Kapitel 2 Grundlagen Werte zu speichern die von vielen Prozessen verwendet werden Dies betrifft z B die Anfangsadresse des Speicherbereiches Die in Register des aktuellen Prozesses k nnen mit Daten des aufrufenden Prozesses belegt sein Sie sind also auch von dem aufrufenden Prozess als out Register adressierbar Die local Re
39. bertragung des Files im SREC Format vor Um aus dem EXE File das korrespondierende SREC File zu erzeugen werden andere durch Gaisler Reserach mitgelieferte Tools benutzt Das SREC File spezifiziert Befehlscode und Einsprungadresse des Programms Der VHDL Code des unter 4 1 1 angef hrten internen Boot PROMs kann auch durch die mitgelieferten Tools erzeugt werden Der Code dieses Boot Programms initialisiert den LEON und liest Programme auf UART 1 ein s Kapitel 4 2 2 4 2 1 Testumgebung Wie unter 4 2 beschrieben wird im Rahmen der Diplomarbeit der LEON im Betrieb als Nicht Host In einem PCI System getestet Dieses PCI System besteht aus dem PCI Bus eines PCs der f r Einsteckkarten vorgesehen ist Dieser PC wird im Folgenden mit PC 1 bezeichnet Ein zweiter PC PC 2 steht zu Verf gung Auf diesem werden BIT Files erzeugt Programme geschrieben und kompiliert Der LEON besitzt drei serielle Schnittstellen UART 1 UART 2 und DCL DSU Communication Link Um das FPGA konfigurieren zu k nnen ist au erdem noch eine JTAG Schnittstelle auf dem AVNET Board vorhanden Tests ohne PCI Benutzung und ohne UART 2 Benutzung wurden mit einem Aufbau wie in Abb 4 1 dargestellt durchgef hrt Die AVNET Karte steckt 1n einem PCI Slot in PC 1 ber die parallele Schnittstelle LPT 1 des PC 2 wird mittels der Xilinx Software IMPACT das BIT File in das FPGA geladen Dies 1st nur notwendig wenn die Konfigurationsdaten nicht im Konfigurations Flash abgel
40. cla LO cla xy cluen I DOBTRILIIA x Elan x Jd 2 gt XL lag OD NOD ELASIT NOD C L atr 2 ELIOT NOS x X IDX x OW JI anl pi T HOO 19 HOLD SANNOD 2 Schematics lt Bes lt NOS Old PENIG Mad pc n SS Ek a BH e Get aun 105 zig Bundene 6siubneza3 LAN Foug 2 9E IA HOTYHAdOD dinis L SESS cre ms MA ee SE EE ES m eer qas JS as m St queag ve E6EStrRI N lt SE 2 109 Tow ALIS gt pm Sn EN NO A rN ee SIHOIMWH Y Schematics NLY NLY TTYMO T T8MO SATS S2197 Eed SEC AN ULA EEE om L BTTO EE H W F al Ei l o zEHUD l 5 lt D Q A He e t e SEA CIXVZTSBOX gt OIOOn Mdo cccl N DT SAVE TSX JRIQO pg NU T NB T 1 NIT NOUO T NOU T NBT N T N2O ZEN EEHUd2 amp EE MHOO Eege 2e8do eeu ceo THMO BEEN 1519 ASTD 67 TO APTO SE TO SY TO pro SScI PETI ESE N H u l u H N H N l ne m LI N n y Erl tc S621 0 SS9EB28 rox NIOON Ydd NBAT NAT NAOT CEO CEO GES TES ar19 BETO enel Al 4 TOZI a9cr N
41. die Signale auf dem AHB Bus und bersetzt sie in ein adaquates Format Dabei sind alle externen Komponenten an den gleichen Daten und Adressbus angeschlossen Chip Select CS und andere Steuersignale fur die jeweiligen Komponenten sind getrennt vorhanden Abb 2 24 zeigt schematisch das Memory Interface des LEON Durch die Anzahl der vorhandenen CS Signale lasst sich die Anzahl der unterst tzten Speicherbanke bestimmen e 2 PROM B nke e 1 I O Bank e 5 SRAM Banke e 2 SDRAM Banke Der AHB Bus hat einen m glichen Adressbereich von 4 GB Von diesen 4 GB dekodiert der Memory Controller die unteren 2 GB Tabelle 2 12 zeigt die Standard Zuordnung des LEON Sind SRAM und SDRAM angeschlossen wird SRAM ab 0x40000000 und SDRAM ab 0x60000000 adressiert Address r NENNEN LL uo NN Mapping 0x40000000 Ox7FFFFFFF EE SRAM SDRAM Tabelle 2 12 Adressen Zuordnung des Memory Controllers Quelle L10 41 Kapitel 2 Grundlagen Der Memory Controller dekodiert anhand der 4 MSB AHB Adressbits die adressierte Komponente und aktiviert das entsprechende CS Signal Die Adressierung auf dem AHB Bus unterscheidet nicht zwischen verschiedenen Banken Diese Differenzierung geschieht im Memory Controller Der PROM Adressbereich wird daf r unabhangig von der PROM GroBe halbiert Der Adressbereich 0x00000000 bis OxOFFFFFFF wird Bank 0 zugeordnet der Adressbereich 0x10000000 bis OxIFFFFFFF Bank 1 Ist die Option eines internen Boot PROMs a
42. in Error Mode setzen IU Watchpoint Treffer Steigende Flanke an DSUBRE Hardware Breakpoint durch DSU Spezielle Anweisung durch DSU Single Step Anweisungen der DSU In allen Fallen muss DSUEN aktiv sein Dann wird die Abarbeitung des Programms gestoppt PC und nPC zwischengespeichert IU Timer und Watchdog werden optional gestoppt und DSUACT wird aktiviert Das Programm wird weiter ausgefuhrt wenn DSUEN deaktiviert wird Die DSU enthalt zwei Breakpoint Register Es kann die Adresse von Befehlen oder die Speicheradresse als Triggerbedingung verwendet werden um den Debug Mode auszul sen und oder den Trace Buffer einzufrieren Trace Buffer Der Trace Buffer speichert entweder die letzten ausgefthrten Befehle die letzten AHB Ubertragungen oder eine Mischung aus beidem Dazu steht ihm ein durch das VHDL Modell festgelegter Speicherplatz zu Verf gung Standard 128 kB der in Zeilen von 128 Bit 16 Byte aufgeteilt 1st Jede Zeile enth lt die zu speichernde Information zu einem Zeitpunkt Die genaue Belegung dieser Zeilen ist im Manual des LEONs dokumentiert DSU Communication Link DCL Im Gegensatz zu den zwei regularen LEON UARTS ist der DCL direkt an den AHB Bus angeschlossen und kann dort als Master agieren D h ber den DCL kann jede beliebige Adresse auf dem AHB Bus gelesen oder beschrieben werden Dadurch ist auch die Adressierung der DSU s Tabelle 2 13 gewahrleistet Da die UART byteweise arbeitet ist ein einfaches Protok
43. lt k Kk lt k X K K XK K K K K K K K K K KOK K K KOK K KOK K K KOK KOK KOK K KOK K KOK ck ck ck kk ck ck KK ck k KOK KK test Of UART 2 f amp OK KK KKK KK KK KK RK KK X Kk IK K K K K K K K K KOK K K KOK IK Kk KK KK IK KK K kck kck kck ck KK KH HK U U Kk include ro Leer T void _start unsigned char bmsgl UART2 listening n n r unsigned char bmsg2 You sent n n r unsigned char bmsg3 n n r unsigned char r 256 unsigned int i for i 0 i lt 256 i r i 0 clear space for reading puts bmsgl putsb bmsgl 122 Anhang A 3 Quellcodes while r 0 lt 0x20 getsb r wait for lines beginning without control signs puts bmsg2 s p tsb bmsg2 puts E put sh E puts bmsg3 put sb bmsg3 Er PIO Test NV amp KKK KK KK KKK KK KK KK X Kk K X K K K K K K K KK K K KOK K K K KOK KOK KK IK IK KOK KOK KOK kk kk kk kk KK kk Ji PIO test KK KK KK KK KK KKK KK KK X K k K K K K K K KOK K K KOK K K KOK RARA RARA RARA RARA KH KK KK K include To leon sh VOIA Start unsigned char bmsgl Program aborted by user n n r unsigned char bmsg2 PIO 6 is HIGH n n r unsigned int i unsigned int y unsigned char pio_byte unsigned char help struct lregs regs struct lregs 0x80000000 v0 i regs gt p1 dir 7 re ad pio direction register i i amp OxFFFFFFOF pio 4 7 as input pow xe dg XC LE PLO 23 9 Soul put feds prodrir 1 Lf set dire
44. m glich Bauteile die 1m Lager vorhanden waren verwendet Die PMC Spezifikation wurde wie 1n Kapitel 3 1 2 4 beschrieben verletzt F r eine kommerzielle Version m ssen die PMC Spezifikationen aber eingehalten und u U mehr Speicher zu Verf gung gestellt werden Ob Anderungen die f r eine kommerzielle Version gemacht werden m ssen akzeptabel sind ist nicht im Rahmen der Diplomarbeit behandelt worden Dies hangt davon ab ob der vorgesehene Speicher ausreicht und welche schnittstellentypen vorhanden sein m ssen Wird der ben tigte Platz und Raumbedarf zu gro muss ein anderer Boardtyp eingesetzt werden Da das PMC Board zum Ende der Diplomarbeit noch nicht layoutet ist und dementsprechend noch mehrere Wochen bis zur Fertigstellung ben tigt konnte es nicht in Betrieb genommen werden Nach Ma gabe des zust ndigen Mitarbeiters sind nur Richtlinien f r die Tests der Bauteilgruppen auf dem Board festgelegt worden Eine Entwicklung oder Modifizierung der f r diese Tests ben tigten VHDL Designs muss in Zukunft gemacht werden Hintergrund daf r ist dass eventuelle Anderungen am PMC Design nicht ausgeschlossen sind und diesen nach Abschluss des Layouts und Fertigungsbeginn besser Rechnung getragen werden kann Die Implementierung des LEONs auf dem Evaluations Board konnte erfolgreich durchgef hrt werden Es wurde dazu eine Konfiguration des LEON verwendet die nicht alle optionalen Komponenten implementiert Zur Anbindung der PCI AM
45. sie erf llen ist durch FPGA Konfiguration bestimmt 7 Kapitel 3 Eigenentwicklungen 3 1 4 10 ETHERNET IF s A 2 Blatt 12 13 Der Block ETHERNET IF beinhaltet die Ethernet PHY von Intel U24 die RJ45 Buchse PA drei LEDs D113 D14 D15 und durch Hersteller und Referenzdesign vorgegebene Widerstande Kondensatoren Jumper und Ferrit Perlen Das Design dieser Hierarchieebene orientiert sich an dem Referenz Design des AVNET Boards Dieses wurde bez glich seiner Ethernet Schnittstelle schon getestet und 1st deshalb einsetzbar Die Anderungen im Gegensatz zum AVNET Board sind im Folgenden aufgelistet JTAG Interface Nach Vorgabe von Astrium soll der Ethernet PHY nicht ber JTAG programmiert werden k nnen Deshalb wird die Schnittstelle offengelassen Eine definierte Einstellung von Pegeln an den Pins ist nach Herstellerangaben nicht n tig Floaten deaktiviert die Schnittstelle 1 Widerst nde Im Referenzdesign sind drei Widerst nde mit 1 Abweichung verwendet Nach Vorgabe von Astrium werden nur 1 Widerst nde aus der E24 Reihe benutzt AVNET 22 1 kOhm 22 1 kOhm 22KOhm R55 49 9 Ohm 50 Ohm 2 100 Ohm parallel R56 R57 49 9 Ohm 50 Ohm 2 100 Ohm parallel R58 R59 Tabelle 3 6 Vergleich der Ethernet PHY Beschaltung Status LEDs Im Referenzdesign wird eine RJ45 Buchse mit zwei integrierten LEDs benutzt Im vorliegenden Design wird stattdessen eine RJ45 Buchse ohne LEDs benutzt da diese Buchsen in flacheren
46. spezifische Konfigurationssignale vorgesehen Die restlichen 6 Pins sind mit Masse und den unterschiedlichen Spannungen verbunden Sie k nnen zu messtechnischen Zwecken benutzt werden oder um externe Spannungsversorgung anzuschlieDen Tabelle 3 3 zeigt die Zuordnung zwischen Signalen und Pins RS232 Anschluss mit Handshake RS232 Anschluss ohne Handshake 6 CON UART3 RX JTAG Interface und Konfigurations 8 CON JTAG DATA signale von Xilinx Bausteinen 9 CONJTAGDATAQ 66 Kapitel 3 Eigenentwicklungen i VCC 3 3 3 3V Versorgungsspannung VCC 2 5 2 5V Versorgungsspannung Tabelle 3 3 Belegung des Flachbandkabelsteckers 3 1 4 POW RES CLK s A 2 Blatt 5 13 Der Block POW RES CLK enth lt seinem Namen entsprechend drei Funktionseinheiten Die ben tigten Versorgungsspannungen werden generiert Takte erzeugt und ein Reset bei Spannungsabfall aktiviert Spannungsgenerierung Die 5V Versorgungsspannung wird entweder ber den PCI Bus das Flachbandkabel oder den Jumper J1 geliefert der auch zu Messzwecken benutzt werden kann Eine rote SMD LED D1 mit Vorwiderstand R2 zeigt das Vorhandensein einer Spannung auf der 5V Leitung an Von diesen 5V werden die beiden anderen ben tigten Versorgungsspannungen 2 5V und 3 3V durch Linearregler erzeugt U1 U2 die parallel geschaltet sind Beide sind wie vom Hersteller vorgegeben mit Kondensatoren beschaltet Cl C2 C3 C4 Die Ausgangsspannung VOUT wird durch einen
47. von falschen Konfigurationen oder fehlerhaften Signalen der PCI Komponenten sein Bei solchen Fehlern st rzt PC 1 ab und somit k nnen die Aktionen die den Absturz verursacht haben nicht mehr mit PC 1 untersucht werden Software Xilinx IMPACT Software DSU Monitor Hyperterminal COM 1 PCI Tools GNU Compiler PCI Bus AVNET Board Daten BI File Memory Controller SREC File s Abb 4 3 Testaufbau 3 PCI Test LEON als Initiator Software Xilinx IMPACT Software DSU Monitor Hyperterminal COM 1 PCI Tools BusView PCI Bus AVNET Board Daten BIT File Bus Analyzer Abb 4 4 Testaufbau 4 PCI Test LEON wird adressiert 83 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4 2 2 Boot Loader Quellcode Seite 117 ff Gaisler Research stellt einen Boot Loader als Quellcode zu Verf gung der als internes Boot PROM implementiert werden kann Dieses Programm hat die Aufgabe die notwendigen Prozessorregister zu initialisieren und den Speicher zu konfigurieren Anschlie end wird eine Bootmessage ber UART 1 gesendet und auf dieser Schnittstelle ein SREC File erwartet das im Anschluss an die bertragung gestartet wird Im Laufe der Diplomarbeit stellte sich heraus dass dieser Boot Loader nur f r die Verwendung von SRAM geeignet ist Da nur SDRAM auf dem AVNET Board zu Verf gung steht ist das Programm speziell f r das AVNET Board abgewandelt worden Zuerst werden Processor State Register PSR und Window Invalid Ma
48. 1x e INSICOW LANZ a 819 A INN CLINTON LH Meee INOUN LANG c dO 3d XO IN N db GH E IXNMGHMc 13S3 GO OUf dow T J 31 15 13538 K o NN LAGAM lt T gt M3 1Sx 1 Ox ba lt B gt M3 15x 1X 410438 e INZHWSzZ Le SL CORAL SLL u lt T gt OIDON g oioon 1 Moon cs E ESDA e e e V eon V V E EDN y lt Bes lt 116 8 2 gt Y E 2 T ZN mn wuon awen wnyeg KSPUT d SMOLDINNOD Ike N MM unge e 2 l Sei NS KENTE 43d DEDO ognagonuaseugu soedg Z lO D rndgsepetboesiuDnezdY ak EI GA A NOT LN 18 ouda HOIMAdO2 CR i A SEA esas UL hee y x w C N TUE SE m ERNA ES EE WR EISE en ques rm pu A S H dei ee nt E UT O Ze ich et O NO JAd GIHOIM Iy SE a 134219 IN BL zutas Hor 31 JIH 313N d803 IH FI 3114 Add rel AST TEMO eo TED E S LT PIS etl amO NEM GER E STI
49. 8 7 Ground PCEHRSVD INTD PCHRSVD 10 9 PCI RSVD PCIRSVD Ip 2 CLK Grund 14 13 RST BUSMODE3 114 Ground DNI 116 15 B3V BUSMODE4 l 47 DU ADE D H7 Men AO 8 49 AD O 5V 50 49 ADIOS 2 33V 50 59 AD 2 AD 160 59 Ground PMCRSVD 160 Tabelle 2 3 PMC Steckverbinder Pn1 Pn2 17 Kapitel 2 Grundlagen Pn imi Signal Pin m Signal Signal d PAR STE ee 3 Ground CBE HD WO Ip H 5 CBE Cp 6 5 yo To e 7 C BE 4 Ground 8 7 UO VO H 9 V O PAR64 0 9 vo J Jo In 59 PCERSVD PCERSVD 60 Bo WO NO 0 Tabelle 2 4 PMC Steckverbinder Pn3 Pn4 18 Kapitel 2 Grundlagen 2 2 VHDL Cores 2 2 1 LEON Der LEON VHDL Core wurde urspr nglich von der ESA entwickelt und wird mittlerweile von der Firma Gaisler Research als Open Core zu Verf gung gestellt Die in dieser Diplomarbeit benutzte Version 10 ist mittlerweile veraltet Der Core beschreibt einen 32 Bit Prozessor nach dem SPARC V8 Standard Zus tzlich zu dem Prozessor stellt das VHDL Modell noch weitere Funktionalitat zu Verf gung die als SoC System on Chip in einem FPGA Platz findet So werden getrennte Cache Speicher f r Daten und Befehle Hardware Multiplizierer und Dividierer Interrupt Controller zwei 24 Bit Timer zwei UARTS Power Down Funktion Watchdog 16 Bit I O Port Speicher Controller und eine Debug Einheit mit dem LEON Core mitgeliefert Die Integer Unit des
50. 8V00 Serie Quelle D11 In der XC18V00 Reihe gibt es unterschiedliche PROMs Sie unterscheiden sich in Speicherplatz und Gehause Die Dokumentation der XC18V00 Bausteine stellt Informationen ber die ben tigten PROMs f r unterschiedliche FPGAs zu Verf gung So wird fur einen XCV1000 eine Kombination aus einem XC18V02 und einem XC18V04 ben tigt Zusammen haben sie eine Speicherkapazitat von 6127744 Bits Dies ist genau die Anzahl die f r einen XCV 1000 ben tigt wird Die beiden PROMs m ssen kaskadiert werden s Kapitel 3 1 4 5 Es kann f r diese beiden Typen zwischen zwei verschiedenen Packages gewahlt werden VQ44 und PC44 Als strahlungsfeste Version gibt es nur ein Aquivalent zum XC18V04 VQ44 Da das Layout eines XC18V02 und XC18V04 nur vom Package abh ngig ist konnen f r das Demonstrationsboard beide Typen verwendet werden ohne dass im Redesign das Layout verandert werden muss Es wird von beiden Typen die kommerzielle Version benutzt XC18V02VQAAC und XC18V04VO44C Als Scrubbing bezeichnet man Konfigurationen im laufenden Betrieb Es ist eine Methode um Systeme fehlertoleranter zu machen Dabei wird der FPGA zyklisch neu konfiguriert vergl L4 Bei Verwendung allein der Xilinx PROMs ist die Forderung nach der M glichkeit von Scrubbing nicht erf llt da beim Scrubbing bestimmte Teile des Bit Streams mit dem der FPGA initial konfiguriert wird nicht verwendet werden Dies betrifft z B die Inhalte von BlockRAMs Um diese Teil
51. 93 A L oe E 6565656 he GER ii NIDOUZASD yon H 8 M DN VN Pz lt gt Low A o SE asc 13838 H803 Fire 7 a Z a 13538 3538 HSU LENE KJ e INN LINI KIM HSU 14 ANOd A SE Feet SNOC 05 920 Idi 3 e 101 STALL 3LTaM Kr 3o HSG13 EC ANN IL e INN 90 d PS iu Sei INSW SH ST INSW SA a ez ee3eado Heu 14 HESE bo en 1712 HSL Dv AGA E IXvvVTS6OXx MZ EE Saee uD sagan Ho lt vod HDL kg bg y zt i INM5 ks GO ata Li LJ ro a Pa gu 0 cu cc OSI val XC cOngerox 711 lt 2 gt 0 AY gt zou La lt T gt 0 AND C Er lt Tod ATID A ESE 024 RA gt A Ca amp 2 lt 2 gt 0 e DE gt 2 d aD L o N 48718 ue T 1 EB Y 2227 2227227 1383 30 A 13638 3 AT CEO BD BER a N A MIA e E ere NES S LAY KOSS ce NA o e E Vers y Y Y 38 m Eli 125 TRA Od AU A e od e A Sur O60 Lf Z8RN83MOx ioa z 2 d S dO o 9uULrpr a3Mod D V x v vw lt T gt SLD O I D 19 0 1 lt E gt ELD O Es e I NZHMIAOV 129 grin en sE EIDEL avv lt Ge 2 lt p5S15S 02Z e S 321 TODL SWL INS Tf oa x Ial TO e G 1 o INIGI Laz eo v v 01 a TH H I C ASA O EDASA E Gu Ex LOMA i Cn EM H SWOdd NOILUNOOIJNOO V lt
52. A 3 Quellcodes boot assembly code setup wim psr and stack NOTES NO window handling maximum function eall depth e Y 11 asm FLODAL Start Start wr EE USC ps disable traps enable Oxe0 WI g0 2 Swim flush set 0x10000 gl no enable cache enable 0x1000f set 0x80000000 00 register base sub 00 16 g4 Op Pam St Sol 00 0x14 no enable cache Lal 00 0x24 Sol probe for FPU and SOL 20210 OL sll Ode Bp 04 WI vol 0xcO Sper no trap enable enable 0xe0 set Oxaa00 Sol enable both uarts st 01 00 0OxA4 st g0 00 0x74 st g0 00 0x84 set Suy wol st 0l Deo lt Osx ke st s l Fett 4 0x88 new set cto 39 Od set MCFGL st od 200 sb 20260 1 set Ox 162000 sol set MCFG3 st Body J 5990 083 set 0xe2386020 Sol set MCFG2 st SO ly T200 0x4 set 0x0 01 reset AHB status register st cod 00 0x10 set Ox O sol set uartl amp 2 scaler st col 700 we st Soll SOGO sb USC set Ox43fffff0 SSD set stack pointer Or g0 bmsgl 00 Iprint bmsgl call puts nop call puts or g0 bmsg4 00 nop call BOOT nop nop consc char bmsgll11 9 e nst char bmsg2 CET 10 const char bmsg4 1 6 Pr ON alee fepe J completed DUM E 118 Anhang A 3 Quellcodes puts unsigned char s struct lregs regs struct lregs 0x80000000 while s while regs gt uartstatusl amp 0x4 regs gt uartdatal s
53. AG Interface zu Verf gung Dieses wird hier nicht benutzt Um eine eventuell vorhandene JTAG Kette nicht zu unterbrechen ist das Signal TDI mit TDO verbunden sowohl die 5V als auch die 3 3V Spannungsleitungen des PCI Bus werden analog zum Referenz Design FME mit Kondensatoren gepuffert Die 5V Leitung geht immer an die 5V Ebene der PMC Karte Die 3 3V Leitung ist optional ber den Jumper J20 an die 3 3V Ebene der PMC Karte anschlieDbar 73 Kapitel 3 Eigenentwicklungen 3 2 PCI Interrupt Controller Im Rahmen der Diplomarbeit soll ein einfacher Interrupt Controller entwickelt werden der die Weiterleitung von Interrupts auf dem PCI Bus an den LEON gew hrleistet Diese Funktionalitat wird durch den verwendeten IP Core der AMBA PCI Bridge nicht zu Verf gung gestellt 3 2 1 PCI Interrupt Leitungen Auf dem PCI Bus stehen immer vier Interrupt Leitungen zu Verf gung die allen angeschlossenen Komponenten zug nglich sind Im Folgenden werden diese Leitungen INTW INTX INTY INTZ genannt Beim PCI Steckplatz hei en die Pins die an die Leitungen angeschlossen sind INTA INTB INTC INTD Wie diese Leitungen auf dem Tragerboard jedoch verlaufen ist nicht durch die PCI Spezifikation vorgegeben D h dass nicht alle Komponenten ihr INTA an INTW angeschlossen haben sondern z B Komponente I INTA Komponente 2 INTB Komponente 3 INTC usw Abb 3 3 zeigt eine m gliche Form der Vernetzung N m un oO s g g g E E c C OI OI
54. BA Bridge mussten nur wenige 100 Kapitel 6 Fazit und Ausblicke Anderungen an deren Source Code gemacht werden Allerdings zeigte sich im Verlauf der Tests dass die Bridge zusatzliche Funktionalitat implementiert bekommen musste um Fehlermeldungen auf dem AHB Bus zu unterdr cken die den Prozessor in Error Modus setzten und damit eine weitere Abarbeitung von Programmen unm glich machten Die Erfahrungen durch das Einbinden der Bridge zeigen dass ein Anbinden anderer Komponenten an den AHB Bus m glich ist und mit geringem Aufwand bewerkstelligt werden kann Dazu muss lediglich die Komponente instantiiert werden mit vorhandenen AHB Signalen einerseits und neu hinzuzuf genden Ports des LEON andererseits verbunden werden Au erdem muss in den Konfigurationseinstellungen des LEON der ver nderten Anzahl an AHB Teilnehmern Rechnung getragen werden Eine solche zus tzliche AHB Komponente ist z B ein Ethernet MAC Wird dieser implementiert kann eine Ethernet Schnittstelle angesteuert werden Dies ist f r das PMC Board gefordert Die Hauptarbeit bei der Entwicklung der Testsoftware f r den LEON besteht im Verstandnis der Funktionsweise des LEONSs dessen Register sowie eventuell off chip angeschlossener Bauteile Um zum gew nschten Ergebnis zu kommen muss das Handling und Zusammenspiel aller Komponenten stimmen Um Softwareentwicklern gr ere Komfortabilitat zu gew hrleisten ist es f r die Zukunft sinnvoll Programmroutinen zu entwic
55. D EE rq BOT e se EI E MES TT BE AND po E Sg ONE E sat e ME _ ga EX2N3150 Sd Syl ZHN P 19 e no Ta a2 CS SUBUND 6X e 304DE998 EN on A ea SGONMU 220 cdu3a 19333 IYNOILd0 H04 25 y lt Bes lt i UN NOLING 3 NOT 193M91 3 NOs Oe ana sss pe E ger BO aun mapas EU ENIRO Jdao asaon IER sp eg H 9 Jd HOI 109 AD Q3043S34 queag J NO Jhd BAR I SE i LIFTER ELT Schematics dE Ba SEIN ONILLAS NOILUWIDIJNOO INE3UON e e hd ESN COO IS3NGO XT SOW e E UV E CTW LX 1NQ3GO6N e e H ES ES v V Qr I EEJI 9 INN LINI DS Sg ELLE SO agr N N D TQM Ti KUN H INOUM LO ONG HSY 14 N33MI3H 193135 11199 SIN INOADAFMOE of ep lt BS gt 1 1d9 GC l TAMOT sa OaM E 3U0H LLOPIS Iam lt I gt P3aO LO i x rs ECH u SN aan C JOTI E lt E e GH NOJA 1933148 H ls A CY LINI bWO Wd 20 t PAR e A zZ Q IN GLIM NOLING 1353 T rs de g j 8 2 g1Ug 508d i TN S d MES 9999 O x 9
56. D434008A W13 D10 Xilinx Inc XC95144XL W1 D11 Xilinx Inc XC18V00 W1 D12 Xilinx Inc Virtex 2 5V FPGAs WI D13 Xilinx Inc Virtex E 1 8V FPGAs W1 D14 Xilinx Inc QPro Virtex 2 5V Radiation Hardened FPGAs W1 D15 Xilinx Inc QPro XQ18V04 XQR18V04 QML WI D16 Electronic System Design GmbH VME PMC Caddy 102 Anhang A 1 Quellenverzeichnis D17 Tundra Semiconductor Corporation Universe W 14 D18 Avnet Inc Virtex E Development Kit XCV1000E FPGA User s Manual D19 Avnet Inc Virtex E Development Kit XCV1000E FPGA Schematics D20 Avnet Inc Virtex E Development Kit XCV1000E FPGA Bill of Materials Application Notes Al Xilinx Inc XAPP079 Configuring Xilinx FPGAs Using an XC9500 CPLD and Parallel PROM WI A2 Xilinx Inc XAPP137 Configuring Virtex FPGAs from Parallel EPROMs with a CPLD WI A3 Xilinx Inc XAPP138 Virtex FPGA Series Configuration and Readback W1 A4 Xilinx Inc XAPP139 Configuration and Readback of Virtex FPGAs Using JTAG Boundary Scan WI A5 Xilinx Inc XAPP158 Powering Xilinx FPGAs WI A6 Xilinx Inc XAPP623 Power Distribution System PDS Design Using Bypass Decoupling Capacitors W 1 A7 Xilinx Inc XAPPI12 Designing With XC9500XL CPLDs W1 A8 Intel Corporation Inc LXT971A 972A 3 3V PHY Transceivers Design and Layout Guide W4 Internetadressen W1 www xilinx com W2 www pcisig com W3 www iee
57. H E aar 5 5080 31 Pu su 621 R 679 SOgOHO cee IN lt Q 131 el V E EDON A 9 S V E E is EE qS hu NOE DNI ENIQ Yad setae dto Ee eee OUI SPELA UNG Add LANSSHLS Bev San dan eden len 90 ed J ur ACI Et a E 9 Jd HOIHAdOO Sunuepe 5siubnazug un SoJg PA A NOT DINN 393 115 d2n 3S28 UN JAS Queag See e E d do4 uosa oud ES RN N A3UJSUII GN Er EST ri ES ii zei Y NO Old SIHSIN T1 Schematics 3381g IN ba ZUUAS HSES 3I JIH 313Nd803 31T3S 3113 God i MEN N lt T E gt 94D703 7 LANG c L z CU BEIS SASDM CO AN lt BLISINT 6S MOTTA lt N3399 lt T S40 109 E e V E 22n N T CH os aco e e 9 22 SG AM al COM BOT GER BEI S L WY SALON con est isis cJ m3 Bl 27 L SE avi 000 000 422 5466566666 HOO S2 DW SIDARONES gb nee D OQ UU s n iE 854 EI g v n c lt 2 NE T s L Evi 2 IN OO XH ING B INSHO XH LENS AGEE LIN E mE NM XY e e INGSflUd LANZ Geen Ben IN GU w l LANA e SUIHH N02 XH INM 15 XM L3N3 i T E 542 U031 XQ E Ux LSS Cal ad xL E dN3 A m KR We SE 8 Nant INNI xL LH e NI MIX ENI 5 x v dl sect Lg CENO DI BiI26
58. I OU urou pojo duroo SUMAJI A p empgmeg o q 8 p yX041 Ipe utis q PX0 D 00000001X0 ozis gt 1 0 D 10j SUIAJUS A Oroso ssed q 390 un pX0x Ipe 11835 HOA YXO 0000000 1X0 9sso1py UuoJorurureJS0Jd Use 1 0ZIS gt 1 Q 1 103 ssedAq xoo un uoqoso Yseyy do Jpy o onp e Ipe puo uiagorads ueq Jpy o pnp e Ipe Ups 9UI doo SUNJEIS uyoso UILOPIIC Uoso ueoppes 001 lt el usuyoq Uu910 35S u pu uoso nz Jop JYLZUY Ipe 11838 IPE pua azis D9AI9991 204 urou USSIJUIS 9 I2Z ILT OTAS pues 1928 DAON Programmstruktur Flash Test Abb 4 9 92 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4 2 3 6 Test PCI Quellcode Seite 127 ff und Seite 121 Beim Testen der PCI Schnittstelle muss zwischen zwei verschiedenen Szenarien unterschieden werden Im einen Fall ist der LEON der Initiator einer Ubertragung im anderen Fall ein anderer PCI Teilnehmer LEON als Initiator F r den Test der PCI Schnittstelle mit dem LEON als Initiator wird der Testaufbau 3 Abb 4 3 verwendet Da in diesem Test der LEON Aktionen initiiert kann der Test durch eine software ausgef hrt werden Es werden Lese und Schreibzugriffe auf Konfigurationsbereich und Speicherbereich eines anderen PCI Teilnehmers getestet Die Verwendung des PCI IRQs wird nicht getestet Der adres
59. INN SAIS I A INN H dd 1 INHUd IOd NN399A 10d INN Sp IOd INN cO LS 10d INN 901 I2d orbe E INN AGHI I2d bcd E INN L n I2d INASZAMH HOM B RARE SEQ e INN AONI ID INNT3MWON INN CINI 15d ne INN ZZ 10d INN 3OLOH Sieg Sd b m mE NN C SWORN 4 INN EINI IO Xp ENT ns LN lt ED SRO Ind INN BLNT I d Sen NUN poda IER IOd IN 0 ESN IER Bi lt IN 2 TIN JOS Asa 4 INN LSH IDG IN lt ION SL RO S SUE AT ld A e IO IOd TN lt E TES J 71 DIE zo ADDI NAD IN lt DESSINANg lt 0 07 gt SS3300d0 n JT AA Qi TAOX e 95 Pit vi Sv Sagas 11 IQ 65 0 190 U9dj Ee R Al ENS INN SO I e EDO INN GLIHM SEAR INZIGON INN NI Se TSGOW INLNOAZASNE seek INQ3GOMH IN lt Z 2 6 LUO 5OHd ITS NOG IN lt T n EE 15703 T LANG ZF det LIN INN 5OMHd ae IN SL iene SCHO Xa 65 eut Bd NSW to ME IN TOO xa LING TO poc GA T INIG INd43 IS LINA lt gt 0Xx7 LING IO OE ea LENS __ EES REE Lana es ING XS L3N3 ISA 199 I S BaRInax 9 5 INNMI ING H3 xH LINI DA XS KI dr EE SABQyD ER INN 13 LIN A dos ean 419 XH L3N ETI Sc el ICT LI NH SIGN 13N3 lt gt 0x17 LANGA lt 2 C I gt I XLNT N LINZ YY Xl L3N3 INMB XL LANA e INN INIAN L3N3 INSIOON ING SIMOW7 L3N3 N3 X1 13N3 INN x1 1 e 32 5 NOU ING TN LANG d AL LIN GO e T SS I es JING s d JI L3NH3HL3 200 1 OX sn ZI BE ag V E CO le oi e lo di elt SL su Sere INO E IH k I
60. Implementierung und Test des ESA LEON VHDL Cores Entwicklung eines PMC Boards Diplomarbeit von Dominik Mader Diplomarbeit von Dominik Mader Matr Nr 56910 Fachhochschule Hochschule Bremen Fachbereich Elektrotechnik Fachrichtung Informationstechnik Betreuender Betrieb Astrium GmbH Betreuer Dipl Ing Lutz Buttelmann l Pr fer Prof Dipl Ing Heinz Purnhagen 2 Pr fer Prof Dr Ing Sven Simon Eidesstattliche Erkl rung Hiermit erkl re ich an Eides statt dass ich die vorliegende Diplomarbeit bis auf die offizielle Betreuung selbst und ohne fremde Hilfe angefertigt habe und die benutzten Quellen und Hilfsmittel vollstandig angegeben habe Datum Unterschrift Inhaltsverzeichnis l t e EE 8 2 SEID C Nee DO Sce ausu rare 10 2e Haw AM op ain ts ee MP MM DP suai 10 24 1 AVNET Evaluations Board na RU T ka 10 Z2 PM CA recuento an sonata Eu deti E 12 2 1 EE 13 22 VDE CES eas cst aoa ma ied tana ee 19 PAD EMT sta na i ns uuu Su u eS 19 222 ANIBASPCI BPIOSS sten ae asas 50 3 FT SEMEN I WICK UIC en uu ua nasa Maas eR om HR Mt dore ma qu aaa 52 SL PME LEON DO iL uo esthetic a Beh 32 3 1 1 PATITOLOIS HUM OS IIS UC aiii 32 3 12 Pro lema tk es 53 cht AT A A 55 3 1 4 Schematics und Funktionalitat uu xu suu ee uqa OA 59 S22 JPCPEIIEuptComtollet u x totter ae 74 3 2 1 PCI Interr pt LEUN C10 een 74 9 2 2 PCI Interrupt Controller essen 74 4 Implementierung und Test des LEON auf AVNET Board
61. Informationen verloren gehen Enthalt sowohl das Receiver Holding Register als auch das Receiver Shift Register noch nicht gelesene Zeichen wird bei erneutem Empfang eines Zeichens das letztere Register berschrieben und das overrun Bit OV im UART Status Register gesetzt Wenn Handshaking aktiviert 1st zieht die UART RTSN ab Erkennen eines Startbits solange auf High bis das empfangene Zeichen aus dem Receiver Holding Register gelesen worden ist Dann wird RTSN wieder auf Low gezogen um dem externen Sender mitzuteilen dass das nachste Zeichen gesendet werden kann Ist die Interrupt Generierung f r Empfangen aktiviert wird ein Interrupt erzeugt wenn das Receiver Shift Register in das Receiver Holding Register geschrieben wird Dies signalisiert dass ein Zeichen gelesen wurde UART Register Jede UART hat ihren eigenen Registersatz Die Adressierung ist in Kapitel 2 2 1 3 beschrieben Das UART Scaler Reload Register legt die Baudrate mit den 12 LSB fest Alle anderen Bits sind unbenutzt Das UART Data Register benutzt nur die unteren 8 Bit Dort werden entweder Zeichencodes hingeschrieben um sie zu senden oder empfangene Zeichen gelesen Mit dem UART Control Registern lassen sich die UARTS einstellen Abb 2 21 zeigt den Aufbau dieses Registers 3 8 7 6 5 4 3 2 1 0 Abb 2 21 UART Control Register Quelle L10 e External Clock EC Wenn gesetzt wird der externe Takt an PIO 3 zur Erzeugung des Bittaktes benutzt e Lo
62. LEON stellt ein Interface zu einer Floating Point Unit FPU und einem Coprozessor CP zu Verf gung Der erhaltliche Code enthalt jedoch keine Komponente die diese Funktionalitat beherbergt Als interner Bus wird ein AMBA AHB Bus im folgenden AHB Bus verwendet Konfigurationen der einzelnen Komponenten werden ber den AMBA APB Bus im folgenden APB Bus durchgef hrt Dieser APB Bus ist ber eine AHB APB Bridge an den AHB Bus angekoppelt ber diese beiden Bussysteme k nnen auch beliebige weitere Komponenten an das System angebunden und implementiert werden dies soll z B mit der AMBA PCI Bridge geschehen Abb 2 8 zeigt das Blockdiagramm des LEON PROM I O SRAM SDRAM sind externe Komponenten und werden nicht durch den Open Core abgedeckt F r FPU CP PCI USER VO sind Interfaces vorgesehen die Funktionalit t der Komponenten muss jedoch durch eigene VHDL Module beschrieben oder von Drittanbietern erworben werden Im Folgenden werden die Aufgaben und Funktionsweisen der einzelnen Teilkomponenten beschrieben 19 Kapitel 2 Grundlagen LEON processor Integer unit Debug n Geh Support Unit Cache D Cache User I O AMBA AHB AHB Controller Debug IrqCtrl Serial Link Memory AHB APB Controller UARTS UO port Bridge AMBA APB 8 16 32 bits memory bus Abb 2 8 Blockdiagramm des LEON Quelle L10 2 2 1 1 Integer Unit IU Die IU des LEON ist nach dem SPARC V8 Standard entw
63. LY TRAMA T i N pt I e tN Qi e A ED e a 00 Z qu HENNI I OU gb I N A H 2 Y ANJA Le CVA NBTDK WOHd DA v R an gt NOT 228009 Q NZB T XA OA zesgot TIN HO Qa 6112 NA s 9T e ELET zer Z i ia t al ti i a i i SMOGOODEITLTS Esa V E Ee IN TLELX D AHd 13N33H13 d9TO0 db5ckU AJONAN HSH Anhang A 2 8 Z E v Z x Zen Ane PEON ie u Bee Na 7 mn WJON Bwen lu KSpuyT J IOHINAS O I3ariolt jLMIO ehe Y K un EE PA ee NO IW vENIC Had qoe T mala 106 un v s are x Dep ST gt FUT 3 pe Ee Sz g Bunuapo 6s nazug Na uU wae a NOT LINN id HOIHAdOO ee SSE A EE PANEN 19 4 bort G JN do43 uoos oud 1 HJATXSIJLA L4 Haoud da WUP aa TSE qJ4eeg O A oY als o i I GES NO ale SIHSIS Yit 5 Woes e T a SC wne c 11218 JN ItaL zuuay u 31138 3114 HOd O un xO ae NN S3 RINOTIDA KJ INN LNS SSH dud Asi IN Q ES OZ I OWa se
64. Leiterbahnen zwischen den Anschl ssen des Kondensators und dem IC verringern die Induktivitat Je kleiner die Induktivitat durch Kondensator und Leiterbahn desto schneller kann Energie vom Kondensator zum IC transportiert werden Kurze Leitungen sind also f r hohe Frequenzen wichtig w hrend Kondensatoren die zum Ausgleichen niedriger Frequenzen verwendet werden in gr erem Abstand platziert werden k nnen Zusammen mit dem parasitaren Widerstand l sst sich ein Kondensator durch eine RLC serienschaltung darstellen Diese hat eine bestimmte Resonanzfrequenz In einem schmalen Band um diese Resonanzfrequenz kann der Kondensator effektiv als Bypass Kondensator eingesetzt werden Wie breit dieses Band ist hangt von der Art des Kondensators ab So k nnen Tantalum Kondensatoren ber einen weiten Frequenzbereich eingesetzt werden XR7 Kondensatoren nur ber einen sehr schmalen Da der Frequenzbereich der von einem Bauteil ben tigt wird unterschiedlich ist werden oft Kondensatoren f r verschiedene Frequenzbereiche eingesetzt Strombedarf Frequenzen Induktivit ten und damit Kondensatoren lassen sich ausrechnen und simulieren Dies ist aber sehr aufwendig Einige Hersteller machen Angaben zur Beschaltung mit Bypass Kondensatoren Ist dies nicht der Fall wird im Allgemeinen f r ICs ein 100nF XR7 Kondensator pro VCC Pin f r hohe Frequenzen und eventuell ein Tantalum Kondensator mit gr erer Kapazit t f r niedrige Frequenzen verwendet
65. MC Board verwendbar jedoch muss der veranderten Hardwareumgebung Rechnung getragen werden Satt SDRAM wird SRAM benutzt und statt Flash Memory mit 16 Bit Wortbreite wird solcher mit 8 Bit Wortbreite verwendet Dieses hat Anderungen in der ben tigten Einstellung von Speicherkonfigurationsregistern bzw Programmiersequenzen der Flashs zur Folge die durch Boot Loader bzw Testprogramme bedient werden F r die Bedienung der Ethernet Schnittstelle ist ein Ethernet MAC zu implementieren und entsprechende Testsoftware zu entwickeln Unter der Bedingung dass die Fehler bei PCI bertragungen behoben werden und umfassende Tests des gesamten LEON Designs erfolgreich durchgef hrt werden kann das vorliegende Design nach Meinung des Autors als Prozessor f r Applikationen verwendet werden 101 Anhang A 1 Quellenverzeichnis A 1 Quellenverzeichnis Den einzelnen Quellen ist wenn vorhanden ein K rzel f r die Internet Quelle beigef gt Unter Umstanden ist das Dokument nicht direkt zu beziehen In einigen Fallen ist ein Mitglieds Account Vorraussetzung f r den Bezug der Daten In anderen Fallen muss die Quelle kauflich erworben werden Literatur L1 Shanley Anderson PCI System Architecture Addison Wesley L2 Tietze Schenk Halbleiter Schaltungstechnik 10 Auflage Springer Verlag L3 Becke Haseloff Das TTL Kochbuch Texas Instruments LA R ben Analyse und Anfertigung von Designmethoden zur Erh hung der SEU Resistenz in X
66. Masse und Spannungen sind zum Messen von Signalen n tig Wie weiter oben erwahnt sollen zwei verschiedene Arten der FPGA Konfiguration m glich sein All dies ben tigt Bauteile die in einer kommerziellen Version nicht vorhanden sein m ssen Durch die zus tzlichen Bauteile wird mehr Platz auf der durch die PMC Spezifikation vorgegebenen Fl che ben tigt 3 1 2 3 PMC Spezifikation Unter 2 1 3 wurde die PMC bzw CMC Spezifikation zusammengefasst Diese gibt eine Einh llende f r alle Bauteilkomponenten vor Nur innerhalb dieser Einh llenden d rfen sich Bauteile befinden Besonders auf Seite 2 der PMC Karte und Im Front Bezel Bereich stellt dies hohe Anforderungen bez glich der raumlichen Ausdehnung der verwendeten Komponenten So ist keine RJ45 Buchse zu bekommen die nur 1 1mm hoch ist Dies ist aber die maximal zul ssige H he Jumper oder Pfostenstecker m ssen zug nglich angebracht sein Das bedeutet dass sie auf der Seite 2 der PMC Karte gemountet sein m ssen Dort ist aber nur Platz f r ca 1 7mm hohe Bauteile bei einer veranschlagten PCB Dicke von 1 8 mm Dies ist mit den genannten Komponenten nicht zu erreichen ohne Komfortabilitat In der Benutzung des Boards zu verlieren 3 1 2 4 Richtlinien Eine Abwagung der in den vorherigen Kapiteln beschriebenen Gesichtspunkte f hrte zu folgenden Richtlinien Damit das entwickelte Board mit m glichst wenig Aufwand f r ein kommerzielles Produkt redesigned werden kann solle
67. N lt A F SHA lt 247047 lt B Z2 gt ME IN lt Q H 24 MS c na MS dl BDROTNOX EEN m 2 g INX e LYN 8 INXL ELAN dW4al 7esMod LB Er TU INSLO TLMYN 5 i zi NS lH c SLX TLN T ES 138n d 2 242 4386 UISNNN AAA TOO NXIT xy 213 XH TL INX T Mun v ax x172130n X17T1390nN ITNXL TLMUD lt 0 p5 gt 0 1I JenNn T7 p HHN ALL JNZSNIgd UISANA N Let k BQBTNDX EIER et RERS 5500 8 H ag D Al 4 y y lt Q S lt 107 Schematics m Anhang A 2 p m 2 1 8 m S OM WJON BWEN xopur IN ANNC HIMOA N BI PENTO Hd Em TOE E Ee GODS SSIONDIS NOIIGgNH OOIJNOO DYLE SLAY SLIINNOD mE 5 ZA ALO BINJONJJSEJJUT aeoedg EES saa EB Se Ed y EE Sunuepe 5siubnazu3 un Fog 121 HOT La PB Odd IH9IHAdOO ae j ssuuod OLLI _ 383838 DE 11 J A gt qeg 3 Ee e C A do4 uos oud Z 420 40328uuod3 Ely EBSrral dS IN id SE er OLE fat NOZ A nu du NES 118149 N t 1 WEBER HOPES SIHONUBHJIH 313NIMO35H383n 31138 ati god PE NS Dan d Sek ze T d e aQg d gt BZ SZ gt
68. N verandert werden Typen Deklarationen s Typen Deklarationen Tabelle 2 14 Packages zur Konfiguration Technologie Zuordnung ber eine Reihe von Packages werden technologieabh ngige Elemente erzeugt Wichtig ist das f r die Synthese Dies betrifft die Instantiierung von RAM und Registern und das Erzeugen der I O Pads Dieses Mappen auf die Zieltechnologie geht immer zuerst ber das Package TECH MAP Hier wird anhand der Konfigurationseinstellungen zwischen den zu Verf gung stehenden Technologien gew hlt Es kann auch technologieunabh ngig gearbeitet werden Dies ist zur funktionalen Simulation sinnvoll Andere Packages enthalten dann die spezifischen Instantiierungen Folgende Technologien werden unterst tzt Atmel ATC18 ATC25 und ATC35 UMC FS90AB TSMC 0 25 um UMC 0 18 um Xilinx Virtex Xilinx Virtex2 Actel Axcellerator Actel Proasic 46 Kapitel 2 Grundlagen LEON Funktionen Funktionale VHDL Dateien sind Source Codes die die Funktionalit t des LEON beschreiben Dabei werden die Informationen der Konfigurationsdateien benutzt Das Top Level hei t entweder leon oder leon pci in Abh ngigkeit davon ob eine AMBA PCI Bridge verwendet wird Dabei stellt Gaisler Research nur das Port Interface f r diese zu Verf gung die Bridge selber ist nicht als Modul vorhanden Eine bersicht ber die weitere Hierarchie des VHDL Cores liefern Abb 2 26 und Abb 2 27 die vom Autor selbst erstellt wurden um einen
69. Software festlegbare Adressen an denen die Abarbeitung eines Programms gestoppt wird um z B eine berpr fung der IU oder LEON Register oder des Speicherinhaltes zu erm glichen Dabei kann unterschieden werden ob ein Befehl oder ein Datenwort von der festgelegten Adresse gelesen bzw geschrieben werden soll Ein Watchpoint besteht aus einem Register Paar 24 25 26 27 28 29 30 31 Davon enthalt ein Register die Adresse WADDR Feld das andere eine Maske WMASK Feld die jedes Bit einzeln zum Vergleich zul sst oder nicht 1 vergleichen 0 nicht vergleichen Es kann nicht auf einzelne Bytes innerhalb eines Wortes gepr ft werden d h es werden nur Anfangsadressen von 32 Bit Worten verarbeitet Deshalb sind In beiden Registern die unteren beiden Bits f r andere Zwecke vorgesehen ber die Felder instruction fetch IF data load DL und data store DF kann festgelegt werden welche Operation bei Zugriff auf die Adresse in WADDR durchgef hrt werden muss um einen Treffer auszul sen Sind alle Felder deaktiviert entspricht dies einem Deaktivieren der Watchpoint Funktion Ein Treffer wird ber die Generierung eines Traps der IU angezeigt Die Anzahl der im LEON implementierten Watchpoints 1st konfigurierbar bis 4 Abb 2 14 zeigt die Belegung der Register 26 Kapitel 2 Grundlagen H 2 Q0 ast Voasr26 i z un WADDR 31 2 BE O a Gut E D za pn voll cl voll vtLE Tat mm Voasr29 Voasr3 WMASK 3 1 2 Abb 2 14 W
70. TRAP skip TRAP Skip pl 88 SB TRAP Skip TRAP skip ki IRAP skip TRA skip st 9 OE TRAP skip TRAP skip ZTRAP skip TRAP _ skip 90 93 TRAP _skip TRAP _skip TRAP _skip TRAP _skip 94 97 LRAP skip TRAP _ Skip TRAP skip TIRADA skip 9 9B TRAP SKIP FRAP skip TRAP Skip TRAP A Skip l 9C 9E TRAP skip 7 TRAP skip IRAP Skip IRAP Skuip l AU AS TRAP skip TRAP skip TRAP skip TRAP 2 skip 1 AA A7 IRAE Skrp TRAP skip IRAE SKki1Dp IRAP skip AS AB TRAP Skip gt TRAP skip TRAP TI SKI TRAP Skip AC AE TRAP Skip 7 TRAP skip 4 TRAP skip TRAP skip BO B3 TRAP skip TRAP skip TRAP skip TRAP skip B4 B7 IRAP Skrp TRAP skip IRAF SKIDpO TRAP Skrip BF BB TRAPI skip TRAP skip TRAP Ski 9 gt TRAP O skip BE BF TRAP Skip IRAP Skip TRAP skip TRAP SKIPI ls 0 63 TRAP Ski 7 TRAP Skip TRAP Skip TRAP Skip 7 QA Ed IRAP Skip TRAP A skip 7 TRAP skap TRAP SKIP CO CB LRAP SkID TRAEP Skrp IRAP Skip TRAP Skip s p CE CE IRAP SKIP IRAP Skrp IRAP Skip TRAP Skip DO DS TRAP _skip TRAP Skip TRAP Skip TRAP skip D4 D7 TRAP _skip TRAP _skip TRAP _skip TRAP _skip D8 DB TRAP Skip TRAP Skip 7 TRAP Skip TRAP skip Y DG DE TRAP _skip TRAP _skip TRAP _skip TRAP _skip EO ES TRAP _ skip TRAP _skip TRAP skip
71. Versionen bestellbar sind Zusatzlich werden drei 5mm LEDs in den Farben rot gr n gelb mit Vorwiderstanden verwendet Diese sind am Front Bezel platziert um von au en sichtbar zu sein Gesteuert werden sie im Betrieb von dem Ethernet PHY 3 1 4 11 PMC IF s A 2 Blatt 13 13 Der Block PMC IF enthalt die PMC Schnittstelle Da kein 64 Bit PCI Betrieb vorgesehen ist f llt der Stecker Pn3 der CMC Spezifikation s Kapitel 2 1 3 2 weg Die Stecker Pnl und Pn2 werden f r den PCI Bus ben tigt Der Stecker Pn4 stellt vom Anwender zu definierende I O Leitungen zu Verf gung die ber den Bus PMC I O an das FPGA gef hrt sind Fast alle PCI Signale sind direkt zum FPGA gef hrt Ausnahme bilden die optionalen PCI signale M66EN und PME PME Power Managment Event wird weder von der AMBA PCI Bridge vom LEON noch von den Referenz Designs benutzt Dieser Pin wird offen gelassen M66EN ist durch einen Jumper J19 unterbrochen an das FPGA gelegt So kann in eventuellen zuk nftigen Designs die 66 MHz PCI unterst tzen diese Leitung verbunden werden Die BUSMODE Signale der CMC Spezifikation sind zur Identifizierung von Mezzanine Karten vorgesehen Da das BUSMODE 3 Signal auf das BUSMODE 1 Signal gelegt ist wird die PMC Karte einem Host z B dem Tragerboard signalisieren dass eine Karte den PMC Steckplatz belegt und das PCI Protokoll unterst tzt und benutzt 72 Kapitel 3 Eigenentwicklungen Die PMC Schnittstelle stellt em JT
72. Widerstandsteiler an ADJ eingestellt s u Zur Anzeige des Vorhandenseins der Spannungen wird jeweils eine rote SMD LED D2 D3 mit entsprechendem Vorwiderstand angeschlossen F r Messzwecke sind beide Ausgangsspannungen und Masse an einen 6 poligen Pfostenstecker Pl angeschlossen Berechnung der Widerstandsteiler F r die Widerstandsteiler werden Widerst nde mit maximal 1 Abweichung verwendet um die Ausgangsspannung exakt einzustellen Nach Vorgabe des Einkaufs sollen die Werte der E24 Reihe entnommen sein Im Folgenden wird der an VOUT liegende Widerstand mit R1 der an Masse liegende Widerstand als R2 bezeichnet Es flie t ein Strom aus ADJ heraus der als Iadj bezeichnet wird und 50 uA betr gt Herstellerangaben Der Hersteller gibt eine Formel zur Berechnung von VOUT an A VOUT 1 25 1 R2 R1 ladj R2 67 Kapitel 3 Eigenentwicklungen Zur einfachen Berechnung des Verh ltnissen R2 R1 kann der Spannungsabfall an R2 laut Herstellerangaben vernachlassigt werden B VOUT 1 25 1 R2 R1 C R2 R1 VOUT 1 25 1 Der Widerstand RI soll im 100 Ohm Bereich liegen Dies hat zur Folge dass Iadj R2 klein genug wird um vernachlassigbar zu sein 3 3V Aus C R2 1 64 RI In Tabelle 3 4 sind Werte aus der E24 Reihe eingesetzt und anhand von A die Ausgangsspannung berechnet R1 Ohm R2 Ohm VOUT V 3 258 3 304 3 343 3 376 3 262 Tabelle 3 4 m gliche Widerstandsteiler zur Erzeugung von 3 3V Es wird die Kom
73. X1000 oder 40 MHz IPOW RES CLK Manueller Reset Wenn aktiv wird 2 JTAG IF CFG PROM POW RESET N von 1 aktiviert und damit Konfiguration des Virtex neu gestartet WDI 1 2 WDO 1 2 DPOW RES CLK Watchdogln WatchdogOut der 2 TAG IF CFG PROM Spannungs berwachung F r zuk nftige Designs vorgesehen MODEO 1 2 DJTAG IF CFG PROM Stellen den Konfigurationsmodus des MODEI1 1 2 2 VIRTEX1000 FPGAs ein MODE2 1 2 FPGA CPLD 1 2 DJTAG IF CFG PROM Nicht funktional benutzte Pins des 2 VIRTEX1000 CPLD sind f r zuk nftige Designs an den Virtex gelegt Konfigurationssignale f r Virtex Bei einem Reset durch 4 wird neu konfiguriert und das FLASH PROM in 5 in Lesezustand versetzt ADDRESS 1 2 3 DSRAM Adress und Datenleitungen des DATA 1 2 3 2 ROM Speicherbusses des LEON 3 VIRTEX1000 RAMS N 1 2 DSRAM Steuersignale f r SRAM RAMOE N 1 2 2 VIRTEX1000 RWE N 1 2 RAMWE N 2 ROMS N 1 2 DROM Steuersignale f r FLASH PROM ROMOE N 1 2 2 VIRTEX1000 RY BY kann beim Programmieren WE N I1 2 ROMWE N 2 des Flashs benutzt werden RY BY 1 2 ROM RY BY 2 UARTI TX 1 2 DUART IF UART mit Handshake Moglichkeit UARTI RX 1 2 2 VIRTEX1000 1 enth lt RS232 Treiber und UARTI RTS 1 2 DSUB9 Stecker 2 die UART UARTI CTS 1 2 UART2 TX 1 2 DUART IF UART mit Handshake Moglichkeit UART2 RX 1 2 2 VIRTEX1000 1 enthalt RS232 Treiber 2 die UART2 RTS 1 2 UART UART2 CTS 1 2 UART3 TX 1 2
74. af r wird ein Unterprogramm verwendet das dem des Boot Loaders entspricht mit der Ausnahme dass an UART 2 gelesen wird Um das Zeilenende zu erkennen muss ein Zeilenumbruch mitgesendet werden Nachdem die Zeile eingelesen wurde wird YOu sent gesendete Textzeile ausgegeben und das Programm beendet Alle Textausgaben werden auf UART 2 zum Testen und auf UART 1 zum Kontrollieren ausgegeben Die Ausgaberoutine f r UART 2 ist eine modifizierte Form der Routine f r UART 1 Abb 4 7 stellt die Programmstruktur graphisch dar 87 Kapitel 4 Implementierung und Test des LEON auf AVNET Board UART 2 listening auf UART 1 2 Einlesen einer Zeile auf UART 2 You sent auf UART 1 2 Ausg Gelesene Zeile auf UART 1 2 Abb 4 7 Programmstruktur UART 2 Test 4 2 3 4 Test PIO Quellcode Seite 123 und Seite 121 Die parallele I O Schnittstelle PIO des LEONs besteht aus 32 Bit Bei der gew hlten Konfiguration des LEON und Verwendung des AVNET Boards bleiben von den 32 nur 8 brig die noch keiner anderen Schnittstellenfunktion zugeordnet sind vgl Kapitel 2 2 1 7 Dies sind die Bits 7 0 Von diesen sind nach Durchlaufen des Place amp Route Prozesses zwei an LEDs und sechs an Schalter angeschlossen Zum Testen werden die in Tabelle 4 1 benannten Bits verwendet Dabei m ssen die beiden LEDs an Output Ports die Schalter an Input Ports angeschlossen sein Die Betriebsrichtung des jeweiligen Bits wird im PIO Dire
75. aler y regs scalerload 0x000003FF 1023 regs gt timerloadl 0x amp 00011E1A5 7 73242 regs gt timerload2 0x00023C34 146484 set IRQ Mask register regs gt irqclear 0x0000FF00 clear pending interrupts regs irqmask 0x00002300 enable IRQ13 9 8 enable traps asm set 0x00000000 00 set 0x40000000 Sol we 00 2Oly st rd psst 00 and 00 OxFFFFFFDF 00 Wr 500 0x20 lt Psr do for i20 i lt 1000 i wait for some time UH pio byte regs piodata read Lowest Byte from pio data register if pio byte amp 0x10 gt 1 amp amp IRO13 0 pio 4 enables IRQ13 regs irqforce 0x00002000 131 Anhang A 3 Quellcodes IRQ13 1 if pio byte 0x10 0 IR013 0 if pio_byte amp 0x20 gt 1 amp amp TIMER1 0 pio 5 enables TIMER1 regs gt timerctrll 0x00000007 reload counter enabled TLMEP T SEE if pio byte 0x20 0 regs gt timerctrll 0x00000000 Timerl disabled TIMER1 0 if pio_byte amp 0x40 gt 1 amp amp TIMER2 0 pio 6 enables TIMER2 regs gt timerctr12 0x00000007 reload counter enabled TIMER2 1 if pio byte 0x40 0 regs gt timerctrl2 0x00000000 Timer2 disabled TIMER2 0 if pio byte amp 0x80 1 pio 7 as program abort puts Program aborted by user n n r disable Traps asm rd spar 990 and 00 OxFFFFFFDF 200 Wr 00 0x00 pst er break w
76. alt die LEDs Schalter und Taster die zu Testzwecken implementiert werden ETHERNET IF Beschreibt die Verdrahtung des Ethernet PHYs der Status LEDs und der RJ45 Buchse PMC IF Stellt die PMC Steckverbinder dar Spannungspufferung Die Zergliederung in zwei Hierarchieebenen ist f r das Design ausreichend Die einzelnen Hierarchien werden in den n chsten Unterpunkten beschrieben Dabei wird sich auf die im Anhang vorhandenen Schematics bezogen A 2 sowohl f r FPGA als auch f r das CPLD muss ein Pinout festgelegt werden Dies ist aufgrund von Platzierungen so gemacht worden dass Leiterbahnen sich m glichst nicht berkreuzen 3 1 4 1 PMC TOP LEVEL s A 2 Blatt 1 13 und 2 13 SEITE 1 seite 1 des Top Level Designs enthalt die unter Kapitel 3 1 4 beschriebenen Bl cke und ihre Verbindungen untereinander In Tabelle 3 1 sind die einzelnen Funktionsgruppen dargestellt Die Signalleitungen haben keine Namen deshalb wird sich auf die Port Namen der Bl cke bezogen Mehrere Bl cke k nnen f r ein Signal unterschiedliche Portnamen haben Die Notation f r die Portnamen ber cksichtigt dies Namel A A A Name 2 B B Name 3 C C Name 1 Portname von Block Nr 1 f r ein Signal Name 2 von Name I abweichender Portname f r das entsprechende Signal Name 3 von Name I und Name 2 abweichender Portname A Blocknummern aller an ein Signal angeschlossenen Bl cke B Blocknummern deren Portname Name 2 f r das
77. ard als PMC Board entwickelt Die Entwicklung umfasst Auswahl der Bauteilgruppen Erstellung von Schematics und Pinout der programmierbaren Komponenten Dabei ist sich nach Kriterien zu richten die durch Astrium und die Spezifikation fur PMC Boards vorgegeben sind Das Layout ubernimmt ein anderer Mitarbeiter Der zweite Aufgabenbereich besteht aus der Modifizierung von Source Code Implementierung des Designs und anschlie endem Test grundlegender Funktionen des Prozessors Bevor Implementierung und Test auf dem entwickelten PMC Board durchgef hrt werden soll dies auf einem Evaluierungs Board der Firma AVNET geschehen Dadurch werden Fehlerquellen aufgrund des PMC Designs ausgeschlossen F r das entwickelte Board m ssen gesondert Tests entworfen werden um die Funktionalit t der einzelnen Bauteilgruppen zu verifizieren Die Modifizierung des Source Codes umfasst zwei Teilbereiche Da PMC Karten den PCI Bus benutzen diese Schnittstelle aber nicht durch das LEON Design unterst tzt wird muss ein vorhandener VHDL Core der eine PCI Bridge beschreibt in das LEON VHDL Modell integriert werden Der Source Code der Bridge ist dahingehend zu verandern dass der LEON einen PCI Interrupt ausl sen kann und PCI Interrupts an den LEON weitergegeben werden k nnen Das Testen des LEONs muss durch die Abarbeitung von Software auf diesem geschehen Grundlage daf r ist das Verstandnis des Prozessors und seiner Komponenten Aufbauend auf diesem Wissen ka
78. artstatusl 0x4 regs gt uartdatlal Sad 120 Anhang A 3 Quellcodes void start unsigned char text Hello World n n r int 1 FOr i io leon h 1 0 1 lt 5 1 puts text Diese Header Datei wird benutzt um standige Wiederholungen der Ein und Ausgabe Routinen der UARTs zu vermeiden Sie wird in den Testprogrammen eingebunden mit Ausnahme von Hello world LEON register layout struct lregs T volac le volsetzxle volatile volatile volatile voletile volatzle volatile volatile volatile volatile vo Tat tile volatile volatile volatile voletile volatile volatile volatile volatile volatile vo Wee te ae volatile volatile volatile voletile volatile volatile volatile volatile volatile volatile volatile volatile volatile VOlatide volatile volatile volatile volatile volatile volatile volatile unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned ura int Int LE int Int int int Int Int Int ERE int Int Int WAL IRL IAL Int Int ine EAE Int Int int Int int int Inte inte Int
79. atchpoint Register Quelle L10 SPARC Trap Modell Die SPARC V8 Spezifikation beschreibt eine Methode um mit Fehlern Ausnahmen bzw unvorhersehbaren Ereignissen umzugehen Solche Ereignisse k nnen darin bestehen dass Fehler w hrend Lese oder Schreibbefehlen auftreten dass ein eventueller Coprozessor oder eine eventuell vorhandene FPU eine Ausnahmebedingung anzeigt oder dass Interrupts ausgel st werden Die SPARC V8 Spezifikation bezeichnet das als Trap was bersetzt Falle hei t Ein Trap ist ein unerwarteter Prozessaufruf Ob ein Trap behandelt wird h ngt vom Eintrag im ET Feld des PSR ab Bei Behandlung wird das Register Fenster gewechselt Um sp ter wieder zu dem Programmpunkt zur ckzukehren werden PC und nPC in den lokalen Registern des Trap Fensters abgespeichert Ein Trap kann durch die Abarbeitung von Befehlen oder durch externe Interrupt Anforderungen entstehen Es werden drei Arten von Traps unterschieden e Precise trap Ein precise Trap wird durch einen Befehl bzw w hrend dessen Abarbeitung ausgel st ohne dass sich vom Programm aus sichtbare Zustande schon geandert haben Der Befehl vor dem Trap verursachenden muss schon abgearbeitet sein und der darauffolgende wird nicht ausgef hrt e Deferred trap Dieser wird wie ein precise Trap durch einen Befehl ausgel st Im Gegensatz zu diesem ereignet sich der deferred Trap jedoch nachdem sich Zustande verandert haben Diese k nnen entweder durch den Trap verursachenden
80. aubt die Benutzung des Coprozessors 1 enabled 0 disabled Enable Floating Point EF Erlaubt die Benutzung der FPU 1 enabled O disabled Processor Interrupt Level PIL Legt den Level fest ber dem auftretende Interrupts behandelt werden Je h her der Level eines Interruptes desto h her ist seine Prioritat Siehe Unterpunkt SPARC Trap Model supervisor S Der Prozessor kann entweder in User oder Supervisor Mode betrieben werden 1 supervisor mode 0 user mode Previous Supervisor PS Enthalt den Wert von S beim letzten Trap Enable Traps ET Gibt an ob Traps und Interrupts behandelt werden l enabled O disabled Current Window Pointer CWP Ein modulo NWINDOWS Zahler der festlegt welches Register Fenster aktiv ist NWINDOWS entspricht der Anzahl von Register Fenstern die implementiert sind Window Invalid Mask WIM F r jedes implementierte Register Fenster ist ein ver nderbares Bit Im WIM implementiert Andere Bits sind festverdrahtet auf Null gelegt Eine 1 signalisiert dass das zugehorige Register Fenster schon benutzt wird Das Register wird durch Systemsoftware kontrolliert Wird ein SAVE RESTORE oder RETT Befehl ausgef hrt berpr ft die Hardware anhand des CWP ob der Befehl den CWP auf ein schon benutztes Register Fenster zeigen l sst Ist dies der Fall d h ist das WIM an der entsprechenden Stelle 1 wird ein Window Overflow Trap ausgel st Trap Base Register TBR Die Trap Table siehe SPARC T
81. aufgerufen werden die Parameter wieder in die Output Register geschrieben usw Hat die Routine jedoch einen R ckgabewert wird dieser in die Input Register geschrieben Beim Beenden der Routine wird wieder in die aufrufende Instanz zuruckgesprungen und damit auch wieder das Fenster gewechselt Der eventuell vorhandene geschieht bei einem Unter R ckgabewert steht nun in den Output Programmaufruf letzteres z B bei Registern und kann von dem in diesem einem Interrupt Interruptbehandlung Beispiel urspr nglich aufrufenden Programm geschieht durch Software Welche lokal weiterverarbeitet werden Register Fenster schon benutzt werden ist im Window invalid Mask Register WIM gespeichert Anmerkung Subroutinen und Unter Programme k nnen auch durch andere Befehle aufgerufen werden Dadurch k nnen Aufrufe auch ohne Wechsel des Register Fensters gemacht werden Der CWP ist nach SPARC Standard als modulo NWINDOWS Zahler implementiert wobei NWINDOWS die Anzahl der Register Fenster ist Dies bedeutet dass das Fenster mit der h chsten Nummer NWINDOWS 1 mit dem Fenster 0 Null in der oben beschriebenen Weise berlappt Genauer Die out Register von Fenster 0 sind identisch mit den in Registern von Fenster NWINDOWS 1 Abb 2 11 verdeutlicht dass alle Fenster in einem Ring angeordnet sind Eine Konsequenz von fortlaufenden SAVE Befehlen oder Traps ware dass nach einer bestimmten Anzahl derselben ein berlaufen stattfin
82. besseren berblick zu erm glichen Testbench Gaisler Research stellt eine Testbench zu Verf gung mit der der LEON getestet werden kann Da der LEON nur mit Speicher arbeiten kann wird wahlweise ein SRAM ROM oder SDRAM emuliert Die Testbench erlaubt es wahrend des Simulationsprozesses die abgearbeiteten Befehle zu Deassemblieren Auf diese Weise kann die Abarbeitung eines Programms verfolgt werden 47 pedpoiid Grundlagen pedinond pedoiws 18 03u0 ydnsaquy Z J8j0431u05 1dn413141 obra zupbi 0p2but Ubu Old 1404 O 1 J9jaje1ed Po 0uedo modor uodo Bopy rye pun sawi ossa saw saysibay suonesnByuoy NO31 Net AE WAS qend que D c 1uvn zuen 19151524 sn1e1s IHY use esque uonoojoJg NUM SHV Jayng 84 auyo yun 1oddns 6nq q abpug adv SHV oqde yswqde sapoyad UQIY SHV 1ojesauabyasay 01953 uab1si Kapitel 2 puv deua ul bunqiaJju sequajusuoduuoy 3z3ssebuun 6ibueuqesaibojouu 21 pi uoneunbijuoy uayyyema Jap uoA bibueuqe 151 juezuy pedoind jeuonpyaap g ureyquado a1e35111 1aqiensbuebsny pun sbuebu g ebpug I5d vgaWv a2eji21u obpug IDd vgWv pue deu u inp Wvy s6ibueuqeaibojouu a 1Jemue1sut dAuayp ads 1919puami3A pun 39019 pam uabunj oisur Jap nayb bueygy ul Jang 3381 Uap 1q 1u3s g pu deuiu 91 ui Bungiasypsaquaausauodwoy 13ynd3yej eb6ibueuqeoibojouu a Quabxp uabx Bunpyiqqy enx aya s
83. bination 110 Ohm f r R1 Bauteil R3 und 180 Ohm f r R2 Bauteil R4 gew hlt 2 5V Aus C R2 R1 Da mit zunehmendem R2 der Spannungsabfall Iadj R2 und damit der Fehler gr er wird sind kleine Widerstande vorzuziehen Um die verwendeten Typen gering zu halten werden f r R1 und R2 Bauteile R6 R7 jeweils 110 Ohm gew hlt Takterzeugung Zur Takterzeugung werden zwei SMD Oszillatoren verwendet U3 U4 Diese sind mit Kondensatoren nach Herstellerangaben beschaltet und haben zus tzlich Serienwiderstande am Ausgang um eventuelle Reflexionen zu dampfen Der Takt der an das FPGA gefuhrt wird lasst sich durch den Jumper J2 festlegen Resetgenerierung Die Spannungs berwachung U5 zieht den Reset Ausgang auf Low wenn entweder die Spannung an VCC unter 3 08 V sinkt oder MR auf Low gezogen wird Dies kann durch das CPLD gemacht werden WDI und WDO sind Watchdog Ports die f r zuk nftige Designs angeschlossen sind PFI wird nach Herstellerempfehlung auf VCC gelegt da die damit verbundene Funktionalitat nicht benutzt wird 3 1 4 5 JTAG IF CFG PROM s A 2 Blatt 6 13 Der Block JTAG IF CFG PROM hat die Aufgabe die Konfiguration des FPGA bei Power Up oder nach einem Reset zu gew hrleisteten Wie in Kapitel 3 1 1 dargelegt m ssen zwei verschiedene Arten der Konfiguration m glich sein MasterSerial und SelectMap AuBerdem soll Scrubbing m glich sein Um dies zu erreichen gibt es drei Einheiten in dieser Hierarchie Das CPLD U7
84. bruch und anschlie ender Regeneration die Komponenten in einen definierten Zustand gebracht werden Zusatzlich dazu hat die verwendete Komponente einen Eingang ber den manuell ein Reset ausgel st werden kann Diese Funktionalitat wird zwar nicht verlangt scheint jedoch als Option sinnvoll Der verwendete Baustein 1st der MAX706T der Firma Maxim Dieser berwacht eine 3 3V Spannung Sinkt sie unter 3 08V wird ein Reset ausgel st F r das entwickelte Design ware eme 5V Spannungs berwachung angebrachter z B MAX706 weil verschiedene Komponenten die SV als Betriebsspannung verwenden Jedoch liegt der MAX706T auf Lager und soll deshalb verwendet werden Er liegt im SO 8 Package vor 3 1 3 6 Diskrete Bauteile Als diskrete Bauteile werden Widerstande und Kondensatoren verwendet Diese werden als SMD Version benutzt um Platz zu sparen Als Trough Hole Version werden 3 LEDs verwendet die am Front Bezel der PMC Karte den Status der Ethernetschnittstelle anzeigen sollen Auch die RJ45 Buchse und der DSUB9 Stecker sind Through Hole Versionen um mechanisch belastbarer zu sein Zwei RS232 Schnittstellen das JTAG Interface sowie Spannungsleitungen werden ber einen SMD Flachbandkabelstecker FTSH der Firma Samtec vom Board gef hrt Es werden zwei verschiedene SMD Oszillatoren eingesetzt Ein 25 MHz Oszillator f r den Ethernet PHY O25VX3MH der Firma Jauch Quartz GmbH sowie ein 40 MHz Oszillator zur Konfiguration des FPGAs im SlectMap Modus
85. cess Control implementiert werden k nnen Der Ethernet MAC dient als Bindeglied zwischen Software und dem physikalischen Layer PHY Das Board muss stand alone und als Mezzanine Card betrieben werden konnen Der auf dem Board vorhandene Speicher RAM und ROM soll m glichst gro sein 32 Kapitel 3 Eigenentwicklungen Der FPGA muss Im MasterSerial Modus und Im SlectMap Modus konfigurierbar sein Desweiteren muss Scrubbing s Kapitel 3 1 3 3 m glich sein Das Board muss mit 3 3V und 5V 32 Bit PCI Bus funktionieren Zur Generierung der verschiedenen Versorgungsspannungen soll die 5 V Leitung des PCI Busses benutzt werden Es sollen LEDs Taster und Schalter f r Testzwecke vorhanden sein Es mussen gleichzeitig beide UARTs und der DSU Communication Link des LEON benutzbar sein Es muss der RS232 Standard zur Ubertragung benutzt werden In System Programming ISP uber JTAG muss m glich sein Schnittstellen PMC Schnittstelle 32 Bit PCI User I O Front Bezel 1 DSUB9 f r RS232 1 RJ45 Buchse 8 polig und LEDs fur Ethernet Abgriffe f r Masse und Versorgungsspannungen f r Messungen bzw externe Spannungsversorgung Zus tzlicher Steckverbinder f r Flachbandkabel fur JTAG und restliche UARTs das zu externer Leiterplatte f hrt Allgemeine Anforderungen Das Endprodukt soll die Spezifikationen f r Flug und Weltraumtauglichkeit erf len Um den Aufwand eines Redesigns zu minim
86. ction Register festgelegt LEON Port AVNET Funktion PIO 2 LED 1 PIO 3 LED 2 Tabelle 4 1 Belegung des PIO Port Das Testprogramm Programmstruktur s Abb 4 8 fragt zuerst die aktuelle Konfiguration des PIO Directions Register ab um beim anschlie enden Beschreiben die nicht vom Programm verwendeten Bits unver ndert zu lassen Nach Initialisierung der Hilfsvariable y s u wird in Abst nden der PIO PIO input output Register gelesen und ausgewertet Dabei ist vom Autor den PIO Bits willk rliche Bedeutungen und Aktionen zugeordnet worden Der Zustand von PIO 4 d h Schalter 1 wird PIO 2 zugewiesen Wenn Schalter 88 Kapitel 4 Implementierung und Test des LEON auf AVNET Board auf HIGH steht wird LED 1 zum Leuchten gebracht Dieselbe Beziehung herrscht zwischen PIO 5 d h Schalter 2 und PIO 3 d h LED 2 PIO direction Reg lesen PIO direction Reg Schreiben 7 4 input 3 2 output Warteschleife PIO lesen ja help 3 1 ja nM help 2 1 PIO help gt dmn Program aborted by user Abb 4 8 Programmstruktur PIO Test 89 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Liegt an PIO 6 ein High Level an wird einmalig eine Ausgabe an UART 1 gesendet PIO 6 is HIGH Einmalig bedeutet dass nur beim bergang von LOW auf HIGH von PIO 6 zwischen zwei Abfragen eine Ausgabe erfolgt PIO 7 d h Schalter 4 erzwingt einen Programmabbr
87. ction register do for i 0 i lt 1000 i wait for some time titi help 0 pio byte regs piodata read Lowest Byte from pio data register if pio_byte amp 0x20 gt 1 pio 5 sets pio 3 help 0x08 if pio byte 0x10 gt 1 7 pro 4 sets Bio help help 0x04 regs gt piodata help assign output values if pio byte amp 0x40 gt 1 amp amp y 0 pio 6 produces output on uartl one time per use of pio 6 puts bmsg2 y cg p if pio byte amp 0x40 0 y 0 if pio byte amp 0x80 1 pio 7 as program abort i puts bmso1 break wi deet js 123 Anhang A 3 Quellcodes FLASH Test KK KK KK KKK KK KK 1k X KK KK K K K K KOK AAA test of FLASH on AVNET Board f NKCKCKCKCkCk kk kk kk kk kk k Kk Kk Kk AAA nel ude ao le n a define flash start 0x10000000 for flash addresses if programming 1n C you Il have to add the FLASH Adresses to the Flash base address like it is described in the flash manual Ihe C Compiler multiplies them with 4 because the pointer flash begin is of size int The Memory Controller of the LEON translates them back to the address you add here because the controller only thinks of flash devices wirch g brit width 7 void _wait unsigned int time rt rnt helo struct lregs regs help regs irqmask regs irqmask help amp OxFFFFFDFF mask timer2 irq regs gt timerctrl2 0x0 disable timer struct lregs
88. d von 10mm festgelegt Seite 1 Seite 1 Seite 2 max Bauteilhohe max Bauteilh he m max Bauteilh he mm I O Bereich mm PCB H he mm Tabelle 2 1 Beziehung zwischen Abstand Host CMC und Bauteilh hen 15 Kapitel 2 Grundlagen E vELOE o EAT gt Abb 2 7 Einh llende einer Single CMC Quelle L7 Elektrische und logische Vorgaben Die elektrischen Vorgaben betreffen vor allem die Belegung der Connectoren zwischen Host und CMC Sie legen Versorgungsspannungen und BUSMODE Signale f r die Stecker 1 3 fest Der Stecker 4 wird ausschlie lich mit I O Leitungen belegt Die genaue Belegung f r PMC ist in Kapitel 2 1 3 2 in Tabelle 2 3 und Tabelle 2 4 zu sehen Sie beinhaltet die durch die CMC Spezifikation vorgeschriebenen Pins Die BUSMODEZ Signale werden von dem Host dazu benutzt die Anwesenheit einer CMC und das von ihr benutzte Busprotokoll festzustellen Es gibt 4 BUSMODE Signale BUSMODEZ 2 4 werden vom Host getrieben und sind mit allen vorhandenen CMC Steckpl tzen verbunden F r jeden CMC Steckplatz steht eine BUSMODE 1 Signalleitung zu Verf gung die alle zur Hostlogik f hren und nur von den eingesteckten Mezzanine Cards getrieben werden In Abh ngigkeit der Signale BUSMODE 2 4 antwortet jede eingesteckte CMC auf BUSMODE 1 Die Signale auf BUSMODE 2 4 codieren eine Betriebsart die durch Tabelle 2 2 beschrieben wird Wenn die CMC diese Betriebsart unterstutzt zieht sie BUSMODE 1 auf L
89. d zwischen Speicher I O und Konfigurationszugriffen unterschieden Auf dem AHB Bus gibt es diese Unterscheidung nicht d h die Bridge kann bei Zugriffsrichtung AHB zu PCI nicht anhand der AHB Signale unterscheiden welche Zugriffsart gemeint ist Sollte der LEON als Host eingesetzt werden m ssen Konfigurationszugriffe gewahrleistet sein um die PCI Komponenten zu konfigurieren Au erdem m ssen Zugriffe auf Speicher oder I O Bereiche m glich sein damit die Treiber der Komponenten auf sie zugreifen k nnen Um dies zu gew hrleisten sind zwei verschiedene Arten der Identifizierung der Zugriffsart durch die Bridge m glich Eine M glichkeit 1st einen Adressbereich auf dem AHB Bus innerhalb des Adressbereiches der der Bridge zugewiesen ist festzulegen der f r Konfigurations oder I O Zugriffe reserviert ist Zugriffe auf diesen Bereich werden von der Bridge als Konfigurations oder I O Zugriffe an dem PCI Bus weitergegeben Normalerweise sind diese Bereiche nicht so umfangreich wie Speicherbereiche weshalb sie nicht viel Adressbereich ben tigen Alle anderen Adressbereiche au erhalb werden von der Bridge als Speicherzugriffe interpretiert Die andere M glichkeit besteht darin spezielle Register zu benutzen die im AMBA Interface Block der Bridge implementiert sind Diese sind ber den APB Bus adressierbar und legen fest welche Zugriffsart an das PCI Interface signalisiert werden soll wenn die Bridge seitens des AHB Busses adressiert
90. den w rde Beispielsweise w rde bei NWINDOWS 7 und Start bei CWP 7 beim 8 SAVE Befehl ohne dazwischenliegendes RESTORE o wieder das Fenster Nr 7 selektiert 23 Kapitel 2 Grundlagen berlaufen Window Overflow wie dieses wird von der Hardware mithilfe des WIM festgestellt WIM 7 1 und muss durch Software behandelt werden CWP WIM current window J CWP wl outs d CWP a WU outs d i d RESTORE SAVE RETT trap wh outs WA outs w4 outs w nous Abb 2 11 Allg Registersatz mit 8 Fenstern ohne globale Register Quelle L14 Kontroll Status Register Processor State Register PSR Das PSR enth lt verschiedene Felder zur Kontrolle des Prozessors und zum Speichern von Statusinformationen Zus tzlich sind hier Daten ber die implementierte Architektur und die Versionsnummer festverdrahtet abgelegt 24 Kapitel 2 Grundlagen 13 12 11 8 7 6 5 4 0 Abb 2 12 Processor State Register PSR Quelle L10 Integer condition codes icc Die Bits werden durch die ALU modifiziert n Bit negative Zeigt ein negatives Ergebnis an 1 negativ O nicht negativ z Bit zero Zeigt ein Ergebnis von Null an 1 Null O nicht Null v Bit overflow Zeigt an ob das Ergebnis au erhalb des Wertebereiches eines 32 Bit 2 Komplement ist 1 berlauf 0 im Wertebereich c Bit carry Zeigt einen bertrag an 1 Ubertrag 0 kein bertrag Enable Coprocessor EC Erl
91. durch das CPLD benutzt werden muss die Funktionalitat des CPLD dies gewahrleisten Die Konfigurationssignale PROG N DONE INIT N BUSY DOUT CCLK CS N und WRITE N m ssen vom CPLD benutzt werden um eine korrekte Ansteuerung des FPGAs des Flashs oder der PROMs zu erzeugen Bei Bedarf wird CCLK mit dem anliegenden 40 MHz Takt getrieben Neben den Signalen zur Konfiguration und Ansteuerung kann das CPLD einen Reset ausl sen ber MR den Watchdog der Spannungsuberwachung US in POW RES CLK benutzen und mit dem FPGA ber 60 bisher nicht verplante Leitungen kommunizieren Hier ber hat das FPGA auch Zugriff auf alle vom CPLD aus gesteuerten Signale Alle Funktionen m ssen durch noch nicht vorhandenen HDL Code f r das CPLD beschrieben werden Dies ist nicht im Rahmen der vorliegenden Arbeit enthalten Konfigurieren des CPLD Das CPLD wird ber das serielle JTAG Interface konfiguriert Es ist das erste Glied in der JTAG Kette Beschreiben des Konfigurations Flash Da das Flash nur ber das CPLD adressierbar und steuerbar ist muss ein spezielles CPLD Design benutzt bzw entwickelt werden das ein Programmieren des Flashs mit Daten erlaubt die z B ber die JTAG Schnittstelle seriell bertragen werden Dies wird unter anderem 1m Referenz Design des AVNET Boards so gemacht Beschreiben der Xilinx PROMs Die PROMs von Xilinx sind speziell f r Konfiguration von FPGAs entwickelt worden Deshalb haben sie ein JTAG Interface ber das s
92. e POE SE Int Int INE IRE int Int Int Int EAE ENG int memcfgl memcfg2 ectrl failaddr memstatus cachectrl powerdown writeprotl writeprot2 leonconf dummy2 dummy 3 dummy 4 dummy5 dummy 6 dummy tornercmtls timerloadl timercrr Liy wdog bener oO timerloa8d2 seen E EE dummy 8 scalercnt scalerload dummy 9 dummy10 uartdatal uartstatusl lar er ls uartscalerl uartdata2 Uuartstatus2 arts uartscaler2 irqmask irgpend irgforce irqclear piodata PLO piolrg es 050 0 O FE ORO RES 03020 47 FOS 30 CR ZE Ox 40 121 Anhang A 3 Quellcodes puts unsigned char s struct lregs regs struct lregs 0x80000000 while s while regs gt uartstatusl amp 0x4 regs gt UartadataL 78777 Static inline gets unsigned char s struct lregs regs struct lregs 0x80000000 do while regs gt uartstatusl amp 0x1 s regs gt uartdatal TE eg ee CAES dp AS E RK break Str while 1 J putsb unsigned char s struct lregs regs struct lregs 0x80000000 while s while regs gt uartstatus2 0x4 regs gt uartdata2 stt static inline getsb unsigned char s struct lregs regs struct lregs 0x80000000 plo x while regs gt uartstatus2 0x1 s regs gt uartdata2 Lr qp Suet qut Keen a 2 break Sq J while I UART 2 Test KK KK KK KK KK KK X
93. e bei der zyklischen Rekonfiguration zu unterdr cken ist zwangslaufig ein CPLD oder eine andere Steuerlogik notwendig da die Xilinx PROMs diese Funktionalitat nicht implementiert haben Die Tests die in L4 bez glich Scrubbing beschrieben werden verwenden ein CPLD der Firma Xilinx XC95108 Dieses hat 108 Macrozellen und 81 benutzbare I O Ports In Zukunft sollen die Erkenntnisse aus L4 weiterverwendet werden Deshalb wird ein CPLD benutzt Die Funktionalitat des CPLDs ist nicht Thema dieser Diplomarbeit und wird deshalb nicht weiter beschrieben seitens Astrium ist der XC95144XL vorgegeben Dieser hat 144 Macrozellen Es wird das Package TQFP144 benutzt Dadurch stehen 117 benutzbare I O Ports zu Verf gung Dies soll Flexibilitat und zus tzliche noch nicht funktional belegte Verbindungen zwischen FPGA und CPLD gew hrleisten Es wird die kommerzielle Variante benutzt Ein qualifiziertes 57 Kapitel 3 Eigenentwicklungen Aquivalent ist nicht bekannt Die Produktbezeichnung ist abweichend vom Package Typ XC95144XL 7 PC44 C Scrubbing muss auch auf einen Speicher zugreifen in dem die Konfigurationsdaten abgelegt sind Die PROMs der Firma Xilinx sind nicht direkt adressierbar Um die Scrubbing Methode entsprechend L4 einzusetzen muss ein parallel adressierbares PROM vorhanden sein Dazu wird das in Kapitel 3 1 3 2 beschriebene Flash PROM AM29F016D benutzt Mit 16 Mbit Speicherkapazitat ist es mehr als ausreichend 3 1 3 4 Schni
94. e org W4 www intel com W5 www gaisler com W6 www sparc org W7 www arm com W8 www kingbright led com W9 www Jauch de W10 www linear tech com W11 www maxim ic com W12 www amd com W13 www necel com W14 www tundra com 103 9 S z 9 z NOTS30 19431 401 NO Ir ER UJON eueN wngeq emp 104 A VN FENICO dad Hoan A ES oed gt gt gt i S ORCE NOS Y NZ Adeo H3UUW eo op ER 6 H 2 NOI LN14 1995 0 H IMAAOD S EN A VA i do na amd D Zoe U bag a quesg dS JN HOM INE NOD gt ex do4 uog oud NO 1 N U gt e og Hase S nt SLHOTY 1710 ner 11e 19 UN 18 ZUUS ES 3IHOHOHJIH 313Nd80398383n 31135 3113 H2d AEST Schematics Z Idd AHZAH WOM AHZAN 044 IOd ES gt OZ I 2Md ON1353 1940 CIN DIMI IOd 1 CANC OLINI IOd N 3MAHOM C N 3M 1 JN HINI IOd IN 91 Dd NC ZOO C N 3OHO8 1 t HGH O NTSLOS Q TE ULUG CX XO lt B Be gt SS 80 1 WOM 1 E Q EIN IMWUND Q lt 0 EH HM I C lt a 1 gt N 3OLISHO Q lt a TSN JOS lt B TON SUBO Q lt TON Sis Jl Wd Q TE ULUU lt a TE gt OLIA OTI LERAAR TA 1 a t 39 03 IN lt 1 i SEW aa JCT OO INA E gt UXY O XM LANG aa
95. edene Symbole die zum Anschliessen der entsprechenden Funktionseinheiten benutzt werden POWER TEMP Der Block POWER TEMP stellt die Anschlussm glichkeiten f r die interne Betriebsspannung des Virtex1000 VCCINT die Massepins GND sowie die Anschlussm glichkeiten f r die Ausgangstreiberspannung VCCO zu Verf gung Au erdem stehen zwei Pins zum Anschluss eines Temperatursensors in Form einer Diode zu Verf gung VCCINT muss an 2 5V Spannung angeschlossen werden VCCO ist abh ngig von den I O Standards die bei der Programmierung des FPGA festgelegt werden Dies ist f r das Design entweder PCI_5V oder LVTTL Low Voltage TTL F r beide Standards ist eine VCCO von 3 3V n tig Es wird der PCI 5V Standard verwendet weil dieser Ausgangspegel erzeugt die 3 3V PCI kompatibel sind und im Gegensatz zum PCI 3 3V Standard 5V tolerant ist Die Pins f r die Temperatur Diode werden nicht angeschlossen UNUSED PINS NC Werden im Virtex1000 I O Standards verwendet die eine Referenzspannung benotigen muss diese ber spezielle Pins zu Verf gung gestellt werden Diese Pins hei en VREF Wird keine Referenzspannung ben tigt wie dies bei diesem Design der Fall ist k nnen die VREF Pins als I O Ports verwendet werden Obwohl in diesem Fall kein funktionaler Unterschied zwischen VREF und I O Pins besteht sind die nichtverwendeten Pins im Design danach getrennt im Block UNUSED PINS NC aufgef hrt Um ein Floaten zu vermeiden sind diese Pi
96. egt sind vgl Kapitel 4 1 Der Wandler der in der Abbildung dargestellt ist generiert aus den Signalen die IMPACT am parallelen Port erzeugt die entsprechenden JT AG Signale COM 1 von PC 2 ist mit UART 1 des LEON verbunden Wie in Kapitel 4 2 2 beschrieben werden die Testprogramme im SREC Format ber UART 1 eingelesen Der DCL des LEON ist mit COM 1 des PC 1 verbunden Auf diesem PC lauft das Programm DSU Monitor von Gaisler Research ber dieses Kommandozeilen Tool l sst sich leicht die Debug Unit des LEON bedienen 81 Kapitel 4 Implementierung und Test des LEON auf AVNET Board JTAG Port Software Xilinx IMPACT Software DSU Monitor Hyperterminal COM 1 GNU Compiler PCl Bus AVNET Board Daten BIT File SREC File s Abb 4 1 Testaufbau 1 soll UART 2 des LEON getestet werden wird diese Schnittstelle an COM 2 von PC 2 angeschlossen s Abb 4 2 PC2 Software Xilinx IMPACT Software DSU Monitor Hyperterminal COM 1 Hyperterminal COM 2 PCI Bus AVNET Board GNU Compiler Daten BIT File SREC File Abb 4 2 Testaufbau 2 UART 2 Test Die Tests der PCI Schnittstelle lassen sich in zwei Kategorien aufteilen s Kapitel 4 2 3 6 Der LEON ist der Initiator einer Ubertragung Diese Art der Ubertragung kann durch Software fiir den LEON getestet werden die solche Ubertragungen programmiert Als Adressat solcher Aktionen wird eine PCI Einsteckkarte mit FPGA verwendet die als Memory Controller mit eine
97. eitet mit zwei Prioritats Leveln Level 1 und Level 0 Level 1 wird bevorzugt vor Level 0 abgearbeitet Er hat die h here Prioritat Innerhalb eines Levels wird dem Interrupt der Vorzug gegeben der die h chste Nummerierung aufweist D h wenn zwei Interrupt Anforderung mit Level 1 an den Interrupt Controller signalisiert werden Z B Nr 15 und Nr 6 wird der Interrupt Nr 15 zuerst an die IU weitergegeben Immer der Interrupt mit der h chsten Prioritat wird an die IU weitergeleitet IRQ Pending Priority encoder IRL 3 0 PER IRQ 10 0 Irq amp tri e mask select Abb 2 17 Blockdiagramm des Interrupt Controller Quelle L10 Abb 2 17 zeigt den Aufbau des Interrupt Controllers Insgesamt 15 verschiedene Interrupt Leitungen werden durch den Interrupt Controller bewertet Davon k nnen vier ber die parallele I O Schnittstelle des LEON angeschlossen werden s Kapitel 2 2 1 7 Von den restlichen 11 sind weitere vier Interrupts in der Standard Konfiguration noch nicht vergeben und k nnen von anwenderspezifischen Komponenten belegt werden Durch vier Kontroll Register lasst sich der Controller einstellen RQ Pending speichert eingehende Interrupt Anforderungen Mit RQ Force l sst sich ein Interrupt manuell erzwingen Enthalt eines dieser beiden Register eine 1 wird der entsprechende Eintrag mit dem RO Mask und Priority Select Register verglichen Dort sind Informationen ber den Level des Interrupts entha
98. eitsklasse 5 benutzt Fur das Demonstrations Board reicht die kommerzielle Variante des Virtex 1000 aus Index O 3 1 3 2 Speichertypen AM29F016D und uPD434008ALE 15 Als strahlungsfester Speicher ist nur SRAM qualifiziert mit einer maximalen Gr e von 512k 8Bit Das Geh use gibt es im SOJ 36 Package Es wird ein aquivalentes kommerzielles Bauteil verwendet Dies ist der Baustein uPD43008ALE 15 der Firma NEC mit einer maximalen Zugriffszeit von 15 ns Es werden insgesamt 8 Bausteine verwendet mit einer Gesamtspeicherkapazit t von 4MB Als PROM wird Flash Speicher verwendet um eine Wiederbeschreibbarkeit zu gew hrleisten In anderen Boards der Firma Astrium GmbH wird schon ein Typ verwendet der zwar keine guten Strahlungswerte besitzt aber trotzdem toleriert wird Dies ist der Baustein AM29F016D der Firma AMD im Package TSOP48 Er hat eine Speicherkapazitat von 2MB in 8 Bit Organisation Es werden 4 Bausteine davon als PROM des LEONS benutzt und einer als Konfigurationsflash 3 1 3 3 FPGA Konfiguration Eine direkte Programmierung des FPGA ber die JTAG Schnittstelle ben tigt keine besondere Hardware Diese Art der Programmierung ist jedoch nicht permanent Bei Abbruch der Spannungsversorgung verliert der FPGA seine Konfiguration und damit seine Funktionalitat Um eine automatische Konfiguration bei Anlegen einer Spannungsversorgung zu erm glichen wird permanenter Speicher ben tigt um die Konfigurationsdaten zu speichern
99. el sollen die Grundlagen beschrieben werden die f r ein weitergehendes Verstandnis notwendig sind Dabei werden die Bereiche Hardware und VHDL Cores getrennt betrachtet Im Kapitel Hardware wird auf die verwendeten Testboards und auf allgemeine Grundlagen des zu entwickelnden PMC Boards eingegangen Unter VHDL Cores wird die Funktionsweise der verwendeten VHDL Modelle beschrieben Besonderer Schwerpunkt dabei ist das LEON Design das den Prozessor enth lt Neben der allgemeinen Funktionsweise werden auch Spezifikationen betrachtet um im sp teren Verlauf darauf zur ckgreifen zu k nnen 2 1 Hardware 2 1 1 AVNET Evaluations Board 2 1 1 1 Beschreibung Das Evaluations Board ADS XLX VE DEV Abb 2 1 das ber die Firma AVNET Inc vertrieben wird ist eine Leiterplatte die sowohl eine gro e Anzahl von Schnittstellen als auch Speicher zu Verf gung stellt Das Herzst ck bildet ein FPGA Diese Kombination erm glicht das Testen einer gro en Bandbreite von Anwendungen Das Board eignet sich deshalb auch f r die Evaluierung des LEON Designs weil die gesamte Peripherie vorhanden ist die mit dem Design angesteuert werden soll Im Folgenden wird nur auf die Spezifika des Boards eingegangen die f r die Tests des LEONs benutzt werden PMNE T LER rains dm d rr 3 m un Dl m ILE mH UE u a B uu iii a _ u Fe ae Tr J A n MERI WI fed at as Y cm Con W dii T E rsen n wz
100. entsprechende Signal ist C Blocknummern deren Portname Name 3 f r das entsprechende Signal ist Die Tabelle beschreibt die Signalfunktionen Deshalb wird jedes Signal nur einmal aufgef hrt D h dass Portnamen nicht doppelt aufgef hrt werden Name Bl cke opt Name Block CON UART2 TX 1 2 DCONNECTOR BLOCK Eine RS232 Schnittstelle mit CON UART2 RX 1 2 2JUART IF Handshake M glichkeit 1 enth lt CON UART2 CTS 1 2 die Steckverbindung 2 den Treiber CON UART2 RTS 1 2 CON UART3 TX 1 2 DCONNECTOR BLOCK Eine RS232 Schnittstelle ohne CON UART3 RX 1 2 2JUART IF Handshake M glichkeit 1 enth lt die Steckverbindung 2 den Treiber CON JTAG TDO 1 3 TDO 3 1 CONNECTOR_ BLOCK JTAG Interface Wird an l CON JTAG TMS 1 2 3 TMS 2 3 2JTAG IF CFG PROM angeschlossen Reihenfolge erst 2 CON JTAG TCK 1 2 3 TCK 2 3 3 VIRTEX1000 dann 3 CON JTAG TDI 1 2 TDI 2 60 Kapitel 3 Eigenentwicklungen CON JTAG CCLK 1 2 3 I CONNECTOR BLOCK CCLK 2 3 2JTAG IF CFG PROM CON JTAG PROG N 1 2 3 4 5 3 VIRTEX1000 PROG N 2 3 4 POW_RES CLK POW RESET NI 4 5 ROM RESET N 5 CON JTAG INIT N 1 2 3 INIT N 2 3 CON JTAG DONE 1 2 3 DONED 3 CON JTAG BUSY DOUT 1 2 3 BUSY DOUT 2 3 CON JTAG CS N 1 2 3 CS N 2 3 CON JTAG WRITE N 1 2 3 WRITE N 2 3 CON JTAG DATAL 2 3 PROG DA LAE 2 3D 2 J TAG IF CFG PROM ae verwendet wird als CCLK ETE wi 2 ETHERNET IF 2 VIRTE
101. er konnten jedoch nicht reproduziert werden Aufgrund der Beliebigkeit der Fehler und eines Indiz die bereinstimmung bridge interner Registerwerte die nicht zum Senden benutzt werden aber vor der bertragung an den AHB Schnittstellen anliegen mit einer bestimmten fehlerhaften bertragung auf dem AHB Bus l sst vermuten dass die Fehler auf Timing Probleme zur ckzuf hren sind Eine sp tere genaue Fehleranalyse muss die tatsachliche n Fehlerquelle n aufdecken um die Verbesserung des Designs zu erm glichen Dies kann nicht mehr im Rahmen der Diplomarbeit geschehen 4 2 4 Test der internen LEON Funktionen Im Rahmen der Diplomarbeit wurden nur einige LEON interne Funktionen getestet IRQ Controller Timer 1 Timer 2 Alle anderen Funktionstests m ssen in Zukunft durchgef hrt werden 4 2 4 1 IRQ Controller Timer 1 Timer 2 Quellcode Seite 129 ff und Seite 121 Timer 1 und Timer 2 k nnen IRQs ausl sen Deshalb ist der Test dieser Komponenten mit dem Test des IRQ Controllers zusammengelegt worden F r den Test wird Testaufbau 1 94 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Abb 4 1 verwendet Es wird die in Kapitel 4 2 3 4 beschriebene Belegung der PIO Bits 7 4 benutzt um bestimmte Aktionen zu aktivieren PIO 4 Setzt den IRQ 13 Im IRQ Force Register s Kapitel 2 2 1 4 manuell PIO 5 Aktiviert Timer 1 PIO 6 Aktiviert Timer 2 PIO 7 Bricht das Programm ab Abb 4 10 zeigt die P
102. ert Das Kontroll Register f r den Interrupt Controller irq reg wird n den Konfigurationsbereich des PCI Interfaces der Bridge an Adresse 0x40 implementiert Dies ist ein anwenderspezifischer Adressbereich der sowohl von PCI Seite als auch von APB Seite adressierbar 1st Bei einem Reset werden alle Bits des Registers gel scht Abb 3 4 zeigt das Kontroll Register 31 5 4 1 0 Abb 3 4 Interrupt Kontroll Register der AMBA PCI Bridge irq reg PCI INT read only Speichert synchron die PCI Interrupt Leitungen Wenn gesetzt ist der zugeh rige Interrupt aktiv INTA gt Bit0 INTB gt Bitl EN Enable Wenn gesetzt wird bei Betrieb des LEON ohne Hosteigenschaften INTA aktiviert 75 Kapitel 3 Eigenentwicklungen INTB INTC und INTD sind immer Eingangssignale INTA ist in Abhangigkeit von HOST BRIDGE c entweder Ein oder Ausgangssignal Es wird im LEON ein geniodpad als Pad instantiiert Dies ist ein inout opendrain Pad Liegt eine Eins am Port d an wird der Ausgang hochohmig geschaltet Dies ist fur den Betrieb als Host notig Liegt an d eine Null an wird der Ausgang auf Low gezogen Um zu verhindern dass PCI Interrupts bei Betrieb ohne Hosteigenschaften an den LEON weitergegeben werden ist in Abhangigkeit der Konstante HOST BRIDGE c ein Multiplexer eingef gt Abb 3 5 zeigt das Blockschaltbild des PCI Interrupt Controllers HOST BRIDGE c D irq_reg 0 d 4 irq reg d gt p irq_reg 4 1 WER gt HOST BRIDGE c
103. erwachung U5 in POW_RES CLK angeschlossen Bei Aktivierung des Resets oder Power Up wird das Flash in den Lese Modus gesetzt so dass Daten ausgelesen werden konnen Das Beschreiben muss durch das FPGA geschehen da dieses die Steuersignale treibt Der LEON bietet M glichkeiten w hrend des Betriebes sein ROM umzuprogrammieren Soll das Flash ohne Verwendung des LEON beschrieben werden muss daf r ein HDL Code benutzt oder entwickelt werden 3 1 4 8 UART IF s A 2 Blatt 10 13 Der Block UART IF enthalt den Treiberbaustein f r die RS232 Leitungen U22 die DSUB9 Schnittstelle P3 und Kondensatoren C8 C9 C10 C11 C12 C13 Der Treiberbaustein LT1130A bietet 5 Sendeleitungen und f nf Empfangsleitungen Dies reicht genau f r die drei UARTs des LEON aus Das Bauteil ist nach Herstellerangaben mit Kondensatoren beschaltet die zur internen Spannungserzeugung benutzt werden Die UART Signale die bei der sp teren Implementierung auf die UARTI Ports gemappt werden gelangen an die DSUBO9 Buchse Die anderen beiden UARTs werden aus diesem Block heraus an den Block CONNECTOR BLOCK bergeben und dort an den Flachbandkabel Stecker 3 1 4 9 LED SW BUT s A 2 Blatt 11 13 Der Block LED SW BUT enthalt 8 gr ne Leuchtdioden mit Vorwiderstanden 8 Schalter mit Pullups und vier Taster mit Pullups und Entprell Kondensatoren die sich an dem Referenz Design von AVNET orientieren Alle Bauteile sind zu Testzwecken vorhanden Welche Funktionen
104. eses bei Bet tigung auf Low Daraufhin wird das FPGA neu konfiguriert W hrend eines Programmiervorgangs zieht das FPGA das Signal DONE auf Low Nach Beendigung der Konfiguration wird DONE wieder auf High gesetzt um das Ende 69 Kapitel 3 Eigenentwicklungen anzuzeigen Um dies auch optisch dem Benutzer sichtbar zu machen wird die rote LED D4 mit Vorwiderstand verwendet Art der Jumper Settings X gesetzt O nicht gesetzt m gliche Anmerkungen Konf D don t care abh von CPLD Programmierung Scrubbing 1 Verbindung PROM CPLD 2 Verbindung Art J7 J8 PROM FPGA A Or x o B o o x wo o o X O I D SelectMap mit Flash PROMs m ssen von CPLD deaktiviert werden SelectMap mit PROMs CPLD steuert PROMs SelectMap mit PROMs FPGA steuert PROMs Master Serial CPLD steuert PROMs Master Serial FPGA steuert PROMs 0 Slave Serial CPLD steuert PROMs C 0 o 2 n a Slave Serial FPGA steuert PROMs px CRE Tabelle 3 5 Jumpereinstellungen zur Konfiguration und Scrubbing B o X X o E X X o X C 0 X gt gt lt gt lt gt lt Das CPLD muss aus den Einstellungen der Jumper J4 J5 J6 J3 erkennen welche Art der Konfiguration gewahlt 1st Allerdings kann dar ber nicht festgestellt werden ob bei serieller Konfiguration die CE und OE Pins der PROMs an das CPLD oder das FPGA angeschlossen sind Sollte also die Steuerung der PROMs
105. esses m ssen die in Klammern angegebenen Meldungen vorliegen Alle Elemente m ssen platziert sein Placement no errors Alle Verbindungen m ssen hergestellt worden sein Routing no errors Alle Zeitkriterien m ssen eingehalten werden Timing no errors Das durch die ISE Entwicklungsumgebung erzeugte BIT File kann auf zwei verschiedene Arten zum Programmieren des FPGAs benutzt werden Ist zur Generierung des BIT Files als startup Clock der JTAG Takt vorgegeben worden wird mit dem BIT File ber ein serielles 77 Kapitel 4 Implementierung und Test des LEON auf AVNET Board JTAG Interface das FPGA direkt programmiert Daf r muss eine Spannungsversorgung des Testboards gew hrleistet sein Diese Art der Implementierung ist nicht resistent gegen Spannungsverlust Wird statt des JTAG Taktes CCLK als Startup Clock vorgegeben kann das erzeugte BIT File dazu benutzt werden ein f r diese Zwecke vorgesehenes Flash auf dem Board zu programmieren Als Ansteuerung f r das Flash dient dabei ein CPLD das vorher mit einem durch AVNET mitgelieferten Design programmiert wurde Das CPLD verarbeitet Daten die ber die serielle JTAG Schnittstelle geliefert werden und wandelt s e n ein ad quates Format f r das Flash um Im Lieferumfang des Evaluations Boards ist zus tzlich die PC Software enthalten mit der das BIT File in einen seriellen Datenstrom f r das CPLD umgewandelt und ber das JTAG Kabel gesendet wird Diese Art der Programmier
106. estimmte Adressen mit festgelegten Daten Diese verandern nicht den Inhalt des Flashs sondern bedienen ein internes Steuerwerk Die Abfolge dieser Sequenzen ist vorgeschrieben und eine Abweichung setzt das Flash wieder in den Lese Modus Die genaue Abfolge dieser Sequenzen ist dem Datenblatt zu entnehmen AM29LV641 von AMD Die verwendeten Flashs k nnen in zwei verschiedenen Modi programmiert werden Soll nur ein Wort geschrieben werden kann eine 4 schrittige Sequenz daf r benutzt werden Sollen mehrere Daten geschrieben werden sieht AMD einen sog Bypass Modus vor In diesem kann durch eine 2 schrittige Sequenz ein Wort geschrieben werden Um diesen Bypass Modus zu aktivieren muss zuerst eine sog unlock_bypass Sequenz 3 Schritte ausgef hrt werden Um diesen Modus wieder ordnungsgem zu verlassen muss eine sog unlock bypass reset Sequenz 2 Schritte ausgef hrt werden Von dieser Methode wird im benutzten Programm Verwendung gemacht Der Bit Inhalt des Flashs kann durch Programmieren nur von 1 auf 0 ver ndert werden Ein Beschreiben eines Bits das 0 ist mit einer 1 hat keine nderung zur Folge Deshalb m ssen vor Beschreiben eines Flashs alle Inhalte mit 1 initialisiert werden Dies wird als L schen bezeichnet Man hat die Auswahl zwischen L schen des gesamten Flashs ca 3 min Dauer und L schen von einzelnen Sektoren ca 2 Sekunden Dauer Die verwendeten Flashs 90 Kapitel 4 Implementierung und
107. etestet Ethernet PHY Als Testdesign wird eln vorhandener IP Core verwendet Dieser implementiert einen Ethernet MAC Flash Memory Der Flash Speicher wird durch Abarbeitung eines Programms auf dem LEON getestet SRAM Der SRAM wird an einen vorhandenen IP Core eines PCI Memory Controllers angehangt und ber den PCI Bus getestet Daf r ist der IP Core dahingehend zu modifizieren dass nicht der Speicher auf dem FPGA angesteuert wird sondern der auf dem PMC Board vorhandene LEDs Schalter Taster Es ist ein einfaches VHDL Testdesign zu entwickeln das alle Schalter und Taster abfragt und alle LEDs ansteuert 98 Kapitel 5 Implementierung und Test des LEON aut PMC Board PMC Schnittstelle Die PCI Schnittstelle des PMC Boards muss getestet werden um sicherzustellen dass eine Kommunikation mit dem PCI Bus m glich ist Zu lange Laufzeiten der PCI Signale auf dem PMC Board k nnten zu Fehlern f hren Als Test Design wird ein vorhandener IP Core verwendet der sowohl bertragungen auf dem PCI Bus initiieren als auch Ziel davon sein kann Dadurch k nnen alle Signale des PCI Busses getestet werden 99 Kapitel 6 Fazit und Ausblicke 6 Fazit und Ausblicke Zielsetzung der vorliegenden Diplomarbeit waren drei Hauptschwerpunkte Entwicklung eines PMC Boards auf dem das LEON Design implementiert werden kann Implementierung und Test der grundlegenden Funktionen des LEONS auf einem Evaluations Board I
108. exE 1000 Baustein eingesetzt werden muss um dieses Kritertum zu erftillen Der Virtex 1000 besitzt 12288 Slices und 32 BlockRAMs wahrend der VirtexE 1000 bei gleicher Anzahl Slices 96 BlockRAMs zu Verf gung stellt Die Virtex Reihe ist Im Gegensatz zur Virtex E Reihe 5V Tolerant ohne zusatzliche externe Beschaltung Als strahlungstolerante Version gibt es nur solche aus der Virtex Reihe Anhand der Entities von LEON Bridge und VMAC l sst sich die Anzahl von Ports ermitteln die unabh ngig von eventuellen zus tzlichen vom Design abh ngigen Ports benutzt werden LEON 120 Ports Bridge 65 Ports VMAC 27 Ports Insgesamt sollten mindestens 212 VO Ports durch den FPGA bereitgestellt werden F r einen Virtex 1000 kommen nur zwei verschiedene Packages n Frage 55 Kapitel 3 Eigenentwicklungen BG560 und FG680 Beides sind Ball Grid Arrays doch nur f r das Package BG560 gibt es eine strahlungstolerante Version Mit 404 V O Ports bietet das Package genug Platz f r zusatzliche noch nicht verplante Ports Es stehen die Geschwindigkeitsklassen 4 5 6 f r die Virtex Reihe zu Verf gung Dabei garantiert die Klasse 6 schnellere Verarbettungs Geschwindigkeiten als Klasse 5 Klasse 5 schnellere als Klasse 4 W nschenswert st demnach die Geschwindigkeitsklasse 6 Es zeigt s ch jedoch dass es einen unverh ltnism ig hohen Preisanstieg zwischen den Klassen 5 und 6 gibt Deshalb wird ein Virtex der Geschwindigk
109. ezielle Treiberbausteine Abb 2 19 zeigt das Blockschaltbild einer UART Die Baudrate ist einstellbar durch einen 12 Bit Taktteiler Dieser lasst sich durch das UART Scaler Reload Register einstellen Optional kann statt des Systemtaktes auch ein externer Takt geteilt werden der an die parallele Schnittstelle PIO 3 angeschlossen ist Zu Testzwecken kann eine UART in den Loop Back Modus geschaltet werden Dann wird intern TXD auf RXD und RTSN auf CTSN geschaltet Der LEON unterst tzt Handshaking zwischen Sender und Empfanger durch die Signale RTSN und CTSN Die Software kann die UARTS so einstellen dass sie das Senden oder Empfangen eines Zeichens durch Generierung von Interrupts anzeigen Dabei wird pro UART ein Interrupt verwendet vgl Kapitel 2 2 1 4 37 Kapitel 2 Grundlagen A CISN Serial port Baud rate 8 bitclk Controller 1 RTSN generator Receiver holding register Transmit holding register Internal I O Bus Abb 2 19 Blockdiagramm UART Quelle L10 Sender Daten die bertragen werden sollen m ssen in das Transmitter Holding Register geschrieben werden Dies geschieht ber Beschreiben der 8 LSB des UART Data Registers 0x80000070 bzw 0x80000080 Ist die UART bereit zum Senden werden die unteren acht LSB dieses Registers in das Transmitter Shift Register geladen und seriell ber TXD gesendet Dabei wird zuerst ein Startbit gesendet gefolgt von den acht Datenbits LSB zuerst AnschlieBend wird
110. ffset gt gt 2 value wait 12 wa1t at least 11 usec void _unlock_bypass int flash begin int tlash start Unlock flash flash begin 0x555 0x00aa00aa Elash begin 4 0x2aa 9 102003550035 flash begin 0x555 0x00200020 _wait 12 wait at least 11 usec void ub program unsigned int offset int value int Clash begin Lrt rlash start flash_begin 0x00a000a0 flash_begin offset gt gt 2 value cwWalt 12 wait at least 11 usee void _ub_reset int flash begin int rflash start flash begin 0x00900090 flash_begin 0x00000000 wait 1l2 3 wait ab least 11 Usec VOL Start O unsigned char r 256 ine Te Saye dob eno add Sectors Stare addr Start addr set imc lengthy div Char data struct lregs regs struct lregs 0x80000000 unsigned int value unsigned int failure int Clash begin int rlash start regs gt memcfgl 0x00000a33 set 3 cycle wait and write enable es data tiet pues Send SREC Eile ns start addr set 0 125 Anhang A 3 Quellcodes Cho 4 gets r DE DON SD dl addr h2i 8 amp r 4 data unsigned char amp r 12 if r 1 3 if start addr set 0 Start addr a ar start_addr_set 1 size Ee sr Zh pee 10 os d end addr addr size 1 For Ms eras ja ar hratt essa EEL een PucSs Pile rr break while 1
111. gister sind ausschlieBlich vom aktuellen Prozess verwendbar Die out Register werden zur bergabe von Parametern beim Aufruf von Subroutinen benutzt Liefert die Subroutine Ruckgabewerte werden diese sich auch wieder in den out Registern auffinden lassen Die out Register des aktuellen Prozesses sind als in Register vom nachsten Prozess aus adressierbar Das aktuelle Register Fenster wird durch den Current Window Pointer CWP bestimmt Der CWP ist ein 5 Bit Feld das als Z hler benutzt wird und innerhalb des Processor State Register PSR zu finden ist Der CWP wird inkrementiert wenn ein RESTORE oder ein RETT Befehl ausgef hrt wird Dies bedeutet dass ein Programm oder Unterprogramm beendet wird Dekrementiert wird der CWP wenn ein SAVE Befehl ausgef hrt wird oder sich ein Trap ereignet s Traps Ersteres Beispiel Ein Programm arbeitet mit den ihm zu Verf gung stehenden Registern Wird eine Subroutine aufgerufen die Eingangsparameter ben tigt schreibt das aufrufende Programm diese vorher in seine out Register Das Register Fenster wird beim Aufruf der Routine gewechselt d h die Routine hat wie alle Prozesse ihr eigenes 24 Register Fenster Die vom aufrufenden Programm bergebenen Parameter befinden sich jetzt relativ gesehen in den in Registern daher die Namensgebung Die Routine arbeitet mit den bergebenen Parametern z B dann in den lokalen Registern Wird eine weitere Routine von hier
112. he Oberfl che GUI lassen sich hiermit gezielt Speicherinhalte der PCI Komponenten ver ndern Auch l ngere Sequenzen von bertragungen k nnen benutzt werden Dies sind z B Schreiben einer Rampe in den Speicher oder L schen des Speichers Das Tool liest im Anschluss an jede Aktion den auf dem GUI sichtbaren Teil des Speichers aus und berpr ft auf Korrektheit Es w rd der Testaufbau 4 Abb 4 4 verwendet Die Tests konnten nicht zufriedenstellend durchgef hrt werden Zwar wurden einzelne Operationen korrekt ausgef hrt doch zeigten sich bei l ngeren Sequenzen in ca 20 der Versuche Fehler Diese Fehler bestanden entweder aus nicht geschriebenen Daten aus versetzt geschriebenen Datensequenzen oder aus an die falsche Adresse geschrieben Daten Ein Zusammenhang zwischen Auftreten von Fehlern und bertragungssequenz konnte nicht festgestellt werden Um die Fehlerursache einzugrenzen wurde gleichzeitig der PCI Bus mit einem Bus Analyzer gescannt und der AHB Bus mithilfe des DSU Trace Buffers Die Ergebnisse zeigen dass die Aktionen auf dem PCI Bus korrekt durchgef hrt und von der Bridge angenommen werden Im Falle der fehlerhaften Sequenzen sind die bertragungen auf dem AHB Bus falsch d h Adresse und oder Daten sind nicht korrekt Die Ursache f r die Fehler ist also die Bridge oder das Zusammenspiel zwischen Bridge und AHB Bus Das komplette System mit AMBA PCI Bridge ist sowohl funktional als auch zeitlich simuliert worden Die Fehl
113. hiedene Tests durchgef hrt werden um die Funktionsf higkeit des Systems zu verifizieren Dabei kann zwischen verschiedenen Testszenarien d h Testumgebungen und verschiedenen zu testenden Komponenten unterschieden werden Als Testszenarien kommen drei in Frage e Das AVNET Board wird stand alone betrieben D h Spannung wird ber einen Spannungsgenerator geliefert und der PCI Bus ist nicht angebunden e Der LEON arbeit als Nicht Host Prozessor in einem PCI Bus System Dann bernimmt der Host Prozessor die Adressverwaltung und die Bedienung von PCI IRQs F r dieses Szenario ist ein normaler PC geeignet da er normalerweise freie PCI Steckpl tze zu Verf gung stellt e Der LEON ist der Host Prozessor Er konfiguriert alle PCI Komponenten und bernimmt die PCI IRQ Verarbeitung Ein PC ist ungeeignet als Testumgebung da die CPU eines PCs immer der Host ist Die Funktionen die im Stand Alone Betrieb des Boards getestet werden k nnen werden durch Testszenarien mit Anbindung an den PCI Bus vollst ndig abgedeckt Da die Implementierung der Bridge keine Probleme bereitet s Kapitel 4 1 ist es nicht notwendig dieses Testszenario zu durchlaufen Ein Unterschied Im Betrieb des LEONSs als Host oder als Nicht Host besteht vor allem seitens des Aufwandes an Software Im Betrieb als Host muss die Verwaltung des gesamten Systems durch den LEON gew hrleistet sein was eine bestimmte Komplexit t an Software voraussetzt Neben Soft
114. ibt der LEON eine Boot Message auf UART 1 aus die z B auf einem Hyperterminal eines PCs gelesen werden kann Dies entspricht einer Ubertragung von LEON zu PC Die Richtung PC gt LEON wird durch das Laden und korrekte Ausf hren eines Programms wie unter 4 2 2 beschrieben getestet Dazu wurde das ber hmte Hello World Programm benutzt Dieses gibt f nfmal hintereinander Hello World auf UART 1 aus Abb 4 6 zeigt den Programmablauf Die Ausgabe Routine dieses Programms ist identisch mit der des Boot Loaders ist jedoch im SDRAM abgelegt und wird dort adressiert Zum Testen wird Testaufbau 1 Abb 4 1 benutzt Im Rahmen dieses Tests wird nicht das Hardware Handshaking getestet und nur bertragungen bei 38 kbaud durchgef hrt 86 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Hello world Abb 4 6 Programmstruktur Hello world 4 2 3 3 Test UART 2 Quellcode Seite 122 ff und Seite 121 Wie bei UART 1 Kapitel 4 2 3 2 wird nicht das Hardware Handshake getestet und nur bei einer bertragungsrate von 38 kbaud gearbeitet Es wird Testaufbau 2 Abb 4 2 benutzt Die UART 2 wird auf Seiten des PC durch ein Hyperterminal bedient Es sind beide Richtungen zu testen LEON PC und PC gt LEON Nach Start des Testprogramms wird zuerst vom LEON der Text UART 2 listening ausgegeben Anschlie end wird an UART 2 auf eine Textzeile beliebigen Formates mit maximal 256 Zeichen gewartet und diese eingelesen D
115. ickelt Sie enthalt den Registersatz des Prozessors und hat die Aufgabe Befehle abzuarbeiten und Integer Rechenoperationen durchzuf hren Dazu hat sie eine 5 stufige Pipeline Verarbeitung mit den Arbeitsschritten Instruction Fetch FE Decode DE Execute EX Memory ME und Write WR FE In dieser Stufe wird ein Befehl aus dem Befehls Cache geholt Sollte dieser Cache nicht aktiviert sein konfigurierbar wird der Befehl aus dem Speicher geholt DE Der Befehl wird dekodiert Operanden werden gelesen EX Die mathematischen Operationen Addieren logische Operationen Schieben werden hier durchgef hrt ME Der Daten Cache wird in dieser Stufe angesteuert Es werden sowohl Lese als auch Schreibbefehle durchgef hrt WR Das Ergebnis der EX Stufe wird in den internen Registersatz zur ckgeschrieben 20 Kapitel 2 Grundlagen call branch address l cache data address O jmpa tbr 4 P T pe Fetch ee E mer de P d pc 7 Lp Aor Decode imm tbr wim Der ee Veet ee et Ss CERE ee e bauapsrand Execute ex pc a impl address P fesut D imp Memory D cache nan datain a e Duel Kaes 250 pasa a Write Kee m tbr wim per Abb 2 9 LEON IU Blockdiagramm Quelle L10 Wie aus Abb 2 9 zu erkennen ist hat der LEON zwei unterschiedliche Arten von Cache i
116. ie beschrieben werden k nnen Sie sind hinter dem CPLD und vor dem FPGA in die JTAG Kette eingeordnet 70 Kapitel 3 Eigenentwicklungen 3 1 4 6 SRAM s A 2 Blatt 7 13 und 8 13 Das Schematic des SRAM besteht aus zwei Seiten die jeweils eine SRAM Bank enthalten Der Aufbau der Banke ist identisch Pro Bank sind jeweils vier SRAM Bausteine zu einer Wortbreite von 32 Bit zusammengeschaltet Jedes Bauteil ist an 8 Bit angeschlossen Die Adressen sind fur alle Komponenten die gleichen Zwischen den Banken wird durch das Signal RAMS N gewahlt Beim Lesen wird das entsprechende Bit des Signals RAMOE N aktiviert Um byteweises Schreiben zu unterst tzen bekommen die 4 Komponenten pro Bank je ein eigenes Write Enable WE Signal zugeordnet die zum Port Signal RAMWE N zusammengefasst sind Aufgrund der Gr e der Speicherbausteine werden nur 19 der 21 Adresssignale benutzt Insgesamt stehen 4 MB Speicherkapazitat zu Verf gung 3 1 4 ROM s A 2 Blatt 9 13 Das ROM besteht aus einer Bank Vier Flash Memories werden zu einer Wortbreite von 32 Bit zusammengeschaltet Jede Komponente ist an 8 Bit angeschlossen Alle Bausteine teilen denselben Adressbus und dieselben Steuersignale ROMS N ROMOE N WE N RESET N Die Ausg nge RY BY jeder Komponente sind gem den Herstelleranweisungen zusammengeschaltet und mit einem Pullup Widerstand versehen Die Verwendung dieses Signals ist optional Das RESET_N Signal ist an den Reset der Spannungs b
117. ieren soll das Demonstrations Board so weit wie m glich nach diesen Richtlinien entwickelt werden Die PMC Spezifikation und CMC Spezifikation soll eingehalten werden Finanzielle Aspekte 3 1 2 Problematiken Gewisse Anforderungen sind miteinander nicht In Einklang zubringen Im Folgenden wird das n her beleuchtet und anschlie end werden die Ergebnisse also die Kompromisse daraus betrachtet 3 1 2 1 Qualifizierte Bauteile Bauteile die f r den Einsatz im Weltraum qualifiziert sind erf llen bestimmte Anforderungen Auf der einen Seite betrifft dies mechanische und thermale Belastbarkeit auf der anderen Seite Fehlersicherheit gegen ber Strahlung die 1m Weltraum herrscht Die Weltraumstrahlung setzt sich aus dem Sonnenwind und kosmischer Strahlung zusammen und besteht aus Protonen und Ionen Beide Teilchen s nd so hochenergetisch dass sie auch feste Materie durchschlagen k nnen also auch Plastikhullen eines FPGAs oder Speicherbausteins Beim Auftreffen der Teilchen auf Hardwarestrukturen wie z B Flipflops oder Speicherzellen k nnen s e Fehler hervorrufen Strahlungsfeste Versionen gibt es nicht f r alle Bauteiltypen und sie sind auch in aller Regel teurer als Standard Bauteile 53 Kapitel 3 Eigenentwicklungen 3 1 2 2 Zus tzliche Bauteile f r Demonstrationszwecke und Konfiguration Zu Testzwecken ist es sinnvoll visuelle Signale Taster und Schalter zu Verf gung zu haben Auch Abgriffm glichkeiten fur
118. ignalpegel unterstutzt werden s Abb 2 5 Sind beide Locher vorhanden werden von der CMC beide Signalpegel unterst tzt Nicht alle vier Steckverbinder zwischen Host und CMC sind zwingend vorgeschrieben Ein Steckverbinder ist fur I O Signale vorgesehen die nicht durch das Bussystem belegt sind Die anderen drei sind fur das Bussystem reserviert mit Ausnahme der durch die CMC Spezifikation festgelegten Pins s u Eine Single CMC darf auf Seite 1 maximal 6 0 W an Leistung verbrauchen bzw in Warme umwandeln Insgesamt darf sie bis maximal 7 5 W verbrauchen Bestimmte Anforderungen an EMV Sto und Vibrationsfestigkeit sind in der Spezifikation aufgefuhrt Diese werden hier nicht betrachtet Die CMC Spezifikation beschreibt eine Einh llende innerhalb derer sich alle Komponenten der CMC befinden m ssen Dadurch wird gew hrleistet dass sich Host und CMC nicht gegenseitig st ren Diese Einh llende wird in Abb 2 7 gezeigt Durch den Abstand des PCB vom Host ist die maximale Bauteilh he auf Seite 1 Seite 2 und im I O Bereich definiert Die Spezifikation sieht vor dass durch unterschiedlich hohe Steckverbinder zwischen Host und CMC dieser Abstand im geringen Rahmen variiert werden kann um gr ere Flexibilitat zu gew hrleisten Die Einh llende aus Abb 2 7 bleibt dabei unver ndert Tabelle 2 1 gibt an welche Bauteilh hen benutzt werden k nnen bei verschiedenen Abst nden zwischen Host und CMC Der Standard ist mit einem Abstan
119. ilinx Virtex FPGAs Diplomarbeit FH Oldenburg Ostfriesland Wilhelmshaven L5 PCI SIG PCT Local Bus Specification Revision 2 2 W2 L6 PCI SIG PCT to PCI Bridge Specification Revision 1 0 W2 L7 IEEE Draft Standard for a Common Mezzanine Card Family CMC Draft 2 4a W3 L8 IEEE Draft Standard Physical and Enviromental Layers f r PCI Mezzanine Cards PMC Draft 2 4 W3 L9 Intel Corporation PC SDRAM Specification W4 L10 Gaisler Research The LEON 2 Processor User s Manual Version 1 0 10 W5 L11 Gaisler Research DSU Monitor User s Manual Version 1 0 5 W5 L12 Gaisler Research The LEON ERC32 GNU Cross Compiler System Version 1 1 5 W5 L13 Kasprzyk Floating Point Unit Digital IC project 2001 W5 L14 SPARC International Inc The SPARC Architecture Manual Version 8 W6 L15 Mader PCI Core Master Target PCI AMBA Bridge L16 ARM Limited AMBA Specification Revision 2 0 W7 L17 ARC International VMAC Reference Version 2002 03 Revision 5 Datenblatter D1 Kingbright AP2012 Series W8 D2 Micropac Industries Inc 1N6609 1N6610 1N6611 D3 Jauch Quartz GmbH Oscillator VX3 3 3 V W9 D4 Intel Corporation Inc Intel LXT971A W4 D5 Linear Technology LT1130A LT1140A Series W10 D6 Maxim Integrated Products MAX706P R S T MAX708R S T W11 D7 Linear Technology LT1083 LT1084 LT1085 W10 D8 Advanced Micro Devices Am29F016D W12 D9 NEC Electronics Corporation LP
120. int failure 1 unsigned int bridge cfg int bridge cfg addr unsigned ine peu anv pr adar unsigned int help id mem disable ahb error generation bridge cfgt0x3f 0x0 disable error and retry generation in register Oxff look if bridge is enabled as master help bridge_cfg 0x1 if help 0x4 0 bridge cfg Oxl help 0x4 Look for memory Gontroller bridge cfgt0x3e 0x5 set remap register to cfg access register Oxf8 for i 0 i 16 i get ID of Memory controller help pci i lt lt 9 0x2 read class code if bridge ctgt0x3f amp 0x0000000c 0 bridge cfgtOx3Sf 0x0 if help OxFFFFFFOO 0x05800000 id i lt lt 9 Hues Memory Controller round nan Vn failure 0 break y ur if failure 1 puto No Memory Controller found Program abort Mine return ur mem pci id Ox4 amp OxFFFFFFFO get BARO 127 Anhang A 3 Quellcodes help pci id 0x1 enable memory acces if help amp 0x2 0 pot ug Ox en hele 0x2 J get data file pues Send SREC Pile nn first_addr_set 0 do gets r SE Ce Ou sme SIN aT addr h21 8 amp r 4 data unsigned char amp r 12 if r 1 3 kaj a 20 IIrrst addr addr first addr set 1 sr2e h2142 EL Ar 10 gt Ta last addr addr s1ze 1 Tor du riecelrzeordd tenaz a ar D Spy zT 2 5 else if r 1
121. ionsf higkeit der verschiedenen Bausteine zu berpr fen sind Teststrategien festgelegt worden Diese sind in Kapitel 5 1 beschrieben Die Tests des LEON und seiner Komponenten entsprechen den in Kapitel 4beschriebenen Bei der Implementierung des LEONs mit internem Boot PROM ist darauf zu achten den von Gaisler Research zu Verf gung gestellten Boot Loader zu verwenden da das PMC Board nicht mit SDRAM sondern mit SRAM best ckt ist Das Pinout des FPGAs ist dem Board anzupassen Als Testumgebung wird das in Kapitel 2 1 2 beschriebene PMC Tragerboard verwendet das an einem VME Bus angeschlossen wird Das Board liefert die Betriebsspannung und die PCI Bus Anbindung Es bietet au erdem noch einen zweiten PMC Steckplatz der mit einem noch nicht spezifizierten Board best ckt wird um auf dieses PCI Zugriffe vom LEON aus zu initiieren Um den LEON ber den PCI Bus zu adressieren kann entweder dieses zweite PMC Board verwendet werden oder ein Teilnehmer des VME Bus an den das Tragerboard angeschlossen ist 5 1 Test der Bauteile Die einzelnen Bauteile sind auf ihre Funktionsfahigkeit hin zu berpr fen Da alle als Peripherie f r den LEON entworfen worden sind und dieser im FPGA untergebracht wird werden sie durch FPGA Designs getestet Welche Baugruppen dies sind wird 1m Folgenden beschrieben RS232 Treiber Diese Bausteine beinhalten keine logische Funktionalitat sondern sind Pegelwandler Sie werden im Rahmen des Tests des LEON mitg
122. is AHB AMBA APB ASI ASR CCR CMC CMOS CP CPLD CWP DCL DSU EMV FME FPGA FPU FTC GUI ICC IP IRQ ISP IU JTAG LED LRR LRU LVTTL MAC MII nPC PC PCB PCI PHY PIL PIO PMC PROM PSR RAM ROM SDRAM SMD SPARC SPLC SoC Advanced High performance Bus Advanced Microcontroller Bus Architecture Advanced Peripheral Bus Address Space Identifier Ancillary State Register Cache Control Register Common Mezzanine Card Complementary Metal Oxide Silicon Co Processor Complex Programable Logic Device Current Window Pointer Debug support unit Communication Link Debug Support Unit ElektroMagnetische Vertraglichkeit Fault Managment Element Field Programable Gate Array Floating Point Unit Fault Tolerant Computer Graphical User Interface integer condition code Intelectual Property Interrupt ReQuest In System Programming Integer Unit Joint Test Action Group Light Emitting Diode Least Recently Replaced Least Recently Used Low Voltage Transistor Transistor Logic Media Access Control Media Independent Interface next Program Counter Program Counter Printed Circuit Board Peripheral Component Interconnect PHY sical layer Processor Interrupt Level Parallel I O port PCI Mezzanine Card Programable Read Only Memory Processor State Register Random Access Memory Read Only Memory Synchronous Dynamic Random Access Memory Surface Mounted Device Scalable Processor ARChitecture Standard PayLoad Comp
123. isse dieser Diplomarbeit dass das getestete Design grunds tzlich funktionsf hig 1st Nach einer Fehlerbehebung und weiteren erfolgreichen Tests die s mtliche Funktionen des LEON berpr fen kann das Design als Prozessor in Applikationen zum Einsatz kommen Struktur der schriftlichen Ausarbeitung Die schriftliche Ausarbeitung der Diplomarbeit ist in mehrere Abschnitte unterteilt Kapitel 2beschreibt die Grundlagen der verwendeten Hardware der verwendeten VHDL Cores und der zur Entwicklung des PMC Boards benutzten Spezifikationen Eigenentwicklungen die Hardware betreffen sind in Kapitel 3beschrieben Darunter fallt neben der Entwicklung des PMC Boards auch das Handling der PCI Interrupt Signale In Kapitel 4wird die Implementierung und der Test des LEON auf dem Evaluations Board beschrieben Dies umfasst die Beschreibung der Testumgebung der Testprogramme und aufgetretener Fehler Au erdem sind Richtlinien f r zuk nftige Tests beschrieben Da das PMC Board noch nicht vorhanden ist musste auf eine Implementierung des LEONs auf diesem verzichtet werden Zuk nftige Tests die die Funktionsfahigkeit der Bauteile des PMC Boards betreffen sind in Kapitel 5aufgef hrt Kapitel 6fasst die Ergebnisse der Diplomarbeit zusammen Im Anhang befinden sich das Quellenverzeichnis die f r das Verstandnis des entwickelten PMC Boards notwendigen Schematics und alle Programm Quellcodes Kapitel 2 Grundlagen 2 Grundlagen In diesem Kapit
124. keln auf die zur ckgegriffen werden kann ohne ber die Kenntnis und die Funktionsweise einzelner Register bzw Registerbits verf gen zu m ssen Die im Rahmen der Diplomarbeit durchgef hrten Tests beschaftigen sich mit den grundlegenden Funktionen des LEONs Der Gro teil davon besteht aus Tests der Schnittstellen des LEONs nach drau en PCI SDRAM Flash Memory serielle Schnittstellen und PIO Als interne Funktionen sind der Interrupt Controller und die beiden Timer getestet worden Der Test der PCI Schnittstelle verlief nicht erfolgreich Vermutlich sind Timing Probleme innerhalb der Bridge oder im Zusammenspiel zwischen Bridge und AHB Bus die Ursache f r Fehler die sowohl im Testsystem als auch in der Timing Simulation nicht reproduzierbar sind Eine genaue Fehleranalyse und Fehlerbehebung ist in Zukunft zwingend erforderlich um den LEON mit der verwendeten Bridge an den PCI Bus anschlie en zu k nnen Alle anderen Tests verliefen erfolgreich Da die vorhandenen Tests aber nur die grundlegenden Funktionen berpr fen und nicht alle Funktionalitaten und Eventualitaten abdecken m ssen in Zukunft umfangreichere Tests entwickelt werden Diese m ssen z B auch die noch nicht getesteten internen LEON Funktionen wie Cache Multiplizierer und Dividierer testen Da diese Komponenten in verschiedenen Konfigurationen implementiert werden k nnen m ssen verschieden konfigurierte Designs getestet werden Alle Tests sind f r ein zuk nftiges P
125. ktiviert kann nur ein externes PROM als Bank 1 ab Adresse 0x10000000 adressiert werden Die Adressbereiche der verschiedenen RAM Banke ist durch die Gr e der Einzelbausteine gegeben Diese muss durch Systemsoftware berpr ft und in die Konfigurationsregister des Memory Controllers geschrieben werden ROMSN I 0 S OEN i PROM WRITEN RAMSN 4 0 CS RAMOEN 4 0 E SRAM RWEN 3 0 A D SDCLK SDCSN 1 0 en SDRAM SDCASN SDWEN SDDOM 3 0 A 27 0 D 31 0 Abb 2 24 Memory Interface des LEON Quelle L10 Der Memory Controller wird durch die Memory Configuration Register 1 3 MCFGI 3 konfiguriert MCFGI konfiguriert PROM und VO Zugriffe MCFG2 SRAM und SDRAM Zugriffe MCFG3 wird verwendet um den Abstand zwischen Refresh Zyklen bei Verwendung von SDRAM zu steuern Die genaue Beschreibung der Register ist der Beschreibung des LEON zu entnehmen 42 Kapitel 2 Grundlagen 2 2 1 9 Debug Support Um Programme w hrend der Abarbeitung im laufenden Betrieb zu debuggen stellt der LEON eine Debug Support Unit DSU zu Verf gung ber diese kann der Nutzer alle Prozessorregister und Cacheinhalte lesen wenn der Prozessor in Debug Mode geschaltet ist Sie kann auch dazu verwendet werden andere Komponenten ber den AHB Bus zu adressieren Au erdem ist ein Puffer der sog Trace Buffer vorhanden der wahlweise die letzten abgearbeiteten Befehle oder bertragungen auf dem AHB Bus speichert Um die DSU zu ve
126. l scht e Instruction burst fetch IB Wenn gesetzt werden beim Cachen im Befehlscache ganze Cache Zeilen aus dem Speicher gecached e Instruction cache flush pending IP Ist gesetzt wenn der Befehlscache gerade gel scht wird e Data cache flush pending DP Entspricht IP f r den Datencache e Data cache freeze on interrupt DF Wenn gesetzt wird der Datencache automatisch eingefroren wenn eine Interrupt Anforderung an die IU signalisiert wird D h alle Inhalte des Cache bleiben gespeichert und k nnen erst wieder ver ndert werden wenn der Zustand des Caches ber Andern von DCS auf aktiv geandert wird e Instruction cache freeze on interrupt IF Entspricht DF f r den Befehlscache Ein aktiver Zustand wird ber Andern von ICS eingestellt e Data cache state DCS Zeigt den Zustand des Datencaches an und dient zur Anderung desselben X0 deaktiviert der Cache arbeitet nicht 01 eingefroren 11 aktiviert e Instruction cache state ICS Entspricht DCS f r den Befehlscache 2 2 1 3 AMBA Bussystem Im LEON werden zwei verschiedene Busse als on chip Bussysteme verwendet die nach der AMBA Spezifikation arbeiten Die Advanced Microcontroller Bus Architecture AMBA Spezifikation definiert drei verschiedene Standards fur on chip Bussysteme Im Gegensatz zum PCI Bus sind Daten und Adressleitungen physikalisch getrennt Der Unterschied zwischen den beiden verwendeten AMBA Bussen liegt in Bus Performance und Komplexitat der Bu
127. lten und ob dieser Interrupt aktiviert ist Das vierte Register ist in Abb 2 17 nicht abgebildet Es hei t RO Clear Register und wird dazu benutzt das JEC Pending Register zu l schen Eine Belegung der Register ist in dem Benutzerhandbuch des LEONs nachzulesen Der Priority Encoder selektiert in Abh ngigkeit von IRQ Level und IRQ Nummer den Interrupt der an die IU weitergeleitet wird Der Block RO amp Trig Select ist unter dem Modul fur die Parallel Schnittstelle PIO definiert Der Block enthalt Informationen daruber welche PIO Signale als Interrupts verwendet werden sollen und auf welche Flanke getriggert werden soll Tabelle 2 10 zeigt die Belegung der 15 moglichen Interrupts Interrupt Nr 10 ist f r einen zweiten optionalen Interrupt Controller reserviert durch den zusatzlich 32 Interrupt Leitungen zu Verf gung stehen Eine genauere Beschreibung dieses Zusatz Controllers ist in der Dokumentation des LEON zu finden 35 Kapitel 2 Grundlagen marra soure Lu jenem DSU trace buffer Second mern controller a ma O Tabelle 2 10 Interrupt Tabelle Quelle L10 2 2 1 5 Timer Prozessoren verwenden Timer um eine definierte bzw einstellbare Zeitspanne zu messen nach der u U eine Routine gestartet wird Timer arbeiten unabh ngig von der IU Um Routinen unabh ngig von gerade laufenden Programmen ausf hren zu k nnen signalisieren die Timer das Ende einer Zeitspanne durch einen Interrupt Der LEON implementiert z
128. m Speicherbereich von 4kB konfiguriert ist Dies geschieht mithilfe eines IP Cores der Firma Astrium Die Ergebnisse k nnen nach Abarbeitung des Testprogramms auch durch ein Software Tool der Firma PLDA PCI Tools berpr ft werden Dieses Tool erlaubt es manuell Konfigurationsbereiche und Speicherbereiche von beliebigen PCI Komponenten zu beschreiben und auszulesen Den Aufbau zeigt Abb 4 3 e Die Bridge bzw ein dahinterliegender Adressbereich wird von einem Teilnehmer des PCI Busses adressiert Diese Art von bertragung kann nicht durch Software auf dem LEON getestet werden da sie nicht vom LEON initiiert wird Stattdessen wird daf r das Tool PCI Tools verwendet Das Ergebnis solcher bertragungen kann mit DSU 82 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Monitor berpr ft werden Um Signale auf dem PCI Bus berpr fen zu k nnen wird ein Bus Analyzer in Form einer PCI Einsteckkarte benutzt Dieser ist ber eine RS232 Schnittstelle mit PC 2 verbunden COM 2 auf dem die zugeh rige Analyzer Software BusView l uft Den Aufbau zeigt Abb 4 4 Anmerkung Der verwendete PC 1 hat neben dem AVNET Board nur noch einen freien PCI Slot Deshalb kann nicht der Memory Controller gleichzeitig mit dem Bus Analyzer verwendet werden Die Analyzer Software lauft auf PC 2 um PCI Signale besonders dann noch auswerten zu k nnen wenn PC 1 aufgrund von Fehlern im PCI System abst rzt Solche Fehler k nnen Folge
129. mplementiert Einer ist f r Befehle zustandig der andere f r Daten Der implementierte Hardware Multiplizierer ist konfigurierbar bez glich seiner Gr e Dies bedeutet dass Multiplikationen gro er Zahlen mit einem erh hten Platzaufwand beschleunigt werden k nnen da sie weniger Iterationen bis zum Ergebnis brauchen Register Die Register von SPARC Prozessoren werden in Allgemein Arbeits und Kontroll Status Register aufgeteilt Arbeitsregister werden als Zwischenspeicher zur Abarbeitung von Programmen benutzt Kontroll Status Register haben die Aufgabe einerseits den Status in dem sich der Prozessor befindet zu speichern um mit diesen Informationen weiterzuarbeiten andererseits die Hardware zu kontrollieren Beide Aufgabentypen werden zum Teil nicht streng in Register getrennt sondern sind in einem Register vereint Allgemein Register Register Fenster Allgemeine Register setzen sich aus 8 globalen Registern und einer implementierungsabh ngigen Anzahl von Register S tzen zusammen Diese Registers tze bestehen aus 16 Registern Der LEON kann zwischen 2 und 32 solcher Register S tze implementieren Die Register S tze bestehen jeweils aus 8 sogenannten in Registern und 8 sog local Registern Jedes Programm das auf dem Prozessor abgearbeitet wird hat Zugriff auf die 8 globalen Register und ein Fenster von weiteren 24 Registern Dieses Register Fenster besteht aus 21 Kapitel 2 Grundlagen einem Register Satz
130. n also A B oder C wird durch die drei Mode Jumper J4 J5 J6 eingestellt Die Codierung 1st dem Datenblatt des Virtex zu entnehmen Durch die Pullups R15 R16 R17 wird die Default Einstellung auf Slave Serial Mode gesetzt Um zwischen A und B zu wahlen ist neben der richtigen Einstellung der Mode Jumper der Jumper J3 zustandig Welche Einstellung welchen Speicher ausw hlt ist nicht durch das Design festgelegt Dies muss die Konfiguration des CPLD festlegen Dieser Jumper wird auch benotigt um zwischen D und E zu wahlen Um den Port CCLK der CPLD physikalisch vom CCLK Pin des FPGA trennen zu k nnen ist der Jumper J9 eingesetzt worden Wird dieser Jumper offengelassen kann nicht der Zustand eintreten dass sowohl das CPLD als auch FPGA das Signal CCLK treiben Dies k nnte bei falsch konfiguriertem CPLD im Falle C mit Einstellung der Mode Jumper auf Master Serial Mode passieren Die Wahl ob das CPLD oder das FPGA die PROMS steuert wird ber die Jumper J7 und J8 getroffen Diese stellen ein welcher Baustein elektrisch verbunden wird Im Falle des FPGA wird nach Herstellerangaben OE RESET der PROMs mit INIT N verbunden und CE mit DONE im Falle des CPLD werden die entsprechenden Steuerports verbunden Z B ist f r E eine Steuerung der PROMs durch das FPGA zwingend erforderlich Um manuell eine Neukonfiguration zu starten ist der Taster Bl vorgesehen Dieser ist an das signal PROG N angeschlossen und zieht di
131. n Ausf hrung des urs chlichen Befehls wieder auftreten d h nicht behandelte Ausnahmen und Interrupt Anforderungen werden der Prioritatenfolge nach abgearbeitet Die Trap Tabelle des LEON ist in Tabelle 2 6 dargestellt Die Bedeutung der einzelnen Traps kann in der SPARC V8 Spezifikation bzw dem LEON Handbuch gefunden werden F 2 SEE AAA S i BEE fp disabled 1x4 P PP instruction while FPUdisabled cp dek 0x24 6 UP instruction while Co processordisabled window overflow x05 8 SAVE into invalid window 0 window underflow 0x06 RESTORE into invalid window register hadrware error 0x20 H register file EDAC error LEON FT only 28 Kapitel 2 Grundlagen interrupt level 14 OXIE 18 Asynchronous interrupt 14 interrupt level 15 DIE 7 lAsynchronous interrupt 15 trap instruction 0x80 16 Software trap instruction TA E o Lc c XR j oq C o os o Tabelle 2 6 Trap Table des LEON Quelle L10 2 2 1 2 Cache System Der LEON implementiert eine Harvard Architektur Dies bedeutet dass getrennte Befehls und Datenbusse vorhanden sind die an getrennte Befehls und Datencaches angeschlossen sind sowohl Befehls als auch Datencache k nnen auf verschiedene Weise implementiert werden Dies h ngt von der Konfiguration des LEONSs bei Synthese ab Prinzipiell kann zwischen Direct Mapped Cache und Multi Set Cache auch
132. n m glichst viele Bauteile entweder strahlungsfest sein oder als strahlungsfestes Aquivalent existieren Dies bedeutet dass die L tmaske f r ein Bauteil und das zugrundeliegende Pinout identisch sind Im Hinblick auf W rmeerzeugung und Stromversorgung wird nicht auf Flugtauglichkeit hin entwickelt Dies setzt Analysen und daraus resultierende L sungskonzepte voraus die In einem Redesign gemacht werden Bauteile die nur f r das Demonstrationsboard verwendet werden und zuganglich sein m ssen sind auf Seite 2 des Boards zu platzieren Eventuelle Verletzungen der PMC Spezifikation sind vernachlassigbar da die Komponenten im Redesign entfernt wurden Dies betrifft Jumper Schalter und Taster Bez glich der Hohe von Steckern Im Front Bezel Bereich wird eine Verletzung der PMC Spezifikation zugelassen um Standard Komponenten verwenden zu k nnen Dies wird in einer geringen Schieflage der PMC Karte resultieren Andere PMC Testkarten von Astrium bei denen auch eine berh hung dieses I O Bereiches vorliegt zeigen dass die Kontaktierung der PMC Steckverbinder gewahrleistet bleibt Um die Kosten moglichst niedrig zu halten sollen bevorzugt Bauteile verwendet werden die auf Lager liegen 54 Kapitel 3 Eigenentwicklungen 3 1 3 Bauteile Anhand der Anforderungen und Richtlinien den verwendeten Bauteilen in den Referenzdesigns und n Absprache mit Lutz Buttelmann und dem Eink ufer von Bauteilen sind die Komponenten ausge
133. n way Set Associativ Cache genannt gew hlt werden Der Unterschied zwischen beiden liegt darin dass bei Multi Set Caches noch bez glich der Art und Weise gewahlt werden kann wie die verschiedenen Sets beschrieben werden Die Gr e jedes Sets auch die des Direct Mapped Cache ist zwischen 1 64 kB konfigurierbar Ein Set besteht aus Tag RAM und Daten RAM Im Daten RAM werden die gecacheten Informationen aufbewahrt Das Daten RAM ist in Zeilen von 16 32 Bytes unterteilt also 2 8 32 Bit Worte Pro Zeile im Daten RAM existiert auch eine Zeile im Tag RAM die dazu benutzt wird auf Treffer hin zu berpr fen Abb 2 15 illustriert eine Tag RAM Zeile Diese ist In Befehls und Datencache identisch Bei Implementierung eines Multi Set Caches k nnen bis zu 4 Sets implementiert werden Als Auswahlverfahren in welcher Reihenfolge die Sets beschrieben werden stehen Least Recently Used LRU und Random zu Verf gung Bei Implementierung von 2 Sets steht auch noch das Verfahren Least Recently Replaced LRR zu Verf gung Es werden immer nur die Bits und Register implementiert die in der Konfiguration angegeben sind 3l 10 9 8 7 0 DCK VALID Abb 2 15 Tag RAM Zeile Quelle L10 Bedeutung der Felder e Address tag ATAG Enthalt das Tag der Cache Zeile e LRR Wird bei Verwendung des LRR Algorithmus von diesem benutzt e LOCK signalisiert ob eine Cache Zeile blockiert ist locked e VALID F r jedes 32 Bit Wort im kor
134. nbetriebnahme des entwickelten PMC Boards Implementierung und Test des LEONS darauf Au erdem war eine Aufgabe der Diplomarbeit Interrupts auf dem PCI Bus in einer geeigneten Form mit dem LEON zu verbinden so dass dieser sowohl als Host eines Systems auf PCI Interrupts reagieren kann als auch als Nicht Host Interrupts ausl sen kann Diese Aufgabe nahm den kleinsten Teil der aufgewendeten Zeit in Anspruch Die entwickelte Funktionalitat ist bisher nur funktional simuliert F r die Entwicklung des PMC Boards wurde die meiste Zeit aufgewendet Es zeigte sich w hrend des Entwicklungsprozess dass nicht alle Anspr che die von verschiedenen Seiten an das entwickelte Board gestellt wurden zu erf llen waren So war ein Anspruch m glichst f r die Raumfahrt qualifizierte Bauteile zu verwenden ein anderer Kosten zu sparen ein dritter f r Testzwecke m glichst gro e funktionale Flexibilit t zu gew hrleisten und ein vierter die r umlich einengenden Kriterien der PMC Spezifikation zu erf llen Folge dieser verschiedenen Kriterien war ein erheblicher Zeitaufwand der f r Bauteilauswahl und R cksprache mit Mitarbeitern aufgewendet wurde Da das entwickelte Board ein Testboard ist sind die Anspr che bez glich der funktionalen Flexibilitat vorrangig behandelt worden Nach M glichkeit wurden dabei Bauteile verwendet die qualifizierten Bauteilen quivalent sind um sp teren Redesignaufwand zu minimieren Aus Kostengr nden wurden wenn
135. nd Dies w rde die vier PCI Interrupts abdecken Das LEON Manual warnt jedoch davor den IRQ 15 zu benutzen da dieser nicht maskable 1st Deshalb wird von der Benutzung dieses Interrupts abgesehen Stattdessen wird nur ein Interrupt des LEONs benutzt um alle vier PCI Interrupt Leitungen anzuzeigen D h INTA INTB usw werden NAND verkn pft und an IRQ14 gelegt IRQ14 ist vom LEON Core daf r vorgesehen Siehe auch Abb 3 5 Ein Register speichert synchron die negierten Zust nde der PCI Interrupt Leitungen die vom LEON abgefragt werden k nnen s Abb 3 4 3 2 2 2 LEON ohne Hosteigenschaften Ist der LEON nicht das Hostsystem muss er die M glichkeit haben dem Hostsystem eine Interrupt Anforderung zu signalisieren Daf r bekommt er einen Interrupt auf dem PCI Bus zugewiesen Laut Spezifikation muss dies INTA sein Der LEON VHDL Core hat kein Signal daf r vorgesehen einen Interrupt auf den PCI Bus zu signalisieren Dies muss durch zusatzliche Funktionalitat erm glicht werden Es wird ein Bit in einem Register vorgesehen das vom LEON gesetzt und gel scht werden kann Ist es gesetzt wird der Interrupt auf INTA aktiviert wird es gel scht wird er deaktiviert s Abb 3 4 3 2 2 3 Einbindung in die AMBA PCI Bridge Der PCI Interrupt Controller wird in die AMBA PCI Bridge als Komponente eingebunden Dies hat den Vorteil dass ein Register leicht eingef gt werden kann weil eine Schnittstelle zum Beschreiben und Lesen schon existi
136. ndete PC Test System nur mit 32 Bit arbeiten Es steht ein Standard Connector d h das Board wird als PCI Steckkarte verwendet oder PMC Connectoren d h eine PCI Mezzanine Card wird eingesteckt zu Verf gung Die gleichzeitige Benutzung beider Verbindungen verbietet sich da sonst mehr als ein PCI Teilnehmer an einem PCI Slot angeschlossen w re und dies die PCI Spezifikation nicht zul sst vgl L5 RS232 Die serielle RS232 Schnittstelle ist inklusive Treiberbaustein ADM3222 von Analog Devices vorhanden und mit dem FPGA verbunden Da das LEON Design zwei allgemeine UARTs und ein Debug Interface auch UART vorsieht ist eine von Astrium selbst hergestellte Leiterplatte mit dem AVNET Board verbunden die zwei RS232 Treiber und zwei DSUB Stecker beherbergt Dadurch k nnen drei serielle Schnittstellen gleichzeitig benutzt werden RJ45 Der Betrieb einer Ethernet Schnittstelle 1st optional Spannungsversorgung Das Board wird entweder ber den PCI Bus Board als PCI Steckkarte oder ber einen externen Spannungsgenerator versorgt Uber Linearregler werden die ben tigten Betriebsspannungen 3 3V und 1 8V erzeugt LEDs Buttons Switches Es stehen 8 gr ne LEDs zu Verf gung die ber das FPGA angesteuert werden k nnen Um Eingangssignale zu erzeugen stehen 8 DIP Switches und 4 Push Buttons zu Verf gung 2 1 2 PMC Caddy Als Tragerboard f r das zu entwickelnde PMC Board ist ein Produkt der Firma ESD GmbH vorgesehen Das B
137. nlock bypass reset Sequenz das Flash wieder in den Lese Modus versetzt Anmerkung zur Abb 4 9 Die Ausdruck adresse zeigt auf den Inhalt der Adresse adresse Zur Adressgenerierung wird der Zahlindex i mit 4 multipliziert Hintergrund daf r ist das size aus programmiertechnischen Gr nden so berechnet wird dass es die Gr e in 32 Bit Worten ausdr ckt Dies ist aus der Abbildung nicht zu erkennen Mit der Ausgabe Verifying beginnt die berpr fung der Kopie auf ihre Richtigkeit Jedes Datum des Flashs w rd mit dem korrespondierenden Inhalt des SDRAM verglichen Bei Ungleichheit wird die Hilfsvariable failure gesetzt Nachdem mit Verifying completed das Ende der Pr fung angezeigt worden ist wird n Abh ngigkeit von failure entweder no errors oder errors als Ergebnis der Pr fung ausgegeben und das Programm beendet F r diesen Test wird Testaufbau 1 Abb 4 1 benutzt Es ist beim Kompilieren des SREC Files das als Datenfile zum Kopieren dient darauf zu achten dass der Inhalt nicht auf einen Adressbereich gelinkt wird indem die Befehle des eigentlichen Testprogramms abgelegt sind Das Programm beschreibt und berpr ft nur den Adressbereich des Flashs der durch das Datenfile ab Beginn des Flashadressbereiches belegt wird Es wird also nicht der gesamte Speicherbereich des Flashs berpr ft 91 Implementierung und Test des LEON auf AVNET Board Kapitel 4 14 SIOIIO UInj ol SIJO
138. nn Testsoftware entwickelt werden Dazu sind Kenntnisse in Assembler und C notwendig Durchf hrung Der LEON inklusive Bridge ist auf dem Evaluations Board implementiert und getestet worden Die Testprogramme k nnen mit wenigen Modifikationen zum Testen des entwickelten PMC Boards verwendet werden Sie besch ftigen sich zum berwiegenden Teil mit den Schnittstellen zwischen LEON und Peripherie Sie best tigen die grundlegende Funktionsfahigkeit des LEON Designs Dabei bildet die PCI Schnittstelle eine Ausnahme es wurden Fehler bei bertragungen festgestellt die auf Timing Probleme hinweisen Eine genaue Fehleranalyse und Fehlerbehebung muss in Zukunft durchgef hrt werden Kapitel 1 Einleitung Obwohl die Entwicklung der PMC Karte vorrangig bearbeitet worden ist um eine Inbetriebnahme des Boards sowie die Implementierung des LEONs darauf 1m Rahmen der Diplomarbeit zu erm glichen ist zum 31 07 03 das Layout nicht abgeschlossen Deshalb konnten Implementierung des LEON Designs und Testergebnisse des Evaluierungs Boards nicht auf das PMC Board bertragen werden Da die folgenden Produktionsschritte mindestens 6 Wochen dauern ist auf eine Verlangerung der Diplomarbeit verzichtet worden Die Tests die die Funktionsfahigkeit der Bauteile des PMC Boards best tigen sollen sind im Rahmen der Diplomarbeit schon festgelegt worden Trotz der beim Testen festgestellten Fehler bei bertragungen zwischen PCI Bus und LEON zeigen die Ergebn
139. ns definiert auf Masse gelegt Zusatzlich sind die vier Pins in diesem Block enthalten die intern keine Verbindung haben NC not connected 65 Kapitel 3 Eigenentwicklungen JTAG IF CFG PROM Der Block JTAG IF CFG PROM stellt die Anschl sse f r die Konfigurationssignale dar Er beinhaltet neben dem JTAG Interface auch die Ports fur SelectMap und Konfigurations Modus Unabhangig von der Konfiguration stellt dieser Block die Ports fur die Leitungen zwischen CPLD und FPGA zu Verf gung die noch nicht funktional belegt sind Der Systemtakt f r den LEON ist willk rlich diesem Block zugeschlagen worden MEM IF Da SRAM und ROM die gleichen Adress und Datenleitungen benutzen sind die Pins f r diese Funktionsbl cke zusammengelegt worden zum Block MEM IF UART IF LED SW BUT ETHERNET IF PMC IF stellen die Anschl sse f r die Signale der gleichnamigen Funktionseinheiten dar 3 1 4 3 CONNECTOR BLOCK s A 2 Blatt 4 13 Dieser Block enthalt nur den Flachbandkabel Stecker mit 34 Pins Zwei RS232 Schnittstellen des LEONs sind hiermit verbunden der Treiberbaustein ist allerdings unter UART IF zu finden Eine verbundene UART bietet die M glichkeit f r Handshaking zwischen Sender und Empfanger durch die Signalleitungen RTS und CTS Die andere verf gt nur ber die Leitungen TX und RX Diese wird vornehmlich durch die DSU benutzt da sie kein Handshaking unterst tzt 22 Pins sind f r die JTAG Schnittstelle und andere Xilinx
140. nseinheiten dienen mit denen das FPGA vernetzt ist Dies sind nur Symbole die in ihrer Gesamtheit das FPGA reprasentieren Die Symbole zeigen nicht das Pinout des FPGA Dies wird mit der Software festgelegt mit der auch die Symbole erzeugt werden und ist unabh ngig von diesen D h man kann das Pinout ver ndern ohne die symbole und damit das Schematic ndern zu m ssen Abb 3 2 gibt eine bersicht ber die ungef hre Zuordnung zwischen benutzten Pins und angeschlossener Komponente Dabei ist zu beachten dass bestimmte Signale feste Pins seitens des Herstellers zugeordnet bekommen Dies betrifft Signale der Spannungsversorgung Konfiguration und der Oszillatoren Diese sind nicht eingezeichnet Nicht alle farblich unterlegten I O Pins sind benutzt worden Es ist zu erkennen dass Funktionen nicht auf bestimmte I O B nke verteilt sind Da alle VCCO Leitungen mit 3 3 V getrieben werden s u ist dies ohne weiteres m glich vgl D12 64 Kapitel 3 Eigenentwicklungen Orn 0C lt UD OO P OO CD CO e A CJ s lt UA 03 0 Ch C3 T 0M CO TH OD D OD CD o e e e w r w w w w CM CMN CJ CM CM CMN CN CM CM C BG560 Top View lt S lt CADVDZErALIONMOOU gt O Tr 0J C xf ou OO P OO CD CO A CJ xf i CD P OO CD OO e CJ OC T C CO TH D P OO CD o w e w w w w w w CN CM CJ CN A AA CM CM OJ C C CO OH LEDs Schalter Taster Abb 3 2 Belegung des FPGAs nach Funktionsgruppen Das Schematic Virtex1000 zeigt 8 verschi
141. oard wird als PMC Caddy bezeichnet und ist als VME Karte ausgelegt die Platz f r zwei PMC Karten bietet Zwischen VME Bus und PCI Bus sitzt eine Bus Bridge der Firma Tundra Da zwei PMC Pl tze vorhanden sind kann das Board daf r genutzt werden Kommunikation zwischen zwei PMC Karten zu testen Dies ist f r das zu entwickelnde PMC Board notwendig 12 Kapitel 2 Grundlagen Abb 2 3 und Abb 2 4 zeigen das PMC Caddy und das Blockschaltbild Abb 2 3 PMC Caddy Quelle D16 PMC Module Slot 1 VME PCI PMC Add On VME dne Bridge Connectors Control Logic PM UNIVERSE CA 91C042 P1 P2 VMEbus PMC Module Slot 2 P2 I O Signals to PMC Modules PMC Add On Connectors Abb 2 4 Blockschaltbild des PMC Caddys Quelle D16 2 1 3 PMC Board Das PMC Board ist die Hardware die im Rahmen der Diplomarbeit entwickelt und getestet werden soll PMC steht f r PCI Mezzanine Card Mezzanine Cards sind Karten die Huckepack auf Tr gerkarten sitzen Diese Tragerkarten werden auch als Host Karten bezeichnet Die Schnittstelle zwischen Host und Mezzanine Card gibt PMC den Namen Es 13 Kapitel 2 Grundlagen wird der PCI Bus Periphereal Component Interconnect zur Kommunikation verwendet PMC basiert auf der CMC Spezifikation Common Mezzanine Card die konstruktive mechanische thermische und elektrische Vorgaben macht Die PMC Spezifikation beschreibt die Belegung der durch CMC beschriebenen Steckverbinder zwi
142. ohne Daten bertragung beendet wird Da der LEON keine Kenntnis ber die an den PCI Bus angeschlossenen Komponenten hat max 16 am direkt angrenzenden Bus versucht er jede m gliche Komponente beim Durchsuchen nach dem Memory Controller zu adressieren Da nicht zwangsl ufig alle theoretisch m glichen PCI Komponentenpl tze belegt sind k nnen Zugriffe auf nicht vorhandene Komponenten eintreten Diese werden selbstst ndig durch die AMBA PCI Bridge nach den PCI Konventionen abgebrochen Dies wird an das AHB Bus Interface weitergegeben das darauf einen AHB Fehler signalisiert Um solche Zugriffe trotzdem ausf hren zu k nnen ohne den LEON zu stoppen Error Mode ist ein zus tzliches Register in die Bridge implementiert worden mithilfe dessen die Erzeugung von Fehlern oder Retry auf dem AHB Bus unterdr ckt werden kann Im gleichen Register werden diese Fehlermeldungen jedoch gespeichert Dieses Register kann ber das 93 Kapitel 4 Implementierung und Test des LEON auf AVNET Board APB Interface vom LEON aus gelesen und geschrieben werden Dadurch kann ber Software die Korrektheit einer Ubertragung berpr ft werden PCI Komponente als Initiator soll die PCI Schnittstelle mit einer PCI Komponente als Initiator und dem LEON als adressierter Einheit getestet werden kann dies nicht durch Abarbeitung eines Programms auf dem LEON gemacht werden Stattdessen wird die Software PCI Tools der Firma PLDA benutzt ber eine graphisc
143. oll implementiert um 32 Bit Adresse und Datum zu bertragen Die Kontroll und Statusregister des DCL entsprechen einer eingeschrankten Version der Register der regularen UARTS sind aber genau wie diese ber den APB Bus adressierbar Verwendung Im Allgemeinen ist die DSU dazu da Programme im Betrieb zu debuggen Dabei ist die gebr uchlichste Vorgehensweise entweder eine Abarbeitung des Programms in Einzelschritten ein Festlegen von Adressen an denen gestoppt wird oder eine Kombination aus beidem Auch das Stoppen von Programmen und Debuggen bei Auftreten von Traps ist sinnvoll da Traps im Allgemeinen in Ausnahmesituationen oder durch Interrupts ausgel st werden 44 Kapitel 2 Grundlagen Um das Debugging komfortabler zu machen ist normalerweise eine Software auf einem externen Rechner installiert mit der der Anwender auf den DCL zugreift Die Software wird in aller Regel durch abstrakte Befehlss tze gesteuert und zerlegt diese in hardwarespezifische Anweisungen f r die DSU Gaisler Research stellt dazu einen sog DSU Monitor zu Verf gung sind sowohl DSUEN als auch DSUBRE beim Systemstart schon aktiviert kann die DSU benutzt werden um dar ber den Bootvorgang zu bewerkstelligen Dies bedeutet dass die Initialisierung des Prozessors und seiner Komponenten von extern gemacht wird um dann Anwenderprogramme zu laden und zu debuggen Dies ist f r Testzwecke sinnvoll da dadurch ein Boot PROM nicht ben tigt wird oder hierdurch ne
144. onfiguration kann auf zwei Arten geschehen Erstens ber das JTAG Interface bzw durch Xilinx definierte Standards z B ber die Xilinx IMPACT Software Im Serial oder Parallel Mode Dabei geht die Konfiguration bei Unterbrechung der Spannungsversorgung verloren Zweitens kann ber eine Kombination aus CPLD und Flash Memory im SelectMap Modus konfiguriert werden Dazu ist spezielle Software zum Beschreiben des Flashs und eine CPLD Konfiguration notwendig die vom Hersteller zu Verf gung gestellt werden Bei dieser Art der Konfiguration wird das FPGA bei Anlegen der Spannungsversorgung automatisch konfiguriert Speicher Zwei Speicherarten sind auf der Leiterplatte vorhanden Beide sind in 64 Bit Worten angeordnet und an denselben Speicherbus angeschlossen Als Flash Memory stehen 4 Bausteine AM29LV641 FLASH der Firma AMD mit insgesamt 32 MB zu Verf gung Da der Inhalt ohne Spannungsversorgung erhalten bleibt eignet sich dieser Speichertyp f r das LEON Design als ROM bzw Boot ROM 11 Kapitel 2 Grundlagen Der nicht permanente Speicher des ADS XLX VE DEV besteht aus 4 SDRAM Bausteinen MT48LC8M16A2TG der Firma Micron mit einer Gesamtkapazitat von 64MB Dieser Speicher wird als Arbeitsspeicher fur den LEON Prozessor benutzt PCI Bus Die PCI Schnittstelle unterst tzt 32 oder 64 Bit Betrieb bei 33 MHz und 3 3V Standard Es wird allerdings nur der 32 Bit Betrieb getestet da sowohl die verwendete AMBA PCI Bridge als auch das verwe
145. op Back LB Wenn gesetzt wird der Loop Back Modus aktiviert e Flow Control FL Wenn gesetzt ist das Hardware Handshaking aktiviert e Parity Enable PE Wenn gesetzt wird beim Senden ein Parit tsbit erzeugt und beim Empfangen die Paritat berpr ft e Parity Select PS Schaltet zwischen even und odd parity um 1 odd 0 even e Transmitter Interrupt Enable TI Wenn gesetzt ist Interrupt Generierung beim senden aktiviert e Receiver Interrupt Enable RI Wenn gesetzt ist Interrupt Generierung beim Empfangen aktiviert e Transmitter Enable TE Wenn gesetzt ist der Sender aktiviert e Receiver Enable RE Wenn gesetzt ist der Empf nger aktiviert Das UART Status Register enthalt Informationen ber Zustand der UART und Fehler beim bertragen Die Belegung des Registers ist in Abb 2 22 dargestellt 39 Kapitel 2 Grundlagen 4 Leiner RESERVED GC Abb 2 22 UART Status Register Quelle L10 e Framing Error FE Das empfangene Datenformat entsprach nicht dem Soll e Parity Error PE Zeigt einen Paritatsfehler beim Empfang an Overrun OV Zeigt an dass Informationen wegen Uberschreiben verloren gegangen sind Break Received BR Zeigt eine Unterbrechung beim Empfangen an Transmitter Hold Register Empty TH Trans Holding Register ist leer Transmitter Shift Register Empty TS Trans Shift Register leer Data Ready DR Zeigt an dass ein empfangenes Zeichen im Receiver Holding Registe
146. optional ein Parit tsbit gesendet und zum Schluss ein Stopbit Abb 2 20 zeigt beide Moglichkeiten Ist das Hardware Handshaking aktiviert muss CTSN aktiv sein d h Low damit ein sendevorgang gestartet wird CTSN wird mit dem RTSN Ausgang des externen Empfangers verbunden Ist die Interrupt Generierung f r Senden aktiviert wird ein Interrupt signalisiert wenn das Transmitter Holding Register in das Transmitter Shift Register kopiert wird Durch den Interrupt wird mitgeteilt dass das n chste zu sendende Zeichen in das Transmitter Holding Register geschrieben werden kann Data frame no parity Start DO D1 D2 D3 D4 D5 D6 D7 Stop Data frame with parity Start DO D1 D2 D3 D4 D5 D6 D7 Parity Stop Abb 2 20 Sendeformat der UART Quelle L10 Empfanger Ist der Empfanger aktiviert und registriert an RXD ein Startbit d h ein bergang von 1 auf 0 wird das empfangene Zeichen 8 Bit in dem Receiver Shift Register gespeichert und 38 Kapitel 2 Grundlagen anschlie end in das Receiver Holding Register geschrieben Dies kann gelesen werden durch einen Lesezugriff auf das UART Data Register Die acht LSB enthalten das gelesene Zeichen Beim Empfang wird auch berpr ft ob das Format der gesendeten Information korrekt ist und ob die Paritat stimmt Tritt ein Fehler auf wird dies im UART Status Register gespeichert Werden empfangene Zeichen nicht schnell genug ausgelesen kann es passieren dass
147. ow und schaltet intern auf das signalisierte Protokoll um Wie aus Tabelle 2 2 zu sehen wird bisher nur ein Busprotokoll benutzt Reservierte Kodierungen sind fur die Zukunft vorgesehen BUSMODE4 BUSMODE3 BUSMODE2 Beschreibung Test ob Karte vorhanden Wenn CMC vorhanden BUSMODE1 Low Kein Busprotokoll benutzen BUSMODEI gt Low wenn Karte vorhanden und PCI f hig PCI Protokoll benutzen LE H reserviert gt gt gt E H H Leven H L reserviert o 5 5 0 H L H Jpqpprmsrit 0 0 3 L reserviert oS 3 reserviert H H H kein Host vorhanden nN Tabelle 2 2 BUSMODE Kodierung 16 Kapitel 2 Grundlagen 2 1 3 2 PMC Spezifikation Die PMC Spezifikation ist ein Zusatz zur CMC Spezifikation der beschreibt wie die Connectoren zwischen Host und Mezzanine Card PMC Steckverbinder mit busspezifischen signalen belegt sind Stecker 4 ist optional und vollstandig durch die CMC Spezifikation beschrieben Stecker 1 und 2 werden f r den 32 Bit PCI Bus verwendet Zusatzliche Signale f r 64 Bit PCI Betrieb liegen an Stecker 3 Dieser ist also f r 32 Bit PCI berfl ssig und muss nicht auf einer PMC vorhanden sein Tabelle 2 3 und Tabelle 2 4 stellen die vorgeschriebene Pinbelegung der PMC Steckverbinder dar Pin Signal Signal Pin Pin Signal Signal TCK rV DD 1 v ais P Ground NTA 14 B TMS mo 4 INTB NICH np 5 DI Ground 6 BUSMODEI kay
148. ping Quelle L 10 34 Interrupt Labelle Quelle LLO ao dial 36 Vordefinierte Belegung des PIO Quelle L10 sess 4 Adressen Zuordnung des Memory Controllers Quelle L10 4 AHB Address Mapping von DSU und DCL Quelle L10 45 Packages zur Kon Ura O 46 Signalbeschreibung des Top Levels nnnnneeeneeneseneeeseeseeeseseessesssssssssssssssssess 62 Bypass Kondensdtoren f r das FPGA ne nested tutu Oepl 64 Belegung des Flachbandkabelsteckers 67 m gliche Widerstandsteiler zur Erzeugung von 3 3V 68 Jumpereinstellungen zur Konfiguration und Scrubbin g 70 Vergleich der Ethernet PHY Beschaltung a au unn aun iu 72 Bele cui des PI POPE u eine 88 Verzeichnis der Abbildungen Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb gt 41 de 23 2 4 2 5 2 6 25 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2417 2 18 2 19 2 20 2 2 2 22 2 03 2 24 2 25 2 26 2 27 2 28 31 20 3 3 3 4 3 5 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 AVNET Virtex E 1000 Evaluation Board
149. r dek Ue ju 132
150. r steht 2 2 1 7 Parallele Schnittstelle Der LEON stellt eine 32 Bit breite parallele Schnittstelle zu Verf gung Parallel I O Port PIO Allerdings sind diese 32 Bit nur dann ausnutzbar wenn alle angeschlossenen Speichertypen mit einer Wortbreite von maximal 16 Bit arbeiten und kein SDRAM verwendet wird Dies 1st f r die verwendeten Boards nicht der Fall Das AVNET Board ist mit SDRAM in 64 Bit Konfiguration best ckt s Kapitel 2 1 1 1 und das entwickelte PMC Board mit SRAM n einer 32 Bit Kombination s Kapitel 3 1 4 6 Deshalb bleiben nur die unteren 16 Bit nutzbar vgl L10 Kapitel 6 6 Von diesen 16 Bit ist jedes Bit wahrend der Laufzeit individuell konfigurierbar ob es als Ausgang oder Eingang verwendet wird Dies geschieht ber die unteren 16 Bit des O Port Direction Register Ein gesetztes Bit entspricht der Benutzung als Ausgang Um off chip Pins zu reduzieren verwendet das LEON Design bei Benutzung der beiden UARTS oder eines externen Boot PROM den PIO als Schnittstelle daf r Tabelle 2 11 zeigt die Belegung der einzelnen Ports Dies schr nkt die M glichkeiten der Verwendung des PIO f r anwenderspezifische Zwecke sehr ein Vier der Signale k nnen als externe Interrupt Signale benutzt werden vgl Kap 2 2 1 4 Ob und welche Ports als Interrupts benutzt werden sollen und wie das Eingangssignal getriggert wird um einen Interrupt auszul sen wird im V O Port Interrupt Configuration Register festgelegt Dieses Regis
151. r verschiedenen Kondensatoren auf dem Board zu beschranken werden f r niedrige Frequenzen 47 uF Tantalum Kondensatoren benutzt f r mittlere und hohe 63 Kapitel 3 Eigenentwicklungen Frequenzen 100 nF bzw 10 nF XR7 Kondensatoren Weil kein Kondensator ber 47 uF als qualifiziertes SMD Bauteil vorliegt wird der Prozentanteil der 47 uF Kondensatoren erhoht Von 100 entfallen 15 auf 47 uF 30 auf 100 nF und 55 auf 10 nF VCCINT 36 Pins VCCO 40 Pins 47 uF Ws ES CI 100 nF 100 Tabelle 3 2 Bypass Kondensatoren fur das FPGA F r die brigen verwendeten Bauteile liegen keine Herstellerangaben ber Bypass Kondensatoren vor Erfahrungswerte von anderen Entwicklern zeigen jedoch dass 100 nF Kondensatoren als Bypass Kondensatoren gut geeignet sind Deshalb wird pro VCC Pin ein 100 nF Kondensator bei den Bauteilen LT1130ACSW RS232 Treiber AM29F016D Flash Memory XC18V02 bzw XC18V04 Konfigurations PROMs und uPD434008A SRAM verwendet Zusatzlich zu diesen sind in Anlehnung an das Referenz Design des AVNET Boards zwei 10 uF Kondensatoren den Flashs zugeordnet Einer dem Konfigurations Flash und einer der ROM Bank In Analogie dazu ist jeder SRAM Bank ein 10 uF Kondensator zugeordnet 3 1 4 2 VIRTEX1000 s A 2 Blatt 3 13 Da es unpraktisch ist ein Symbol mit 560 Pins zu benutzen ist das FPGA fur die vereinfachte Verwendung im Schematic in mehrere Symbole zerlegt worden die zum Anschluss der allgemeinen Funktio
152. rap Modell kann variabel im Adressraum abgelegt werden Das TBR enthalt die Anfangsadresse dieses Adressraumes die Trap Base Address TBA Der Trap Type TT Eintrag wird durch die Hardware erzeugt wenn ein Trap auftritt Die 25 Kapitel 2 Grundlagen unteren Bits sind Null Der Inhalt dieses Registers stellt die absolute Adresse dar zu der gesprungen wird wenn sich ein Trap ereignet und ET 1 ist 31 12 1 4 NU Abb 2 13 Trap Base Register TBR Quelle L10 Program Counters PC nPC Der PC enthalt die Adresse des Befehls der gerade ausgef hrt wird Der nPC next Program Counter enthalt die Adresse des nachsten auszuf hrenden Befehls Nach einem Reset oder nach dem Einschalten wird der PC auf 0x0 und der nPC auf 0x4 initialisiert Multiply Divide Register Y Dieses Register enthalt die h herwertigen 32 Bit einer Multiplikation oder Division mit doppelter Genauigkeit Ancillary State Register ASR Bis zu 31 Register werden durch die SPARC Spezifikation unterst tzt Davon sind die Register 1 15 f r die Zukunft reserviert Die Register 16 31 k nnen je nach Implementierung f r Timer Diagnose o verwendet werden Der LEON benutzt die Register 18 und 24 31 ASR 18 wird als Hilfsregister f r die Multiply and Accumulate MAC Befehle verwendet Es gibt zwei verschiedene MAC Befehle unsigned UMAC und signed SMAC ASR 24 31 werden f r sog Watchpoints benutzt Das sind vom Benutzer ber
153. ration register 2 Secondary interrupt pending register Memory configuration register 3 Secondary interrupt status register AHB Failing address register Secondary interrupt clear register AHB status register Cache control register Power down register Write protection register Write protection register 2 LEON configuration register Timer counter register Timer reload register Timer control register Watchdog register Timer 2 counter register Timer 2 reload register Timer 2 control register Scaler counter register Scaler reload register Uart data register Uart status register Uart scaler register Uart 2 data register Uart 2 status register Uart 2 control register Uart 2 scaler register Interrupt mask and priority register Interrupt pending register Interrupt force register Interrupt clear register I O port input output register I O port direction register I O port interrupt register Tabelle 2 9 On Chip Register APB Mapping Quelle L10 2 2 1 4 Interrupt Controller Moderne Prozessoren arbeiten mit Prioritaten in der Interruptverarbeitung D h dass durch Systemsoftware den verschiedenen Interrupts die in einem System auftreten k nnen auch verschiedene Stufen der Wichtigkeit zugeordnet werden Dies hat den Vorteil dass bei Anforderungen mehrerer Interrupts zur gleichen Zeit zuerst der abgearbeitet wird der die 34 Kapitel 2 Grundlagen h chste Prioritat hat Der LEON arb
154. rekt implementiert werden d h das Synthese Tool hat keine Entscheidungsfreiheit oder ob dem Synthesetool die Instantiierung der technologieabhangigen Elemente berlassen wird e Boot Konfiguration Es kann festgelegt werden von welchem Ort aus gebootet wird Entweder wird ein sog internes Boot PROM instantiert oder aus externem Speicher gebootet Es st auch m glich durch Wahl von PIO 4 zwischen extern und intern zu unterscheiden Das sog interne Boot PROM ist nicht im eigentlichen Sinne ein PROM Es ist ein durch ein VHDL File emuliertes PROM das aus C Code oder Assembler erzeugt werden kann s Kapitel 4 2 Der Im Test benutzte LEON hat folgende peripheren Komponenten DSU PCI Bridge und LEON Konfigurationsregister Es werden die Standard Adressbereiche verwendet s Kapitel 2 2 1 3 Fur die PCI Bridge werden die Adressbereiche 0x80000100 0x800001FC APB Bus und 0xA0000000 OxFFFFFFFC AHB Bus verwendet 78 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Die IU wird mit 8 Registerfenstern und 4 Watchpoints implementiert sowohl Befehls als auch Datencache werden mit zwei Sets mit je 1 kB Speicherkapazitat implementiert Die Replacement Policy 1st random Die Zieltechnologie ist die Virtex Reihe Das Instantiieren von RAM und Registers tzen wird direkt gemacht alles andere kann das Synthese Tool instantiieren Es wird von einem internen PROM gebootet Die instantiierte PCI Bridge hat auch Konfig
155. respondierenden Daten RAM ist ein Bit vorgesehen Eine signalisiert dass das zugehorige Wort im Cache enthalten ist 29 Kapitel 2 Grundlagen Befehlscache Neue Instruktionen werden ber den Befehlscache geholt Enthalt dieser nicht den Befehl der an der angeforderten Adresse steht wird der Befehl aus dem Speicher geholt im Cache abgelegt und an die IU weitergereicht Ist nstruction Burst Fetch 1m Cache Control Register CCR aktiviert wird die gesamte Cache Zeile mit den folgenden Befehlen aufgef llt Dieser Vorgang wird abgebrochen wenn ein Sprungbefehl ausgef hrt wird Hintergrund dieser Funktion ist dass Befehle ihrer chronologischen Abfolge entsprechend linear hintereinander im Speicher abgelegt sind Ausnahmen davon bilden Sprungbefehle Die mit den im Daten RAM stehenden Befehlen korrespondierenden VALID Bits werden bei erfolgreichem Lesen aus dem Speicher auf 1 gesetzt Datencache Ist ein angefordertes Datum nicht 1m Datencache vorhanden wird es aus dem Speicher gelesen Ein Aquivalent zum nstruction Burst Fetch gibt es nicht da Daten im Allgemeinen nicht in der linearen Reihenfolge wie Befehle abgespeichert sind und ben tigt werden Im Gegensatz zu Befehlen werden Daten nicht nur geladen sondern auch abgespeichert Der im LEON implementierte Daten Cache benutzt daf r das Write Through Verfahren Dieses verandert sollte ein Eintrag f r die entsprechende Schreibadresse im Cache vorhanden sein sog Write Hit
156. rogramm das solange UART1 Data und UART1 Controll Register abfragt bis ein Zeilenumbruch empfangen wird Die Zeile wird zwischengespeichert und anhand der Codierung entweder gar nicht benutzt wenn das Format nicht SREC ist die darin enthaltenen Daten an die auch darin enthaltene Adresse geschrieben oder die darin enthaltene Adresse als Einsprungadresse interpretiert Danach wird die n chste Zeile eingelesen au er es wurde eine Einsprungadresse empfangen In diesem Fall wird eine Nachricht ber den Empfang der Datei auf UART 1 ausgegeben transfer completed Anschlie end wird ein Unterprogrammaufruf zu der empfangenen Einsprungadresse gemacht Das gesendete Programm wird abgearbeitet und nach dessen Beendigung wird in das Boot Loader Programm zur ckgekehrt Dieses gibt program completed 84 Kapitel 4 Implementierung und Test des LEON auf AVNET Board auf UART 1 aus und beginnt wieder mit dem Einlesen eines SREC Files auf UART I Abb 4 5 stellt den Programmablauf graphisch dar Ausgaben werden auf UART 1 gesendet Initialisierung PSR WIM UART 1 amp 2 aktivieren Cache deaktivieren Initialisierung MCFG 1 2 3 Stackpointer setzen LEON 1 End initialization Zeile an UART 1 einlesen Daten speichern Einsprung adresse transfer completed Programmaufruf program completed Abb 4 5 Programmstruktur des Boot Loaders 85 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4
157. rogrammstruktur Zur Kompilierung wird auch eine Trap Table und Routinen f r die Interrupt Behandlung eingebunden die nicht in der Abbildung dargestellt sind Jede Interrupt Behandlung besteht aus einer Ausgabe auf UART 1 IRQ13 activated bzw Timer1 IRQ bzw Timer2 IRO Das Programm konfiguriert zuerst die PIO Schnittstelle f r seine Bed rfnisse Anschlie end werden die Timer Register so gesetzt dass Timer 1 in ca 3 Sekunden Abst nden IRQs erzeugt und Timer 2 in ca 6 Sekunden Abst nden M gliche noch ausstehende IRQs im IRQ Pending Register des IRQ Controllers werden gel scht Die IRQs 8 9 Timer 1 Timer 2 und 13 werden demaskiert bevor Traps zugelassen werden Danach wird der PIO zyklisch abgefragt und ausgewertet Die Hilfsvariablen x y z verhindern dass entweder kontinuierlich IRQI3 gesetzt wird oder Timer 1 2 st ndig neu aktiviert werden was im vorliegenden Programm ein erneutes Laden des Zahlers und damit keine IRQ Generierung zur Folge hatte Vor dem Abbruch des Programms werden Traps wieder deaktiviert 95 Kapitel 4 Implementierung und Test des LEON auf AVNET Board PIO direction Reg lesen PIO lesen IO direction Reg schreiben IRQ 13 setzen im gister Scaler Timer 1 Timer 2 Register mit Reloadwerten schreiben M gliche noch anstehende IRQs l schen im IRQ Pending Register IRQ 8 9 13 zulassen im IRQ Mask Register A PIO 6 1 ja amp z 0 ee 2 aktivieren z
158. rwenden ist eine einfache UART im LEON implementiert der DSU Communication Link DCL Dieser kann z B ber spezielle Debug Software angesteuert werden Ob eine DSU implementiert wird kann durch die Konfigurationseinstellungen des LEONs w hrend der Synthese bestimmt werden In Abb 2 25 sind DSU Trace Buffer und DCL schematisch dargestellt LEON processor LEON SPARC V8 Debug I F Integer unit DSUEN Debug DSUBRE DSUACT Support Unit I Cache D Cache AHB interface AMBA AHB Debug DSUTX DSURX Comm Link Abb 2 25 DSU und DCL Quelle L10 Die externen Signale off chip und ihre Bedeutung sind DSU enable DSUEN Aktiviert die DSU DSU break DSUBRE Setzt den Prozessor in Debug Mode DSU act DSUACT Zeigt an dass der Prozessor im Debug Mode ist DSUTX Ist die Sendeleitung des DCL DSURX Ist die Empfangsleitung des DCL Eine Beschreibung der zugrunde liegenden Kontroll und Statusregister von DSU Trace Buffer und DCL ist in der Bedienungsanleitung des LEONS zu finden 43 Kapitel 2 Grundlagen Debug Support Unit DSU Die DSU kann ber einen 2 MB gro en Adressraum auf dem AHB Bus adressiert werden Tabelle 2 13 zeigt die Adress Zuordnung der DSU und des DCL Die DSU Kontroll Register k nnen immer angesprochen werden Auf den Trace Buffer kann nur zugegriffen werden wenn dieser aktiviert ist Der Debug Mode kann aktiviert werden durch Traps Traps die den Prozessor
159. s TT Feldes erm glichen 256 unterschiedliche Traps Die Halfte davon ist f r Hardware Traps vorgesehen die andere Halfte f r Software Traps Software Traps sind Traps die durch Software ausgel st werden Dies geschieht ber den Befehl Ticc Neben dem TT Feld enthalt das TBR auch die 7rap Base Address TBA Die untersten 4 Bit sind Nullen Das gesamte Register TBR stellt eine Adresse dar An dieser Adresse befindet sich der Trap Handler also Software Code der die Behandlung des Traps sicherstellt Man erkennt leicht dass alle 256 m glichen Traps einen zusammenh ngenden Speicherbereich von 4 kB belegen dessen Anfang durch die TBA gegeben ist Dieser Speicherbereich wird als Trap Table bezeichnet Durch die Aufteilung des Speicherbereiches in 4 Befehle pro Trap die 4 LSB des TBR sind immer Null ist der Platz den ein Trap Handler einnehmen k nnte sehr gering Deshalb sind an den jeweiligen Stellen normalerweise neue Einsprungadressen festgelegt also Sprungbefehle an denen der eigentliche Trap Handler steht Allen Traps sind Priorit ten zugeordnet Priorit t 1 ist die h chste Priorit t 31 die niedrigste Priorit t Sind zum gleichen Zeitpunkt verschiedene Ausnahmen oder Interrupts aktiv wird der Trap mit der h chsten Prioritat bevorzugt behandelt Dabei wird davon ausgegangen dass nicht behandelte Interrupt Anforderungen weiter bestehen bleiben und Ausnahmen mit niedrigerer Priorit t als der des aktuell Behandelten bei einer erneute
160. schen Host und Mezzanine Card Einige Belegungen sind durch CMC schon vorgegeben In den folgenden Kapiteln werden die beiden Spezifikationen kurz zusammengefasst um sich 1m spateren Verlauf darauf zu beziehen 2 1 3 1 CMC Spezifikation Die CMC Spezifikation Common Mezzanine Card beschreibt konstruktive mechanische und thermische Anforderungen die unter dem Punkt Mechanische Anforderungen subsummiert sind Elektrische und logische Vorgaben beziehen sich auf Bustyp unabhangige signale Mechanische Anforderungen Die CMC Spezifikation beschreibt zwei Mezzanine Card GroBen Single CMC und Double CMC Die Diplomarbeit befasst sich mit einer Single CMC Abb 2 5 zeigt eine Single CMC im folgenden CMC mit ihren zwei Seiten Seite 1 ist die Seite die der Host Karte zugewandt ist und die Steckverbinder sowie I O Stecker beherbergt Die Fl che des I O Bereiches wird als Front Panel Front Bezel oder CMC Bezel bezeichnet Seite 2 ist die dem Host abgewandte Seite Abb 2 6 illustriert wie eine CMC Karte auf einer Host Karte sitzt SIGNAL VOLTAGE KEY HOLE SIANDOFF SINGLE CMC Abb 2 5 Typische Single CMC Quelle L7 14 Kapitel 2 Grundlagen CMC BEZEL HOST FACE PLATE Abb 2 6 CMC auf einer Host Karte Quelle L7 Die CMC Spezifikation sieht zwei verschiedene Spannungspegel vor mit denen der Bus zwischen Host und CMC arbeitet Dies sind 3 3V und 5V Durch zwei Locher in der CMC kann der Host erkennen welche S
161. schieht entweder durch einen LDA bzw STA Befehl mit ASI 0x5 oder ASI 0x6 oder durch Setzen des Bits 21 bzw Bits 22 des Cache Control Registers CCR Das L schen dauert einen Takt pro Cache Zeile Wahrend dieser Zeit ist der Cache deaktiviert Danach wird der Cache automatisch wieder in den Aktivit ts Zustand versetzt der durch das CCR vorgegeben ist Cache Control Register CCR Das CCR dient zur Kontrolle des Befehls und des Datencaches und zum Abfragen der Zust nde der Caches Abb 2 16 zeigt den Aufbau des CCR 3 3029 2827 26 25 24 23 22 21 16 15 14 6 5432 10 DREPL IREPL DSETS RESERVED IB IP RESERVED Abb 2 16 Cache Control Register CCR Quelle L10 3l Kapitel 2 Grundlagen Die Felder haben folgende Bedeutungen e Data cache replacement policy DREPL Gibt an auf welche Weise zwischen den sets des Daten Caches gewechselt wird 00 kein Wechsel entspricht Direct Mapped Cache 01 zufallig 10 least recently replaced LRR 11 least recently used LRU Instruction replacement policy IREPL Entspricht DREPL f r den Befehlscache Data cache associativity DSETS Gibt die Anzahl der Sets des Datencaches an Instruction associativity ISETS Entspricht DSETS f r den Befehlscache Data cache snoop enable DS Wenn gesetzt ist cache snooping des Datencaches aktiviert Flush data cache FD Wenn gesetzt wird der Datencache gel scht e Flush instruction cache FI Wenn gesetzt wird der Befehlscache ge
162. scontroller der einzelnen Peripherie Komponenten AHB Bus Der Advanced High Performance Bus AHB wird fur Anwendungen verwendet die einen hohen Datendurchsatz erfordern Im LEON wird das AHB Interface der IU ber den AHB Bus mit dem Memory Controller verbunden Au erdem ist die APB Bridge und die Debug Support Unit DSU angeschlossen vgl Abb 2 8 Das Address Mapping ist durch die Konstante ahbslvcfg tkconfig im VHDL Code der Datei device vhd festgelegt Als standard wird das Mapping aus Tabelle 2 8 verwendet 22 Kapitel 2 Grundlagen Address u Size Mapping Module l0x00000000 OxIFFFFFFF OXIFFFFFFF Memory contr Son Pr 0x20000000 Ox3FFFFFFF Ox 7FFFFFFF APB bridge i Tabelle 2 8 Standard AHB Mapping Quelle L10 APB Bus Der Advanced Peripheral Bus APB ist dem AHB Bus nachgeschaltet Als Bindeglied dient die APB Bridge vgl Abb 2 8 Der LEON benutzt den APB Bus vor allem dazu Kontroll und Statusregister der on chip liegenden Peripherie zu adressieren Das Mapping des APB Busses ist durch die Konstante apbslvcfg_tkconfig im VHDL Code der Datei device vhd festgelegt Als Standard wird das Mapping aus Tabelle 2 9 verwendet Die Verwendung der einzelnen Register ist den entsprechenden Komponentenbeschreibungen zu entnehmen 33 Kapitel 2 Grundlagen an eee qe TL _ 0x80000000 Memory pum UO register Secondary interrupt mask register Memory configu
163. sierte PCI Teilnehmer ist eine als Memory Controller deklarierte PCI Einsteckkarte die 4kB SRAM verwaltet Das Testprogramm durchsucht zuerst den PCI Bus nach einem Memory Controller Dies geschieht ber Lesezugriffe auf den Konfigurationsbereich Wird die gew nschte Komponente gefunden wird dies ber UART 1 mitgeteilt die Adresse auf dem PCI Bus gelesen und wenn n tig durch einen Schreibzugriff auf den Konfigurationsbereich des Memory Controllers die M glichkeit des Zugriffs auf seinen Speicher aktiviert Wird kein Memory Controller gefunden wird dies auch an UART 1 mitgeteilt und das Programm abgebrochen Bei Erkennung des Controllers wird im Anschluss ahnlich des Flash Tests s Kapitel 4 2 3 5 verfahren 1 Einlesen eines SREC File an UART 1 und Speichern im SDRAM 2 Kopieren der empfangenen Daten in den Memory Controller 3 Auslesen des Memory Controllers und Vergleich mit den Daten im SDRAM Im Unterschied zum Flash Test kann auf den Memory Controller zugegriffen werden wie auf normalen SRAM D h dass eine Ubertragung auf dem AHB Bus ein Wort liest oder schreibt L schen ist nicht notwendig da der adressierte Speicher SRAM ist Anmerkung Im Laufe der Entwicklung dieses Testprogramms stellte sich heraus dass der LEON immer in Error Mode geht wenn eine bertragung auf dem AHB Bus mit signalisierung eines Fehlers oder Retry beendet wird Dies geschieht z B wenn eine bertragung vom LEON auf dem PCI Bus initiiert wird aber
164. sk Register WIM gesetzt so dass das aktuelle Register Fenster Nr 7 ist Traps werden nicht zugelassen da bis auf den Test der IRQs s Kapitel 4 2 4 1 keine Trap Table programmiert wird Um Fehlerquellen auszuschlie en werden sowohl der Befehls als auch der Datencache deaktiviert Beide UARTs werden aktiviert und auf 38 kbaud eingestellt SRAM wird deaktiviert und SDRAM aktiviert und entsprechend den verwendeten Bausteinen die Parameter CAS RAS Organisation und Refresh Zyklus eingestellt Anschlie end wird der Stackpointer auf das Ende des SDRAM Speicherbereiches gesetzt und folgende Boot Message ber UART 1 ausgegeben LEON 1 gt end initialization Die Kommunikation mit UART 1 wird ber ein Hyperterminal auf einem PC hergestellt Das Senden von Zeichen ber die serielle Schnittstelle wird durch ein Unterprogramm gemacht das einen Zeichenstring zeichenweise in das UARTI Data Register schreibt s Kapitel 2 2 1 6 Nach Senden der Boot Message wartet das Programm auf eine Executable in Form eines SREC Files an UART 1 Ein SREC File besteht aus Daten und aus einer Einsprungadresse Anhand der ersten 2 Buchstaben kann zwischen diesen unterschieden werden Diesen Buchstaben folgt eine Adresse die entweder die Speicheradresse f r die dahinterstehenden Daten angibt oder die Startadresse f r das Programm nach Speicherung der zuvor gesendeten Daten Der Boot Loader liest das SREC File zeilenweise ein Dies geschieht durch ein Unterp
165. ss exception TRAP skip OA tag overflow TRAP skip OB watchpoint exception TRAP skip 21 OC undefined TRAP _skip l SD undefined TRAP skip Sk OR undefined TRAP _skip OF undefined TRAP _skip 4 EE undefined TRAP _skip 11 interrupt level 1 TRAP _skip 12 interrupt level 2 TRAP _skip 13 interrupt level 3 TRAP _skip 14 interrupt level 4 TRAP _skip 15 interrupt level 5 TRAP _skip 16 interrupt level 6 TRAP skip 17 interrupt level 7 TRAP _timerl 18 interrupt level 8 TRAP _timer2 19 interrupt level 9 TRAP _skip IA interrupt level 10 TRAP skip 1B interrupt level 11 TRAP skip IC interrupt level 12 TRAPA 179129 ID interrupt level 13 TRAP _skip lE interrupt level 14 TRAP skip IF interrupt level 15 TRAP _skip TRAP Skip TRAP Skip TRAP skip 20 23 undefined TRAP _skip 24 cp disabled TRAP _skip TRAP _skip TRAP _skip 25 27 undefined TRAP _skip 28 cp exception TRAP skip TRAP skip TRAP skip 29 ZA undefined TRAP _skip gt r ZB data Store error TRAP _skip TRAP Skip TRAP _skip TRAP _skip 2C 2F undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 30 33 undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 34 37 undefined TRAP Skip IRAP Skip TRAP skip gt IRAP skip 39 3B undefined TRAP _skip TRAP _skip TRAP _skip TRAP _skip 3C
166. static inline gets unsigned char s struct lregs regs struct lregs 0x80000000 do while regs gt uartstatusl 0x1 s regs gt uartdatal LL Ee SR OR ess Fr 4 break ST while 1 static unsigned int h2i int len unsigned char h unsigned int tmp 0 unsigned int i unsigned char c for i20 i lt len 1 ce IE BE de gt RAM dece SAY BIOS Sise Qo TOT tmp tmp lt lt 4 c return tmp boot unsigned char r 256 Int Lu size ddr Cher data vold Prog 3 double dummy unsigned char bmsg2 transfer completed n n r unsigned char anfang end initialization n n r unsigned char ende program completed n n r puts anfang do gets r EE O wee ey di addr h2ri 8 amp r 4 data unsigned char amp r 12 ae p bg eem YO eel Size cc XXI Sela ra 10 o 1 fOr x1 0 1 9S8120 1 T char ja ar Lr III RZ FIT else if r 1 7 new puts bmsg2 prog vord addr prog puts ende 119 Anhang A 3 Quellcodes while 1 UART 1 Test new hello word program LEON register layout struct lregs Ey volatile volatile volat le volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile voletrile volatile volatile volatile volatile
167. stellten Timer Control bzw Timer2 Control Registern Die drei LSB dieser Register legen das Verhalten des entsprechenden Timers fest e Bit 0 Enable EN Aktiviert den Timer wenn es auf gesetzt ist e Bit 1 Reload Counter RL Wenn dieses Bit gesetzt ist und der Timer auf Null dekrementiert worden ist wird er automatisch mit dem Wert des entsprechenden Reload Registers nachgeladen e Bit 2 Load Counter LC Soll das Timer Value Register manuell geladen werden muss dieses Bit mit einer Eins beschrieben werden Ist EN 1 wird ein Timer bei einem Zahlertaktsignal dekrementiert Dasselbe passiert mit dem Watchdog Value Register wenn ein Wert geladen ist Ist der Inhalt eines dieser Register Null wird das entsprechende Ausgangssignal aktiviert Timerl liegt an IRQ 8 Timer2 an IRQ9 und der Watchdog an dem off chip Signal WDOG Ein Timer wird in Abhangigkeit von RL automatisch mit dem Inhalt des Timer Reload Register geladen oder manuell mit LC 1 Der Wert des Watchdog Value Registers muss tber einen Schreibzugriff auf dieses Register geladen werden 2 2 1 6 UARTs Um mit anderen Ger ten kommunizieren zu k nnen die keinen hohen Datendurchsatz benotigen und eventuell ber langere Kabel verbunden sind stellt der LEON zwei identische UARTS zu Verf gung Diese generieren aus 8 Bit Worten einen seriellen Datenstrom mit oder ohne Paritat Die Umsetzung auf einen elektrischen Standard z B RS232 geschieht au erhalb des LEON durch sp
168. ter ist in Abb 2 23 dargestellt Im LEON sind die Interrupts 4 bis 7 f r den PIO reserviert Dabei ist der Port der durch das Feld ISELO im I O Port Interrupt Configuration Register bestimmt wird dem IRQ 4 zugeordnet Feld ISELI IRQ 5 usw 31 30 29 28 24 23 22 21 20 16 15 14 13 12 8 7 6 5 ml en ENLE PL mm Abb 2 23 I O Port Interrupt Configuration Register Quelle L10 e LO Port Select ISELn Legt fest welcher I O Port benutzt wird e Polarity PL Wenn gesetzt wird ein Interrupt bei High Pegel am Eingang ausgel st bzw bei einer positiven Flanke siehe LE e Level Edge Triggered LE Wenn gesetzt wird das Eingangssignal auf Flanke getriggert sonst auf Pegel e Enable EN Wenn gesetzt ist die Interrupt Generierung aktiviert 40 Kapitel 2 Grundlagen UARTI transmitter data UARTI transmitter en ns O UARTI receiver data UARTI flow control enabled UARTI clear to send PIO 11 UART2 transmitter data EE UART2 request to send UART2 clear to send Internal or external boot prom Use as alternative UART clock Defines prom width at boot time Tabelle 2 11 Vordefinierte Belegung des PIO Quelle L10 2 2 1 8 Memory Controller An den LEON konnen off chip verschiedene Speichertypen angeschlossen werden Der LEON unterstutzt die Verwendung von PROM SRAM SDRAM und Memory gemappte I O Bausteine Um die verschiedenen Komponenten anzusteuern ist ein Memory Controller implementiert Dieser dekodiert
169. tile wO Tat ke volatile volatile volatile voletrile volatile volatile volatile volatile volatile volstzxle volatile volatile volatile volat le volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile volatile unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned Int Int Inte Int ERE Int Int bebe Int int int Inte inte int aR sum Int Int int WAL LOVE int Int int ine LE Int Int Int Int int int Int Int Inte POE LE Int Ine WAL IRE int Int T ah memcfgl memcfg2 ectrl failaddr memstatus Sa powerdown writeprotl writeprot2 leonconf dummy2 dummy 3 dummy 4 dummy5 dummy 6 dummy trimerontli timerloadl amet Cr el wdog tel timerload2 t mereerl gt dummy 8 scalercnt scalerload dummy 9 dummy10 uartdatal uartstatusl vatt uartscalerl uartdata2 Uarttstatusz latter LA uartscaler2 irqmask irgpend irgforce irqclear piodata Plodir PLOEG ES os JE OXLO 47 HE ORD Oo 9 Le ORO Hy x 0x40 Zei 117 Anhang
170. trium GmbH ist eine PMC Karte Dieses System dient zur Fehlererkennung und korrektur und kann als Referenz f r die PMC Schnittstelle benutzt werden Das AVNET Board s Kapitel 2 1 1 das auch als Testboard f r den LEON verwendet wird dient als Referenz f r Testschalter LEDs etc und Treiberbausteine Zuerst wird in Kapitel 3 1 1 auf die Anforderungen die an das Board gestellt werden eingegangen Anschlie end werden die daraus resultierenden Probleme und Kompromisse thematisiert Kapitel 3 1 3 besch ftigt sich mit den verwendeten Komponenten Es wird begr ndet warum diese Komponenten verwendet werden und wenn n tig eine kurze Beschreibung der Funktionalit t gegeben Ob die Bauteile f r die Weltraumfahrt geforderte Qualifikationen erf llen wird hier auch betrachtet Kapitel 3 1 4 beschreibt die berlegungen die zum entwickelten Design gef hrt haben und das Design selber Das Kapitel ist in die einzelnen funktionalen Module gegliedert die jene im Anhang vorhandenen Schematics reprasentieren 3 1 1 Anforderungsliste seitens der Firma Astrium GmbH sind bestimmte Anforderungen an das zu entwickelnde Board gestellt Diese sind im Folgenden aufgelistet Dabei ist in Anforderungen oder Vorgaben bez glich Funktionalitat Schnittstellen und allgemeine Anforderungen unterteilt Funktionalitat Auf dem Demonstrationsboard muss In einem FPGA das LEON System inklusive PCI Bridge und als IP Core vorhandenem Ethernet MAC Media Ac
171. ttstellen Komponenten Als Treiber f r die RS232 Schnittstellen wird ein 5 fach Transceiver der Firma Linear Technology verwendet LT1130A Dieser hat 5 Sende und 5 Empfangsleitungen Er wandelt beim Senden TTL CMOS Signale in RS232 Pegel und beim Empfangen RS232 Pegel in TTL CMOS Signale um Als RS232 Spannungspegel generiert sich die Komponente aus der 5V Versorgungsspannung nach Herstellerangaben typischerweise 7 3V und 6 5V Es wird die kommerzielle Version im SW Package SO28 benutzt LT1130ACSW Als Treiber f r die Ethernet Schnittstelle wird ein Baustein ben tigt der die untersten physikalischen Layer implementiert hat Diese Bausteine werden unter dem Begriff Ethernet PHY gef hrt Da keine strahlungstolerante Version bekannt ist wird die Komponente verwendet die im Referenzdesign von AVNET verwendet wird Dies ist der Baustein LXT971A der Firma Intel Er unterst tzt 10 Mbps und 100 Mbps Netzwerke im Halb und Vollduplexbetrieb Als Kontroll Interface f r einen Ethernet MAC stellt er das Media Independent Interface MII zu Verf gung Der Baustein wird als 64 Pin LOFP Gehause gew hlt 3 1 3 5 Spannungsversorgung Es werden 3 verschiedene Versorgungsspannungen f r Bauteile auf dem Board ben tigt 5V 3 3V und 2 5V Da vorgegeben ist alle Spannungen aus der 5V Leitung des PCI Bus zu generieren kann die 3 3V Leitung desselben nur optional benutzt werden Funktionsfahigkeit bei ausschlieBlicher Nutzung der 5V Leitung muss m
172. u konfiguriert werden kann OX SODOODOC DSU UART status register Oxs00000cs DSU UART control register Ox800000ce DSU UART sealer register DSU control register Trace buffer control register AHB break address AHB break address 2 Ox 90010000 Ox 90020000 Trace buffer Trace bits 127 96 Trace bits 63 32 Trace bits l 0 U special purpose registers PSR register NPC register VR 4 I Trace bits 95 64 FSR register DSU trap register Ux 90080040 OxX9008007C ASR 16 ASR31 when implemented Instruction cache tags Tabelle 2 13 AHB Address Mapping von DSU und DCL Quelle L10 45 Kapitel 2 Grundlagen 2 2 1 10 VHDL Struktur Der LEON wird durch einen VHDL Sourcecode mit einem Umfang von ca 58000 Zeilen beschrieben der von der Firma Gaisler Research zu Verf gung gestellt wird Von diesen 58000 Zeilen entfallen ca 3500 auf eine Testbench ca 9200 auf Dateien die technologieabh ngige Zellen instantiieren und 25000 auf die Beschreibung verschieden gro er Hardware Multiplizierer Die VHDL Codes lassen sich in vier Kategorien unterteilen Konfigurations Dateien Konfigurations Dateien sind als Packages deklariert und legen Konstanten Einstellungen des LEON und verschiedene Datentypen fest Auch Komponenten werden zum Teil in solchen Packages deklariert Tabelle 2 14 gibt einen berblick ber diese Packages Von diesen m ssen nur TARGET und DEVICE vom Anwender zur Konfiguration des LEO
173. uch mit der Ausgabe Program aborted by user Setzen von PIO 2 und PIO 3 geschieht durch Schreiben des PIO input output Registers mit einer Eins an der jeweiligen Stelle Die Software berpr ft sequenziell PIO 4 und PIO 5 Zum Zwischenspeichern des Ergebnisses wird die Hilfsvariable help benutzt und anschlie end in das PIO Register geschrieben Um mehrmaliges Ausgeben eines Textes bei aktiven PIO 6 zu verhindern wird die Variable y als Abfrage Kriterium benutzt Das Programm testet nur die genannten sechs Bits des PIO in der beschriebenen Richtung Andere Kombinationen oder die Funktionalitat der IRQ Erzeugung in Abh ngigkeit von PIO Eingangs Bits werden nicht getestet Der Test wird mit Testaufbau 1 durchgef hrt Abb 4 1 4 2 3 5 Test Flash Memory Quellcode Seite 124 ff und Seite 121 Das AVNET Board ist mit 4 Flash Speichern ausgestattet die in einer 64 Bit Konfiguration zusammengeschaltet sind Der LEON unterst tzt nur 32 Bit Speicherbreite Deshalb sind nur zwei der Flashs benutzbar Flash Speicher behalten ihre Daten bei Stromausfall und sind programmierbar Sie werden in der verwendeten Konfiguration als ROM Bank 1 an den LEON angeschlossen D h sie sind ab Adresse 0x10000000 adressierbar Flash Speicher kann wie SRAM gelesen werden doch zum Beschreiben und L schen s u des Flashs werden sog Befehlssequenzen verwendet Diese bestehen aus einer unterschiedlichen Anzahl von Schreibzugriffen WE 0 auf ganz b
174. ung dauert ca 3 Stunden Grund f r die lange Programmierzeit ist nach Herstellerangaben die verwendete Software Danach wird das FPGA bei Power Up automatisch mit den Daten des Flash konfiguriert 4 1 1 Konfiguration des LEON Der LEON ist in weiten Teilen konfigurierbar entwickelt worden D h dass durch Variablen vor der Synthese festgelegt werden kann wie das sp tere Design werden soll Dies betrifft vor allem e Verwendete Komponenten Der Anwender kann dar ber entscheiden welche peripheren Komponenten mit dem LEON implementiert werden Zweiter IRQ Controller DSU PCI Bridge PCI Arbiter AHB RAM AHB Statusregister AHB Writeprotection und LEON Konfigurationsregister sind optional e Adressbereiche Auf dem AHB und APB Bus k nnen die Adressbereiche f r die einzelnen Komponenten festgelegt werden e U Konfiguration Es kann konfiguriert werden ob und welcher Hardware Multiplizierer und Hardware Dividierer implementiert werden soll Es kann festgelegt werden w e v el Registerfenster und Hardware Watchpoints implementiert werden Ob ein Co Prozessor oder eine Flie komma Arithmetik an die IU angeschlossen ist ist konfigurierbar e Cache Konfiguration Es ist f r Befehls und Datencache unabh ngig konfigurierbar wie viele Sets von welcher Gr e implementiert werden und welche Art von Replacement Policy s e haben sollen e Synthese Es kann festgelegt werden ob technologieabh ngig spezielle Zellen ROM RAM PADS di
175. urationseinstellungen Folgende werden verwendet e Die Bridge ist keine Host Bridge s Kapitel 4 2 e Die Bridge identifiziert sich anderen PCI Komponenten als Co Prozessor e Die Bridge zeigt dem PCI Bus zwei dahinterliegende Adressbereiche an Einen 64 MB gro en und einen 256 MB gro en Bereich Wird der 64 MB Adressbereich ber den PCI Bus adressiert wird automatisch der Adressbereich des AHB Busses ab 0x40000000 adressiert Dies entspricht dem SDRAM Der 256 MB gro e Adressbereich wird automatisch in einen Zugriff auf den AHB Adressbereich 0x80000000 Ox8FFFFFFC bersetzt Dies entspricht dem Adressraum der APB Bridge Dadurch kann auf die Kontrollregister der On chip Peripherie des LEON zugegriffen werden 4 1 2 Anderungen am Source Code Der Source Code des LEONSs stellt ein Interface f r die AMBA PCI Bridge zu Verf gung und instantiiert die I O Pads selbststandig Signale die an die Bridge gef hrt werden sind unidirektional Die Im urspr nglichen VHDL Core der Bridge vorhandenen I O Zellen sind entfernt worden so dass nur noch unidirektionale Ports im Top Level der Bridge vorhanden sind Die Port List des Top Level Designs des LEON wird um die noch nicht vorhandenen PCI IRQ Ports INT A INT D erweitert Auch die in der Hierarchie darrunterliegenden Komponenten mcore und pc werden um diese Ports erweitert 79 Kapitel 4 Implementierung und Test des LEON auf AVNET Board 4 2 Test Es m ssen versc
176. uter System on Chip SRAM TBA TBR TT TTL UART VHDL VME WIM Static Random Access Memory Trap Base Address Trap Base Register Trap Type Transistor Transistor Logic Universal Asynchronus Receiver Transmitter Very highspeed integrated circuit Hardware Description Language Versa Module Eurocard Window Invalid Mask register Kapitel 1 Einleitung 1 Einleitung Ziel der vorliegenden Diplomarbeit ist es ein Demonstrationsboard fur einen neuen Prozessortyp zu entwickeln und diesen Prozessor darauf zu testen Dieser Prozessor ist der ESA LEON der als VHDL Core von der Firma Gaisler Research zu Verf gung gestellt wird Ist die Funktionsfahigkeit des Prozessors erprobt soll er u U als neuer Prozessortyp in verschiedenen Produkten der Firma Astrium ein alteres Modell ablosen Diese Produkte sind z B der Fault Tolerant Computer FTC oder der Standard Payload Computer SPLC Da der Prozessor als VHDL Modell vorliegt setzt sich die Diplomarbeit aus zwei thematisch unterschiedlichen Aufgabenbereichen zusammen Der erste Aufgabenbereich besteht aus der Entwicklung des Demonstrationsboards Die Planung f r den zuk nftigen FTC der Firma Astrium sieht vor diesen als PMC Board zu entwickeln Dieser Board Typ ist eine Mezzanine Card die rittlings auf einem Tragerboard sitzt und Daten mit diesem ber den PCI Bus Peripheral Component Interconnect austauscht Um den LEON in dieser Umgebung testen zu k nnen wird das Demonstrationsbo
177. volatile volatile volatile volatile volatile VOletile volatile volatile volatile volatile volatile volatile volatile volatile volatile volstzle unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned unsigned puts unsigned char s Int int int int Int Int Inte POE InG Int Int WAL LOVE int Inte Int Int EAE ENC Lat Int TIE int Ae inte Int Int PRE LNG int Int TE IAE int Inte int int EAE ENG Int XH INE inL memcfgl memcfg2 ectrl failaddr memstatus Cachectrl powerdown writeprotl writeprot2 leonconf dummy2 dummy 3 dummy 4 dummy5 dummy 6 dummy tumerontil timer 10341 t merecerl wdog timercnt2 t merload2 ii dummy 8 scalercnt scalerload dummy 9 dummy10 uartdatal uartstatusl latter uartscalerl uartdata2 uartstatusZ wartecr iz uartscaler2 irqmask irgpend irdqforce irqclear piodata priodrrz Dorf FR FE ORTO ue FE O20 x TORSO E 0x40 struct lregs regs struct lregs 0x80000000 while s while regs gt u
178. vy N Ey Y pb Nic e I vb NI e Sv NId vy Te PI Sv Id 37 N sy Y St Nic ery St NI ET 7 NId ar Y At NId gt 4v NId T Br Nia Zy P Q Id a gv Id TTY BV NI ar Y 6v Nic 8 6v NI 5 4S Nid nv Y OS Nid US Nid e Jo TH zT pede S NId as TS NId 2 IS d e al ZS NId TS H ZS NIdF NId i g ES Nid zs e Id e es Id SY NT ES Y ve Nid I NSSSW IOd S Ni SY NId gt Zee SG Idi GS Id Y d A E SE eis NId SS Y 95 Nid e 33 d e IN os Y a Id LS wi Nid A8 85 Ea a Td N se 65 NI e 6S NI NIdI 55 NId 29 NId T Nid 29 P Id 19 La 2 ii E d E Z9 N jo c 29 ES NId ES Y Id eg Nid 79 Nid SED Id v9 Nid INN 79038 IOd 25821 dt IN lt ES O7I ld Ge WEY 258217 dg 2d ad Sd ONG 5533315 Jg Id WONJ HaAM d ns lt Bes lt Anhang A 3 Quellcodes A 3 Quellcodes In diesem Abschnitt sind die Quellcodes der Testprogramme sowie des Boot Loaders zu finden Boot Loader KK KK KKK KK KK KK k X KKK K K K K Ck K K K KOK K K K KOK KOK K KOK K KK KK K KOK K KOK KK kck kck kck KK KK ck k kk FE Compile wich TE C S m sparc rtems gec nostdlib nostdrne Oz Ttext 0 bprom c 0 Dprom KKK KK KK KK KK Kk k X KK Kk K X K K K K K K K AAA LEON register layout struct lregs y volscrile volatile volatile volatile volatile vore volatile volatile volatile volat le v lata le volatile volatile volatile vola
179. w hlt worden 3 1 3 1 FPGA XCV 1000 5 BG560 C Astrium GmbH benutzt bisher strahlungsfeste FPGAs der Firma Actel Aufgrund der hoheren Integrationsdichte der FPGAs der Firma Xilinx siehe LA ist das Interesse gro diese in zukunftigen Produkten zu verwenden Nach L4 stellt die Verwendung der Xilinx Bausteine auch einen Kostenvorteil gegen ber denen der Firma Actel dar Das Evaluations Board der Firma AVNET ist mit einem Virtex E best ckt Unter Ber cksichtigung dieser drei Gesichtspunkte wird die Wahl eines Xilinx Bausteines bevorzugt Die Grunde f r die Wahl des XCV1000 5 BG560 C sind im Folgenden aufgef hrt Der FPGA muss neben dem LEON auch die AMBA PCI Bridge Kapitel 2 2 2 und den in Kapitel 3 1 1 erwahnten IP Core eines Ethernet MAC enthalten konnen Der Platzbedarf fur LEON AMBA PCI Bridge und Ethernet MAC wird durch Durchlaufen des Place amp Route Prozesses f r einen XCV1000E ermittelt Dieser FPGA kommt auf dem Evaluations Board von AVNET zum Einsatz Es werden durch das Design verwendet LEON 5148 Slices 24 BlockRAMs Bridge 1217 Slices Ethernet MAC 1850 Slices Dies ergibt insgesamt einen Platzbedarf von 8215 Slices Die Anzahl der benutzten BlockRAMs ist abh ngig von der Konfiguration des LEONs Mit einer Sicherheits Margin von ca 50 muss der verwendete FPGA ca 12000 Slices enthalten Xilinx FPGAs beinhalten pro CLB 2 Slices Anhand der Datenblatter zeigt sich dass mindestens ein Virtex 1000 oder Virt
180. ware Aspekten gibt es auch Unterschiede in den Anforderungen an die Funktionalit t e Im Betrieb als Host muss der LEON Konfigurationszugriffe auf andere PCI Teilnehmer machen k nnen damit sie korrekt initialisiert werden und Adressbereiche zugewiesen bekommen Im Betrieb als Nicht Host ist dies nicht zwingend erforderlich sollte und kann jedoch auch getestet werden da Konfigurationszugriffe n tig sind um andere PCI Komponenten zu erkennen und zu identifizieren Die Funktionalitat der Konfigurationszugriffe ist Teil der Bridge e Im Betrieb als Nicht Host muss die Bridge Adressr ume auf dem PCI Bus in die korrespondierenden Adressr ume auf dem AHB Bus bersetzen k nnen da nicht vorrausgesetzt werden kann dass der Host die gleichen Adressindizes auf dem PCI Bus vergibt die AHB intern festverdrahtet vorliegen Beim Betrieb als Host ist dies nicht unbedingt notwendig da in diesem Fall der LEON die Adressbereiche auf dem PCI Bus festlegt und dadurch eine bereinstimmung zwischen PCI und AHB erreicht werden kann e Im Betrieb als Host m ssen PCI IRQs dem LEON signalisiert werden Im Betrieb als Nicht Host muss der LEON einen PCI IRQ aktivieren k nnen Beides sind Funktionalit ten die in die Bridge implementiert sind Bis auf die PCI IRQ Verarbeitung kann die Funktionalitat durch den Betrieb als Nicht Host getestet werden Da zum Zeitpunkt der Diplomarbeit kein Hardwaresystem vorliegt in dem der LEON als Host getestet werden kann
181. wei 24 Bit Timer und einen 24 Bit Watchdog Der Unterschied zwischen Timer und Watchdog besteht darin dass die Timer einen Zahlerstand von Null durch eine Interrupt Anforderung ausdr cken eigene Register f r Startwerte haben und deaktiviert werden k nnen Der Watchdog hat ein externes Ausgangssignal off chip ist immer aktiviert und kann keinen automatischen Wiederladewert zugewiesen bekommen timer1 reload prescaler reload timer2 reload Tresor vas inert ie gt na Cer vue ns tick tI sasa 9 woos Abb 2 18 Blockdiagramm der Timer Quelle L10 36 Kapitel 2 Grundlagen Das Blockdiagramm der Timer siehe Abb 2 18 verdeutlicht die Funktionsweise der beiden Timer und des Watchdogs F r alle drei wird ein gemeinsamer Zahlertakt tick verwendet Dieser ist ber das Prescaler Reload Register einstellbar Der Wert dieses Registers wird in das Prescaler Value Register geladen und dort mit jedem Systemtakt dekrementiert Bei einem Wert von Null wird ein Z hltakts gnal tick erzeugt und das Prescaler Value Register wieder mit dem Prescaler Reload Register geladen Es k nnen Werte zwischen 3 und 1023 eingestellt werden Welchem Z hltakt f r die Timer das entspricht ist abh ngig vom Systemtakt Die Werte der Timer und des Watchdog sind in den Registern Timer Value bzw Timer2 Value und Watchdog Value abgelegt Wie die Timer Register sich bei einem Zahltaktsignal verhalten ist abh ngig von den in Abb 2 18 nicht darge
182. wird Zusatzlich k nnen Adressbits der Adresse auf dem AHB Bus f r den PCI Bus durch andere ersetzt werden Dies kann dazu benutzt werden um auf Adressbereiche auf dem PCI Bus zuzugreifen die AHB intern durch LEON Komponenten vergeben sind Ob und welche dieser beiden Arten eingesetzt wird 1st durch Konfigurationseinstellungen zur Synthese festzulegen Zu Testzwecken werden anwenderspezifische Register in den Konfigurationsbereich des PCI Interfaces implementiert Dieser kann sowohl von PCI als auch von AHB Seite aus adressiert werden 51 Kapitel 3 Eigenentwicklungen 3 Eigenentwicklungen 3 1 PMC LEON Board Der LEON soll mit notwendiger Peripherie als Mezzanine Card zum Einsatz kommen und ein alteres Prozessor Modell abl sen Daf r ist als erster Schritt ein Demonstrator zu entwickeln der getestet werden kann Dieses Demonstrations Board ist 1m Rahmen der Diplomarbeit entwickelt worden Dabei sind die Ziele und Anforderungen f r einen Demonstrator mit denen des angestrebten Endproduktes nicht identisch Diese Diplomarbeit befasst sich nur mit dem Ausw hlen der Komponenten und deren Vernetzung Die Layout Arbeiten werden an anderer Stelle gemacht Jedoch gestaltet sich dies als iterativer Prozess so dass 1m Verlauf des Layoutens auch Arbeitsschritte 1m Bereich des Designs durchgef hrt werden m ssen Als Referenz f r dieses Design stehen zwei andere Designs zu Verf gung Das Fault Managment Element FME der Firma As
183. wird im Rahmen der Diplomarbeit auf die Tests mit dem LEON Im Betrieb als Host verzichtet Ein geeignetes Testsystem und Testsoftware ist in Zukunft zu entwickeln Kapitel 4 2 1 beschreibt das verwendete Testsystem 80 Kapitel 4 Implementierung und Test des LEON auf AVNET Board Hinsichtlich der zu testenden Komponenten l sst sich zwischen Komponenten unterscheiden die f r das Steuern bestimmter Schnittstellen verantwortlich sind und solchen die nur chipinterne LEON Funktionen erf llen Beim Testen ersterer wird neben der LEON Komponente auch die off chip liegende Komponente getestet Andererseits bedeutet dies dass Fehler nicht zwangslaufig im LEON Design liegen m ssen Anforderungen der externen Hardware m ssen ber cksichtigt werden Kapitel 4 2 3 beschreibt die durchgef hrten Tests die sich mit Schnittstellen beschaftigten Auf Tests der internen LEON Funktionen ist im Rahmen der Diplomarbeit nur teilweise eingegangen worden Kapitel 4 2 4 beschreibt diese Fast alle Tests werden durch Abarbeitung von Programmen durch den LEON durchgef hrt Diese Programme werden durch einen an den LEON angepassten GNU Crosscompiler erzeugt Dieser angepasste Compiler wird von Gaisler Research zu Verf gung gestellt Als Programmiersprache ist C und Assembler benutzt worden Der Compiler erzeugt eine auf dem LEON ausf hrbare EXE Datei Als Schnittstelle zum Datentransfer des Programmcodes wird UART 1 benutzt Gaisler Research sieht daf r die
Download Pdf Manuals
Related Search
Related Contents
Gekcom Samsung Samsung SGH-F330 Käyttöopas Manual de Instalación y de Funcionamiento1 - chile KS-AX3204 KS-AX3202 KS-AX3201D Philips 32PW9544 Satellite Radio User Manual Jasco 26693 Instruction Manual mpoea - Sanepar Manual de Instalação do Sicoob Empresarial Raidsonic IB-351STUES2-B storage enclosure Copyright © All rights reserved.
Failed to retrieve file