Aufgaben und Lösungen

Ähnliche Dokumente
Übung 3: VHDL Darstellungen (Blockdiagramme)

Aufgaben und Lösungen

12 VHDL Einführung (III)

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Praktikum Systementwurf mit VHDL HDL Design Lab

Tutorial Vivado/VHDL Teil 3 7-Segment-Anzeige

D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Einführung in die technische Informatik

Laborübung 3. Latches, Flipflops, Counter

EHP Einführung Projekt A

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

5 VHDL Einführung (I)

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

14 Addierer und Subtrahierer

4 Schaltalgebra. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 4-1

FAKULTÄT FÜR INFORMATIK

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Reconfigurable Computing. VHDL Crash Course. Chapter 2

Laborübung 4. Zustandsautomaten (Finite State Machines)

FPGA-Entwurf mit VHDL. Serie 3

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Aufgabe 1: Kombinatorische Schaltungen

VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

VHDL Simulation. in ORCAD

ERA-Zentralübung 12. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 12

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

1.1 VHDL-Beschreibung

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

Hardware Praktikum 2008

Übung 5: VHDL Zähler

Sequentielle Schaltungen 37 SS 96. Steuerpfad

5.Vorlesung Rechnerorganisation

Hardware Praktikum 2008

Endliche Automaten 1 WS 00/01. Steuerautomaten

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

1. Beschreibung der Aufgabe

4 Entwurf eines Prozessorelementes

Entwurf digitaler Systeme mit VHDL-1076

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

Ausarbeitung zum ETI Praktikum

Computergestützter IC- Entwurf

1. Beschreibung der Aufgabe

Codes. Kapitel 2-6: Beispiele kombinatorischer Schaltungen. Digital Simulator. Kapitelverzeichnis (Buch Künzli)

Einführung in VHDL (2)

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

2. Praktische Übung zur Vorlesung Grundlagen der Technischen Informatik. Entwurf eines digitalen Weckers

Entwurf digitaler Systeme

Darstellung von negativen binären Zahlen

GTI Bonus VHDL - EXTRA

Entwurf und Simulation einfacher Logikelemente

Synchrone Zähler. Synchroner Dualzähler

Field Programmable Gate Array (FPGA) Complex Programmable Logic Devices (CPLD)

2. Einführung in VHDL

2 Von der Aufgabenbeschreibung zum Zustandsdiagramm

D.6 Versuchsreihe 6: Registersatz und Programmzähler

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen. VHDL Einführung 1

Einstellige binäre Addierschaltung (Addierer)

Paritäts-Bit- Generator

Technische Grundlagen der Informatik Kapitel 3. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Einführung in VHDL. 1 ARCHITECTURE Tauschen OF B e i s p i e l IS. 2 SIGNAL a, b : STD_LOGIC; 4 BEGIN. 5 PROCESS( a, b ) 6 BEGIN.

Entwurf und Verifikation digitaler Systeme mit VHDL

Aufgabe 1. Aufgabe 2. Abbildung 1: Schaltung für die Multiplikation mit 4

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2007/2008

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Übung 7: VHDL Automaten

Simulation von in VHDL beschriebenen Systemen

Computergestützter IC- Entwurf

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

1. Logische Verknüpfungen

Praktikum Rechnerarchitektur. Seite 1 Prof. Dr.-Ing. Ulrich Schmidt 2011 Praktikum Rechnerarchitektur

VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Outline Addierer Multiplizierer Block RAM. Rechenschaltungen 2. Marc Reichenbach und Michael Schmidt

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach

VHDL Verhaltensmodellierung

Eingebettete Systeme

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

Arbeitsblatt Logische Verknüpfungen Schaltnetzsynthese

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Digitaltechnik Grundlagen 5. Elementare Schaltnetze

1 Entwurf und Verhalten einfacher, synchroner Automaten

Praktikum DST FPGA 5.Termin Projekterstellung & Simulation

Tutorial Vivado/Verilog Teil 3 7-Segment-Anzeige

BFP Entwurf Eingebetteter Systeme Elektronische Musik. Ein Klavier oder Wie klingt ein Rechteck?

II. Grundlagen der Programmierung

Humboldt-Universität zu Berlin, Dr. Winkler Digitale Systeme - Grundlagen

3. Prozesse in VHDL 1

19 Kombinatorische Standardschaltungen

Praktikum DST FPGA 5.Termin Projekterstellung & Simulation

Digitaltechnik Grundlagen 4. Schaltalgebra

Mögliche Praktikumsaufgaben

15 Einführung in den Entwurf von Zustandsautomaten

