Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1
Verschil simulatie en synthese Simulatie: functioneel testen van VHDL code Synthese: omzetten van VHDL code naar een in hardware implementeerbaar ontwerp Opmerking: niet alles wat correct wordt gesimuleerd resulteert in correcte synthese Inference: het vertalen van VHDL constructs naar hardware elementen 28-4-2011 ET1 410 (Stephan Wong) Pagina 3
Aandachtspunten Denk aan hardware componenten (geen C) Hou componenten simpel Maak sensitivity-lijsten volledig (bv. alle RHS signalen) Synchrone vs. asynchrone schakelingen Gebruik van variabelen vs. signalen Combinatorische vs. sequentiële schakelingen: Combinatorisch: voor alle ingangscombinaties is er een uitgang gedefinieerd Sequentieel: integendeel, dus introductie van geheugenelementen (latches of flip-flops) 28-4-2011 ET1 410 (Stephan Wong) Pagina 4
Inference van combinatorische schakelingen EXOR 28-4-2011 ET1 410 (Stephan Wong) Pagina 5
Inference van sequentiële schakelingen Inference van sequentiële componenten is veel subtieler Resultaten zijn afhankelijk van de manier van schrijven van de VHDL code Inference van latches vs. flipflops 28-4-2011 ET1 410 (Stephan Wong) Pagina 6
Target primitives Uiteindelijke resultaat is afhankelijk van bestaande componenten! 28-4-2011 ET1 410 (Stephan Wong) Pagina 7
Inference from declarations Signalen worden vertaald naar: Wires latches/flip-flops keuze afhankelijk van gebruik Gebruik van types : voor synthese: bepaal de bit widths (expliciet of impliciet) Geef hints om hardware te minimaliseren Denk aan hardware!! 28-4-2011 ET1 410 (Stephan Wong) Pagina 8
Inference vanuit Simple Concurrent Signal Assignment Statements Gedrag komt overeen met combinatorische circuits Model produceert een signal assignment statement voor elk signaal in het circuit Als de ingangen (RHS) veranderen wordt de uitgang opnieuw bepaald Operator inferencing: Operaties, gate types Interconnect (=verbindingen) Delay informatie wordt verwijderd 28-4-2011 ET1 410 (Stephan Wong) Pagina 9
Inference vanuit Simple CSAs (voorbeeld 1) Let op het aantal gate niveaus!! 28-4-2011 ET1 410 (Stephan Wong) Pagina 10
Inference vanuit Simple CSAs (voorbeeld 2) 28-4-2011 ET1 410 (Stephan Wong) Pagina 11
Inference vanuit Conditional CSAs Multiplexer logic Elke verandering van ingangssignalen resulteert in herberekening uitgang Veronderstelling van een priority order Hoe ziet dit eruit met gebruik van 4-input LUTs (denk FPGAs) en 6 ingangssignalen? 28-4-2011 ET1 410 (Stephan Wong) Pagina 12
Inference vanuit Conditional CSAs 28-4-2011 ET1 410 (Stephan Wong) Pagina 13
Voorbeeld: Priority Encoder 28-4-2011 ET1 410 (Stephan Wong) Pagina 14
Synthese van comparison logic Comparisons die een betekenis hebben in simulatie hoeven niet per se betekenis te hebben in synthese Bv. Don t cares in comparisons retourneren altijd een false waarde! Denk altijd in werkelijke hardware wanneer je synthetiseerbare VHDL aan het schrijven bent Equality tests voor waarden anders dan 0/1 resulteren altijd in false! 28-4-2011 ET1 410 (Stephan Wong) Pagina 15
Synthese en Comparison logic 28-4-2011 ET1 410 (Stephan Wong) Pagina 16
Inference van Selected CSAs Alle keuzes moeten gelijktijdig worden geëvalueerd en alleen een kan waar zijn Geen priority logic 28-4-2011 ET1 410 (Stephan Wong) Pagina 17
Synthese hints bij gebruik van CSAs Verschil simulatie en synthese door: Delay statements Comparison logic Geen initialisatie van declaraties gebruik van expliciete resets nodig Gebruik hints om synthese te sturen Selected vs. Conditional signal assignment statements: selected resulteert in minder logic inference 28-4-2011 ET1 410 (Stephan Wong) Pagina 18
Variabelen vs. signalen (voorbeeld) 28-4-2011 ET1 410 (Stephan Wong) Pagina 19
Combinatorisch vs. sequentieel 28-4-2011 ET1 410 (Stephan Wong) Pagina 20
Vermijden van latches bij combinatorische schakelingen Zorg ervoor dat voor alle ingangscombinaties een uitgang wordt gedefinieerd: Zorg altijd voor alle else -statements Let op geneste structuren (if-then-elsif) Gebruik van initiële waardes (volgende slide) 28-4-2011 ET1 410 (Stephan Wong) Pagina 21
Nogmaals hetzelfde voorbeeld 28-4-2011 ET1 410 (Stephan Wong) Pagina 22
Beperken van hardware 28-4-2011 ET1 410 (Stephan Wong) Pagina 23
Beperken van hardware (2) 28-4-2011 ET1 410 (Stephan Wong) Pagina 24
28-4-2011 ET1 410 (Stephan Wong) Pagina 25
28-4-2011 ET1 410 (Stephan Wong) Pagina 26
28-4-2011 ET1 410 (Stephan Wong) Pagina 27
28-4-2011 ET1 410 (Stephan Wong) Pagina 28
28-4-2011 ET1 410 (Stephan Wong) Pagina 30
28-4-2011 ET1 410 (Stephan Wong) Pagina 31
Synthese stappen (FPGA) Analyse (zelfde als bij simulatie) Synthese van ontwerp Mapping van ontwerp Place and Route Generatie van bitstream Programmeren van (FGPA)-chip 28-4-2011 ET1 410 (Stephan Wong) Pagina 32