Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
All support for Intel NUC 7 - 13 systems has transitioned to ASUS. Read latest update.
16479 Discussions

Making custom component visible to Platform Designer (Qsys)

BDarji
New Contributor I
1,778 Views

Hello all,

Sometimes we have observed that our custom component (having _hw.tcl file) does not appear in Platform Designer (Qsys) IP library even after providing IP core search path via Qsys>Tools>Options>IP Search path option.

There could be other alternative for this. But based on our experience, we have prepared one document which could help you in such a case. We have attached it herewith. We hope this would be useful to someone in future.

One shall also refer Dave's answer provided here regarding IPX file : QSYS Custom component not found - Intel Community 

Our approach is similar to that.

Thank you and Have a Great Day!

0 Kudos
11 Replies
KhaiChein_Y_Intel
1,759 Views

Hi,


May I know the software edition (Pro/Standard) and version you are using? Could you share the design file for investigation?


Thanks

Best regards,

KhaiY


0 Kudos
BDarji
New Contributor I
1,751 Views

Hello KhaiY,

Thank you for your response.

I am facing issue with Quartus 18.1 Standard edition. But, in past, we faced similar type of issue with older Quartus version as well. And, that's what led us to find out some work-around for this!

Basically we are designing IP cores, mainly USB IP cores. Although other IP cores are in encrypted form, we have I2C master IP core which we are providing free of charge. If you can give me your email ID, I can request our sales team to share that component to you. It will contain RTL files as well as hw.tcl file. I am facing same issue with that as well. Hence, you can check at your end whether same issue is happening with you or not.

Thank you,

Bhaumik

 

 

sstrell
Honored Contributor III
1,737 Views

You don't mention any error messages or any other info about why your components aren't showing up in the IP Catalog, but my guess is that the connection between the _hw.tcl file and your custom component HDL code is getting lost.  This can happen if you use the Platform Designer Component Editor and then move the _hw.tcl file from the project directory and/or the HDL code.

In recent versions of Platform Designer (probably within the last 3-4 years), the _hw.tcl file from the Component Editor always gets created at the location of the .qsys file, not at the location of the HDL code you point to in the Component Editor, which is what it used to do.  As such, if you move either the _hw.tcl or the HDL code, even if you point PD to the location of the _hw.tcl, it won't work.

What you have to do is edit the _hw.tcl file, wherever you've moved it to and edit the following:

add_fileset_file <file>.[v|vhd] [VERILOG|VHDL] PATH <file_path> [TOP_LEVEL_FILE]

If you set the path correctly and then refresh PD (F5 key or menu command), it should work.

0 Kudos
BDarji
New Contributor I
1,702 Views

Hello @sstrell ,

Thank you very much for your response and sorry for delay.

You are right that initially we use Platform Designer Component Editor to create _hw.tcl file and then are moving it to other location. But we are moving RTL files along with _hw.tcl file. And hence, RELATIVE path remains same.

In our case, we are used to place RTL files in hdl folder and _hw.tcl file remains in same folder in which hdl folder resides. Then, we are using following commands to add files.

add_fileset_file ./sls_i2c_mstr/i2cc_wrapper.sv       SYSTEM_VERILOG PATH ./hdl/i2cc_wrapper.sv TOP_LEVEL_FILE

add_fileset_file ./sls_i2c_mstr/i2cc_user_define.pkg.sv  SYSTEM_VERILOG PATH ./hdl/i2cc_user_define.pkg.sv

add_fileset_file ./sls_i2c_mstr/i2cc_dp_ram_mf.v  VERILOG PATH ./hdl/i2cc_dp_ram_mf.v

Do you see any issue in this?

Thank you and Have a Nice Day!

Regards,

Bhaumik

 

0 Kudos
sstrell
Honored Contributor III
1,693 Views

Try an absolute path instead of a relative path.  I think the issue may be that the relative path is relative to the .qsys file, not relative to the _hw.tcl file.

0 Kudos
BDarji
New Contributor I
1,681 Views

Hello @sstrell ,

Thank you for your response and continuous support.

