Examenvragen Digitale Elektronica

Vergelijkbare documenten
HOOFDSTUK 6: Logische Schakelingen

Sequentiële Logica. Processoren 24 november 2014

Digitale Systemen (ET1 410)

Combinatorische schakelingen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

Hoofdstuk 6: Digitale signalen

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie.

Digitale technieken Deeltoets II

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Digitale Systeem Engineering 1

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Antwoorden zijn afgedrukt!!!!!!!

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Opleiding: ESE, HAN Opl.variant: vt Groep/Klas: ES2 Digitaal Signaal Ontwerpen 26 januari 2012 Tijd: 13:30 15:00

Studentnummer:... Opleiding:...

Digitale Elektronica

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 6e hoorcollege

HOOFDSTUK 7: Interconnectie

Sequentiële schakelingen

Inleiding elektronica Presentatie 1

Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Hoofdstuk 5: Signaalverwerking

Hoofdstuk 4. Digitale techniek

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Antwoorden vragen en opgaven Basismodule

Combinatorisch tegenover sequentieel

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 1

HOOFDSTUK 3: Netwerkanalyse

Klasse B output buffer voor een Flat Panel Display Kolom aansturing

2 Algemene opbouw van een computersysteem

Logische algebra. 1. Wat zijn Booleaanse variabelen? 2. Bewerkingen op Booleaanse variabelen. 2.1 Inversie. 2.2 Product

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Departement industriële wetenschappen en technologie

De Arduino-microcontroller in de motorvoertuigentechniek (2)

Inleiding Digitale Techniek

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

Informatica: C# WPO 13

Basisschakelingen en poorten in de CMOS technologie

Tentamen 8D040 - Basis beeldverwerking

Samenvatting Computer Architectuur

Deel 2 S7 Graph Ont4 - GA3

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

HOOFDSTUK 2: Elektrische netwerken

Informatica: C# WPO 12

Deeltoets Digitale technieken

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

520JHKHXJHQV -DQ*HQRH.+/LP

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family)

NAAM: Programmeren 1 Examen 29/08/2012

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Vandaag. Uur 1: Differentiaalvergelijkingen Uur 2: Modellen

Proeftentamen Digitale technieken

Basiskennis lineaire algebra

II. ZELFGEDEFINIEERDE FUNCTIES

Fig. 5.1: Blokschema van de 555

Digitaal is een magisch woord

Hardware-software Co-design

Overgangsverschijnselen

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Oefeningen Interpretatie I Reeks 6 : Registermachines

2 Elementaire bewerkingen

Datastructuren Uitwerking jan

1 Rekenen in eindige precisie

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Logische Schakelingen

(On)Doenlijke problemen

Theory DutchBE (Belgium) Niet-lineaire dynamica in elektrische schakelingen (10 punten)

Computationele Intelligentie

Computationele Intelligentie

De overgang van een gelineariseerde schakeling naar signaalverwerkingsblok

KEYSTONE. OM8 - EPI 2 AS-Interface module Handleiding voor installatie en onderhoud.

2 Elementaire bewerkingen

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden:

3. Structuren in de taal

Condensator. Het hellingsgetal a is constant. Dit hellingsgetal noemen we de capaciteit van de condensator C. Er geldt dus: C = Q U

Labo digitale technieken

Transcriptie:

Examenvragen Digitale Elektronica Hoofdstuk 1: De ontwerpruimte van digitale schakelingen 1. Bespreek de ontwerpruimte. De ontwerpruimte bestaat uit vijf lagen. Van boven naar onder: systeem, algoritme, R/T, logisch en circuit. Elk van deze vijf lagen kan gezien worden op drie manieren: er kan gekeken worden naar het gedrag, naar de logische structuur of naar de fysische structuur. Systeem: Gedrag: communicerende processen Logische structuur: multiprocessor, computernetwerk Fysische structuur: LANs, kasten Grootheden: datastructuren uit programmeertalen Gedragsmodellen functionaliteit: communicerende processen (= definiëren functionele relatie tussen inputs en outputs) die acties uitvoeren Gedragsmodellen tijd: tijd = partiële orde van tijdloze gebeurtenissen, gelijktijdigheid en oorzakelijk verband tussen acties en activiteiten Algoritme: Gedrag: sequentiële algoritmen Logische structuur: processor, geheugen, periferie Fysische structuur: bordniveau, moederbord, ASIC Grootheden: datastructuren uit programmeertalen Gedragsmodellen functionaliteit: algoritmen en functies uit programmeertalen Gedragsmodellen tijd: klok en kloksynchroon gedrag verdwijnt, tijd = opeenvolging van gebeurtenissen, precieze tijdsduur van operatie irrelevant R/T: Gedrag: machinetaal, microcode, register transfer specifiek Logische structuur: ALU, datapad, registers, controller Fysische structuur: macro-cellen, FPGA-macros, MSI/LSI-logica Grootheden: rijen van n-aire grootheden, elementaire datatypes Gedragsmodellen functionaliteit: logische en aritmetische operaties op bitrijen, controle = eindige automaat Gedragsmodellen tijd: meestal synchroon model voor tijd, abstractie van tijdsgedrag dmv sequentieel gedrag of pijplijngedrag Logisch: Gedrag: eindige automaten, boolese functies Logische structuur: poortdiagram, flipflops Fysische structuur: standaardcellen, FPGA-primitieven, SSI-logica Grootheden: afgebeeld op eindige verzameling (binair -> Boole-algebra, n-air) Gedragsmodellen functionaliteit: geheugenloos gedrag = stelsel Boolese functies, sequentieel gedrag = eindige automaat Oude examenvragen Evi Weymaere 1

