diff --git a/Schaltlogik/Schaltlogik.ipynb b/Schaltlogik/Schaltlogik.ipynb index bc137aa3cb5e397124e2c6f96893650558432491..7dddb3a6fd37dbdd264768db76c0046aefb4c795 100644 --- a/Schaltlogik/Schaltlogik.ipynb +++ b/Schaltlogik/Schaltlogik.ipynb @@ -3,9 +3,7 @@ { "cell_type": "markdown", "id": "885c7767-e912-4e31-b5d6-3a3443ffa58e", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "# Fakultät für Physik\n", "\n", @@ -116,13 +114,38 @@ { "cell_type": "markdown", "id": "387c78c9-606e-4201-b2be-5ed4fe1d249f", + "metadata": {}, + "source": [ + "## Aufgabe 1: TTL-Gatter auf dem Steckbrett\n", + "\n", + "Die folgenden logischen Schaltungen stecken Sie mit Hilfe von diskreten Bauelementen und Kabeln **auf einem Experimentiersteckbrett**." + ] + }, + { + "cell_type": "markdown", + "id": "9456f045-22f0-41c3-bf74-eefc2899232f", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ - "## Aufgabe 1: Gatter auf dem Steckbrett\n", + "### Aufgabe 1.1: Not-Gatter\n", + "\n", + " * Implementieren Sie ein **Transistor-NOT-Gatter**\n", + " * Vergewissern Sie sich von dessen Funktion\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "4122989f-0863-4788-8bf9-9bd907b97c55", + "metadata": {}, + "source": [ + "**D I S K U S S I O N**\n", + "\n", + "*Fügen Sie eine abschließende Diskussion und Bewertung Ihrer Lösung hier ein. Löschen Sie hierzu diesen kursiv gestellten Text aus dem Dokument.* \n", "\n", - "Die folgenden logischen Schaltungen stecken Sie mit Hilfe von diskreten Bauelementen und Kabeln **auf einer Experimentiertafel**." + "---" ] }, { @@ -132,9 +155,9 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "### Aufgabe 1.1: OR-Gatter \n", + "### Aufgabe 1.2: OR-Gatter \n", "\n", - " * Implementieren Sie ein **Dioden-OR-Gatter**.\n", + " * Implementieren Sie ein **Transistor-OR-Gatter**.\n", " * Vergewissern Sie sich von dessen Funktion.\n", "\n", "---" @@ -159,9 +182,9 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "### Aufgabe 1.2: AND-Gatter \n", + "### Aufgabe 1.3: AND-Gatter \n", "\n", - " * Implementieren Sie ein **Dioden-AND-Gatter**.\n", + " * Implementieren Sie ein **Transistor-AND-Gatter**.\n", " * Vergewissern Sie sich von dessen Funktion.\n", "\n", "---" @@ -186,10 +209,9 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "### Aufgabe 1.3: NOT- und NAND-Gatter\n", + "### Aufgabe 1.4: NOR- und NAND-Gatter\n", "\n", - " * Implementieren Sie zusätzlich zum AND-Gatter ein **Transistor-NOT-Gatter**.\n", - " * Erzeugen Sie durch Hintereinanderschalten beider Gatter ein NAND-Gatter.\n", + "* Kombinieren Sie entweder das OR- oder das AND-Gatter mit dem NOT-Gatter aus Aufgabe 1.1 zu einem **NOR** bzw. einem **NAND** Gatter\n", " * Vergewissern Sie sich von dessen Funktion.\n", "\n", "---" @@ -210,11 +232,9 @@ { "cell_type": "markdown", "id": "a14f3fec-784b-4edc-9e5f-6960344a2c0b", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ - "## Aufgabe 2: Gatter auf dem FPGA\n", + "## Aufgabe 2: Boolsche Algebra auf dem FPGA\n", "\n", "Die folgenden logischen Schaltungen implementieren Sie mit Hilfe der frei verfügbaren Herstellersoftware **auf einem FPGA-Chip**." ] @@ -256,7 +276,7 @@ "### Aufgabe 2.2: XOR-Gatter \n", "\n", " * Lesen Sie aus der **Wahrheitstabelle der XOR-Funktion** deren [disjunktive Normalform](https://de.wikipedia.org/wiki/Disjunktive_Normalform) ab.\n", - " * Implementieren Sie diese mit Hilfe von Gattern.\n", + " * Implementieren Sie diese mit Hilfe der ihnen zur Verfügung stehenden Gattern.\n", " * Vergewissern Sie sich von der Funktion der Schaltung.\n", "\n", "---" @@ -276,30 +296,18 @@ }, { "cell_type": "markdown", - "id": "b4758697-b501-45da-a365-05d90a0e0c26", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "id": "fc91b969", + "metadata": {}, "source": [ - "### Aufgabe 2.3: XOR aus NAND-Gattern\n", - "\n", - "**Diese Aufgabe ist nicht verpflichtend.**\n", - "\n", - " * Demonstrieren Sie die Umformung der in **Aufgabe 2.1** vorgestellten XOR-Funktion in disjunktiver Normalform in die Form \n", + "### Aufgabe 2.3: 2-Bit Gleichheit\n", "\n", - "$$\n", - "f=\\overline{\\overline{a\\overline{ab}}\\,\\overline{b\\overline{ab}}}. \n", - "$$\n", - "\n", - " * Implementieren Sie das XOR-Gatter in dieser Form.\n", - " * Vergewissern Sie sich von der Funktion der Schaltung.\n", - "\n", - "---" + " * Entwerfen Sie aus den Ihnen verfügbaren Gattern einen Komparator, der eine logische 1 ausgibt, wenn zwei 2-Bit Zahlen gleich sind. (Diese Schaltung wird häufig in Computern verwendet, um zu reagieren, wenn der Divisor bei einer Division 0 ist).\n", + " * Vergewissern Sie sich von der Funktion der Schaltung" ] }, { "cell_type": "markdown", - "id": "af6a0f12-b1d0-458a-a075-1f452dcfbb3d", + "id": "df17abd6", "metadata": {}, "source": [ "**D I S K U S S I O N**\n", @@ -351,9 +359,7 @@ { "cell_type": "markdown", "id": "6f4aa669-45c2-4ee5-84ca-adcaa1b9dd56", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "### Aufgabe 3.2: Taktpegelgesteuertes RS-Flip-Flop (RST-FF)\n", "\n", @@ -378,9 +384,7 @@ { "cell_type": "markdown", "id": "cdd6bc28-52b6-468f-9320-87c3ecc49c85", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "### Aufgabe 3.3: Zweiflankengesteuertes JK-Flip-Flop (JK-MS-FF)\n", "\n", @@ -405,14 +409,38 @@ "---" ] }, + { + "cell_type": "markdown", + "id": "d8bf5f9b-c0c3-4e2a-b32a-3acef4534109", + "metadata": {}, + "source": [ + "### Aufgabe 3.4: Schieberegister\n", + "\n", + " * Verbinden Sie 4 JK-MS-FFs zu einem 4-Bit Schieberegister.\n", + " * Vergewissern Sie sich von dessen Funktion.\n", + " * Erklären Sie, wie das Schieberegister funktioniert.\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "33c4bc31-0dd0-4e40-9d65-70e6d21fbc76", + "metadata": {}, + "source": [ + "**D I S K U S S I O N**\n", + "\n", + "*Fügen Sie eine abschließende Diskussion und Bewertung Ihrer Lösung hier ein. Löschen Sie hierzu diesen kursiv gestellten Text aus dem Dokument.* \n", + "\n", + "---" + ] + }, { "cell_type": "markdown", "id": "031bfdc7-3f6d-4fcd-b7c4-78069330bbcf", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ - "## Aufgabe 4: Digitale Zähler " + "## Aufgabe 4: Arithmetik" ] }, { @@ -422,10 +450,10 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "### Aufgabe 4.1: 4-Bit-Asynchronzähler\n", + "### Aufgabe 4.1: Halbaddierer\n", "\n", - " * Schalten Sie **vier JK-MS-FFs hintereinander**.\n", - " * Löschen Sie den Inhalt und **beobachten Sie nach jedem Taktzyklus** am $\\mathrm{\\overline{C}}$ die an den Ausgängen $(\\mathrm{Q_{3},\\,Q_{2},\\,Q_{1},\\,Q_{0}})$ angezeigte Binärzahl.\n", + " * Implementieren Sie einen **Halbaddierer**, der zwei einstellige Binärzahlen addiert. Finden sie die jeweils passenden Gatter für die Summe und den Übertrag.\n", + " * Vergewissern Sie sich von dessen Funktionsweise\n", "\n", "---" ] @@ -449,11 +477,11 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "### Aufgabe 4.2: 4-Bit-Synchronzähler \n", - "\n", - " * **Realisieren Sie** eine Schaltung für einen 4-Bit-Synchronzähler.\n", - " * **Überprüfen Sie die Funktion der Schaltung**.\n", + "### Aufgabe 4.2: Volladdierer\n", "\n", + " * Implementieren sie einen 1-Bit **Volladdierer** aus zwei Halbaddierer-Schaltungen und einem Or-Gatter\n", + " * Vergewissern Sie sich von dessen Funktionsweise\n", + " \n", "---" ] }, @@ -471,8 +499,64 @@ }, { "cell_type": "markdown", - "id": "f745017e-62b8-47de-ab9d-2310d99dbf29", + "id": "4a4cbc03-196e-4485-b953-61a41fb663d1", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Aufgabe 4.3: Multiplexer\n", + "\n", + " * Implementieren Sie einen 1-Bit Multiplexer, der zwischen zwei Eingangssignalen A und B unterscheidet\n", + " * Vergewissern Sie sich von dessen Funktionsweise\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "889db9da-6f4a-4b2c-944e-9d7433cc9b3b", + "metadata": {}, + "source": [ + "**D I S K U S S I O N**\n", + "\n", + "*Fügen Sie eine abschließende Diskussion und Bewertung Ihrer Lösung hier ein. Löschen Sie hierzu diesen kursiv gestellten Text aus dem Dokument.* \n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "312e1e11-6f7d-4592-9c93-017123187009", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Aufgabe 4.4: Lookup-Table (LUT)\n", + "\n", + " * Verbinden Sie mehrere Multiplexer miteinander, um eine LUT zu entwerfen.\n", + " * Vergewissern Sie sich von dessen Funktionsweise, indem Sie mithilfe der LUT ein **OR-**, ein **AND-** und ein **NOT-Gatter** emulieren.\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "29b7230d-fc5a-4290-b4b4-fcc8e3b1e89f", "metadata": {}, + "source": [ + "**D I S K U S S I O N**\n", + "\n", + "*Fügen Sie eine abschließende Diskussion und Bewertung Ihrer Lösung hier ein. Löschen Sie hierzu diesen kursiv gestellten Text aus dem Dokument.* \n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "f745017e-62b8-47de-ab9d-2310d99dbf29", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "# Beurteilung" ] @@ -505,7 +589,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.12.7" } }, "nbformat": 4,