I do not think that relative path is an issue here because of following reasons:

(1) Please refer following image. It states we can either use absolute or relative path.

add_fileset_file_description.jpg

(2) Note that if we use 'user_component.ipx' file method I described in initial post, there is no issue. RTL files are generated properly when Qsys system is generated. Hence, I think file path is fine. 

What do you think? 

Have a  Nice Day!

Kind Regards,

Bhaumik

sstrell
Honored Contributor III
1,674 Views

Have you tried the absolute path?  This may be a bug that does not follow the documentation.  I've seen it happen.

Your .ipx solution is fine, but it's extra work you shouldn't have to do to make the IP visible.

0 Kudos
BDarji
New Contributor I
1,662 Views

Hello @sstrell ,

Sorry for delayed response. And thank you for your response.

I have tried absolute path. Please have a look at following:

add_fileset_file ./sls_i2c_mstr/i2cc_wrapper.sv       SYSTEM_VERILOG PATH "E:/designs/sls/i_i2cc/trunk/master/software/setup/resources/i2c_mstr/hardware/component/hdl/i2cc_wrapper.sv" TOP_LEVEL_FILE

add_fileset_file ./sls_i2c_mstr/i2cc_user_define.pkg.sv  SYSTEM_VERILOG PATH "E:/designs/sls/i_i2cc/trunk/master/software/setup/resources/i2c_mstr/hardware/component/hdl/i2cc_user_define.pkg.sv"

add_fileset_file ./sls_i2c_mstr/i2cc_dp_ram_mf.v  VERILOG PATH "E:/designs/sls/i_i2cc/trunk/master/software/setup/resources/i2c_mstr/hardware/component/hdl/i2cc_dp_ram_mf.v"

 But unfortunately it didn't help.

I have attached herewith one text file which shows messages which are generated by Qsys when we refresh system. See whether this gives any clue or not.

Thank you,

Bhaumik

 

 

TuckerZ
New Contributor I
744 Views

Has a solution to this been found? I am having the same problem. I am using Quartus Prime Standard Edition version 21.1. I am creating components using the component editor, moving them, then adding them to the IP Search Directory. They appear in the IP Catalog outside of Platform Designer, but they do not appear inside of Platform Designer.

 

Existing instantiations of those IP in Platform Designer before the files were moved can not find the files and will throw the error: "Component type <component_name> is not in the library" 

 

However, it does work when you specify a search path in Platform Designer (Tools ➤ Options). I specified the folder containing subdirectories containing my _hw.tcl files. They then appear under the "Library" section of the IP Catalog in Platform Designer.

 

I believe this might be correct behavior as section 1.11 (Upgrading Outdated IP Components) of the Platform Designer Standard Edition User Guide (v18.1) mentions the following, "If a Platform Designer system includes IP components outside of the project directory or the directory of the .qsys file, you must add the location of these components to the Platform Designer IP Search Path (Tools ➤ Options)." However, this was not mentioned, referenced or placed conveniently in the sections talking about importing IP.  The only thing listed that mention adding files to the Platform Designer IP Paths was under section 1.5.3.2. (Defining the IP Search Path with Index Files). However, even this gave an option of using Quartus Primes' or Platform Designer's IP Search Path settings.  Additionally, this section was specifically about Index files, not about _hw.tcl files. 

 

However, I could be wrong about all of this. What is the correct behavior? Must you specify the path of all IP used in Platform Designer using Platform Designer's IP Search Path. Is using Quartus Primes IP Search Path acceptable and this is a bug? Are .IPX files supposed to be specified using Quartus Primes Search Path and _hw.tcl files specified with Platform Designer's?  If so, why so? 

 

 

 

0 Kudos
KhaiChein_Y_Intel
1,721 Views

Hi Bhaumik,


I have sent an email to you, do let me know if you did not receive.


Thanks

Best regards,

Khai Chein


0 Kudos
BDarji
New Contributor I
1,707 Views

Hello, 

Sorry for delay. I have received your mail and have requested our sales team to share that package to you for further debugging. 

Thank you.

 

0 Kudos
Reply