Lateiner mit FPGA-Latein am Ende

Gast #829999
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.
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?
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.
Gast
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.
?
Gast
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...
Gast
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.
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.