07-21-2014 06:14 AM
we spotted some kind of strange behaviour regarding the use of Generics packaged in an IP - imported back into a project.
First of all, what seems some kind of disturbing is that, when you want to "Customize" your IP - that is, to modify one of the Generics of the top level entity, you need to click the cross(clear) and then write the new value:
just (re)typing the new value and clicking OK is not enough, the new value doesn't seem updated. We tested this with a simple prescaler and the output frequency didn't change at all. This is how we debugged this point.
on another occasion, we programmed a custom IP with an original Generic (DATA_WIDTH = 16).
Further development made us change to DATA_WIDTH = 8, even though the IP was repackaged many times,
the new generic wasn't updated in the project:
we got many software - strange - behaviour /errors and we finally debugged that the project was still mapping a 16 value to this particular generic.
I agree that the second entry is more related to the fact we had only one single project implementing this IP, but ..
the first entry is more GUI related and we think this might be confusing / lead to stupid errors and so, waste of time.
We thought it might be usefull to share this info with you all.
07-21-2014 06:21 AM
07-21-2014 06:53 AM
On the issue that you must clear field before vlaue is taken:
Can you try the following? Once you are done typing (without clicking the x to clear first), click outside of the field before clicking OK.
The tool sometimes needs a click outside of the GUI widget to ensure it "registers" the new value.
On repackaging an IP Definition with a different generic default:
Already created IP instanaces will have all its values preserved through the upgrade processes. This is intended behavior for both Xilinx IP as well as customer created IP. The system currently doesn't understand the user intent that some values on the Instance should "default and automatically change" while other values should be kept exactly as is.
Creating new cells in the block diagram will pcikup this new generic value, but existing cells keep all their values.