hallo, ich beschäftige mich seit kurzem mit programmierung von fpgas mit vhdl. kleinere erfolge hatte ich schon... counter, freuquenzteiler, blinklicht usw :) ich möchte mehrere clb blöcke verbinden um ein delay uz erzeugen bzw um überhaupt constraints zu setzen. in vhdl geht das so oder? attribute rloc: string; attribute rloc {signalname} : signal is "SLICEXmYn"; wie kann ich jetzt aber dieses signal weiter mit einem anderem clb verbinden? lg
nein, das was dieses attribute macht, ist eine relative platzierung in einem set (das man zuerst auch via constraint erzeugen muss). mit delays hat das nichts zu tun und ein signal erzeugt es schon überhaupt gar nicht. delays entstehen in einem fpga nur durch runtimes, das lässt sich aber so gut wie gar nicht steuern (und schon gar nicht als sauber funktionierende lösung). sowas macht man in der regel mit einem counter.
gibt es denn eine möglichkeit ein signal in den clb blöcken so umzuleiten, dass ein delay erzeugt wird?
nicht wirklich. man kann zwar das routing selbst per FPGA Editor bestimmen, aber was soll das? Kein Mensch erzeugt ein Delay in einem FPGA/CPLD so. Meiner Meinung nach eine vollkommen schwachsinnige Idee.
ja in dem man die locations entweder per attributes oder im ucf-file festlegst. aber das macht nur in absoluten ausnahmefällen sinn, im normalfall sind die place&route tools um einiges bessere darin als man selbst. was ist denn eigentlich sinn und zweck dieser ganzen delay-sache?
Wenn du eine Verzögerung brauchst, dann kannst du z.B. Inverter einfügen und der Synthese sagen, dass dieser Inverter nicht wegoptimiert werden dürfen. Somit kannst du einigermassen gezielte Verzögerungen "einbauen". @ Michael Niegl: Kann z.B. sinnvoll sein, um einen breiten Datenbus an den Ports z.B. Nibbleweise, leicht zeitversetzt, zu schalten. Damit lassen sich große Stromspitzen zu vermeiden, wenn sich viele Bits ändern. (Verbesserung der EMV oder Vermeidung von Ground-Bounce)
ja hab inverter eingebaut zwecks delay. die synthese ist geschafft. hab es noch hingekriegt, dass diese nicht wegoptimiert werden. auch nach dem place und route sind sie dank constraints noch vorhanden. meine delay ist aber noch zu klein. ich versuche im moment location constraints anzuwenden und meine inverter weit weg zu platzieren um mein delay zu vergrößern. geht das überhaupt für einfache logiken wie inverter? habt ihr ein paar tips für mich wie ich das hinbekommen könnte?
Na, wenn du es noch langsamer brauchst, warum machst dann nicht noch ein paar mehr Inverter dazu, statt dich mit der location rumzuquälen? Und wenn du ne richtig große Verzögerung brauchst, dann schieb doch das Signal durch ein oder mehrere FF. Dann hast jeweils einen Takt Verzögerung.
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.