Signaländerung steigende und fallende Flanke

Gast #389975
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.
#389976
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

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