Gedragsmodellen tijd: partieel geordende verzameling van gebeurtenissen (= overgangen tussen discrete niveaus) Circuit: Gedrag: differentiaalvergelijkingen Logische structuur: transistordiagram Fysische structuur: rechthoeken, discrete elementen Grootheden: continue fysische en elektrische grootheden: V, I, Z Gedragsmodellen: modellen voor elektrische en elektronische schakelingen, stelsel van differentiaalvergelijkingen, hulpmiddelen: simulatoren (Spice) 2. Geef het ontwerptraject. Hoe controleer je elke stap? Formalisering. Om te beginnen wordt er een informele beschrijving opgesteld van het gedrag van het te realiseren circuit. Om ondubbelzinnigheden te vermijden, moet men deze beschrijving formaliseren. Hierbij wordt de beschrijving ondubbelzinnig en computerverwerkbaar. Deze formele representatie wordt gecontroleerd door ze te valideren met de informele vereisten. Decompositie en verfijning. Binnen een hiërarchisch niveau kan men de gedragsbeschrijving herschrijven als een fijnere decompositie. Als men overgaat van een gegeven laag naar een onderliggende laag in het Y- diagram, spreekt men van verfijning. De omgekeerde bewerking noemt abstractie. Om deze stap te controleren, voert men abstractie uit gevolgd door verificatie. Synthese. Met synthese wordt de overstap van het gedragsdomein naar het structuurdomein bedoeld. Om deze stap te controleren voert men analyse (= de omgekeerde stap) uit en verifieert men opnieuw. Generatie. De generatiestap is het afbeelden van een logische structuur op een concrete, fysische structuur. De inverse stap is extractie. Om te controleren, zal men eerst extractie toepassen gevolgd door verificatie. Fabricage. Nu het systeem op punt staat, kan het worden gefabriceerd. Om te controleren of het systeem naar behoren werkt, zal men het testen. Dit gebeurt aan de hand van verschillende inputs (= testvectoren), die de mogelijke fouten eruit proberen halen. Oude examenvragen Evi Weymaere 2

Hoofdstuk 2: Systeemmodellen op logisch niveau 1. Bespreek BDD. Boolese decisiediagrammen zijn datastructuren bedoeld voor computermanipulatie. Het zijn grafen waarin elke knoop een unieke functie voorstelt. Er zijn twee soorten knopen: terminale en niet terminale. Terminale knopen stellen de constante functies 0 en 1 voor, niet-terminale knopen zijn gekoppeld aan een variabele. Elke niet-terminale knoop wijst naar twee opvolgers: de knopen die de residufuncties voorstellen bij shannondecompositie. Om een BDD op te stellen, volstaat het om de functie te shannondecomposeren. Men krijgt dan een boomstructuur. Dit is niet noodzakelijk het minimale BDD. Het minimalisatiealgoritme werkt van beneden naar boven. De dubbels worden geëlimineerd, alsook de knopen met identieke subbomen. 2. Bespreek ternaire kubusrepresentatie en de operaties. Waarvoor kan je dit gebruiken? De ternaire kubusrepresentatie vereenvoudigt computermanipulatie. Ze bestaat erin om de functies en hun output in arrays te zetten. Een voorbeeld ter verduidelijking. De functies y 1 = x 1 x 2 + x 2 x 4, y 2 = x 3 x 4 en y 3 = x 1 x 2 + x 3 x 4 kunnen voorgesteld worden in de ternaire kubusrepresentatie als: { } De ternaire kubusrepresentatie kan gebruikt worden voor complementering of om de shannondecompositie te vinden. Oude examenvragen Evi Weymaere 3

