cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
linzhongduo
Explorer
Explorer
11,394 Views
Registered: ‎10-09-2014

bd.tcl to generate HDL parameter in Custom IP

Hi,

 

I am trying to design an IP that will infer the bus data width and propagate the width to a parameter in HDL called "C_DATA_WIDTH". The question is similar to the following question, except that I couldn't get it working. So I am trying to figure out what I did wrong.

http://forums.xilinx.com/t5/Design-Entry/How-to-I-get-the-Auto-button-in-custom-IP/m-p/554352/highlight/true#M7382

 

There are several points I would like to clarify: 

1) the parameter C_DATA_WIDTH is set to be of value resolve type "user", should I make it generated or others?

2) My bd.tcl is as follows. In the propagate proc, I puts a line to make sure it is called, but it is never executed.

 

proc init {cellpath otherinfo} {
set cell [get_bd_cells $cellpath]
bd::mark_propagate_overrideable $cell {C_DATA_WIDTH }

}

proc propagate {cellpath undefined_params} {
puts "propagate is called"
set ip [get_bd_cells $cellpath]
set busif [get_bd_intf_pins $cellpath/ch0]
set busParent [find_bd_objs -relation connected_to $busif]
set_property config.C_DATA_WIDTH [get_property config.MEM_WIDTH $busParent] $ip
}

 

3) I have attached the file group in the IP packager, is the naming and file group setting correct?

 

Thanks,

Jimmy

Screenshot from 2015-03-11 10:49:56.png
0 Kudos
8 Replies
vemulad
Xilinx Employee
Xilinx Employee
11,381 Views
Registered: ‎09-20-2012

Hi,

Have you referred to below documents

http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_3/ug1119-vivado-creating-packaging-ip-tutorial.pdf
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_4/ug1118-vivado-creating-packaging-custom-ip.pdf

Thanks,
Deepika.
Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)
0 Kudos
linzhongduo
Explorer
Explorer
11,376 Views
Registered: ‎10-09-2014

Hi Deepika, 

 

Thank you for your quick reply. I did go through them, but couldn't find any information about the tcl script. I couldn't find any Xilinx documentation actually talks about what "proc propagate" mean except the answer record listed in my question. Could you please give me some pointers?

 

Jimmy

0 Kudos
vemulad
Xilinx Employee
Xilinx Employee
11,368 Views
Registered: ‎09-20-2012

Hi Jimmy,

 

Have you referred to "customization parameters" page-33 of http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_4/ug1118-vivado-creating-packaging-custom-ip.pdf

 

Thanks,

Deepika.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)
0 Kudos
linzhongduo
Explorer
Explorer
11,322 Views
Registered: ‎10-09-2014

Hi Deepika,

 

Thank you for the response. I am not sure if I understand what you are trying to say with page 33. It was about visibility, are you saying that if I want to make it configurable through bd.tcl, I should make it hidden? I think a lot of Xilinx IPs with AXI interface have ID_WIDTH auto configured, but the parameter is still visible though not editable. 

 

Jimmy

0 Kudos
linzhongduo
Explorer
Explorer
11,306 Views
Registered: ‎10-09-2014

Hi Deepika,

 

I tried to set visibility, but doens't seems to be right. Another question: if I set the parameter C_DATA_WIDTH using tcl command in the GUI, I can see that the property is changed, however the interface width which depends on the parameter doesn't change at all. So it seems that I need to somehow invoke the tcl script to set the GUI as well. 

 

Is there a simple example showing how to use the bd.tcl for inferring IP parameters? Thank you.

 

Jimmy

0 Kudos
shruti08
Newbie
Newbie
7,907 Views
Registered: ‎04-01-2016

Hi Jimmy,

 

Were you able to resolve this? I am trying to set a generic in my custom IP based on the value entered in the BD using the bd.tcl for the IP. As you have mentioned, I don't even see the propagate procedure being executed.

 

Any help would be appreciated.

 

-Shruti

wermke
Visitor
Visitor
5,716 Views
Registered: ‎05-22-2013

Same question ...
Reto
Observer
Observer
87 Views
Registered: ‎07-29-2020

Hi @wermke
Hi @shruti08 
Hi @linzhongduo
Hi @vemulad 

Has anyone of you solved this problem?

Thank you
Kind regards
Reto Meier

0 Kudos