Auteursomgeving voor Digitale Componenten SIM-PL Auteursomgeving voor Digitale Componenten Ben Bruidegom Wouter Koolen-Wijkstra AMSTEL INSTITUUT FACULTEIT DER NATUURWETENSCHAPPEN, WISKUNDE EN INFORMATICA UNIVERSITEIT VAN AMSTERDAM
Programma 14.00 Inleiding SIM-PL 14.30 Practicum 14.45 Koffiepauze Digitale Componenten Demo Simulator Demo Editor 14.30 Practicum 14.45 Koffiepauze 15.00 Demo Rekenmachine en Harvard Processor 15.15 Practicum vervolg 15.30 Discussie: Is SIM-PL geschikt voor het VO? Wat moet er beter? Wil ik SIM-PL dan gaan gebruiken?
Objecten: Digitale Componenten Hardware met alle in/uitgangen 0 of 1 16 bit Processor Complexiteit Van poort tot processor Hiërarchische compositie Timing 16 bit rekenmachine 16 bit ALU 2 * 4 bit opteller Full Adder AND/OR /XOR- poort
Voorbeeld poortschakeling: “Majority Voter” Set value a c b a Signal cond. sensor a Majority Voter Valve control b Y Signal cond. sensor b c Vat Signal cond. sensor c valve redundant system
Waarheidstabel “Majority Voter” Logica Formule: Y = (a AND b) OR (a AND c) OR (b AND c) Benodigde componenten: - Drie AND-poorten met twee ingangen - Eén OR-poort met drie ingangen
Schema “Majority Voter”
Demo SIM-PL Executer
Ontwerpen van componenten en schakelingen Simple (basis) Basisfiguren Input/Output Programmering Delay Complex (hiërarchie) Subcomponenten Input/Output Verbindingen
Voorbeeld: 4 bits opteller
Demo SIM-PL Editor Simple Component Complex Component Bouwen XOR poort Full Adder bouwen uit: Majority Voter Twee XOR-poorten
16 bit rekenmachine Instruction Memory Registers (16) ALU PC Instruction Address First Register Address Data Second Register Address Data Destination Reg. Data 4 bit address 16 bit data 3 bit control Registers (16)
Instructieset Mnemonic Betekenis Voorbeeld LOAD rd, imm Laad getal in register LOAD $1, 0x 0020 r1 0x0020 MOVE rd, rt Copy register MOVE $3, $2 r3 r2 ADD rd, rs, rt Optellen registers ADD $5, $6, $7 r5 r6 + r7 SUB rd, rs, rt Aftrekken registers SUB $5, $6, $7 r5 r6 - r7 ADDI rd, rs, imm Optellen register en constante ADDI $5, $6, 0x1234 r5 r6 + 0x1234 SUBI rd, rs, imm Aftrekken register en constante SUBI $7, $6, 0x1234 r7 r6 - 0x1234
16 bit rekenmachine SUBI $4, $3, 0100
Demo rekenmachine
Van rekenmachine processor Toevoegen: Data Memory Componenten om “loopjes” te kunnen executeren
Uitbreiding met Data Memory Instruction Memory Registers (16) Data Memory ALU Register # PC Address Instruction Register # Address Data out Register # Data in Data Bij een Harvard architectuur is het geheugen gescheiden in twee delen: instructiegeheugen en datageheugen
Uitbreiding instructieset: LW rd, rs ,index Load Word from Memory LW $2, 0x8($1) R2 Address (8 + r1) SW rs, rt, index Store Word to Memory SW $2, 0x8($1) Address (8 + r1) r2 Instruction Memory Registers Data Memory 100 ALU 1st register # PC Instruction 2nd register # Address Address Dest. reg. # Data Data SW $r0, 100($r1) Memory[$r1 + 100] = $r0
Uitbreiding hardware en instructieset voor ‘loopjes’: BRA offset Branch Always to “label” BRA label PC PC + offset BZ rt, offset Branch if rt = 0 BZ $6, end If (r6 = 0) goto ‘end’ BEQ rs, rt, offset Branch if rs = rt BEQ $6, $8, loop If (r6 = r8) goto ‘loop’ Instruction Memory Registers Data Memory ALU PC Instruction Data out Address 1st register # 2nd register # Dest. reg. # Data in FFFB z Branch ADD & 0009 0004 Offset LOAD
De status van de Harvard machine na het uitvoeren van de instructie Load Immediate 0x01FD
Waarom SIM-PL? Geeft inzicht in de werking van digitale schakelingen op alle niveau’s Auteursomgeving voor docenten en scholieren Geschikt voor “profielwerkstukken” Uitgewerkt werkstuk met handleiding voor Mastermind Beschikbaar onder GPL licentie (Free Software) http://staff.science.uva.nl/~benb/SIM-PL Wordt toegepast in het WO en binnenkort ook in het HBO Project Digitale Universiteit i.s.m. Hogeschool van Amsterdam To do
SIM-PL geschikt voor het voortgezet onderwijs? Verbeteringen: Gebruikersvriendelijker Editor Undo optie .. Uitbreidingen Toevoegen C-Compiler
Toepassen van SIM-PL in het VO? Wie van jullie wil het gaan gebruiken? Toegepast bij VWO-scholieren Beta-festival (2 keer) Schoolklassen uit Zaandam en Weert