Musterlösung zum 1. Übungsblatt

Die Aufgaben 1 und 2 sind dem Buch von Lehmann, Wunder und Selz "Schaltungsdesign mit VHDL" aus dem Franzis-Verlag entnommen.

1. Aufgabe (VHDL)

a)
ENTITY rs_ff IS
  PORT (r_bar, s_bar : IN bit := '0';
        q, q_bar       :INOUT bit);
  -- Ports q und q_bar als INOUT, da sie auch gelesen werden muessen
END rs_ff;

b)
ARCHITECTURE structure OF rs_ff IS
  COMPONENT nand2  --Komponentendeklaration
    PORT (a, b : IN bit; y : OUT bit);
  END COMPONENT;
BEGIN
  nand_a : nand2  -- Komponentreninstanziierung
    PORT MAP (a => r_bar, b => q, y => q_bar);
  nand_b : nand2  -- Komponenteninstanziierung
    PORT MAP (a => q_bar, b => s_bar, y => q);
END structure;

c)
CONFIGURATION rs_ff_config OF rs_ff IS
  FOR structure
    FOR ALL : nand2  -- Komponentenkonfiguration
      USE ENTITY work.nand2lib (behavioral);
    END FOR;
  END FOR;
END rs_ff_config;

2. Aufgabe (VHDL)

a)
ENTITY count5 IS
  PORT (enable, reset, clk : IN bit := '0';
        q : OUT bit_vector RANGE (2 DOWNTO 0));
END count5;

b)
ARCHITECTURE behavior OF count5 IS
  SIGNAL state : integer RANGE 0 TO 4 := 0;  -- Zaehlerstand
BEGIN
  count : PROCESS (clk, reset);  -- Prozess zum zaehlen
  BEGIN
    IF reset = '0' THEN
      state <= 0;
    ELSIF (enable = '1' AND clk'EVENT AND clk = '1') THEN
      IF state < 4 THEN
        state <= state + 1;
      ELSE
        state <= 0;
      END IF;
    END IF;
  END PROCESS count;
-- nebenlaeufige Signalzuweisung an den Ausgang q
  q <= ('0','0','0') WHEN state = 0 ELSE
       ('0','0','1') WHEN state = 1 ELSE
       ('0','1','0') WHEN state = 2 ELSE
       ('0','1','1') WHEN state = 3 ELSE
       ('1','0','0');
END behavior;

3. Aufgabe (Leistungsbewertung)

Warteschlangenmodell für Festplatte:
a) Bedienzeiten: Xi = Zugriffszeit + Datenübertragungszeit
              100kB
X1 = 12 ms + -------- = 28,67 ms
             6000kB/s

              100kB
X2 = 10 ms + -------- = 23,33 ms
             7500kB/s

              100kB
X3 = 8 ms + -------- = 20,5 ms
             8000kB/s
b) Maximale Durchsätze: Dimax = 1/Xi
          1               -1
D1max = -------- = 34,88 s
        28,67 ms 

          1               -1
D2max = -------- = 42,86 s
        23,33 ms 

          1               -1
D3max = -------  = 48,78 s
        20,5 ms 
Einsetzbar sind Fesplatten für die gilt: Dmax <= A Hier ist die Ankunftsrate von Aufträgen 40 1/s, also sind die Platten 2 und 3 einsetzbar.

c) Auslastung Ui = D/Dimax = D * Xi mit D = A

U2 = D * X2 = 40 1/s * 23,33 ms = 0,93 => Auslastung 93 %

U3 = D * X3 = 40 1/s * 20,5 ms = 0,82 => Auslastung 82 %
d) Wartezeit der Aufträge in der Warteschlange: Wi = Qi / D
W2 = Q2 / D =  3 / 40 1/s = 75 ms

W3 = Q3 / D = 2 / 40 1/s =  50 ms
Reaktionszeit des Systems: Ri = Wi + Xi
R1 = 75 ms + 23,33 ms = 98,33 ms

R2 = 50 ms + 20,5 ms = 70,5 ms

F. Feldbusch