Het timing model in VHDL

Slides:



Advertisements
Verwante presentaties
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur EIT OGO-1.2 addendum (1): Het ontwerpen van processoren.
Advertisements

HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification.
Serieel naar parallel omzetting
Parallel naar serieel omzetting
Inhoudstafel Inleiding De basis van digitaal ontwerp
© Copyright 1998 by KPMG Management Consulting N.V De IV-infrastructuur (vervolg)
Inhoud Ebou leigh Stage werk Intake Hku Seminars
Eerste ervaringsuitwisseling ‘COMPETENT van kop tot teen!’ VIVO vzw Brussel Maandag 18 januari 2010 Nancy Cantens.
Digitale Elektronica en Processoren
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)
Auteursomgeving voor Digitale Componenten
VHDL Taal beschrijvingen
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Cursus VHDL Aansturing van een stappenmotor Peter Slaets KHLim.
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
De computer: Hardware Het beeldscherm Het toetsenbord De muis
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
1 Ben Bruidegom AMSTEL-instituut Universiteit van Amsterdam Reehorstconferentie 2007 NLT-module Digitale Techniek Ontwerpen van digitale schakelingen met.
1 Woudschotenconferentie 2006 Ben Bruidegom AMSTEL-instituut Universiteit van Amsterdam NLT-module Digitale Techniek Ontwerpen van digitale schakelingen.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Real-Time Systems (RTSYST) Week 2. Process/Thread states Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt timerinterrupt.
HM-ES-th1 Les 3 Hardware/Software Codesign with SystemC.
Title VHDL Introductie FirstName LastName – Activity / Group.
Welkom! Media & Creativiteit Les 4/5
Hoe werkt een rekenmachine?
Uitwerking opgave 1.2 1f uit: Wiskunde in beweging – Theo de Haan.
Onderwijskundig Ontwerpen Vzw Horizon Lotte Beernaert Lieselot Bolle Lien Lagrange Céline Sercu
DEEL 1 LES 21 EXTRA introductie Bij les 21 Sterke openingen De 2♣-opening DEEL 2 – H11 Sterke openingen: de 2♥/2♠ -opening versie
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
ROSA versie 3 De bovensectorale referentie architectuur voor en van het onderwijs.
Operating Systems Informatica.
Cooperative Transport Planning
Processor Hart van de computer.
Vermogen en arbeidsfactor van een sinusoïdale wisselstroom
Praktische Opdracht Wiskunde
HAN-University Inleiding tot VHDL, 2010 Bron: Fraunhofer for Integrated Circuits.
Combinatorische logica
CMOS Technologie.
Ontwerpen van Digitale Systemen
Informatica - §6 besturingssystemen
Tabel Marjolein uit flyer.
Een prestatie… is een open opdracht wordt gedaan door twee personen hoort bij een vakgebied is bedoeld om precies dát te leren wat je graag wilt weten.
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
OFC28 mediawijsheid les 7 leren door te maken
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Inhoud Analyse van sequentiële netwerken Sequentiële bouwblokken
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
stap 1 * Draadloze netwerkkaart installeren * Een van de belangrijkste benodigdheden voor het kunnen ontvangen van draadloos internet is een draadloze.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
Leerproces SDV leerlijnen ontwikkellijnen Doel: POP van de leerling
PSO. Praktisch school onderzoek.
Is Windows 10 geschikt voor mij? Updaten of nieuw kopen.
“Aan de slag met Business Consultancy.
Emulatie vs virtualisatie Docent: Schooljaar:. Emulatie vs virtualisatie Simulatie.
Natuurwetenschappelijk onderzoek Hoe doe je dat? Hoe leer je dat?
Handige apparaten Stap 1 Apparaten zie je overal.
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Operating Systems Informatica.
Anders kijken, anders doen
Module 6 Elektro-pneumatiek
Conceptversterking Conceptversterking kun je inzetten om een bestaand concept te versterken. Om een concept te versterken moet je het concept eerst.
Vakdidactiek lastig opdracht 1
Sleutels, codes en aanwijzingen
Ontwikkelingspsychologie voor het Onderwijs
Embedded systemen Programmeren op de Arduino Les 1
Marketing Week 2, les 2.
BOM-model PV 25/03/2014.
Koppeling tussen ‘echt’ en simulatie
Eens / oneens IK DENK NA VOORDAT IK BEGIN
Taal als tweesnijdend zwaard
Transcript van de presentatie:

