120 likes | 278 Views
5 JJ2 0: Computerarchitectuur. EIT OGO-1.2 addendum (2) : Geheugens en timing in IDaSS. Geheugens in IDaSS: overzicht. Vijf basistypen mogelijk met vele instel-opties RAM en ROM Stack (‘Last-In-First-Out’) en ‘First-In-First-Out’ ‘Content Addressable Memory’: zoeken in hardware !
E N D
5JJ20: Computerarchitectuur EIT OGO-1.2 addendum (2):Geheugens en timing in IDaSS
Geheugens in IDaSS: overzicht • Vijf basistypen mogelijk met vele instel-opties • RAM en ROM • Stack (‘Last-In-First-Out’) en ‘First-In-First-Out’ • ‘Content Addressable Memory’: zoeken in hardware ! • Meestal lezen en schrijven via ‘poorten’ • ‘Read-only’, ‘Write-only’, ‘Read-write’ of vast adres • Poort commando’s naar adres ingangen sturen:RAM\\addr Write; • Andere commando’s direct naar geheugenblok:STACK Push;
Geheugens in IDaSS: simulatie • Menu ‘edit’, ‘contents’ opent ‘memory viewer’ • Laat inhoud zien (binair, hex, decimaal, ….) • Inhoud direct te veranderen door te typen ! • Geheugen laden van/opslaan in Intel Hex bestand • Worden door assembler aangemaakt: .hex • Automatisch laden mogelijk met IDaSS ‘parameters’: • ‘subsystem’ menu, ‘parameters…’, ‘contents specification’, ‘???’ • Naam kiezen, bijv. ROMfile, dan bestandnaam met enkele ‘ • Geheugen menu ‘file parameter’ en gekozen naam typen Gesimuleerde ROM inhoud komt in FPGA terecht ! In IDaSS ‘parameters’ ‘properties’
Geheugens in IDaSS: synthese in FPGA • Ieder geheugen kent verschillende ‘technologieën’ • Afgeleid van wat écht gesynthetiseerd kan worden Voor synthese MOET een technologie gekozen zijn! • Technologie-keuze beperkt maximale grootte • …en legt aantal, type(n) en timing van poorten vast • Voor meer informatie: • Algemeen over geheugens: shortman.pdf en [F1] • Details over FPGA geheugens: spartan2.pdf ROM synthese gaat niet zomaar…
In TU/e FPGA kastje: Configureerbaar I/O Blok:multi-standaard, FF’s, testbaar 4 Kilobit twee poort RAM blok:‘vervormbaar’ - 4K x 1 .. 256 x 16 Configureerbaar Logisch Blok:4-in ‘poort’, FF, ‘+’/ ‘’ logica Klok buffer met synchronisatie Intermezzo: Xilinx FPGA technologie • ‘Field Programmable Gate Array’s • Logica, opslag en verbindingen configureren met RAM 5292 poort/FF combi’s,bruikbaar als 75 Kbit RAMmax. 200K 2-in NAND’s 139 I/O pinnen bruikbaar 4 stuks 14 blokken = 7 Kbyte
klok adres x y in din uit ??? (x) din commando ‘read’ ‘write’ RAM/ROM technologieën voor FPGA (1) • Grote ‘synchrone’ RAM’s en ROM’s: 4Kbit RAMs • Lezen duurt een klokslag, ‘read’ commando nodig Uitgang pas laat in klok stabiel: niet meer mee rekenen ! • Maximaal twee onafhankelijke lees/schrijf poorten ‘latched output’ Schrijfactie leest !
klok adres p q y in din uit (p) (q) (y) (y)=din commando ‘write’ RAM/ROM technologieën voor FPGA (2) • Kleine ‘asynchrone’ RAM’s en ROM’s: in ‘CLB’s • Uitgang volgt adres direct, geen commando’s nodig • Duur in logica, grotere versies (> 16 woorden) traag • RAM heet ‘register file’: set genummerde registers 1,5 port register file: 1 lees/schijf + 1 ‘read-only’ poort
Timing in IDaSS • De ‘CLOCK’ knop simuleert hele klokslagen • Laat toestand vlak vóór aktieve klokflank zien • ‘Huidige’ opgeslagen waarden • Hieruit combinatorisch ‘berekende’ waarden Klaar voor laden in registers, geheugens, FSM toestanden • Hierachter zit echter volledige tijd-simulatie ! • Toegang via ‘time/simulation’, ‘settings…’ menu’s • Klokperiode en ‘reset-to-first-clock’ tijden instellen • Tijdweergave en ‘CLOCK’ knop werking instellen
Minimale tijd FF D ingangenstabiel voor klok (“setup time”) Vertraging klok flip-flop uitgang klok FF Q’s Register / flip-flop uitgangen stabiel Gegeven, veranderbaar, getest tijdens simulatie Gegeven, eventueel te veranderen B-bus PC waarde stabiel C-bus PC + 1 stabiel Vertraging besturingen tri-state buffer Vertraging ALUingang B bus-C Tijd over:klok kàn sneller ! Uit simulatie, opvraagbaar als ‘setup time margins’ lijst Timing van het datapad: PC + 1
‘Abstracte’ timing • Timing vastgelegd in idass.tec bestand • Met constanten en formules: niets aan veranderen ! • Met locale ‘edit’, ‘timing…’ menu’s te veranderen • Gebaseerd op 2 nanoseconde NAND vertraging • Werkelijkheid is sneller: FPGA is 2 tot 5 keer zo snel • IDaSS timing is ‘worst case’: geen optimalisaties ! • Klokcyclus is 100 ns.: 50 poorten kritiek pad is erg kort • Bij ‘setup time error’s klokcyclus verlengen… Probeer onder 130 ns. te blijven !
Commentaar en documentatie • Complex systeem: werk gestructureerd ! • Denk eerst goed na en discussieer • Leg vast wat gemaakt moet worden • Bij ‘inkloppen’: eerst commentaar, dan de code • In IDaSS overal commentaar aan te knopen • “In tekst-specificaties tussen dubbel-quotes” • In ‘file/system’ menu ‘comment window’ openen !! • Klik in schema’s, typ commentaar, ‘save’ • Automatisch documentatie genereren mogelijk
Systeemintegratie • Met groep systeem bouwen niet eenvoudig ! • Begin met opzetten (lege) schemastructuur • Dan distribueren voor invullen van de delen • Deelsystemen integreren tot één geheel • Opnieuw distribueren voor verdere invulling, etc. • Blokken en schema’s copieëren via ‘temp’ • ‘File out’, ‘to temp’ en ‘add block’, ‘from temp’ • Tussen IDaSS ‘sessies’ op één PC • Tekst ‘copy & paste’ via Windows clipboard Precisiewerkje, planning nodig !