Transkript:

Aufgaben und Lösungen Aufgabe 2.1 Das folgende Schaltbild soll in eine VHDL-Verhaltensbeschreibung übertragen werden. Lösung 2.1 Jedes Schaltbild aus logischen Grundelementen kann in eine logische Gleichung übertragen werden. Wir geben zuerst die logische Gleichung für die vorgegebene Schaltung an: Y = ( A 0 ( A 0+ B0) ( A 1+ B1) ) ( A 1 ( A 1+ B1) ) Diese wird in die VHDL-Beschreibung übernommen. Alle Signale besitzen den Datentyp std_logic. entity CMP2 is port ( B1,B0,A1,A0: in std_logic; Y: out std_logic ); end CMP2; architecture CMP2_A of CMP2 is Y<=(A0 and (A0 xor B0) and (A1 xnor B1) or (A1 and (A1 xor B1)); end CMP2_A; Dabei wurde die Negation der Antivalenz ( xor ) durch die Equivalenz ( xnor ) ersetzt.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 Aufgabe 2.2 Eine kombinatorische Schaltung soll die Summe Y[2:0] von zwei zweistelligen Dualzahlen B[1:0] und A[1:0] bilden. Die Summe enthält in der werthöchsten Stelle den Übertrag. Die Aufgabe wird durch die folgende Wahrheitstabelle beschrieben. a) Übertragen Sie die Wahrheitstabelle in eine VHDL-Beschreibung. b) Bestimmen Sie aus der Wahrheitstabelle über KV-Diagramme die minimierten logischen Gleichungen. c) Geben Sie eine nebenläufige VHDL-Beschreibung für die Schaltung unter Benutzung dieser Gleichungen an. d) Schreiben Sie eine VHDL-Testbench und simulieren Sie die VHDL- Lösungen. Lösung 2.2 a) Für die Umsetzung einer Wahrheitstabelle steht in VHDL die nebenläufige with select when-anweisung zur Verfügung. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ADD2 is port ( B,A : in std_logic_vector(1 downto 0); Y : out std_logic_vector(2 downto 0)); end ADD2; architecture ADD2_A1 of ADD2 is

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen signal x: std_logic_vector(3 downto 0); x<=b & A; with x select Y <= "000" when "0000", "001" when "0001", "010" when "0010", "011" when "0011", "001" when "0100", "010" when "0101", "011" when "0110", "100" when "0111", "010" when "1000", "011" when "1001", "100" when "1010", "101" when "1011", "011" when "1100", "100" when "1101", "101" when "1110", "110" when others; end ADD2_A1; b) Die VHDL-Beschreibung lässt sich vereinfachen, wenn mit den manuellen Entwurfsverfahren verkürzte Gleichungen abgeleitet werden. Aus der Wahrheitstabelle ergeben sich die folgenden KV-Diagramme: KV-Diagramme Durch Zusammenfassung der größtmöglichen rechteckigen 1 -Blöcke erhalten wir die Gleichungen in der Form der disjunktiven Verknüpfung der Produktterme. Diese werden, soweit möglich, in EXCLUSIV OR Beziehungen umgewandelt: Y 2 = B 1A1 A 1B0 A0 B 1B0 A0 Y 1 = B0 B1 A 1 B0 B1 A 1 A0 B1 A 1 A0 B1 A 1 B0 A0 B 1A1 B 0 A0 B 1 A 1 = B 0 ( A1 + B1 ) A 0 ( A 1+ B1)

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 B0 A0 ( A 1B1 A1 B 1 ) = ( B 0 A 0 ) ( A 1+ B1) B 0 A0 ( A 1+ B1) Der erste Term wird mit der demorgan-beziehung umgeformt: = ( B 0 A0 ) ( A 1+ B1) B 0 A0 ( A 1+ B1) = A 0 B0 + A 1+ B1 Y 0 = B 0 A 0 B 0 A 0 = B 0+ A0 c) Die verkürzten Gleichungen werden für eine verkürzte VHDL-Beschreibung genutzt. architecture ADD2_A2 of ADD2 is Y(2)<=(B(1) and A(1)) or (B(0) and A(1) and A(0)) or (B(1) and B(0) and A(0)); Y(1)<=(B(0) and A(0)) xor B(1) xor A(1); Y(0)<=B(0) xor A(0); end ADD2_A2; Die Gleichungen werden nebenläufig, das bedeutet quasiparallel abgearbeitet. d) Die VHDL-Testbench kann in der in Abschnitt 2.8 angegebenen Form formuliert werden. Als Alternative benutzen wir process-anweisungen für die zyklische Erhöhung der Vorgabewerte wie im Abschnitt 3.7. Das automatisch erzeugte Gerüst wird in folgender Weise modifiziert: - Ergänzung der Bibliothek IEEE.std_logic_unsigned.all für die Nutzung der Dualarithmetik - Vorgabe der Anfangswerte für A und B - process-anweisungen für A und B

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; use IEEE.std_logic_unsigned.all; -- ergänzt ENTITY add2_1_tbvadd2_vhd_tb IS END add2_1_tbvadd2_vhd_tb; ARCHITECTURE behavior OF add2_1_tbvadd2_vhd_tb IS COMPONENT add2_1 PORT( B : IN std_logic_vector(1 downto 0); A : IN std_logic_vector(1 downto 0); Y : OUT std_logic_vector(2 downto 0) ); END COMPONENT; SIGNAL B : std_logic_vector(1 downto 0):="00"; -- Anfangswert ges. SIGNAL A : std_logic_vector(1 downto 0):="00"; -- Anfangswert ges. SIGNAL Y : std_logic_vector(2 downto 0); BEGIN uut: add2_1 PORT MAP(B => B,A => A,Y => Y); -- *** Test Bench - User Defined Section *** tba : PROCESS BEGIN wait for 100 ns; A <= A+1; END PROCESS tba; tbb : PROCESS BEGIN wait for 400 ns; B <= B+1; END PROCESS tbb; -- *** End Test Bench - User Defined Section *** END; Damit erhalten wir das folgende Simulationsergebnis: Simulationsergebnis für zweistufigen Addierer In der Simulation treten alle Eingangssignalkombinationen auf. In der Dezimaldarstellung ist die Beziehung Y = A + B in allen Fällen gut ablesbar. Unter der Dezimaldarstellung ist die binäre Darstellung angegeben.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 Aufgabe 2.3 Für die Aufgabenstellung nach Aufgabe 2.1 sollen weitere VHDL-Beschreibungen angegeben werden. a) Übertragen Sie die Lösung für die verkürzten Gleichungen in ein Schaltbild b) Geben Sie eine VHDL-Verhaltensbeschreibung mit den Funktionsbeziehungen der Logikelemente des Schaltbildes an. c) Geben Sie für das Schaltbild eine VHDL-Strukturbeschreibung an. Lösung 2.3 a) Die verkürzten Gleichungen ergeben das folgende Schaltbild: b) Eine weitere VHDL-Verhaltensbeschreibung ergibt sich aus den Gleichungen der Einzelelemente des Schaltbildes: architecture ADD2_A3 of ADD2 is signal p4,p3,p2,p1: std_logic; p1<=b(1) and A(1); p2<=b(0) and A(1) and A(0); p3<=b(1) and B(0) and A(0); p4<=b(0) and A(0); Y(2)<=p1 or p2 or p3; Y(1)<=p4 xor B(1) xor A(1); Y(0)<=B(0) xor A(0); end ADD2_A3;

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen c) Die Einzelelemente des Schaltbildes können auch in einer VHDL- Strukturbeschreibung angegeben werden. Für die Einzelelemente können die logischen Funktionen in eigenen VHL-Modulen beschrieben werden. Es können auch die vordefinierten Bibliothekselemente der XILINX-Bibliothek mit den vorgegebenen Elemente- und Port-Bezeichnungen benutzt werden. Dafür ist die Angabe der Bibliothek UNISIM notwendig. library UNISIM; use UNISIM.VComponents.all; architecture ADD2_A4 of ADD2 is signal p4,p3,p2,p1: std_logic; component AND2 port (I0,I1: in std_logic; O: out std_logic ); end component AND2; component AND3 port (I0,I1,I2: in std_logic; O: out std_logic ); end component AND3; component OR3 port (I0,I1,I2: in std_logic; O: out std_logic ); end component OR3; component XOR2 port (I0,I1: in std_logic; O: out std_logic ); end component XOR2; component XOR3 port (I0,I1,I2: in std_logic; O: out std_logic ); end component XOR3; AND_I1: AND2 port map (B(1),A(1),p1); AND_I2: AND3 port map (B(0),A(1),A(0),p2); AND_I3: AND3 port map (B(1),B(0),A(0),p3); AND_I4: AND2 port map (B(0),A(0),p4); OR_I1: OR3 port map (p1,p2,p3,y(2)); XOR_I1: XOR3 port map (p4,b(1),a(1),y(1)); XOR_I2: XOR2 port map (I0=>B(0),I1=>A(0),O=>Y(0)); end ADD2_A4; Die Instanzen können in beliebiger Reihenfolge angegeben werden. In der Instanz für das XOR2-Element werden die Parameter mit der named notation übergeben. Bei dieser Form ist auch die Reihenfolge der Parameter beliebig.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 Aufgabe 2.4 Die eleganteste Lösung der Aufgabenstellung nach Aufgabe 2.1 ergibt sich bei Verwendung der VHDL-Bibliothek der Dualarithmetik. Dabei gehen wir von der funktionalen Beschreibung der Aufgabe aus und überlassen dem VHDL-System die Schaltungssynthese. Funktionssymbol der Addiererschaltung Lösung 2.4 Für diese Lösung muss die Bibliothek IEEE.STD_LOGIC_UNSIGNED angegeben werden. Die folgenden Bibliotheken werden bereits automatisch im VHDL- Gerüst ergänzt: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; architecture ADD2_A5 of ADD2 is Y<= ('0' & B) + ('0' & A); end ADD2_A5; Die Operanden werden durch Anfügen einer zusätzlichen Bitstelle an das dreistellige Ergebnisformat angepasst. Für alle Lösungen der Addierschaltung ergeben sich die gleichen Simulationsergebnisse.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen Aufgabe 2.5 Mit einer kombinatorischen Schaltung sollen vier logische Funktionen von zwei Eingangssignalen a und b gebildet werden. Mit den Selectsignalen s[1:0] werden die folgenden Funktionen eingestellt: a) Geben Sie die Wahrheitstabelle an und bestimmen Sie die verkürzte Gleichung über das KV-Diagramm. b) Geben Sie eine nebenläufige VHDL-Beschreibung für die Schaltung unter Benutzung dieser Gleichungen an. c) Geben Sie eine VHDL-Synthesebeschreibung für eine funktionale Vorgabe an. d) Simulieren Sie die VHDL-Lösungen Lösung 2.5 a) Die Wahrheitstabelle ergibt sich aus den Funktionsbeziehungen der vorgegebenen logischen Funktionen: Wahrheitstabelle und KV-Diagramm für Logikschaltung

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 Zusammenfassungen sind durch die Nutzung von vier Zweierblöcken möglich: y = s0 ab s1 s0 b s1 s0 a s1 s1 s0 a b s1 s0 a b s1s0 a b a b b) Diese Gleichung wird in die VHDL-Form übernommen: entity LOGIC is port ( b,a : in std_logic; s : in std_logic_vector(1 downto 0); y : out std_logic ); end LOGIC; architecture LOGIC_A1 of LOGIC is y <= ( s(0) and a and b ) or ( not s(1) and s(0) and b ) or ( not s(1) and s(0) and a ) or ( not s(1) and a and b ) or ( s(1) and not s(0) and a and not b ) or ( s(1) and not s(0) and not a and b ) or ( s(1) and s(0) and not a and not b ); end LOGIC_A2; c) Die einfachste Lösung ergibt sich aus der folgenden VHDL- Synthesebeschreibung: architecture LOGIC_A2 of LOGIC2 is with s select y <= a and b when "00", a or b when "01", a xor b when "10", a xnor b when others; end LOGIC_A2;

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen c) Für beide Lösungen erhalten wir das folgende Simulationsergebnis. Die Eingangssignale werden in einer WAVEFORM TESTBENCH angegeben. Simulationsergebnis für Logikschaltung Die dem Signalvektor s[1:0] zugeordneten Bereiche zeigen die AND-, OR-, XOR- und XNOR-Verknüpfung der Eingangssignale a und b. Aufgabe 2.6 Mit einer kombinatorischen Schaltung soll eine 2-stellige Dezimalzahl im BCD- Code (XZ[3:0],XE[3:0]) in die 7-Bit-Dualdarstellung Y[6:0] gewandelt werden. Einer- und Zehnerstelle besitzen je den Wertebetreich [9...0]. Das Ergebnis liegt im Bereich der Dezimalwerte [0... 99]. Benutzen Sie die folgenden Portdefinitionen: entity BCD2DUAL is port ( XZ,XE: in std_logic_vector(3 downto 0); Y : out std_logic_vector(6 downto 0)); end BCD2DUAL; Lösung 2.6 Eine kombinatorische Lösung erfordert die Zusammenfassung der mit 10 multiplizierten Zehnerstelle mit der Einerstelle. Die Multiplikation mit 10 kann durch Addition der mit 2 und mit 8 multiplizierten Anteile ausgeführt werden. Die Multiplikationen mit 2 und 8 ergeben sich aus Linksverschiebungen um eine oder um drei Stellen. Dabei werden von rechts 0 -Stellen eingeschoben.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 Das Lösungsprinzip wird zunächst in einem Schaltbild dargestellt: Kombinatorische Funktionsschaltung fürdie BCD-Dual-Konvertierung In der VHDL-Beschreibung werden die Operanden auf das 7-stellige Ergebnisformat erweitert und addiert. architecture BCD2DUAL_A of BCD2DUAL is Y <= ("000" & XE) -- Einer + ("00" & XZ & '0') -- Zehner * 2 + ( XZ & "000"); -- Zehner * 8 end BCD2DUAL_A; Die Multiplikationen ergeben sich durch einen Versatz bei der Signalzuführung an die Addierschaltungen. Dafür werden keine Logik-Ressourcen benötigt. Die Lösung wird durch das Simulationsergebnis bestätigt: Ausschnitt aus der Simulation der BCD-Dual-Wandlung Die dezimalen Eingangssignale werden in die Dualdarstellung gewandelt. Diese wird in hexadezimaler Darstellung angezeigt.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen Aufgabe 2.7 Mit einer kombinatorischen Schaltung soll eine 4-stellige Dualzahl X[3:0] um eine Stelle nach links oder rechts verschoben werden. In Abhängigkeit von dem Steuereingang S[1:0] soll gelten: S = 01 S = 10 Linkserschieben Rechtsverschieben S = 00 und S = 11 keine Verschiebung a) Geben Sie eine VHDL-Beschreibung mit der nebenläufigen when else- Anweisung an. b) Geben Sie eine gleichwertige Lösung mit der sequenziellen if then else- Anweisung an. Beachten Sie die unterschiedlichen Formen bedingter Anweisungen in der nebenläufigen und in der sequenziellen VHDL-Verhaltensbeschreibung! Beide Lösungen sind durch Simulation zu überprüfen. Lösung 2.7 a) Für eine kombinatorische Schaltung bevorzugen wir nebenläufige Verhaltensbeschreibungen. entity SHFT4 is port ( X : in std_logic_vector(3 downto 0); S : in std_logic_vector(1 downto 0); Y : out std_logic_vector(3 downto 0) ); end SHFT4; architecture SHFT4_A1 of SHFT4 is Y <= X(2 downto 0) & '0' when S="01" else '0' & X(3 downto 1) when S="10" else X; end SHFT4_A1;

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen zu Kap.2 b) Bei Verwendung der process-anweisung erscheinen die Eingangssignale in der sensitiviy list. architecture SHFT4_A2 of SHFT4 is process (S,X) if S="01" then Y <= X(2 downto 0) & '0'; elsif S="10" then Y <= '0' & X(3 downto 1); else Y<= X; end if; end process; end SHFT4_A1; Beide Lösungen ergeben in der Simulation das gleiche Ergebnis: Simulationsergebnis für kombinatorische Schiebeschaltung Das Simulationsergebnis zeigt für drei Beispielwerte die Links- und Rechts- Verschiebung und die Übernahme des Eingangswertes. Aufgabe 2.8 Für die Aufgabe 2.7 sind weitere gleichwertige Lösungen anzugeben. a) Geben Sie eine VHDL-Beschreibung mit der nebenläufigen with select when-anweisung an. b) Geben Sie eine gleichwertige Lösung mit der sequenziellen case- Anweisung an. Beide Lösungen sind durch Simulation zu überprüfen.

Jorke: Rechnergestützter Entwurf digitaler Schaltungen, Aufgaben und Lösungen Lösung 2.8 a) Mit der with select when-anweisung ergibt sich die folgende Lösung: entity SHFT4 is port ( X : in std_logic_vector(3 downto 0); S : in std_logic_vector(1 downto 0); Y : out std_logic_vector(3 downto 0) ); end SHFT4; architecture SHFT4_A3 of SHFT4 is with S select Y <= X(2 downto 0) & '0' when "01", '0' & X(3 downto 1) when "10", X when others; end SHFT4_A3; b) Die entsprechende sequenzielle Verhaltensbeschreibung ergibt sich mit der case-anweisung: architecture SHFT4_A4 of SHFT4 is process (S,X) case S is when "01" => Y <= X(2 downto 0) & '0'; when "10" => Y <= '0' & X(3 downto 1); when others => Y<= X; end case; end process; end SHFT4_A4; In der Simulation ergeben sich die gleichen Ergebnisse wie für die Lösungen in Aufgabe 2.7.