Het timing model in VHDL Wat is het effect van verschillende beschrijvingen op een simulatie? Het event-driven simulatie model Timing model stap voor stap EXNOR als voorbeeld Opdracht

Het event-driven simulatie model Wat is hardware eigenlijk? Een verzameling parallelle processen die met elkaar communiceren bv: P1 P2 P3 P4 a b c x y ENTITY 4_processen IS PORT (a,b,c : in std_logic; x,y : out std_logic); END ENTITY 4_processen; ARCHITECTURE parallel OF 4_processen IS BEGIN P1; P2; P3; P4; END parallel; Processen zijn continue: Hoe kun je dat simuleren als je maar 1 processor in je PC hebt? -> Een proces alleen doorrekenen als 1 of meer van de ingangen is veranderd. (denk aan een geklokte schakeling)

Wat heb je hiervoor nodig om een event-driven model te kunnen simuleren? Een mechanisme (een scheduler) die regelt welk proces aan de beurt is om doorgerekend te worden. Een taal met statements om processen te beschrijven: Parallelle constructies: netwerkstructuren (concurrent statements) Sequentiële constructies: gedragsbeschrijvingen (sequential statements) Golfvorm variabele: signalen die de eigenschap van een niet direct reagerende variabele hebben (sig_a <= sig_b). sig_a krijgt de waarde van sig_b na een delta delay. Delta delay: signalen krijgen hun waarde nooit direct, zelfs zonder after clausule, dus: t <= ‘1’; is eigenlijk t <= ‘1’ after delta delay Een vertraging van delta delay heeft de volgende eigenschappen: Verandert de simulatietijd niet. Toekenning nieuwe waarde nadat de simulatiecyclus binnen een proces geheel doorlopen is. Variabele spelen alleen een rol binnen 1 enkel proces en zijn een hulpmiddel om gedrag vast te leggen.

Timing model stap voor stap Gegeven een architectuur met 4 processen: ENTITY 4_processen IS PORT (a,b : in integer; X : out integer); END ENTITY 4_processen; ARCHITECTURE parallel OF 4_processen IS SIGNAL u,v,w : integer; BEGIN P1: u <= f(a); P2: v <= g(u); P3: w <= h(v) AFTER 5 ns; P4: x <= k(w,b) AFTER 2 ns; END parallel; a b P1 u P2 v P3 w x P4 Op t0 veranderen de signalen a en b van waarde. Wat gebeurt er nu met de signalen u,v,w en x? Ga er hierbij vanuit dat elk proces pas een veranderende uitgangswaarde krijgt als de ingangswaarde veranderd.

Timing model stap voor stap (vervolg) a en b veranderen: u en x worden ge-scheduled. Dus proces P1 en P4 worden getriggerd door a en b, ui en xi worden als een transactie op de tijdas gezet u krijgt nieuwe waarde ui en triggert proces P2 die vi als transactie op de tijdas zet v krijgt nieuwe waarde en triggert proces P3, wi op tijdas signaal x krijgt nieuwe waarde, geen processen getriggerd signaal w krijgt nieuwe waarde, P4 getriggert en xi+1 op tijdas signaal x krijgt nieuwe waarde: xi+1, geen transacties meer Cyclus Tijd Proces u v w x 1 t0 P1, P4 ui-1, {ui,δ} vi-1 wi-1 xi-1, {xi,2 ns} 2 t0 + δ P2 ui vi-1, {vi,δ} 3 t0 + 2δ P3 vi wi-1, {wi,5 ns} 4 t0 + 2 ns - wi-1, {wi,3 ns} xi 5 t0+ 5 ns P4 wi xi, {xi+1,2 ns} 6 t0+ 7 ns xi+1 OPDRACHT: Teken het timingdiagram van a,b,u,v,w en x.