Hoofdstuk 3: Combinatorische schakelingen en hun bouwstenen 1. Leg het verband uit tussen Boolese functie, Boolese vorm en poort- en taknetwerken. Een Boolese functie is een afbeelding van {0,1} n naar {0,1}, waarin we 0 en 1 aannemen de eenheidselementen van een overeenkomstige Boole-algebra te zijn. Een Boolese vorm is een tekstuele representatie van de overeenkomstige functie. Poort- en taknetwerken kunnen een Boolese functie berekenen. Meer nog, als er geen terugkoppeling optreedt in een poort- of taknetwerk, zal dit netwerk altijd een Boolese functie realiseren en elke Boolese functie kan gerealiseerd worden door een poort- of taknetwerk. De correspondentie tussen Boolese vormen en poort- en taknetwerken is minder algemeen. Voor taknetwerken geldt dat elk serie-parallel netwerk een Boolese vorm representeert. Omgekeerd heeft niet elke Boolese vorm een corresponderend serie-parallel netwerk. Meer specifiek kan de complementering van meer dan een variabele niet worden gerealiseerd met een serie-parallel netwerk. Voor poortnetwerken geldt wel weer de 1-op-1 verhouding tussen Boolese vormen en een netwerk. 2. Bespreek bussen. Bussen worden gemaakt door SSI-chips. Het gaat hier meestal om conversiecircuits die de interne spannings- en stroomniveaus in het circuit omzetten naar de elektrische grootheden die een correcte signaaloverdracht op de interconnectiedraden mogelijk maken. Er zijn bussen met afschakelbare poorten, open-collectorbussen, open-drainbussen en differentiële interconnecties. 3. Bespreek technologieën van programmeerbare componenten. De programmeertechnieken verschillen van elkaar op basis van twee (drie) belangrijke eigenschappen: Volatiel <-> niet-volatiel: Een volatiele programmeertechniek betekent dat de drager het programma verliest wanneer de stroom wegvalt. Deze programmeertechniek moet inherent in situ gebeuren. Reversibel <-> niet-reversibel: Als een programmeertechnologie reversibel is, kan het programma op de drager (volledig) gewijzigd worden. In situ <-> non in situ: Als de programmatie in situ kan (moet) gebeuren, dan betekent dit dat de chip niet uit z n fysieke context moet (mag) gehaald worden voor het programmeerproces. De verschillende technieken zijn: Smeltverbindingen: Men brengt bij fabricage een overvloed aan metallische baantjes aan. Programmeren van de eenheid komt er dan op neer dat met (gericht) sommige van deze baantjes doorsmelt door er een grote stroom door te sturen. Deze technologie is niet-volatiel, irreversibel en kan niet in situ gebeuren. Anti-fuses: Men brengt bij fabricage een veelheid van metallische verbindingen aan, waar deze echter een hoge impedantie hebben. Door het aanleggen van een hoge spanning over deze baantjes, kan men de weerstand doen doorslaan. Dit resulteert in een goed geleidend pad. Deze technologie is niet-volatiel, irreversibel en kan niet in situ gebeuren. Vlottende gate: Men brengt veldeffect-transistoren aan die tijdens de normale werking niet aangestuurd worden, maar waarvan men de kanaalweerstand kan aanpassen, dit door een lading aan te brengen op de vlottende gate. Deze technologie is niet-volatiel, reversibel en kan niet in situ gebeuren. Geheugencellen: Ten slotte kan men ook gebruik maken van geheugencellen. Het programma wordt dan opgeslagen in dit geheugen, transistors worden erdoor aangestuurd, waardoor geleidende paden in de chip Oude examenvragen Evi Weymaere 4

geopend of gesloten worden. Deze technologie is volatiel (als men met RAM-geheugen werkt, men kan desnoods ook met een niet-volatiele vorm van geheugen werken, waar dan automatisch bij het aanschakelen van de stroom het gewenste programma van dit permanente naar het RAM-geheugen wordt geschreven), reversibel en moet in situ gebeuren (wegens de volatiliteit). 4. Bespreek de PLA-architectuur. Programmable Logic Array. De structuur bestaat uit een programmeerbare EN- en een al even programmeerbare OF-matrix. Men kan selecteren welke factoren men opneemt in de termen, gevormd in de EN-matrix, alsook welke termen men opneemt per functie, in de OF-matrix. Minimalisatie van de Boolese vormen, al dan niet gemeenschappelijk tussen verschillende functies, kan dus expliciet uitgebuit worden. De ingangen worden rechtstreeks en gecomplementeerd aangelegd aan een programmeerbare interconnectiematrix. De kolommen van deze matrix zijn de ingangen van een aantal EN-poorten. Elke poort kan verbonden worden met elke ingang. De outputs van deze EN-poorten worden naar een tweede matrix gevoerd, waarvan de rijen de ingangen zijn naar een aantal OF-poorten. De outputs van deze poorten vormen de outputs van de component. Er is dus een beperking op het aantal producttermen. Het toestandsregister van de PLA-architectuur is de PLS. 5. Bespreek PAL-architecturen. Programmable Array Logic. Deze architecturen zijn een variant op de PLA-architectuur (zie vorige vraag). In deze architecturen wordt echter de OF-matrix vast genomen, met elke OF-poort verbindt men de outputs van een vast aantal EN-poorten. Enkelvoudige minimalisatie van de Boolese vormen heeft nog steeds (beperkte) zin, gemeenschappelijke minimalisatie niet meer. Het voordeel is dat de component sneller wordt door het wegvallen van de OR-rij en dat er meer producttermen kunnen worden aangeboden. 6. Bespreek Cell Arrays. Deze worden ook vaak Field Programmable Gate Arrays (FPGA s) genoemd. Ze bestaan uit een raster van Configurable Logic Blocks (CLB s), die elk verscheidene functies kunnen uitvoeren van 5 of van 2 keer 4 variabelen, dit gebeurt in de programmeerbare functiegenerator. De CLB s worden onderling verbonden door directe verbindingen tussen nabije blokken, lange verbindingen die over het hele bord gaan en ten slotte via programmeerbare interconnectieblokken, waar men zelf paden mee kan construeren. Het gebruik van deze interconnectieblokken maakt een FPGA wel erg traag. 7. Bespreek het ontwerptraject voor een circuit op een FPGA aan de hand van het Gayski-diagram. Men begint met de gedragsbeschrijving in te geven (bijvoorbeeld in VHDL), dit gebeurt meestal op logisch of R/T-niveau (VHDL vertrekt van een hoger niveau). Hierna wordt de beschrijving gesynthetiseerd. Het resultaat uit deze stap kan gesimuleerd worden. Men valideert deze simulatie. Nu wordt het ontwerp op de component geplaatst en wordt de interconnectie aangebracht. Men kan nu precieze timinggegevens verkrijgen en deze extraheren. Hier kan men een idee krijgen van het werkelijk tijdsgedrag van de implementatie. VHDL heeft voorzieningen om deze back annotation te ondersteunen. Nu kan men het bestand genereren waarmee de component kan geprogrammeerd worden. Oude examenvragen Evi Weymaere 5

