Forum Discussion
How to package a custom IP containing IP as submodule
Hi,
I have created simple design where I instantiate LPM_sub_add IP as submodule. I would like to package the whole top level so that I can reuse IP. Below are the steps used:
- Create a new component in Platform designer.
- I added the .qip file of the IP along with top VHDL file in the synthesis files.
While generating the complete IP I am seeing bunch of errors:
Error: Component add1 can't instantiate a custom component with the same name as itself
Error: add1.add1_0.add1_0: Component add1 1.0 not found or could not be instantiated
Error: add1.clk_0.clk/add1_0.clock: Missing connection end (try "Remove Dangling Connections")
Error: add1.add1_0: add1_0.clk must be connected to a clock output
Error: add1.add1_0.add1_0: Component add1 1.0 not found or could not be instantiated
Error: add1.clk_0.clk/add1_0.clock: Missing connection end (try "Remove Dangling Connections")
Error: add1.add1_0: add1_0.clk must be connected to a clock output
Error: add1_0: missing_module does not support generation.
Error: qsys-generate failed with exit code 1: 4 Errors, 3 Warnings
I guess somehow I have to stitch the netlsit but not sure though. I am not sure if I am missing something basic here. Can someone please guide me with the exact steps to package a custom IP which has submodule IPs?
Thanks,
17 Replies
- KennyT_altera
Super Contributor
You cannot add IP files to the platform designer when developing the custom IP.
What you need to do is use composition. You can refer to https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qpp-platform-designer.pdf page 617 for that.
- APras18
New Contributor
Thanks for your reply @KennyT_Intel How can I use this Tcl command in the platform designer? Does the platform designer have Tcl console?
- APras18
New Contributor
@KennyT_Intel let me elaborate the issue. I have attached a simple test case where I have instantiated LPM_sub_add IP. I want to package the entire led_comp module. It means I have to package the entire system which includes the IP.
According to your reply, I think I should add the Tcl command in hw.tcl. However, I am confused, how can I pass information regarding port map. Can you please provide elaborate steps on how to proceed for the same. My actual implementation is on a big project. If you can guide me for this simple testcase, then that will provide me reference for the main design. Thanks for your help in advance.
Do you have service portal where I can raise a request?
- KennyT_altera
Super Contributor
Sure. give me some time to look into this and I will get back to you next week.
- KennyT_altera
Super Contributor
For your question:
Do you have service portal where I can raise a request?
Answer:
https://www.intel.com/content/altera-www/global/en_us/index/support/support-resources/knowledge-base/tools/2018/how-do-i-register-myself-as-the-intel--premier-support-ips--for-.html
- KennyT_altera
Super Contributor
Hi
You can check your email, I posted an example for you on how to do it.
Thanks
- APras18
New Contributor
@KennyT_Intel thanks a lot for your design file. But unfortunately I am unable to open the file as I dont have the device installed. I am using quartus prime 17.1 with device Cyclone V 5CGXFC7C7F23C8. Is it possible to share the design file for the mentioned device and version of the tool?
- APras18
New Contributor
where can I find the properties of the IP to be used as Tcl command? Is there a file generated that can guide me?
- KennyT_altera
Super Contributor
I will resend you the design.qar.
For the properties of the IP, you will have to look into the specific IP user guide.
- APras18
New Contributor
Hi @KennyT_Intel
I tried Looking into the https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_fifo.pdf for FIFO. I could not find the exact Parameters you are mentioning. It's neither intutive nor straightforward. Can you please share if there is some file I can use as reference to write These Parameters.
set_instance_parameter_value mfifo GUI_AlmostEmpty "false"
set_instance_parameter_value mfifo GUI_AlmostEmptyThr "1"
set_instance_parameter_value mfifo GUI_AlmostFull "false"
set_instance_parameter_value mfifo GUI_AlmostFullThr "1"
set_instance_parameter_value mfifo GUI_CLOCKS_ARE_SYNCHRONIZED "0"
set_instance_parameter_value mfifo GUI_DISABLE_DCFIFO_EMBEDDED_TIMING_CONSTRAINT "true"
set_instance_parameter_value mfifo GUI_ENABLE_ECC "false"
set_instance_parameter_value mfifo GUI_Empty "true"
set_instance_parameter_value mfifo GUI_Full "true"
set_instance_parameter_value mfifo GUI_LE_BasedFIFO "false"
- KennyT_altera
Super Contributor
I look into the design.qar again, it will be better that I dont modify it as a lot of properties are tied to Arria 10. What I suggest is you download and install this device in
http://fpgasoftware.intel.com/18.1/?edition=standard&platform=linux
Choose the version that you want and click individual files. From there you can choose the specific device to be download qdz files.
After that, in Quartus, just click tools -> install device to install the arria 10 device.