cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
digitalzombie
Visitor
Visitor
16,605 Views
Registered: ‎04-03-2014

XDC to UCF conversion

Jump to solution

Hello, 

I am new to both UCF and XDC syntax. I currently have a 400 line XDC file and I need to change it to UCF in order to use it with ISE. ( I do not have Vivado access). I searched the forums and google but all I found was how to convert XDC to UCF not the other way around. I looked at them to see if I can reverse engineer the process but could not do it. 

Specifically, the lines that I am trying to convert to UCF are variations of the lines below. 

 

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

 

set_property PACKAGE_PIN W31 [get_ports {FPGACTC_AB0N[0]}]

 

set_property IOSTANDARD LVCMOS18 [get_ports {TOE_PROM_???}]

 

set_property IOSTANDARD LVCMOS18 [get_ports {SFP2_RS[*]}]

 

If someone can tell me the UCF equivalent of these lines and the meaning of ? and * on the bit field, I would appreciate it. 

0 Kudos
1 Solution

Accepted Solutions
muzaffer
Teacher
Teacher
26,018 Views
Registered: ‎03-31-2012
>> set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

There is no corresponding UCF constraint. You need to pass a similar parameter to bitgen

>> set_property PACKAGE_PIN W31 [get_ports {FPGACTC_AB0N[0]}]

NET "FPGACTC_AB0N[0]" LOC=W31;

>> set_property IOSTANDARD LVCMOS18 [get_ports {TOE_PROM_???}]

NET "TOE_PROM_???" IOSTANDARD = LVCMOS18;

>> set_property IOSTANDARD LVCMOS18 [get_ports {SFP2_RS[*]}]

NET "SFP2_RS[*]" IOSTANDARD=LVCMOS18;

? stands for a single character and * stands 0 or more characters.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

View solution in original post

5 Replies
muzaffer
Teacher
Teacher
26,019 Views
Registered: ‎03-31-2012
>> set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

There is no corresponding UCF constraint. You need to pass a similar parameter to bitgen

>> set_property PACKAGE_PIN W31 [get_ports {FPGACTC_AB0N[0]}]

NET "FPGACTC_AB0N[0]" LOC=W31;

>> set_property IOSTANDARD LVCMOS18 [get_ports {TOE_PROM_???}]

NET "TOE_PROM_???" IOSTANDARD = LVCMOS18;

>> set_property IOSTANDARD LVCMOS18 [get_ports {SFP2_RS[*]}]

NET "SFP2_RS[*]" IOSTANDARD=LVCMOS18;

? stands for a single character and * stands 0 or more characters.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

View solution in original post

dbarrowman
Explorer
Explorer
16,552 Views
Registered: ‎11-27-2008

I have a somewhat dumb/easy question about the xdc file format for which I haven't been able to find the answer. :) How do you do comments? It can be quite useful when experimenting to change something and comment out the existing constraint.

 

Seems like an easy question but I've had no luck finding the answer. Are comments supported in the xdc file?

 

Thanks,

Dan

 

0 Kudos
deanyu
Observer
Observer
16,548 Views
Registered: ‎12-20-2013
# doesn't work??
0 Kudos
dbarrowman
Explorer
Explorer
16,545 Views
Registered: ‎11-27-2008
:) Yes I just figured that out. I actually attempted to delete my question. Oh well, as I said, dumb question. ;)

Thanks,
Dan
0 Kudos
avrumw
Guide
Guide
16,539 Views
Registered: ‎01-23-2009

One odd thing to know about comments in Tcl is that the # behaves somewhat like a command (the null command).

 

So, it works when it is the first thing on a line like

 

# This is a comment

 

But (alone) it won't work at the end of a line

 

set_property IOSTANDARD LVCMOS15 [all_inputs] # This is a syntax error due to the comment

 

However, you can put multiple commands on a line if they are separated by a ;

 

Therefore

 

set_property IOSTANDARD LVCMOS15 [all_inputs];  # This is a legal comment

 

will work.

 

Avrum