cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Teacher
Teacher
11,653 Views
Registered: ‎07-09-2009

XDC file format .. pre compiler

Jump to solution

 

Been hacking a lot of xdc files recently,

 

so one pin could be 

 

set_property PACKAGE_PIN AB5 [get_ports EXP_IOWR]
set_property IOSTANDARD LVCMOS18 [get_ports EXP_IOWR]
set_property SLEW SLOW [get_ports EXP_IOWR]
set_property DRIVE 4 [get_ports EXP_IOWR]

 

 

Was wondering, how hard can it be ? to write a pre compiler,

 

so one could in a file wirte 

 

set_property [get_ports EXP_IOWR]  PACKAGE_PIN=AB5, IOSTANDARD=LVCMOS18, SLEW=SLOW, DRIVE=4

 

and have a tcl script , say pre.tcl that convert the abovr file to the xdc format that xilinx wants ?

 

does that sound totaly crazy as a chrismas project ?

 

the driving force is, when we change pin names, 

   which happens to oftern for my liking but , not my call. its only one line to change

 

Any thought

 

have a great christmas,

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Guide
Guide
21,761 Views
Registered: ‎01-23-2009

You can already do this with the -dict option

 

set_property -dict {PACKAGE_PIN AB5 IOSTANDARD LVCMOS18 SLEW SLOW DRIVE 4} [get_ports EXP_IOWR]

 

Avrum

View solution in original post

Tags (1)
8 Replies
Highlighted
Guide
Guide
21,762 Views
Registered: ‎01-23-2009

You can already do this with the -dict option

 

set_property -dict {PACKAGE_PIN AB5 IOSTANDARD LVCMOS18 SLEW SLOW DRIVE 4} [get_ports EXP_IOWR]

 

Avrum

View solution in original post

Tags (1)
Highlighted
Teacher
Teacher
11,627 Views
Registered: ‎07-09-2009

Ah the power of TCL,

 

yes the dict option would solve the multi line thing,

 

thanks

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Highlighted
Guide
Guide
11,624 Views
Registered: ‎01-23-2009

Ah the power of TCL,

 

This isn't really Tcl. The format and options of the set_property command are specified and implemented by Xilinx - they are a part of XDC. Don't quote me on this, but I think the -dict option was a fairly late addition to the command syntax; I don't think earlier versions of Vivado (like in the 2012 time frame) supported this option...

 

So, not "Ah the power of Tcl", but "Ah the power of Vivado"!

 

Avrum

0 Kudos
Highlighted
Teacher
Teacher
11,621 Views
Registered: ‎07-09-2009

power of Vivado...

 

wont get into that.... 

 

out of interest, dict was added to later tcl, and I guess this is a vivado hook into that,

 

http://www.wellho.net/mouth/3614_Tcl-dicts-a-tutorial-and-examples.html

 

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
Highlighted
Participant
Participant
11,327 Views
Registered: ‎05-14-2014

I'm sorry to "hijack" this thread, but I think it's relevant.

Working on DDR design, I want to set:

            - INPUT/OUTPUT_IMPEDANCE value for an I/O pin let's say 40/40 ohms

            - PRE_EMPHASIScalue  for an IO pin let's say 240 ohms

Read the document ug945-vivado-using-constraint-tutorial, there is nothing about these, what is the tcl syntax and keyword would be?

Something like these:

          - set_property keyword_xx RDRV_40_40 [get_ports {DDR4_DQ[0]}]

          - set_propery  keyword_xx RDRV_240 [get_ports {DDR4_DQ[0]}]

 

Thanks you

 

0 Kudos
Highlighted
Participant
Participant
11,326 Views
Registered: ‎05-14-2014

Searched ug903 too..

0 Kudos
Highlighted
Guide
Guide
11,306 Views
Registered: ‎01-23-2009

First - you should have started a new thread for this - they really aren't related. You should also tell us what family you are working with - from this thread and from your posting, there is no way to tell that you are asking about UltraScale (I assume) - this would probably have been best posted to the UltraScale forum.

 

That being said, the answer is in the UltraScale I/O User Guide UG571. The properties for the I/O structure are listed there, including an example as to how to use them.

 

For the output impedance, the property is OUTPUT_IMPEDANCE, as shown on page 65 of the user guide (v1.5), including an XDC example on the next page:

 

set_property OUTPUT_IMPEDANCE value [get_ports port_name]

 

The pre-emphasis is on p. 68

 

set_property PRE_EMPHASIS value [get_ports port_name]

 

Avrum

 

 

Tags (1)
Highlighted
Advisor
Advisor
8,973 Views
Registered: ‎10-10-2014

Can the IOSTANDARD for an entire bank be set at once, instead of specifying it for each pin?

 

I've found this tcl line somewhere, but it doesn't seem to work in Vivado 2015.2.1

 

# Bank 33, Vcco = 3.3V
set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 33]];
** kudo if the answer was helpful. Accept as solution if your question is answered **
0 Kudos