I'm using HLS to write some IP cores.
Two IPs instantiates same function(submodule).
The name conflicts when I try to do simulation with the top design.
Here is an example.
template <int width>
void sub(ap_int<width> x)
IP1 and IP2 calls function sub. When top block design instantiates IP1 and IP2, there will be two different modules with same name "sub".
This conflicts prevent simulation!!
How to solve this problem nicely?
This issue can showup in many senarios, not only template function. E.g. vivado HLS may optimize "sub" as different versions of module due to constant call parameters (sub(2), sub(x)).