Forum: FPGA, VHDL & Co. VHDL SR -Flipflop


von Sa S. (sa_s)


Angehängte Dateien:

Lesenswert?

Hallo , ich habe beschäftige mich jetzt mit einer Aufgabe und zwar es 
geht um Flipflops ,
wie kann sein das bei SR Flipflop 1 1 ist undifiniert , und hier hat der 
Prof  if ((B = '1') and (C = '1')) then STATE := '1';
ich bitte euch um Erklärung
1
 library ieee;
2
 use ieee.std logic 1164.all;
3
entity WAS_BIN_ICH is 
4
 B port
5
 (A, B, C : in std_logic; 6 D, E : out std_logic); 
6
 end entity WAS_BIN_ICH; 
7
 architecture VERHALTEN of WAS BIN ICH is 
8
 begin 
9
10
process(A, B, C) is 
11
variable STATE : std logic; 
12
begin if (A = '0') then 
13
if ((B = '1') and (C = '1')) then STATE := '1'; 
14
elsif ((B = '1') and (C = '0')) then STATE := '1'; 
15
elsif ((B = '0') and (C = '1')) then STATE := '0'; 
16
else STATE := STATE;
17
 end if; 
18
else null;
19
 end if;
20
 D <= STATE; E <= not STATE; 
21
end process; end architecture Verhalten;

: Bearbeitet durch Moderator
von vancouver (Gast)


Lesenswert?

Undefined bedeutet, dass der Ausgang einen beliebigen Wert annehmen 
kann. Hier wurde der Wert 1 gewählt, 0 ist genau so richtig. Sinnvoller 
für die Simulation wäre X. In der Realität wäre der Wert zufällig.

Aber dieser ganze VHDL-Code ist schon sehr... rustikal.

von Da Baby (Gast)


Lesenswert?

Was gibts da zu erklären. Der Prof hat eben bei 1 und 1 das Set als 
dominierend definiert. Solche RS FF gibt es.

von Sa S. (sa_s)


Lesenswert?

danke sehr , ich dachte undifined bedeutet verboten , danke

von Markus F. (mfro)


Lesenswert?

Da Baby schrieb:
> eben bei 1 und 1 das Set als
> dominierend definiert

deswegen will er ja offensichtlich das Wort "setzdominant" in der 
Antwort sehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

vancouver schrieb:
> Aber dieser ganze VHDL-Code ist schon sehr... rustikal.
Er ist sogar ziemlich unschön, weil eine speichernde Variable drin ist 
obwohl die völlig unnötige "else STATE := STATE;" Zuweisung etwas 
anderes vermuten lässt...

Warum hat der Prof da nicht einfach ein Signal genommen?

Und im Grunde ist das Schaltplansymbol auch fragwürdig, denn der C1 
sollte besser ein E1 heißen, weil die Schaltung rein kombinatorisch und 
deshalb dieser Eingang kein Clock-/Takteingang, sondern ein 
transparenter Enableeingang ist.

: Bearbeitet durch Moderator
von vancouver (Gast)


Lesenswert?

Lothar M. schrieb:
> völlig unnötige "else STATE := STATE;"

Ebenso wie das
1
else null;

Lothar M. schrieb:
> sondern ein
> transparenter Enableeingang ist.

Und damit wird das ganze zu einem Latch.

Kurz formuliert:
1
...
2
signal state : std_logic;
3
...
4
if (A='0') then 
5
  if (B='1') then 
6
    state <= '1'; 
7
  elsif (C='1') then
8
    state <= '0'
9
  end if;
10
end if;
11
...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.