-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Different ILAs are linked to the same IP backbox #2649
Comments
It’s on the Blackbox/Primitive writer that Clash does not deduplicate the so-called “extra” files. Their content should be different if you want two TCL files. It’s highly unusual that two components that are exactly the same should each get a separate file/name. |
Yes, I guess that ILAs and VIOs will be the only exception to that. |
Perhaps the ILA config can come with a name that you add as a comment in the TCL file. That should make the TCL files different enough for deduplication to not happen. |
On a separate note, looking at the generated Verilog, it seems that
|
It is truly strange that you can't instantiate the same ILA twice, but I suppose we can add something to the Clash<->Tcl API that handles such a case specifically. Do you have documentation that says this is not possible? It is possible for any normal IP core, so you'd think they'd document when that suddenly deviates. Note that the instance names are unique ( [edit] |
The documentation states: Component Name – Use this text field to provide a unique module name for the ILA core. It reads like each ILA instance must be associated a unique name. Hence, we probably have to instantiate a different This is the generated namespace eval $tclIface {
variable api 1
variable scriptPurpose createIp
variable ipName {topEntity_ila_E981CE816A1232C3}
proc createIp {ipName0 args} {
create_ip \
-name ila \
-vendor xilinx.com \
-library ip \
-version 6.2 \
-module_name $ipName0 \
{*}$args
set_property \
-dict [list \
CONFIG.C_NUM_OF_PROBES 1 \
CONFIG.C_INPUT_PIPE_STAGES 0 \
CONFIG.C_DATA_DEPTH 4096 \
CONFIG.ALL_PROBE_SAME_MU true \
CONFIG.C_EN_STRG_QUAL 1 \
CONFIG.C_TRIGIN_EN false \
CONFIG.C_ADV_TRIGGER false \
CONFIG.ALL_PROBE_SAME_MU_CNT 2 \
CONFIG.C_PROBE0_WIDTH 1 \
CONFIG.C_PROBE0_TYPE 0 \
CONFIG.C_PROBE0_MU_CNT 2 \
] [get_ips $ipName0]
return
}
} As there have to be unique probe names as well, they should be taken into account via |
Ah wait, my idea doesn't work. I wanted to modify
I doubt it should be read like that. It literally says "for the ILA core". These things are called IP cores; you normally create one IP core which you can happily instantiate multiple times. One instance is not called a "core". It's "an instance of a core". We instantiate multiple instances all the time for everything else that generates a |
This issue can be closed, as ILA's being linked to the same blackbox IP is the desired behavior and two instances of this IP are correctly generated. The origin for this issue roots in the incorrect naming of the ILA's in an automated setup, which caused multiple ILAs to be connected to the same external sink appearing like there would be only one ILA in the first place (see #2655 for a more detailed background on this). |
The naming of the ILAs was not the problem, it was that the script of the automated setup in question shortened the name and exactly threw out the bit that was unique, instead opting for the part of the name that was the least unique. I think that is important to point out here: the ILA's all had unique names, it was a simple confusion on the part of the author of that script. For this reason, #2655 is not really related. If two ILA's were to have been instantiated with |
The following example instantiates two ILA blackboxes, which get mapped to the same IP instance in Vivado. Thus, the first ILA silently disappears. Clash should either produce different names for the generated IP or complain about such a kind of instantiation.
Generates
topEntity2.v
containingand
topEntity2.v
containingbut only a single
topEntity_ila_E981CE816A1232C3.clash.tcl
The text was updated successfully, but these errors were encountered: