-- Jetzt habe ich das so weit
-- nat"urlich stimmte bisher bei dem "Ubergangsschaltnetz was nicht -- ich hatte inout bit und das a so wie es rein ging, wieder raus - das w"are schon der Automat gewesen - das geht nat"urlich nicht - das muss in FF rein - das war einfach provisorisch
-- jetzt mache ich das Testbench - irgendwas wird nicht funktionieren - die FF's nicht - keine Ahnung.
-- unter Umst"anden dauert es dann eine kleine Weile, bis das gefunden ist, was es dann noch ausmacht.
entity meinautomat0028ausgangschaltnetz is
port
(
a, b: in bit;
x: in bit;
y0, y1, y2: out bit
);
end;
entity meinautomat0028uebergangsschaltnetz is
port
(
a, b: in bit;
aout, bout: out bit;
x: in bit
);
end;
architecture verhalten of meinautomat0028ausgangschaltnetz is
begin
y0 <= (not b and x) or
(b and a);
y1 <= (b and not a and not x);
y2 <= (b and a and x);
end;
architecture verhalten of meinautomat0028uebergangsschaltnetz is
begin
bout <= (b and not a) or
(b and x);
aout <= (not b and x) or
(not a and not x) or
(b and a and x);
end;
entity meinautomat0028rslatch is
port (
q1, q2: inout bit;
r, s: in bit
);
end;
architecture verhalten of meinautomat0028rslatch is
begin
q1 <= ((not r) nor q2);
q2 <= ((not s) nor q1);
end;
entity meinautomat0028rslatchtaktgesteuert is
port (
q1, q2: inout bit;
r, s, c: in bit
);
end;
architecture verhalten of meinautomat0028rslatchtaktgesteuert is
component meinautomat0028rslatch
port (
q1, q2: inout bit;
r, s: in bit
);
end component;
signal r1, s1: bit;
begin
instanzrslatch: meinautomat0028rslatch PORT MAP (r=>r1, s=>s1, q1=>q1, q2=>q2);
r1 <= c and r;
s1 <= c and s;
end;
entity meinautomat0028dlatch is
port
(
q1, q2: inout bit;
d, c: in bit
);
end;
architecture verhalten of meinautomat0028dlatch is
component meinautomat0028rslatchtaktgesteuert
port
(
q1, q2: inout bit;
r, s, c: in bit
);
end component;
signal r1, s1: bit;
begin
instanzrslatchtaktgesteuert: meinautomat0028rslatchtaktgesteuert PORT MAP (r=>r1, s=>s1, q1=>q1, q2=>q2, c=>c);
r1 <= d;
s1 <= not d;
end;
entity meinautomat0028dmasterslaveflipflop is
port
(
q1, q2: inout bit;
d, c: in bit
);
end;
architecture verhalten of meinautomat0028dmasterslaveflipflop is
component meinautomat0028dlatch is
port (
q1, q2: inout bit;
d, c: in bit
);
end component;
signal c1, c2: bit;
signal d1: bit;
begin
master: meinautomat0028dlatch PORT MAP (q1=>d1, q2=>q2, d=>d, c=>c1);
slave: meinautomat0028dlatch PORT MAP (q1=>q1, q2=>q2, d=>d1, c=>c2);
c1 <= c;
c2 <= not c;
end;
entity meinautomat0028schaltwerk is
port
(
c: in bit;
x: in bit;
y0, y1, y2: out bit
);
end;
architecture verhalten of meinautomat0028schaltwerk is
component meinautomat0028dmasterslaveflipflop
port
(
d, c: in bit;
q1, q2: inout bit
);
end component;
component meinautomat0028ausgangschaltnetz
port
(
a, b: inout bit;
x: in bit;
y0, y1, y2: out bit
);
end component;
component meinautomat0028uebergangsschaltnetz
port
(
aout, bout: out bit;
a, b: in bit;
x: in bit
);
end component;
signal v1, v2 : bit;
signal w1, w2 : bit;
begin
state1: meinautomat0028dmasterslaveflipflop PORT MAP (d=>w1, c=>c, q1=>v1);
state2: meinautomat0028dmasterslaveflipflop PORT MAP (d=>w2, c=>c, q1=>v2);
ausgang: meinautomat0028ausgangschaltnetz PORT MAP (b=>v1, a=>v2, x=>x, y0=>y0, y1=>y1, y2=>y2);
uebergang: meinautomat0028uebergangsschaltnetz PORT MAP (b=>v1, a=>v2, bout=>w1, aout=>w2, x=>x);
end;