constraints

Gast #556220
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
#556316
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.
#556601
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?
Gast #560512
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)
Gast #562252
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?
Gast #564176
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.