Forum: FPGA, VHDL & Co. Lateiner mit FPGA-Latein am Ende


von Parazelsius (Gast)


Lesenswert?

Was macht dieser Code (falsch) ?
1
doublesynch : PROCESS(aRst, clk) IS
2
    BEGIN
3
        IF aRst = '1' THEN
4
            input <= (OTHERS => '0');
5
        ELSIF rising_edge(clk_i) THEN
6
            input <= signal_1;
7
        ELSIF falling_edge(clk_i) THEN
8
            input <= signal_2;
9
        END IF;
10
      END PROCESS ff;

Ich möchte, daß mit steigender und fallender Flanke jeweils eines der 
beiden Signale weitergegeben wird. Signal1 ist vor einem Flip Flop und 
Signal2 nach dem Flipflop, das umgekehrt nach diesem Schema angesteuert 
wird. So möchte ich sicherstellen, daß immer nur ein stabiles Sigal 
weitergeschaltet wird. (der clk "weis") wann das Signal stabil ist.

von Jan M. (mueschel)


Lesenswert?

In FPGAs gibt es in der Regel keine FF, die auf zwei unterschiedliche 
Flanken reagieren koennen.

Ich weiss auch nicht, was du mit dieser Konstruktion bezwecken willst? 
Genau dafuer, was du beschreibst, ist doch schon ein ganz einfaches 
Flipflop da?

von Parazelsius (Gast)


Lesenswert?

Das ist ja nur eine denkbare Funktion. Wie mache ich das, daß ich áuf 
beide Taktflanken reagieren kann? Z.B. um die Signale zu mischen?

von Jan M. (mueschel)


Lesenswert?

Auf zwei verschiedene Taktflanken reagieren kannst du nur mit zwei 
getrennten Flipflops. (Ausnahme: Manche I/O-Ports haben entsprechende 
DDR-FF, die das koennen).
Intern arbeitet man immer nur mit einer einzigen Flanke - und zwar 
moeglichst konsistent ueber das gesamte Design.

von Parazelsius (Gast)


Lesenswert?

Was wäre denn der Nacheil, wenn man 2 Flanken benutzt?
Angenommen, ich möchte ein Signal feiner abtasten, dann müsste man ja 
den doppelten Takt benutzen, was gfs garnicht systemweit geht.
?

von teo (Gast)


Lesenswert?

Du verteilst deine Logik auf unterschiedliche Taktdomänen. Innerhalb 
einer Domäne läuft alles schön synchron auf einer Flanke... dann musst 
du "nur" noch an den Übergabepunkten aufpassen...

von Mike (Gast)


Lesenswert?

Du kannst den Takt durch einen DCM schicken. Dort gibt es noch 
zusätzliche Ausgänge mit 90°, 180° und 270° Phasenverschiebung. Damit 
kannst du dann deine FF takten. Interessant wird es nur wenn du die 
Daten dann zusammenfügen willst.

von Mike (Gast)


Lesenswert?

Ich bin jetzt einmal stillschweigend davon ausgegangen das du einen 
Xilinx FPGA verwendest ;). Altera bietet mit den PLLs ähnliches. In 
einem CPLD hast du so etwas natürlich nicht.

von Parazelsius (Gast)


Lesenswert?

Jetzt habe ich mich mit den DDR befasst. Im Grunde gibt es DDr aber nur 
nach Außen, innerhalb wird eigentlich nur mit einem Takt gearbeitet. 
Wozu braucht man dann überhaupt die fallende Flanke im FPGA?

von Martin K. (mkohler)


Lesenswert?

Ist es Zufall, dass du deine Frage am 1.4. gestellt hast?

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.