rs flip flop in fpga

Gast #297593
sei mir nicht böse, aber hast Du schon einmal google bemüht? Das ist ein
klassisches Beispiel zur Einführung in VHDL, welches ich im Web bereits
vor einiger Zeit gefunden habe.

Viele Grüße
Olaf
Gast #297594
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
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
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
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
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
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
@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
@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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.