Forum: FPGA, VHDL & Co. Signaländerung steigende und fallende Flanke


von Wolfram (Gast)


Lesenswert?

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.

von Klaus F. (kfalser)


Lesenswert?

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
Noch kein Account? Hier anmelden.