Wie kann man eine Signaländerung sowohl auf der steigenden als auch auf der fallenden Flanke machen, so dass es synthetisiert werden kann. Quartus weigert sich bei folgendem VHDL Code if RESET_n='0' then first_use<=(others=>'0'); elsif rising_edge(PCLK) then test<=D; OE_n<='0'; WE_n<='1'; else if falling_edge(PCLK) then D<=not test; OE_n<='1'; WE_n<='0'; end if; end if; OE_n wird angekreidet, da es sich auf steigender und fallender flanke von PCLK ändert.
Synthtisiert kann es nur werden, wenn die Hardware mitspielt und normalerweise gibt es keine FlipFlops, welche bei auf- und absteigender Flanke das Ausgangssignal ändern. Bei manchen Xilinx FPGA's gibt es sogenannte DDR I/O Register, welche Ausgangssignale an beiden Flanken schalten können, aber diese kann man im moment noch nicht in VHDL beschreiben, sondern muß sie Modul instanzieren. Wenn Dein Altera FPGA solche I/O Register hat, und D, OE_n, und WE_n nach außen gehen, dann könnest Du es damit realisieren. Eine einfachere Möglichkeit ist den Takt zu verdoppeln (mit DLL/PLL), dann kannst Du immer an der selben Flanke schalten. Grüße Klaus
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.