8. Bespreek Semi-custom-Gate-Arrays. Semi-custom gate-arrays bestaan uit een raster (wafer) van vaste cellen of poorten. Er zijn echter nog geen (afdoende) verbindingen aanwezig tussen deze cellen onderling. Op zich voert deze structuur dus geen (nuttige) functie uit. Bij productie brengt men dan geleidende baantjes aan op de chip. Zo creëert men gemakkelijk een werkende chip. Het nadeel is dat men zelden het silicium volledig benut met een ontwerp. 9. Bespreek standaardcellen. Men zorgt voor een bibliotheek van eerder gerealiseerde functies die een zeer gelijkende fysische layoutstructuur hebben (zelfde hoogte). Dit soort van cellen kan men in rijen plaatsen en de gewenste interconnecties tussen de cellen realiseren (in bedradingskanalen die tussen de rijen lopen). De oppervlakte van een standaardcel kan kleiner zijn dan deze van een semi-custom macro met dezelfde functionaliteit, omdat ook de diffusies en de bedrading in de polylagen op maat gemaakt worden. De resultaten zijn echter niet zo goed als full-custom: de layout is ijler en het circuit is trager wegens de langere bedrading en standaard poorten. 10. Maak een vergelijking tussen standaardcomponenten, programmeerbare componenten en ASIC s onder andere op gebied van snelheid, vermogenverbruik, complexiteit, prijs Standaardcomponenten Programmeerbare componenten ASIC s Zeer snel wegens kleine Relatief traag door de Hoog, want ontwerp Snelheid oppervlakte. lange verbindingen tussen de kleine componenten. wordt ernaar aangepast. Vermogenverbruik Groot, want bevat veel Hoog, want condensatoren Laag, door klein siliciumoppervlak. overtollige chips. worden opgeladen. Assortiment te beperkt Laag chipaantal, systeem is Kan zeer compact worden, Complexiteit er wordt minder om de complexiteit af te vaak complex. dekken als n stijgt. siliciumoppervlak gebruikt. Goedkoop doordat er Vrij duur door de dure Initiële kost is hoger, maar veel producenten zijn componenten die worden de productiekost van de Prijs (concurrentie) en het gebruikt. componenten is lager dan meestal in grote aantallen programmeerbare wordt aangekocht. componenten bij voldoende grote oplagen. Zeer kort, alle componenten Kort, het product moet Lang, alles moet zelf wor- Ontwerpcyclus meteen voor- enkel nog maar geproden ontworpen en handen. grammeerd worden. gecontroleerd. Makkelijk te testen. Minder observeerbaar, Testen wordt moeilijker. Toegankelijkheid interne verbindingen kunnen niet zomaar bemeten worden. Zeer eenvoudige of Hogere complexiteit dan Bij grote oplagen, een frequent voorkomende mogelijk met standaardcomponenten, welomschreven functio- Gebruik geen al te naliteit en andere speci- chips. hoge vereisten op snelheid fieke eisen zoals afmetingen of vermogen, kleine of vermogen- oplagen. dissipatie. Voorbeeld Chips met poorten ROM Processors Oude examenvragen Evi Weymaere 6

