Hallo zusammen Ich möchte das im Anhang zu sehenden Flip Flop(mit der selben beschaltung CLK und D auf GND) in VHDL programmieren. Kann mir jemand weiterhelfen? Gruss Tobias
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
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
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
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;
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
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
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...
@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.
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.