Ich habe mehrere Peripheriegeräte, die an CPLD angeschlossen sind. Sie alle haben unterschiedliche Ausbreitungsverzögerungen, und um dies zu kompensieren, möchte ich eine Verzögerung von etwa 10–15 ns in die CPLD-Logik einführen. Im Detail sollte clkOUT dem clkIN um etwa 10 ns nacheilen. Ist es möglich, ein Verhaltensmodell in VHDL zu beschreiben? Irgendwelche Vorschläge? clkIN = 10MHz.
Nein, asynchrone Verzögerungen sind keine synthetisierbaren Konstrukte in einem HDL.
Wenn Sie jedoch nicht viel Genauigkeit benötigen, können Sie künstlich eine lange Reihe von Gattern (z. B. Inverter oder Puffer) spezifizieren und dann Synthesebeschränkungen verwenden, um zu verhindern, dass sie wegoptimiert werden.
Die Antwort von Dave Tweed ist richtig, obwohl mir aufgefallen ist, dass die Lösung, die Sie in den Xilinx-Foren gefunden haben, erfordert, dass Sie zusätzliche Ausgangspins an Tri-State-Gattern verwenden, um zu verhindern, dass die Synthese Ihre Zwischengatter entfernt. Für solch eine kleine Änderung können Sie den Xilinx FPGA Editor verwenden, um das synthetisierte Design manuell zu manipulieren. Eine Anleitung finden Sie hier .
Ich bin mir nicht sicher, welche Art von Ressourcen Sie in Ihrem CPLD zur Verfügung haben (ich arbeite normalerweise mit großen FPGAs mit vollem Funktionsumfang), aber Sie könnten auch ein MMCM/PLL oder ähnliches verwenden, um einen Ausgangstakt mit einem bestimmten Phasenversatz neu zu generieren (Unter-1-Zyklus-Verzögerung).
Nazar
David Tweed
Benutzer8352
Nazar