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;
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;
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