Hoofdstuk 4: Synthese van combinatorische schakelingen 1. Bespreek het algoritme van Quine-McCluskey. Schrijf alle mintermen in een tabel en rangschik op het aantal eentjes. Neem de mintermen samen met Hamming-afstand 1 en zet een - op de plaats waar ze verschillen. Merk deze twee mintermen aan. Blijf dit doen tot je niet meer verder kan. De niet gemerkte termen zijn de priemimplicanten. De minimale som wordt gevonden door een tabel te maken van alle priemimplicanten en de mintermen. Zet een merkteken op elke combinatie van minterm en priemimplicant waarvan de priemimplicant de minterm bevat. Zoek alle kolommen die slechts één merkteken hebben. De overeenkomstige rijen zijn de essentiële priemimplicanten. Schrap die rijen alsook de termen die bevat zijn in de EPIs. Indien er nog kolommen overblijven, schrap dan alle dubbele rijen en rijen die helemaal bevat zijn in andere. Pas kolomdominantie toe (kolommen schrappen die minstens overal een teken hebben waar een andere kolom er één heeft). Zijn er opnieuw kolommen met slechts één merkteken, doe dan opnieuw. Als er geen kolommen zijn met maar één merkteken, moet je random een rij kiezen en verder uitwerken. Deze laatste stap kan verbeterd worden aan de hand van de branch-and-bound optimalisatie. Deze houdt twee verbeteringen in. Men kiest niet zomaar een willekeurige rij, maar gebruikt een heuristiek om de beste rij te kiezen, dit is de rij met het meeste merktekens. Alvorens men kiest, probeert men na te gaan of het wel de moeite loont. Quine-McCluskey voor meervoudige functies: schrijf naast elke minterm de functies die hij realiseert. Bij het samennemen van mintermen zet men er de doorsnede van de functies naast. 2. Bespreek Espresso. Het algoritme bestaat uit een zevental stappen: Opgave van de functies in de vorm van ternaire kubuslijsten. Om de functie helemaal te kunnen beschrijven, stelt men de ON-set en de DC-set voor. De expansiefase. Men zal de opgegeven implicanten één voor één laten groeien tot zij hun maximaal toelaatbare afmeting bereikt hebben. Het groeien gebeurt door het vervangen van een 1 of een 0 door een -. Hierbij moet geverifieerd worden dat de nieuwe term niet overlapt met de OFF-set. Extractie van essentiële priemimplicanten. Men vindt dat een priemimplicant p niet essentieel is als en slechts als p volledig bedekt wordt door { }. Hierbij is F de kubuslijst die gevonden werd in de vorige fase en D de don t care-kubuslijst. De consensus van twee kubussen die geen variabele bevatten in verschillende polariteit is het product van die kubussen, bevatten zij wel een variabele in verschillende polariteit, dan is het hun optioneel product. Niet-redundante som. Men verwijdert de EPIs uit F en behandelen de mintermen die zij bedekken als don t care-termen. Nu houdt men een lijst van priemimplicanten over, L. Alle relatief essentiële priemimplicanten (geen enkele kan weg) moeten worden bewaard. Uit de overige priemimplicanten halen we de totaal redundante (bedekken enkel don t care-termen) en de partieel redundante (sommige kunnen weg). Men gaat nu de essentiële houden en de partieel redundante reduceren. Oude examenvragen Evi Weymaere 7

Reductie. Stappen 2 tot en met 4 blijven herhalen. Hiervoor moet men eerst de implicanten terug verkleinen. Een kubus kan gereduceerd worden op voorwaarde dat de nieuwe kubus alle termen bevat van de oude die geen DC-termen zijn en ook niet bedekt worden door de partieel redundante min de oude. Men blijft itereren tot het niets meer opbrengt. Laatste reductiepoging. Deze stap probeert nieuwe priemimplicanten te genereren die tot nu toe nog niet opgenomen werden. Hiervoor gaat men de implicanten reduceren zonder rekening te houden met het feit dat er al termen gereduceerd zijn. Men zal nu opnieuw de expansiestap uitvoeren. Als er hierbij een andere term bedekt werd, weet men zeker dat men een nieuwe priemimplicant gevonden heeft. Hierna voert men weer stap 3 uit. En doorloopt men de lus opnieuw. Outputreductie. Men zal proberen in het outputgedeelte zoveel mogelijk 1-tjes te vervangen door 0-en zonder de realisatie van de functies te doorbreken. 3. Waarom is Espresso beter dan McCluskey? Het omzeilt de moeilijkheden die optimale algoritmen zoals dat van Quine-McCluskey kenmerken: de noodzaak om de functies op te geven onder mintermgedaanten (2 n mogelijkheden) en het feit dat men via de complete som om moet (kardinaliteit 3 n /n). 4. Leg de volgende termen uit: implicant, PI, complete som, EPI, niet-redundante som, minimale som. Een implicant van een functie f is een Boolese functie, voorgesteld door een product van lettervormen, die f impliceert (XY f, dus als XY = 1, dan is f = 1). Een priemimplicant van een functie f is een implicant van f die geen andere implicanten van f impliceert. De complete som van een functie f is de som van alle priemimplicanten van f. Een niet-redundante som van een functie is een som van priemimplicanten van f die equivalent is van f en waaruit geen enkele term mag weggelaten worden zonder deze equivalentie te verbreken. Een afgezonderde cel van een functie f is een punt dat deel uitmaakt van slechts één priemimplicant van f. Deze priemimplicant noemt men de essentiële priemimplicant. De minimale som is een niet-redundante som met minimale kost. 5. Bespreek het verschil tussen twee- en meerniveaurealisatie. Bij tweeniveaurealisatie heeft men slechts twee niveaus, het eerste niveau bestaat uit EN-poorten en deze komen samen in een OF-poort op het tweede niveau. Dit is echter niet altijd de beste compromis tussen kostprijs en snelheid. Als er bijvoorbeeld veel EN-poorten zijn en de OF-poort dus een grote fan-in heeft, zal het beter zijn om over te gaan naar meerniveausynthese. Hierbij kunnen meer dan twee poorten elkaar opvolgen. Meerniveaurealisatie kan verkregen worden door factorisatie, multiplexersynthese of spectrale technieken. Oude examenvragen Evi Weymaere 8

