SIM-PL Auteursomgeving voor Digitale Componenten Ben Bruidegom Wouter Koolen-Wijkstra AMSTEL INSTITUUT FACULTEIT DER NATUURWETENSCHAPPEN, WISKUNDE EN INFORMATICA UNIVERSITEIT VAN AMSTERDAM 1 Inhoud 2 Digitale Componenten Demo Editor Simulator Harvard Processor Toepassing Nabeschouwing B. Bruidegom en W. Koolen-Wijkstra Objecten: Digitale Componenten Hardware met alle in/uitgangen 0 of 1 Complexiteit Van poort tot processor Hiërarchische compositie Timing 3 16 bit register Synchroon v.s. asynchroon Functionaliteit Register-file 16 Registers van 16 bit Combinatorisch v.s. geheugenfunctie Flipflop NANDpoort B. Bruidegom en W. Koolen-Wijkstra Ontwerp: Componenten Schakelingen Simple (basis) Basisfiguren Input/Output Programmering Delay 4 Complex (hiërarchie) Subcomponenten Input/Output Connecties B. Bruidegom en W. Koolen-Wijkstra Voorbeeld: 4 bits opteller 5 B. Bruidegom en W. Koolen-Wijkstra Demo SIM-PL Editor • Simple Component – Bouwen AND poort • Complex Component – XOR poort bouwen uit poorten: • NOT • AND • OR a b (a b) (b a ) 6 B. Bruidegom en W. Koolen-Wijkstra Interne programmeertaal: nBit Syntax Basisdatatype getallen van n bits Voorbeeld: ALU 7 C/C++/Java A, B: 55 bit ingang opcode: 2 bit ingang R: 55 bit uitgang { switch (opcode) { case 0: R = A + B; case 1: R = A – B; case 2: R = A | B; case 3: R = A & B; } } break; break; break; break; B. Bruidegom en W. Koolen-Wijkstra Samenvatting: Discrete Event Simulation Beginconfiguratie Gebruiker Compilers 8 Signaalveranderingen als boodschappen Propagation Delay B. Bruidegom en W. Koolen-Wijkstra Een eenvoudige Harvard processor 9 Simpele architectuur om de werking van een computer tot in detail te kunnen begrijpen. Bekeken vanuit de “hardware” Ook geschikt voor VWO scholieren B. Bruidegom en W. Koolen-Wijkstra Simplified View of a Harvard Architecture* Instruction Memory Registers (16) ALU Data Memory Register # PC Instruction Address Address Register # Register # Data Data out Data in * Bij een Harvard architectuur is het geheugen gescheiden in twee delen: instructiegeheugen en datageheugen 10 B. Bruidegom en W. Koolen-Wijkstra Voorbeeld van een instructie: ADD Instruction Memory Registers 1st register # Data Memory ALU PC Instruction Address 2nd register # Address Dest. reg. # Data Assembly Language 11 Data ADD $r0, $r1, $r2 $r0 = $r1 + $r2 B. Bruidegom en W. Koolen-Wijkstra De store-instructie SW: Register Memory Instruction Memory 100 Registers 1st register # Data Memory ALU PC Instruction Address 2nd register # Address Dest. reg. # Data Data SW $r0, 100($r1) Memory[$r1 + 100] = $r0 12 B. Bruidegom en W. Koolen-Wijkstra De status van de Harvard machine na het uitvoeren van de instructie Load Immediate 0x01FD 13 B. Bruidegom en W. Koolen-Wijkstra Waar is/wordt SIM-PL toegepast? Cursus Architectuur en Computerorganisatie voor 1e jaars Informaticastudenten UvA Cursus Digitale techniek/Architectuur voor voor 1e jaars AI-studenten UvA VWO-scholieren Beta-festival Diverse schoolklassen 14 Mastercourse voor VWO-docenten B. Bruidegom en W. Koolen-Wijkstra Verbeteringen, uitbreidingen 15 Gebruikersvriendelijker Editor Implementatie Micro-programmeren C Compiler om aansluiting te maken met Operating Systems Toevoegen Componenten en Architecturen Geschikt maken voor het middelbaar onderwijs B. Bruidegom en W. Koolen-Wijkstra Visie voor realisatie Voor HBO en WO: Partnerschap in Digitale Universiteit-verband 16 Universiteit van Amsterdam Vrije Universiteit Open Universiteit Nederland Universiteit Twente Hogeschool van Amsterdam Hogeschool Rotterdam Hogeschool van Utrecht Hogeschool INHOLLAND Fontys Hogescholen Saxion Hogescholen Voor MO? B. Bruidegom en W. Koolen-Wijkstra Waarom SIM-PL? 17 Geeft inzicht in de werking van ingewikkelde digitale schakelingen op alle niveau’s Dicht het “gat” tussen Digitale techniek (poorten, flipflops etc.) en complete pipeline processoren Auteursomgeving voor docenten, studenten/scholieren Beschikbaar onder GPL licentie (Free Software) http://staff.science.uva.nl/~benb/SIM-PL B. Bruidegom en W. Koolen-Wijkstra