Coder Social home page Coder Social logo

03_uebung's Introduction

Übungsaufgabe zur Veranstaltung IT Systeme im Bachelorstudiengang Wirtschaftsinformatik an der Hochschule Rosenheim.

03 - Prozessorarchitektur

In dieser Übung werden wir uns weiter ein wenig mit Schaltnetzwerken beschäftigen.

Die Lösung befindet sich im Branch Musterloesung.

Aufgabe 1: Alarmanlage

Alarmanlagen sind heutzutage allseits bekannt und werden auch im Privaten sehr häufig eingesetzt. Ziel soll es im Folgenden sein, eine Schaltung einer einfachen Alarmanlage zu entwickeln:

  • Durch das Auslösen eines Sensors (s) (bspw. an Fenstern, Haustüren etc.) soll eine Alarm-Sirene (A) aktiviert werden, die erst durch ein manuelles Rücksetzen (r) wieder verstummt.

a)

Entwickeln Sie mit einem ODER-Gatter eine „Selbsterhalte“-Schaltung, die beim Auslösen eines Sensors (s) den Ausgang A dauerhaft auf 1 setzt, auch wenn s wieder deaktiviert wird.

Note: Bei einer „Selbsterhalte“-Schaltung wird das Ausgangssignal eines Gatters nicht nur als Signal für den Ausgang verwendet, sondern auch durch eine zusätzliche Kabel-Abzweigung zurückgeführt und als Eingang für ein Gatter verwendet (Hier mit einem Oder-Gatter).

b)

Ergänzen Sie die Schaltung um eine Möglichkeit, die Alarmanlage zurückzusetzen (r für Rücksetzen). Füllen Sie dazu zunächst die Wahrheitstabelle aus (den Zustand r=1 und s=1 betrachten wir später gesondert):

r s A
0
0
1
1 1 ??0

Note: Nutzen Sie den Ausgang des ODER-Gatters als Eingang in ein neues UND-Gatter. Der Ausgang des UND-Gatters wird zum 2. Eingang des ODER-Gatters geführt. Jetzt muss nur noch der Schalter Rücksetzen richtig angeschlossen werden.

c)

Konzipieren Sie eine Alarmanlage mit Setzen (s) und Rücksetzen (r) nur aus NAND-Gattern.

Note: Ein NICHT-Gatter kann mit einem NAND-Gatter erzeugt werden, indem man beide Eingänge mit dem gleichen Eingangssignal verbindet. Behalte weiter die sich "kreuzende Leitungsstruktur" bei, ersetze die bisherigen Gatter mit NAND-Gatter, ...

Aufgabe 2: Zahlenkomparator für Dualzahlen

Eine digitale Schaltung, mit der zwei Dualzahlen auf Gleichheit oder Ungleichheit geprüft werden, wird als Zahlenkomparator bezeichnet.

In der Aufgabe soll eine Schaltung entwickelt werden, die in der Lage ist, zwei Dualzahlen P (P1 und P2) und Q (Q1 und Q2) mit je zwei Bits zu vergleichen. Im Falle der Ungleichheit soll noch ein Größer -kleiner- Vergleich erfolgen.

a) Ergänze die Wahrheitstabelle.

b) Stellen Sie die drei Funktionsgleichungen Y1, Y2 und Y3 auf und minimieren diese.

c) Skizziere die Schaltung aus Grundgliedern

P1 P2 Q1 Q2 Y1 (P>Q) Y2 (P=Q) Y3 (P<Q)
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Aufgabe 3: Flip-Flop in Java

a)

Schreiben Sie eine Klasse FlipFlop, die eine Flip-Flop Schlatung simuliert. Diese soll das Interface Latch implementieren:

public interface Latch {
    // simulates setting S and R of a latch
    void set(boolean S, boolean R);
    // returns the A value
    boolean getA();
    // returns the B value
    boolean getB();
}

Hierzu benötigt man kein grosses Projekt in IntelliJ, sondern eine einzelne Klasse sollte reichen, sowie eine Datei für das Latch-Interface.

Main-Methode nicht vergessen!

In der main()-Methode können die einzelnen Fälle abgedeckt werden.

b)

Erinnern Sie sich and FunctionalInterfaces?

Gegeben ist folgendes Interface:

public interface Logic {
    //
    boolean operate(boolean in1, boolean in2);
}

Schreiben Sie eine Klasse Gate, die eine Methode public static boolean proc(boolean in1, boolean in2, Logic l) hat. Diese Methode führt die FunctionalInterface Methode operate aus und gibt die Liste der Wahrheitswerte zurück.

Folgende main() Methode sollte laufen:

public class Gate {
    // 
    
    public static void main(String[] args) {
    System.out.println(Gate.proc(false,false, (i1,i2) -> i1 || i2));
    System.out.println(Gate.proc(true,false, (i1,i2) -> i1 || i2));
    System.out.println(Gate.proc(false,true, (i1,i2) -> i1 || i2));
    System.out.println(Gate.proc(true,true, (i1,i2) -> i1 || i2));

    System.out.println(Gate.proc(false,false, (i1,i2) -> i1 && i2));
    System.out.println(Gate.proc(true,false, (i1,i2) -> i1 && i2));
    System.out.println(Gate.proc(false,true, (i1,i2) -> i1 && i2));
    System.out.println(Gate.proc(true,true, (i1,i2) -> i1 && i2));
    }
}

Produziert:

false
true
true
true
false
false
false
true

Erweitern Sie die Lambda-Ausdrücke um NOR, NAND und XOR Funktionen!

03_uebung's People

Contributors

matworx avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.