Hoofdstuk 5: Analyse van sequentiële netwerken 1. Bespreek de verschillende problemen die in schakeling kunnen optreden. Er zijn drie mogelijke oorzaken waardoor een circuit zich niet gedraagt zoals voorspeld: Kritische races komen voor bij sequentiële netwerken, als er transities gebeuren met Hamming-afstand groter dan 1. Aangezien de twee signalen nooit op dezelfde moment zullen veranderen, ligt de precieze volgorde waarin toestandsgrootheden veranderen niet vast. Als ze veranderen via een pad van onstabiele toestanden, zal men de correcte uitgang verkrijgen. Als er echter een stabiele toestand op het pad ligt, zal de schakeling niet de correcte werking vertonen. Dit kan worden opgelost door overgangen tot Hamming-1 te beperken. Statische en dynamische hazards zijn overgangsverschijnselen. Statische hazards zijn een korte piek op constant niveau en dynamische hazards zijn een kleine impuls die voor de gewenste overgang verschijnt. Statische hazards kunnen worden geëlimineerd door redundantie in te voeren en kunnen worden gevonden aan de hand van een ternaire analyse. Essentiële hazards komen enkel voor in sequentiële netwerken met minstens twee terugkoppellussen. Het komt voort uit een looptijdsverschil tussen de poorten en is in feite een race tussen een netwerkinput en een interne toestandsveranderlijke. Men zou dit kunnen voorkomen door extra vertragingen in de terugkoppellussen. Deze hazards kunnen ook gevonden worden door ternaire analyse. Oude examenvragen Evi Weymaere 9

Hoofdstuk 6: Sequentiële schakelingen en hun bouwstenen 1. Bespreek de soorten flipflops en hun werking. Flipflops kunnen onderverdeeld worden op basis van hun klokgedrag en hun datagedrag. Flipflops zonder klok. De toestand wordt veranderd synchroon met veranderingen op de data-ingangen, ze zijn dus asynchroon. Flipflops met niveausturing. De toestand volgt de input zolang het kloksignaal zich op een bepaald niveau bevindt. Flipflops met flanksturing. Deze flipflops zijn gevoelig aan een overgang op het kloksignaal, bijvoorbeeld een stijgflank. Flipflops met pulssturing. Dit zijn twee in cascade geschakelde niveaugestuurde flipflops, de master en slave. Beide flipflops hebben een complementair kloksignaal. Het D-gedrag. De input is één binair signaal en bij activiteit op het kloksignaal zal de flipflop het logisch gedrag opslaan. Het S/R-gedrag. Een actief niveau op de Set zal de flipflop op 1 brengen en een actief niveau op de Reset zal de flipflop terug op 0 zetten. Beiden kunnen nooit tegelijk 1 zijn. Het T-gedrag. Bij een actief niveau op de data-input, zal de toestand gecomplementeerd worden tijdens activiteit op het klokgedrag. Het J/K-gedrag. J speelt de rol van Set en K van Reset, hier kunnen ze wel tegelijkertijd actief zijn, de toestand zal dan worden gecomplementeerd. 2. Bespreek klokverschuiving en geef de link met flipflops. De klokverschuiving is de vertraging van de klok in de ene component ten opzichte van een andere. De oorzaak van klokverschuivingen ligt in het transport van de klok (propagatiedelay). Men moet bij het aansturen van flipflops proberen de klokverschuivingen te beperken om hun correct gedrag te garanderen. 3. Bespreek metastabiliteit. Metastabiliteit kan voorkomen wanneer de ingangen niet constant gehouden worden tijdens het I-interval. Als kloksignaal en datasignaal ongeveer gelijktijdig door de verboden zone lopen (want veranderen niet oneindig snel), kunnen in het inwendige van de flipflop verschillende signalen waarden aannemen in de omgeving van het drempelpunt. Dit is een onstabiel evenwichtspunt en de flipflop gedraagt zich dan als een onstabiel teruggekoppeld lineair systeem. De spanning zal dan volgens een exponentiële wet weg evolueren van het onstabiel evenwichtspunt. Dit kan zeer traag gaan. 4. Onder welke voorwaarden gedragen flipflops zich volgens hun nominaal gedrag = regels voor synchroon ontwerp? * Alle geheugenelementen moeten hetzelfde kloksignaal toegevoerd krijgen, klokverschuivingen moeten beperkt blijven. * De flipflops moeten hetzelfde klokgedrag vertonen. * De klokperiode moet voldoende groot zijn, de eindwaarde moet bereikt zijn. * Het I-interval en O-interval mogen niet overlappen. * De ingangen mogen geen inputverandering teweeg brengen tijdens het I-interval. Oude examenvragen Evi Weymaere 10