Timing model stap voor stap: voorbeeld Gegeven de architectuur met 4 processen waarvoor geldt: f(a) = a, g(u) = u, h(v) = v AFTER 5ns, k(w,b) = w OR b AFTER 3ns. u a b P1 ENTITY 4_processen IS PORT (a,b : in bit; X : out bit); END ENTITY 4_processen; ARCHITECTURE parallel OF 4_processen IS SIGNAL u,v,w : bit; BEGIN P1: u <= a; P2: v <= u; P3: w <= v AFTER 5 ns; P4: x <= w OR b AFTER 2 ns; END parallel; P2 v P3 w x P4 v u b a w x δ 2δ 2 4 6 8 s = Transactie Transactie: nieuwe signaalwaarde met tijdsaanduiding Event: Transactie die resulteert in verandering van de signaalwaarde.

Opdracht: Schedule de timing van een EXNOR, gegeven de timing van ingangen a en b. De dataflow beschrijving van een EXNOR bestaande uit 5 parallelle signaal toewijzingen: dus 5 concurrent statements: ns δ a b na nb x y f 0.0 (0) 1 ENTITY 5_processen IS PORT (a,b : in bit; f : out bit); END ENTITY 5_processen; ARCHITECTURE parallel OF 5_processen IS SIGNAL na,nb,x,y : bit; BEGIN na <= NOT a AFTER 1.2 ns; nb <= NOT b AFTER 1.2 ns; x <= a AND b AFTER 1.2 ns; y <= na AND nb AFTER 1.2 ns; f <= x OR y AFTER 1.2 ns; END parallel; Elk statement heeft een after clausule dus er zijn geen delta events zonder simulatietijd verhoging! a b na nb x y f 10 20 30 40 50 ns

Opdracht: Schedule de timing van een EXNOR, gegeven de timing van ingangen a en b. De dataflow beschrijving van een EXNOR bestaande uit 5 parallelle signaal toewijzingen: dus 5 concurrent statements: ns δ a b na nb x y f 0.0 (0) 1.2 1 2.4 2 3.6 3 10.0 4 11.2 5 12.4 6 13.6 7 20.0 8 21.2 9 30.0 10 31.2 11 32.4 12 40.0 13 41.2 14 42.4 15 43.6 16 ENTITY 5_processen IS PORT (a,b : in bit; f : out bit); END ENTITY 5_processen; ARCHITECTURE parallel OF 5_processen IS SIGNAL na,nb,x,y : bit; BEGIN na <= NOT a AFTER 1.2 ns; nb <= NOT b AFTER 1.2 ns; x <= a AND b AFTER 1.2 ns; y <= na AND nb AFTER 1.2 ns; f <= x OR y AFTER 1.2 ns; END parallel; Elk statement heeft een after clausule dus er zijn geen delta events zonder simulatietijd verhoging! a b na nb x y f 10 20 30 40 50 ns

Maak de volgende opdrachten in modelsim met de scheduler. Bepaal de simulatieresultaten in tabel vorm voor de onderstaande twee beschrijvingen van een EXNOR: ENTITY exnor IS PORT (a,b : in bit; f : out bit); END ENTITY exnor; ARCHITECTURE parallel OF exnor IS SIGNAL na,nb,x,y : bit; BEGIN na <= NOT a; nb <= NOT b; x <= a AND b; y <= na AND nb; f <= x OR y AFTER 3.6 ns; END parallel; 10 20 30 40 50 ns f y x b a na nb ENTITY exnor IS PORT (a,b : in bit; f : out bit); END ENTITY exnor; ARCHITECTURE sequential OF exnor IS BEGIN VARIABLE na,nb,x,y : bit; PROCESS(a,b) na := NOT a; nb := NOT b; x := a AND b; y := na AND nb; f <= x OR y AFTER 3.6 ns; END PROCESS; END sequential; 10 20 30 40 50 ns f y x b a na nb Er staat op Scholar ook het invulblad EXNOR waarmee je deze opdracht kan doen.

