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 (Seiten 106 und 119).

1. Aufgabe (VHDL)

Die Beschreibung eines VHDL-Modells besteht meist aus drei Teilen: einer Schnittstellenbeschreibung, einer oder mehreren Architekturen und einer oder mehreren Konfigurationen. VHDL-Beschreibungen können hierarchisch aufeinander aufbauen.

In der Schnittstellenbeschreibung (Entity) wird die Schnittstelle der zu modellierenden Komponente (des zu modellierenden Systems) beschrieben, also die Ein- und Ausgänge sowie Konstanten, Unterprogramme und sonstige Vereinbarungen, die auch für alle dieser Entity zugeordneten Architekturen gelten sollen.

a) Die Schnittstellenbeschreibung in VHDL:

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 müssen 
END rs_ff; 

b) Die Strukturbeschreibung in VHDL:

Eine Architektur enthält die Beschreibung der Funktionalität eines Modells. Das Modell kann aus einer Verhaltensbeschreibung bestehen oder strukturalen Charakter (Netzliste) haben. Beide Möglichkeiten können miteinander kombiniert werden. Für eine Entity können mehrere Architekturen definiert werden, d.h. es können für eine Komponentenschnittstelle mehrere Beschreibungen auf unterschiedlichen Abstraktionsebenen oder verschiedene Entwurfsalternativen existieren.

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) Die Konfigurationsbeschreibung in VHDL:

In der Konfiguration wird festgelegt, welche der beschriebenen Architekturvarianten einer bestimmten Entity zugeordnet ist und welche Zuordnungen für die möglicherweise verwendeten Submodule in der Architektur gelten. Hier können auch hierarchisch den untergeordneten Entities bestimmte Architekturen zugeordnet werden.; außerdem ist es möglich, Parameterwerte an hierarchisch tieferliegende Komponenten zu übergeben.

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) Die Schnittstellenbeschreibung in VHDL:

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

b) Die Verhaltensmodellierung beschreibt, wie die Eingangs- in Ausgangssignale überführt werden. Eingesetzt werden bei einer Verhaltensmodellierung u.a. verschiedene Operatoren (AND,<,=), vordefinierte Attribute (EVENT), Signalzuweisungen (q<= ...) oder IF-ELSIF-ELSE-Anweisungen. Selbstverständlich können innerhalb eines VHDL-Modells auch Konstrukte der strukturalen und der vVerhaltensmodellierung gleichzeitig verwendet werden.

Die Verhaltensbeschreibung in VHDL:

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:

Das Funktionieren des Systems, bestehend aus Warteschlange und Festplatte, wird unter zwei vereinfachten Annahmen betrachtet:

Eine konstante Verteilung der Kenngrößen bedeutet, daß sie fest gewählt und zeitlich nicht veränderlich sind. Ein stochastischer Prozeß ist dann stationär, wenn alle seine statistischen Eigenschaften (z.B. der mittelwert einer Kenngröße) zeitunabhängig sind. Diese Bedingungist ist bei einer konstanter Verteilung der Kenngrößen gegeben. Zusätzlich muß sich ein stationärer Prozeß im eingeschwungenen Zustand befinden, d.h. es darf z.B. keine Anfangsphase betrachtet werden.

Berechnung der Bedienzeiten.

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: laut Definition 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 (Sonst hat die Festplatte nicht genügend Zeit, um alle Aufträge rechtzeitig zu bedienen).

Hier ist die Ankunftsrate von Aufträgen A=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) Laut LITTLE's Gesetz

Anzahl von Aufträgen in der Warteschlange = Wartezeit * Durchsatz

Q=W * D

ist die 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

Laut Definition ist Reaktionszeit des Systems: Ri = Wi + Xi

R1 = 75 ms + 23,33 ms = 98,33 ms

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


V. Sabelfeld