5. Bespreek geheugen. Er zijn twee grote klassen van geheugens: statische geheugens en dynamische geheugens. Statische geheugens gebruiken flipflops als geheugenelementen. Elke bit vereist dus minstens twee actieve transistoren. Dit heeft als gevolg dat de geheugencapaciteit per eenheidsoppervlakte van statische geheugens veel kleiner is dan dat van dynamische. Men gebruikt ze vooral voor de realisatie van relatief kleine maar snelle geheugens (bijvoorbeeld de registers: parallelle toegang). De meer gebruikelijke vorm van statische geheugens, RAM, voorziet in één adres, waarop ofwel een leesofwel een schrijfoperatie uitgevoerd kan worden. Sommige statische geheugens hebben gescheiden datain- en uitgangen, bij de meeste wordt dit gecombineerd tot bidirectionele draden. Dit vereist dat zowel het geheugen als de gegevensbron die de schrijfgegevens aanbrengt afschakelbare uitgangen bezitten. De minste aansluitingsdraden zijn nodig bij een woordbreedte van 1 of 2 bits. Nochtans vindt men ook woordbreedten van 4 en 8 bit, omdat dit het aantal chips reduceert. De interne organisatie van een geheugenchip is meestal als een rechthoekige of vierkante matrix van geheugencellen. Elke cel heeft een rij- en een kolomadres, deze worden tegelijkertijd aangelegd. De adresdecoder (bestaand uit een rij- en kolomdecoder) zoekt de correcte informatie. Dit gebeurt meestal asynchroon. Recentelijk zijn er ook Synchrone SRAM s bijgekomen, deze slaan de data op in een intern register bij de stijgflank op een kloksignaal. Dynamische geheugens maken gebruik van transistoren en condensatoren. Per bit is er één transistor en een condensator nodig. Men zal de woordbreedte dikwijls op 1 bit nemen. Men zal het adres opsplitsen in twee helften (rijadres en kolomadres) die niet tegelijkertijd worden aangelegd. Het lezen gebeurt door eerst de hele rij uit te lezen en vervolgens de juiste kolom te kiezen. Het lezen van een cel zal de geheugencondensator ontladen, het is destructief. De uitgelezen informatie zal dus terug moeten ingeschreven worden. De cyclustijd is duidelijk groter dan de toegangstijd. Het geheugen moet ook om de zoveel tijd opgefrist worden (herladen worden). De toegangstijd kan verkort worden door gebruikt te maken van de paginamode of burst mode. Hierbij wil men lezen op adressen die allemaal behoren tot dezelfde rij. Oude examenvragen Evi Weymaere 11

Hoofdstuk 7: Sequentiële synthese op logisch niveau 1. Bespreek toestandsassignatie. Bij toestandsassignatie in synchrone netwerken wordt de nadruk gelegd op economie in de realisatie van de toestandsfunctie en de outputfunctie. Er zijn twee bekende methoden voor toestandsassignatie in synchrone netwerken: de afstandsmethode (gewichtsmethode), die vooral de uitgang minimaliseert en de partitiemethode. Bij toestandsassignatie in asynchrone netwerken is het belangrijk dat het netwerk correct zal werken. De toestandsassignatie moet er dus voor zorgen dat er geen kritische races of essentiële hazards ontstaan in het netwerk. Een methode daarvoor is bijvoorbeeld het vermijden van overgangen met een hammingafstand groter dan 1. Dit kan door alle toestanden waartussen overgangen kunnen gebeuren naburige assignaties te geven. Men zal dus meestal meer transities nodig hebben dan er afstand-1 paren bestaan en zal daarom het aantal geheugencellen moeten vergroten. Men kan ook overwegen om toch grotere overgangen te gebruiken, waarbij men moet nagaan of er geen kritische race optreedt. Men kan ook zoeken naar meervoudige overgangen, dus over niet-gebruikte of ongevaarlijke tussentoestanden gaan. 2. Stabiele partitie: wat is het, waar wordt het voor gebruikt, hoe vind je het? Een partitie p van een ttt is stabiel wanneer ze bewaard blijft onder f, dus wanneer de opvolgertoestanden van elke klasse onder elk inputsymbool alle in dezelfde klasse van p liggen. Het wordt gebruikt bij toestandsassignatie en bij het ontbinden van een automaat in zijn cascade- of parallelvorm. Kies een koppel toestanden uit de ttt als startknoop in de opvolgergraaf. Zoek alle koppels die bereikbaar zijn vanuit deze startknoop. Verzamel de koppels die overeenkomen met de bezochte knopen en bereken hun transitieve sluiting. Herhaal vanaf het begin voor en ander koppel, tot wanneer alle koppels onderzocht zijn. Bereken iteratief alle glb s en lub s van de gevonden partities, tot wanneer er geen nieuwe partities meer gegenereerd worden. Oude examenvragen Evi Weymaere 12

Hoofdstuk 8: Compositie en decompositie: essentiële stappen in het ontwerptraject 1. Bespreek synchronisatie (-protocol, -flipflop). Hoe wordt het probleem van statische hazards opgelost? Men maakt gebruik van asynchrone eendraadcommunicatie om het interval aan te geven waarin de meerbit-informatie stabiel is. De ingangen van de ontvanger en zender zijn afgeschermd met een synchronisatieflipflop. Als deze signalen lokaal gesynchroniseerd worden, zullen zij in beide automaten betrouwbare Hamming-1 overgangen induceren, die de bemonstering van de gegevens slechts toelaten wanneer de gegevens al meer dan één klokperiode stabiel zijn (zo kunnen er geen statische hazards gedetecteerd worden). De werking van het protocol wordt verduidelijkt op de onderstaande figuur. Oude examenvragen Evi Weymaere 13

