Hallo Gemeinde, hab mal eine Frage zu einer Verzögerung. Ich möchte gerne ein Signal um 2,5 µs versögern. Nun gibt es ja den Befehl bla bla after xxx ns. Ist eine Verzögerung um so einen Wert überhaupt machbar und wie bekommt man raus, wie genau das ist. Ich verwende einen Xilinx XC9536 - 15 und die ISE Umgebung. Danke schon im voraus. Mattias
"after"-Anweisungen werden von Synthesizern nicht unterstützt. Definierte Verzögerungen kannst Du nur durch ein getaktetes Design erreichen. Verzögern kannst Du dann um ein Vielfaches Deiner Taktperiode. Wenn Du Dein CPLD z.B. mit 10 MHz taktest, ergibt sich eine Wartezeit von 25 Taktzyklen.
Hallo Xenu, was meinst Du mit, "wird nicht unterstützt" ? Ich kann doch in meinem VHDL schreiben: entity main is Port ( INPUT : in std_logic; OUTPUT: out std_logic); end main; architecture Behavioral of main is begin OUTPUT <= INPUT after 2500 ns; end Behavioral; Die Frage ist aber, wie genau das geht und ob der große Wert zulässig ist. Mattias
.....Die Frage ist aber, wie genau das geht und ob der große Wert zulässig ist..... Also beim Simulator wird das auf die ns genau umgesetzt. Doch diese Anweisung ist rein für funktionale Beschreibungen gedacht, nich aber für die Synthese auf die Hardware, dort musst du halt für x Taktperioden warten, wenn du das benötigst.
Laut VHDL-Standard ist der Typ time auf 1 fs genau. Also genauer, als man es meist braucht. Es kommt am Ende natürlich auch drauf an, was im Simulator als Resolution eingestellt ist. Das gilt dann auch für die Simulation.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.