Beschrijving van EXNOR die onjuiste functionele simulatie geeft: De gedrags beschrijving van een EXNOR bestaande uit 5 sequentiele signaal toewijzingen: dus 5 signal assigments binnen 1 proces: ENTITY 1_proces IS PORT (a,b : in bit; f : out bit); END ENTITY 1_proces; ARCHITECTURE sequential OF 1_proces IS SIGNAL na,nb,x,y : bit; BEGIN PROCESS(a,b) na <= NOT a AFTER 1.2 ns; nb <= NOT b AFTER 1.2 ns; x <= a AND b AFTER 1.2 ns; y <= na AND nb AFTER 1.2 ns; f <= x OR y AFTER 1.2 ns; END PROCESS; END sequential; a Levert de volgende timing op b na nb x y f 10 20 30 40 50 ns 1 proces betekent dat bij een verandering van a of b slechts 1 maal de simulatiecyclus doorlopen wordt. Nieuwe waarden voor na, nb, x, y, en f worden berekent met de huidige waarden van a, b, na, nb, x, en y, en pas op de tijdas gezet als het proces getriggerd wordt door a of b. Over het algemeen moet je er voor zorgen dat er binnen een proces geen afhankelijke signaal toewijzingen voor komen. Hoe kun je dit probleem toch verhelpen?

In VHDL zijn 3 typen tijdvertraging toe te passen: Delta event, δ: Impliciete definitie van 0 seconde simulatietijd om timingmodel van signaal te modeleren. AFTER <timing> clausule: Expliciete definitie van de modelering van bepaalde simulatietijd om poortafhankelijke timingmodel te modeleren. Transport delay (sig_c <= TRANSPORT sig_a AFTER 5ns) : waarbij alle signaalveranderingen worden doorgegeven. nadat de transitie {1, 5ns} op de tijdas van de scheduler is gezet zal een volgende transitie die 2 ns later komt, {0, 1ns} , erbij gezet worden. sig_a sig_b sig_c 0 ns 3ns 5ns 8 ns 10 ns sig_a <= ‘1’ after 3 ns, ‘0’ after 2 ns; sig_b <= sig_a after 5 ns; sig_c <= transport sig_a after 5 ns; Wanneer gebruik je TRANSPORT delay?

Conclusies event-driven simulatie. 1. Parallelle (hardware) processen worden alleen doorgerekend als de ingangswaarden veranderen 2. Parallelle taal constructies (concurrent statements)gebruik je om netwerkstructuren te beschrijven → architecture 3. Sequentiële taal constructies (sequentiële statements) gebruik je om gedrag te beschrijven. → process 4. := Directe of variabele toewijzing (doel = waarde) 5. <= Signaal toewijzing (doel = waarde na tijdvertraging) 6. Simulatiecyclus: Ronde waarin alle (getriggerde) processen worden doorgerekend 7. Delta delay, δ: oneindig kleine tijdvertraging waarin de simulatiecyclus helemaal doorlopen moet zijn voordat nieuwe waarden aan signalen kunnen worden toegekend. 8. Er zijn 4 expliciete WAIT statements: - WAIT FOR 2 us; - WAIT UNTIL <boolean expressie>; - WAIT ON < sensitivity list>; - WAIT; 9. Impliciete wait statement: process(a,b) 10. Er zijn 3 soorten tijdvertraging: - Delta delay: toekenning 1 simulatiecyclus later - Inertial delay: ‘after clausule’, modelleren tijdsvertraging van logische poorten - Transport delay: Alle veranderingen, hoe kort dan ook, worden doorgegeven.