cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
631 Views
Registered: ‎02-03-2011

XDC list element in braces followed by "]]" instead of space

Jump to solution

Hello,

I'm currently developing a TCL library to deal with vivado on CLI mode. Sometimes i work with projects (VHDL) that contains ILA. The steps I use to set/add ILA are the following:

- Add dont_touch and mark_debug attributes to my VHDL code.

- Synthesize the design.

- Open synthesized design and select "set up debug"

- Select all the signals i need and wait to the wizard finish and updates the TCL commands to my ${design_name}_ila.xdc file.

The last step vivado writes the probes like this: set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe5]
connect_debug_port u_ila_0/probe5 [get_nets [list {u_user/u_userctrl/u_ctrl_rp/u_rp_monitor/b2_beam_ra[3]} {u_user/u_userctrl/u_ctrl_rp/u_rp_monitor/b2_beam_ra[2]} {u_user/u_userctrl/u_ctrl_rp/u_rp_monitor/b2_beam_ra[1]} {u_user/u_userctrl/u_ctrl_rp/u_rp_monitor/b2_beam_ra[0]}]]

So when I start to work with my TCL library, the flow is broken and i get that error in the prompt : list element in braces followed by "]]" instead of space

so I have to replace strings from }]] to } ]]

Before I developed that library i had a unique script that do something similar to the library and I didn't have this kind of issue.

Any ideas?

 

Tags (4)
0 Kudos
Reply
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
321 Views
Registered: ‎11-28-2007

Hi @jocorso 

thanks for sharing the testcase!

I've been able to reproduce the issue, even with the latest internal alpha version of 2020.2.

Therefore I will file an change request to get this bug fixed.

I cannot give any guarantees when this will be fixed, but I will try to keep you up-to-date.

 

Best regards

Dries

--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.

View solution in original post

0 Kudos
Reply
6 Replies
Xilinx Employee
Xilinx Employee
533 Views
Registered: ‎11-28-2007

Hi @jocorso 

}]] should work just fine.

What message do you get when you execute these commands in the Tcl console and you have the synthesized design open?

Could it be the file standard and carriage return not being set correctly? This can happen when you create your file in Windows but you run the tools in Linux...

 

Best regards

Dries

--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.
0 Kudos
Reply
Highlighted
Visitor
Visitor
501 Views
Registered: ‎02-03-2011

Hi @driesd 

Let's say I run vivado in tcl mode with this command(windows) : %VIVADO_PATH%\bin\vivado -nolog -nojournal -notrace -mode tcl -source ./tcl/lib/vds/vds_start.tcl

and I have this line included at my ila.xdc file: connect_debug_port u_ila_0/probe2 [get_nets [list {u_hal/u_clkmanager/u_freq_monitor/u_freq_cnt/b2_cnt_ra[0]_0[*]} ]]

The TCL library flow works normally.

But if I modify the line (anytime) included at my ila.xdc file as this: connect_debug_port u_ila_0/probe2 [get_nets [list {u_hal/u_clkmanager/u_freq_monitor/u_freq_cnt/b2_cnt_ra[0]_0[*]}]]

The library flow stops with this message: 

Please select option: list element in braces followed by "]]" instead of space
Vivado%

So, when i create ILA.xdc file with vivado GUI, I MUST replace all "}]]" by "} ]]"

I have this problem in both OS (windows and linux).

0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
489 Views
Registered: ‎11-28-2007

Hi @jocorso 

I'm still not able to reproduce what you see.

I've created a small testcase using the wavegen example design and I use almost exactly the same syntax as you without issue:

connect_debug_port u_ila_0/probe0 [get_nets [list {uart_rx_i0/uart_rx_ctl_i0/send_resp_type[0]_i_5[*]}]]

I tried with Vivado 2020.1 on both CentOS7 and Ubuntu 18.

I don't think it matters since you can reproduce on both Linux and Windows, but what version of Vivado are you using and what Linux OS does your machine have?

Could you share a testcase?

Please find my 2020.1 testcase in attachment. If you want to use an older Vivado version: it's the wavegen example design. Just use my wave_gen_timing.xdc.

 

Best regards

Dries

--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.
0 Kudos
Reply
Highlighted
Visitor
Visitor
482 Views
Registered: ‎02-03-2011

Hi @driesd 

Some years ago I made one TCL script to handle vivado design flow from a CLI menu. With several options as create project, delete project, synthesize, implement, enable LSF, set incremental compile, etc.

Due to the evolution of this TCL script in different projects (with specific functions) i wanted to unify functions that people creates during these years, and I decided to create a TCL library with namespaces and functions, that calls a CLI menu with that options. This issue appears when we start to use the TCL library.

For company IP reasons, i can't share an example project with the library in that community, but we have an NDA with xilinx so I could share with you in a private way.

The only place in that library I call XDC files is in that procedure.

# ** Procedure to set constraints
#----------------------------------------------------------------------

proc setConstraints { design_name } {
  set xdcSuffix { _ILA _PINOUT _TP }
  foreach i $xdcSuffix {
    set filePath "../cfg/${design_name}${i}.xdc"
    if { [file exists $filePath] } {
      add_files -fileset [get_filesets constrs_1] $filePath
        if { ! [string compare -nocase $i "_PINOUT"] } {
          set_property used_in_synthesis false [get_files "${design_name}${i}.xdc"]
        }
        if { ! [string compare -nocase $i "_ILA"] } {
          set_property used_in_synthesis false [get_files "${design_name}${i}.xdc"]
          set_property target_constrs_file $filePath [current_fileset -constrset]
        }
      } else {
      puts "The ${design_name}${i}.xdc doesn't exists, please create it"
      incr error
      return error
    }
  }
}

Best Regards

0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
474 Views
Registered: ‎11-28-2007

OK, I've sent you a private message.

 

Best regards

Dries

--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.
0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
322 Views
Registered: ‎11-28-2007

Hi @jocorso 

thanks for sharing the testcase!

I've been able to reproduce the issue, even with the latest internal alpha version of 2020.2.

Therefore I will file an change request to get this bug fixed.

I cannot give any guarantees when this will be fixed, but I will try to keep you up-to-date.

 

Best regards

Dries

--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.

View solution in original post

0 Kudos
Reply