rs flip flop in fpga

Gast #297594
Lesenswert?
• ▲
▼
du musst dabei entscheiden ob der rück oder der setz eingang vorrang
hat, da bei einem normalen rs-flipflop die belegung set 1 und reset 1
nicht vorkommen darf.

für reset vorrangich siehts so aus
=====================

if reset ='1' then
   q  <= '0';
elsif set ='1' then
   q  <= '1';
end if;

q_not <= not q; -- der negierte ausgang

für set vorrangich siehts so aus
=====================

if set ='1' then
   q  <= '1';
elsif reset ='1' then
   q  <= '0';
end if;

q_not <= not q;

mfg
Gast #297595
Lesenswert?
• ▲
▼
gehört da nicht noch ein

----------
else
  q <= q;
----------

dazu?
oder ist das egal wenn man signale in "undefiniertem" zustand
belässt?
bin relativ neu in vhdl, wollt das nur mal wissen...

lg, Mario
Gast #297596
Lesenswert?
• ▲
▼
Set und Reset sind Lo-Akiv, also sollte die
korrekte Beschreibung Deines Bildes so lauten :

process(set, reset, clk)
begin
   if set='0' then -- set hat Vorrang vor Reset
      q <= '1';
   elsif reset='0' then
      q <= '0';
   elsif rising_edge(clk) then
      q <= '0'; -- da D ja auf GND liegt
   end if;
end process;
Gast #297597
Lesenswert?
• ▲
▼
mal so angemerkt FPGA-User,
dadurch das clk aber auch auf groundd liegt, kann man sich das mit dem
clk sparen(es kommt nie zur flankenerkennung). da es ja nur noch als
ein einfacher rs flipflop verwendet wird und nicht als d-ff was er ja
eigentlich ist.

mockup
Gast #297598
Lesenswert?
• ▲
▼
Ich kenne mich weder mit FPGA noch mit VHDL aus, trotzden ein Einwand:

Warum sollte /Set oder /Reset einen Vorrang bekommen?

Ein RS-FF aus "gekreutzten" NANDs oder ein 74HC74 reagieren so, daß
bei gleichzeitig gesetztem /S und /R beide Ausgänge auf High schalten
(siehe Datenblatt). Wenn irgendwann einer der Eingänge wieder auf H
schaltet, "gewinnt" der andere, der noch L ist.

Es gibt durchaus Schaltungen, wo dieser "verbotene" Zustand bewußt
ausgenutzt wird, deshalb würde ich das 1:1 übernehmen.

MfG Olaf
Gast #297599
Lesenswert?
• ▲
▼
nunja...
beim "stinknormalen" RS flipflop gibts eben einen vorrang (R oder S)
wenn du sowas ohne vorrang in VHDL programmierst, musst natürlich
zusätzlichen code angeben, sowas sieht dann hardware-technisch deutlich
komplizierter aus... denk ich...
Gast #297600
Lesenswert?
• ▲
▼
@mockup

hast recht, CLK lag ja auch auf GND.

@Olaf_K

das hängt vom FPGA ab. Die Flip-Flops entsprechen nicht einem 7474 !
Wenn ich z.B. das Datenblatt vom Spartan 3 nehme, dann muss ich
mich entscheiden, ob ich einen asynchr. Set ODER Reset haben
möchte, beides geht offenbar gar nicht.

Die Verwendung von solchen asynchronen Funktionen sollte man eh
verweiden, ein gutes FPGA-Design ist vollsynchron.
Gast #297601
Lesenswert?
• ▲
▼
@FPGA-User
jo hast recht.
wegen der aussage: "Die Verwendung von solchen asynchronen Funktionen
sollte man eh verweiden, ein gutes FPGA-Design ist vollsynchron."

habe ich vor nen halben jahr meinen kompletten code umgeschrieben, aber
jetzt gehts endlich

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren