Constrains im .xdc per generate erzeugen

OP #6110696
Moin,

ist es möglich im xdc File irgendwie Constraints für viele ähnliche 
Signale per Generate oder mit Loop zu erzeugen?

Ich muss von einer Taktdomäne in eine andere und zwar mit vielen Bits. 
Das ist unkritisch, es gibt ein "start_DAC" Signal, das wird in der 
Zildomäne eingetaktet. Und wenn das dort als gesetzt erkannt wird ändern 
sich die vielen Bits in der Startdomäne nicht mehr. Ich will also viele 
false Path setzen.

Das ist ein
1
start_DAC: in std_logic;
2
data_DAC: in std_logic_vector(20*8-1 downto 0);
Eingang der Komponente.

Und der wird dann wenn das einsynchronisierte in 20 Register je 8 Bit 
geschrieben. Die sehen so aus:
1
type Rom20x1Byte is array (0 to 19) of std_logic_vector(7 downto 0);
2
signal DAC_Regs: Rom20x1Byte:=(others => x"00");

Und so wird das gemacht:
1
if start_DAC_sr = "01" then
2
   for I in 0 to 19 loop
3
      DAC_Regs(I) <= data_DAC(I*8+7 downto I*8);
4
   end loop;
5
end if;

Der Befehl wäre z. B. für eines der 20*8 Bits:

set_false_path -from [get_pins {AD9747_data_DAC_reg[49]/C}] -to 
[get_pins {AD9747_DAC/DAC_Regs_reg[6][1]/D}]

Ich würde da gerne sowas verwenden wie:

for I in 0 to 20*8-1 loop
   set_false_path -from [get_pins {AD9747_data_DAC_reg[I]/C}] -to 
[get_pins {AD9747_DAC/DAC_Regs_reg[I/8][I%8]/D}]
end loop;

Gibt es da eine Lösung?
#6110774
Gustl B. schrieb:
> Gibt es da eine Lösung?

Etliche.

ein .xdc ist ein .sdc, das eigentlich ein .tcl ist ;)

Also ein Tcl-script, das Constraints verwaltet. Entsprechend kann es 
auch alle (jedenfalls die meisten) Tcl-Sprachelemente nutzen.

Ich kenn' mich mit Vivado nicht aus, aber ein Altera/Intel .sdc-File 
(und da dürfte eigentlich kein allzugrosser Unterschied sein) würde so 
aussehen:
1
for { set i 0 } { $i < { expr 20 * 8 - 1} } {incr i} {
2
   set_false_path -from [get_pins AD9747_data_DAC_reg[$i]/C}] -to [get_pins AD9747_DAC/DAC_Regs_reg[[expr $i /8]][[expr $i % 8 ]]/D]
3
}
(Firma: www.elpra.de) Persönliche Seite #6110897
Markus F. schrieb:
> Also ein Tcl-script, das Constraints verwaltet. Entsprechend kann es
> auch alle (jedenfalls die meisten) Tcl-Sprachelemente nutzen.

Leider nicht, XDC files besiten bei Xilinx nur einen ganz kleinen Subset 
von TCL. Ifs und Loops sind kein Bestandteil davon:

https://www.xilinx.com/support/answers/59134.html

Was natuerlich immer geht, ist diese Constraints in einem TCL File zu 
erzeugen, die muessen nicht im XDC stehen. Oder eben mit Wildcards 
arbeiten, was ich persoenlich als die sauberste Variante empfinde.
(Firma: www.elpra.de) Persönliche Seite #6111255
Markus F. schrieb:
> Würde ich persönlich als k.o.-Kriterium sehen. Leider.

Ach, soweit muss man jetzt nicht gehen. Ist sogar das korrekte 
Verhalten, der Synopsis Design Constraints Syntax erlaubt nunmal keine 
Loop und Ifs. Und mir ist es lieber wenn sich die Tools an einen 
Standard halten, wie wenn jeder wieder sein eigenes Sueppchen kocht.

Komplexe Contraints lassen sich weiterhin problemlos via Tcl Skripte 
setzen. Da die Build Prozesse eh darauf basieren ist das voellig in 
Ordnung.

Antwort schreiben

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