2. Bespreek interconnectie bij synchrone automaten. Als we de functies opstellen, zien we dat ( ), het blijkt dus onmogelijk om O uit te drukken als functie van S en I. De reden hiervoor is dat we gestart zijn van een Mealy-automaat, de output kan combinatorisch afhangen van de inputs. Een voldoende voorwaarde om toch tot een bona fide synchrone automaat te komen is te vertrekken van een gedeeltelijke Moore-machine, waarin O 12 en/of O 22 niet afhangen van I 12 respectievelijk I 22. 3. Leg uit: Er moet voor gezorgd worden dat de interconnectie van automaten niet leidt tot de invoering van extra combinatorische terugkoppellussen. De invoering van een extra combinatorische terugkoppellus kan aanleiding geven tot de creatie van extra toestanden. Deze toestanden en hun overgangen zijn niet kloksynchroon, de resulterende machine is het dus ook niet. In de praktijk betekent dat dat men in elke terugkoppellus minstens één flipflop opneemt. Oude examenvragen Evi Weymaere 14

Hoofdstuk 9: Het testen van digitale systemen 1. Bespreek stuck-at-faults. Stuck-at-faults zijn plakfouten, een signaal lijkt vast verbonden met een 0 of een 1. Ook een open keten of een zwevende input kan zich als SAF voordoen. Als er een SAF optreedt op een terugkoppelingspad van een sequentieel circuit, als de toestandsruimte van dit circuit wijzigen, het circuit kan zelfs combinatorisch worden. Bridging faults zijn overbruggingsfouten. Het is een kortsluiting tussen twee signaaldraden, maar kunnen ook voorkomen bij een open keten in de MOS-technologie. Een overbruggingsfout kan extra terugkoppelingen introduceren (zowel synchroon als asynchroon). Oude examenvragen Evi Weymaere 15

Beschrijving en simulatie van digitale schakelingen met behulp van VHDL 1. Bespreek modellering van de tijd in VHDL. Er wordt een variabele t bijgehouden. Deze variabele wordt steeds geïncrementeerd. Per verschillende waarde van t wordt er gezocht naar nieuwe actieve processen, worden deze geëvalueerd (tot wachttoestand) en worden de signaaleigenschappen aangepast. In een proces worden de instructies sequentieel afgewerkt. Buiten een proces gaat dit parallel. 2. Geef twee voorbeelden van mogelijke programmeerwijzen van een synchrone automaat in VHDL. Moore en Mealy. Beiden hebben twee processen: een synchroon sequentieel proces om de toestanden aan te passen en een combinatorisch proces om de uitgang te berekenen. Het verschil tussen deze twee is dat bij Moore de uitgang enkel afhankelijk is van de toestand, dus enkel te toestand zal zich in de sensitivity list bevinden. Bij een Mealy-automaat is de uitgang afhankelijk van de toestand en de ingang, dus beiden moeten in de sensitivity list. 3. Wat is het verschil tussen: process A <= c after 2 ns A <= b after 3 ns end process en A <= c after 2 ns A <= b after 3 ns? Als de vertragingen in een proces zitten en gemodelleerd zijn als inertiaalvertragingen (zoals hier het geval), zal de driver de eerste vertraging negeren. De hoogste vertraging (3 ns) wordt ingesteld als inertiaalvertraging, dus alle pulsen korter dan 3 ns zullen worden genegeerd. Enkel de tweede regel wordt dus uitgevoerd als het proces wordt opgeroepen. Als de vertragingen niet in een proces zitten, worden ze allebei uitgevoerd, en dit elke keer als de tijd verandert. We krijgen dus twee signalen van A, zoals te zien in onderstaande figuur. Binnen een proces worden de instructies sequentieel uitgevoerd en buiten een proces gebeurt dit parallel. 4. Situeer VHDL in Gajski. VHDL bevindt zich tussen het gedrag en de logische structuur over het systeemniveau, het algoritmisch niveau en het R/T-niveau. Oude examenvragen Evi Weymaere 16

5. Hoe implementeer je een Mealy-automaat in VHDL? Er zijn twee grote stukken: een sequentieel proces om de toestand aan te passen en een combinatorisch proces om de uitgang te berekenen. Bij een Mealy-automaat hangt de uitgang af van de ingangswaarden en de toestand, dus deze moeten allebei in de sensitivity list zitten van het combinatorisch proces. Een voorbeeldje: type state_t is (A,B,R); signal S_p: state_t; signal I,U: std_logic_vector( ); process(clk,rst) -- sequentieel variable S: state_t; begin if rising_edge(clk) then if rst = 1 then S_p <= R; else -- bereken nieuwe_toestand S := nieuwe_toestand; S_p <= S; end if; end if; end process; process(s_p,x) -- combinatorisch begin -- bereken nieuwe_uitgang U <= nieuwe_uitgang; end process; 6. Vier kleine stukjes VHDL gegeven. Wat voor soort functies realiseren ze? Kies uit combinatorisch, Mealy, Moore, asynchroon teruggekoppeld circuit. Een combinatorische functie heeft in de sensitivity list geen kloksignaal en in het proces zelf worden er enkel berekeningen gedaan. Een Mealy-automaat heeft een sequentieel synchroon proces om de toestand aan te passen en een combinatorisch proces (met ingang en toestand in de sensitivity list) om te uitgang te berekenen. Een Moore-automaat heeft een sequentieel synchroon proces om de toestand aan te passen en een combinatorisch proces (met enkel de toestand in de sensitivity list) om de uitgang te berekenen. Een asynchroon teruggekoppeld circuit heeft in de sensitivity list geen kloksignaal, maar zal tijdens het proces zelf wel toestanden aanpassen. Oude examenvragen Evi Weymaere 17