Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16613 Discussions

SOPC Builder 7.1 Problem with New Components

Altera_Forum
Honored Contributor II
3,289 Views

Hi, 

 

In SOPC Builder 7.1, I am trying to create a component to connect to an off-chip SRAM. I use the "Create new component..." wizard in SOPC Builder.  

 

Everything seems fine. I set the interface to "Avalon Tristate Slave", define all the signals (data, addr, oe_n, etc) and their sizes and directions, define the name, and then hit finish. 

 

The new component appears in the list. I add it to the system, but then run into a problem when I try to connect it to the tri-state bridge. There is a Flash (CFI) on the same physical off-chip bus. It seems that in SOPC 7.1 you need to set the tri-state bridge component to tell it which signals in the components connected to it are shared.  

 

However, when I double click on the tri-state bridge component to edit it, a Java NullPointerException is thrown. Disconnecting my custom SRAM component makes the error go away. 

 

Further, whenever I try to re-edit my custom component, it always comes up with the data signal as an input, even though it was properly set to bidir. 

 

I have seen the posts about adding the folder to the Global Libraries list, but this does nothing.  

 

Anyone else having similar problems with SOPC 7.1? Any ideas to fix it? 

 

Here is the .tcl script that SOPC 7.1 creates to define the custom component: 

 

 

 

# TCL File Generated by Component Editor on:  

# Sun Jun 10 03:32:15 PDT 2007 

# DO NOT MODIFY 

 

# Blackbox -- The top level is not based on an HDL file 

set_source_file ""  

set_module "idt71v416" 

set_module_description "" 

set_module_property instantiateInSystemModule false 

set_module_property version "1.0" 

set_module_property group "User Logic" 

set_module_property editable true 

 

# Module parameters 

 

# Clock Interface global_signals_clock 

add_clock_interface "global_signals_clock"  

set_interface_property "global_signals_clock" "externallyDriven" "false" 

set_interface_property "global_signals_clock" "clockRateKnown" "false" 

set_interface_property "global_signals_clock" "clockRate" "0" 

# Ports in interface global_signals_clock 

add_port_to_interface "global_signals_clock" "clk" "clk" 

set_port_direction_and_width "clk" "input" 1 

add_port_to_interface "global_signals_clock" "reset_n" "reset_n" 

set_port_direction_and_width "reset_n" "input" 1 

 

# Interface avalon_tristate_slave_0 

add_interface "avalon_tristate_slave_0" "avalon_tristate" "slave" "global_signals_clock" 

set_interface_property "avalon_tristate_slave_0" "isNonVolatileStorage" "false" 

set_interface_property "avalon_tristate_slave_0" "burstOnBurstBoundariesOnly" "false" 

set_interface_property "avalon_tristate_slave_0" "transparentBridge" "false" 

set_interface_property "avalon_tristate_slave_0" "readLatency" "0" 

set_interface_property "avalon_tristate_slave_0" "readWaitStates" "1" 

set_interface_property "avalon_tristate_slave_0" "isFlash" "false" 

set_interface_property "avalon_tristate_slave_0" "holdTime" "0" 

set_interface_property "avalon_tristate_slave_0" "printableDevice" "false" 

set_interface_property "avalon_tristate_slave_0" "registerIncomingSignals" "false" 

set_interface_property "avalon_tristate_slave_0" "readWaitTime" "1" 

set_interface_property "avalon_tristate_slave_0" "setupTime" "0" 

set_interface_property "avalon_tristate_slave_0" "addressGroup" "0" 

set_interface_property "avalon_tristate_slave_0" "interleaveBursts" "false" 

set_interface_property "avalon_tristate_slave_0" "addressAlignment" "DYNAMIC" 

set_interface_property "avalon_tristate_slave_0" "isBigEndian" "false" 

set_interface_property "avalon_tristate_slave_0" "writeLatency" "0" 

set_interface_property "avalon_tristate_slave_0" "writeWaitTime" "1" 

set_interface_property "avalon_tristate_slave_0" "timingUnits" "Cycles" 

set_interface_property "avalon_tristate_slave_0" "minimumUninterruptedRunLength" "1" 

set_interface_property "avalon_tristate_slave_0" "registerOutgoingSignals" "false" 

set_interface_property "avalon_tristate_slave_0" "addressSpan" "524288" 

set_interface_property "avalon_tristate_slave_0" "activeCSThroughReadLatency" "false" 

set_interface_property "avalon_tristate_slave_0" "isMemoryDevice" "true" 

set_interface_property "avalon_tristate_slave_0" "alwaysBurstMaxBurst" "false" 

set_interface_property "avalon_tristate_slave_0" "linewrapBursts" "false" 

set_interface_property "avalon_tristate_slave_0" "writeWaitStates" "1" 

set_interface_property "avalon_tristate_slave_0" "maximumPendingReadTransactions" "0" 

set_interface_property "avalon_tristate_slave_0" "wellBehavedWaitrequest" "false" 

# Ports in interface avalon_tristate_slave_0 

add_port_to_interface "avalon_tristate_slave_0" "data" "data" 

set_port_direction_and_width "data" "bidir" 16 

add_port_to_interface "avalon_tristate_slave_0" "addr" "address" 

set_port_direction_and_width "addr" "input" 18 

add_port_to_interface "avalon_tristate_slave_0" "cs_n" "chipselect_n" 

set_port_direction_and_width "cs_n" "input" 1 

add_port_to_interface "avalon_tristate_slave_0" "oe_n" "read_n" 

set_port_direction_and_width "oe_n" "input" 1 

add_port_to_interface "avalon_tristate_slave_0" "we_n" "write_n" 

set_port_direction_and_width "we_n" "input" 1 

add_port_to_interface "avalon_tristate_slave_0" "be_n" "byteenable_n" 

set_port_direction_and_width "be_n" "input" 2
0 Kudos
22 Replies
Altera_Forum
Honored Contributor II
948 Views

No one else has experienced this? 

 

Feels like a bug to me, but could be user error or a PC configuration issue somehow. 

 

Creating the component is SOPC version 6, and then adding it in version 7.1 works OK.  

 

But I can't make new components in SOPC 7.1. It seems to throw out the "bidir" setting of the data bus. I think this is what is making it throw the NullPointerException. 

 

Any input would be appreciated, Thanks
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi , 

I think it is tool bug. I think it can be fixed in the next version! 

Regards 

Sam
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

I have experienced similar bugs in the 7.1 component editor. If I re-edit some of my components, signals and interface properties changes from what I originally defined. I haven't got any NullPointerExceptions though.  

 

One example is a component with an avalon-slave interface that always re-opens with it transformed to an "interrupt slave" interface. No settings for it are available in the interface tab. In the message box all signals get the error/warning  

"signal signalname has unknown type". However the TCL-file seems alright after the first time saving the component interface definition. It generates and synthesizes fine. (If no re-edits are made) 

 

Only way to be sure everything is the way I want, is to manually check and edit the *_hw.tcl file.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi, 

 

Thanks for the replies. I have a feeling SOPC Builder 7.1 is pretty buggy right now. Hopefully it gets cleared up soon. 

 

Regards,  

 

Tyler
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

I agree that SOPC builder 7.1 has problems. (see my other post) We have spent about 4 days trying to figure out why our Nios processor was not recognized, and finally realized that the same project worked in 6.1. 

 

Shame on you, Altera, for pushing out these 1.0 GB+ broken "updates" every few months! 

 

[edit] I just saw that there is a service pack for 7.1.... Should I give it a try??
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi TylerCoen, 

 

There is a software patch for the tri-state bridge problem you described. 

 

In 7.1 when you add a custom tri-state component, it causes the tri-state bridge to give a java exception error. I added the patch to my design and it solved the java error and allow me to share my pins. 

 

You can request patch 0.20 for Quartus II version 7.1 from mysupport. It should be identified as a patch to fix a SOPC builder tri-state slave problem 

 

Regards, 

-ATJ
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi Pitbull, 

 

Please, would it be possible for you to post this patch here ?  

I think it would be very helpfull for a lot of people , including me :D  

 

Many thx.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi Lunatic, 

 

I don't know how to upload a file here on the forum. But it may be best to request the patch file directly from Altera support. This allows them to track who gets the patch and for them to notify you if there is an update/change to the patch. 

 

For example, I just updated to 7.1sp1 and I needed to update my patch file to version 1.04 for Quartus II 7.1sp1 (for PCs). 

 

In summary for the tri-state bridge bug you need get one of the following patches: 

 

Quartus II 7.1 - patch 0.20 

Quartus II 7.1sp1 - patch 1.04 

 

I hope this helps. 

 

Regards, 

-ATJ
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Who and how can I request this patch? I've got exactly the same issue. 

 

I'm having the same issue and so far have been told to update my Java RE by Support, even after directing them to this thread.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Hi jcn, 

 

That is very odd to have support tell you update your Java version (It may be a new support engineer who got your service request, but I don't know the details of how you described the problem and requested the patch).  

 

The suport engineer usually tries to analyze and replicate the problem by trying to build a test case or if you can provide a design example that shows the problem it can speed up the debug process and then they can quickly find out if there is a workaround, software fix or file a bug report on the problem. 

 

This should be the process to request a patch: 

 

I would file a Service Request at the Altera mysupport (http://www.altera.com/mysupport): 

http://www.altera.com/mysupport 

 

In the Service Request describe that you are having problems with the tri-state bridge component giving a java error in SOPC Builder version 7.1 (or 7.1sp1). 

 

You should ask for one of the following patches for Quartus II: 

 

Quartus II 7.1 - patch 0.20 

Quartus II 7.1sp1 - patch 1.04 

 

The support person should be able look up the patch and determine if is applies to your specific issue. Ideally they would be able to run a test case on your design to make sure it works so that you are not wasting your time installing a patch that may not solve your issue. Usually if you provide enough information i.e. an example design, copy of error text and perhaps a screenshot of the error is usually enough to determine if the problems can be fixed by the patch. 

 

If the support person who analyzes your problem does not know about software patches. I would request to escalate the issue to a more experienced support person to review the Service Request. 

 

Post back here if the patch fixes your problem.  

 

Regards, 

-ATJ 

 

Here is the readme file from one of the patches (err, I hope there is no copyright issues posting this :D ): 

//****************************************************************  

readme_patch_7.1_1.04.txt  

Readme file for Quartus II 7.1 Patch 1.04  

Copyright (C) Altera Corporation 2007 All right reserved.  

Patch created on July 11 2007 

Patch SPR#: 246494  

SPRs fixed: 243129, 244405 

//****************************************************************  

 

Problem: TCL based components which contain a tristate slave produce a 

NullPointerException when connected to the Tri State 

Bridge. When opening the editor for the Tri State Bridge, 

the exception is thrown and the user is unable to 

parameterize the bridge. 

 

 

Solution: Provide the infrastructure needed by the Tri State Bridge in 

order to assign the component signals that the bridge will 

share. 

 

 

 

Caution - You must either have previously installed the Quartus II  

software version 7.1 SP1 or must install the Quartus II  

software version 7.1 SP1 before installing this patch.  

Otherwise, the patch will not be installed correctly and  

the Quartus II software will not run properly.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

I've had the same problem with the tri-state bridge on 7.1sp1. I posted a service request to Altera and mentioned the patch which was supposedly available. I was eventually told that this was a bug but wasn't offered a patch. I have been told that it will be fixed in the next release, and in the meantime I should revert to 6.1. 

 

Maybe the patch is only available for the subscription edition of Quartus? The patch for Web Edition available for download (v1.13) doesn't fix this bug.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

Well you faired a little better than me, Initially I was told it was a problem with Java and then my design before I got anywhere. 

 

I only had success after sending tech support a copy of the readme. They sent me the patch. All works great now.  

 

And yes I'm using the subscription edition. The installer does mention the subscription edition so they may not have a fix for the web.  

 

A most annoying bug.
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

How can i create components with interface some as in old versions for new sopc builder gui? tcl script does not give "user like gui" for difficult configurations.

0 Kudos
Altera_Forum
Honored Contributor II
948 Views

 

--- Quote Start ---  

I've had the same problem with the tri-state bridge on 7.1sp1. I posted a service request to Altera and mentioned the patch which was supposedly available. I was eventually told that this was a bug but wasn't offered a patch. I have been told that it will be fixed in the next release, and in the meantime I should revert to 6.1. 

 

Maybe the patch is only available for the subscription edition of Quartus? The patch for Web Edition available for download (v1.13) doesn't fix this bug. 

--- Quote End ---  

 

 

Hi sharkybaba, 

 

You should reference my previous post in this topic on the patch version needed. I would think it may be worth while to try the patch on the web edition (be persistant in requesting the patch to see if it would help solve your problem - it seem to help jcn). The web and subscription tools are very similar with only fewer devices available and a few advanced tools not included in the web edition. The patch I installed only replaced a few files in my system when I did a date/time check after installing the patch. 

 

 

Hi jcn, 

 

Glad to hear the patch work for you. 

 

 

Cheers, 

-ATJ
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

 

--- Quote Start ---  

How can i create components with interface some as in old versions for new sopc builder gui? tcl script does not give "user like gui" for difficult configurations. 

--- Quote End ---  

 

 

Hi nvs, 

 

From your post it is not clear what type of interface you are trying to create and did not mention if you were using the component editor. Please post more details of what you are trying to do. 

 

You should go to the SOPC Builder handbook to read about the component editor tool: 

http://www.altera.com/literature/quartus2/lit-qts-sopc.jsp 

 

I would look at  

 

 

The design example for Ch9 should help you get familar with the component editor in building a component for SOPC Builder. 

 

I hope this helps. 

 

Regrads, 

-ATJ
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

hello, 

i read this part and test new components. 

With old gui i can create components with gui as in first image, but in new gui version i can't do this(second image). 

As i see all altera components implemented in com.altera.nios2.jar and com.altera.sopcmodel.components.avalon.jar (and others). 

 

for old components(*.ptf) - any operation requires 2-4 minute...2-4 min for add component, 2-4 min apply configuration... 

 

image1 (http://nukeuploads.com/download/1187835900/leiagddp4zzaxzq/old_gui.jpg.html

image2 (http://nukeuploads.com/download/1187836013/a3egslfcti5dgff/new_gui.jpg.html)
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

 

--- Quote Start ---  

hello, 

i read this part and test new components. 

With old gui i can create components with gui as in first image, but in new gui version i can't do this(second image). 

As i see all altera components implemented in com.altera.nios2.jar and com.altera.sopcmodel.components.avalon.jar (and others). 

 

for old components(*.ptf) - any operation requires 2-4 minute...2-4 min for add component, 2-4 min apply configuration... 

 

image1 (http://webfile.ru/download.php?id=1500929

image2 (http://webfile.ru/download.php?id=1500936

--- Quote End ---  

 

 

Hi nvs, 

 

I tried to take a look at the images you posted, but it was marked as forbiden - no access permission (it is probably the location of the url was blocked by my companies server). Could you post the images from another web location? 

 

What I understand is that older ptf based components (created before version 7.1), need to go through a conversion process (The moving time bar) every time they are accessed (adding a component, editing or configuring a component) in the new SOPC Builder gui which now uses Java and tcl based components. This is a slow process because a ptf component needs to be converted to work in the new GUI for the configuration menus to work. If you port your componets to be tcl based using the _hw.tcl file the component adding and configuration is much faster than in the old SOPC Builder gui. 

 

I've never seen a user created component (from just VHDL or Verilog files) have a GUI show up other than just the parameter settings. Are you doing any unique or special for this? I've seen some AMPP and Altera IP megacores have some graphics in their configuration menu when they are added to SOPC Builder. As a general user of SOPC Builder, only know the component editor flow to building a component which only creates a basic dialog box with some optional parameters. 

 

Regards, 

-ATJ
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

 

--- Quote Start ---  

Could you post the images from another web location? 

--- Quote End ---  

 

I have changed links. 

 

 

--- Quote Start ---  

I've never seen a user created component (from just VHDL or Verilog files) have a GUI show up other than just the parameter settings. Are you doing any unique or special for this? 

--- Quote End ---  

 

Some components requires many configuration options(number of buses[2-3], type of buses - burst support or simple access, numer of channels and it's parameters). 

 

 

--- Quote Start ---  

...in the new SOPC Builder gui which now uses Java.. 

--- Quote End ---  

 

Where can i find more info about java interface and example?
0 Kudos
Altera_Forum
Honored Contributor II
948 Views

 

--- Quote Start ---  

I have changed links. 

 

 

Some components requires many configuration options(number of buses[2-3], type of buses - burst support or simple access, numer of channels and it's parameters). 

 

 

Where can i find more info about java interface and example? 

--- Quote End ---  

 

 

 

Hi nvs, 

 

Tried your new links and got the following error: 

Sorry, but you enter an incorrect validation code or this link deleted by timeout. 

 

Perhaps if you put it on a public site like Yahoo's flickr.com it might be more accessable. 

From your description, it seems you are using more advanced features of building components that what is documented for component editor for most users. I am only familar with the component editor flow that is documented ( and a little bit with the old interface to user logic tool). 

 

From my understanding there are other ways to develop advanced components that can change port widths etc) that are used by Altera Megacore and Altera's IP developers (AMPP partners) - are you an IP developer or just building componets for your own/company's projects? If you submit a service request at Altera's mysuppor (http://www.altera.com/mysupport)t (www.altera.com/mysupport) and give them an example design of your problem, they might be able to answer your questions or provide you with the information you are looking for. 

 

I would also recommend to look at the nios forum (http://www.niosforum.com) (www.niosforum.com - A link is also available from the main topic list on the alteraforum) for users who are much more experienced with SOPC Builder and building componets. If you look at the projects link there you can find some users who have shared their own developed IP. Perhaps you can find the help you are looking for there. 

 

Regards, 

-ATJ 

 

[UPDATE] I figured out how to post images on the forum :) (There is a section called "Additional Options" under the post window. Adding nvs images to this topic to see if anyone can offer any additional help on building advanced components. Ciao. -ATJ
0 Kudos
Altera_Forum
Honored Contributor II
863 Views

links worked, it is my bug. i give dinamic link for files(this is example links). 

 

 

--- Quote Start ---  

From my understanding there are other ways to develop advanced components that can change port widths etc) that are used by Altera Megacore and Altera's IP developers (AMPP partners) - are you an IP developer or just building componets for your own/company's projects? If you submit a service request at Altera's mysupport (www.altera.com/mysupport) and give them an example design of your problem, they might be able to answer your questions or provide you with the information you are looking for. 

--- Quote End ---  

 

It is own(company) components and it must be highly configurable as possible for reuse. 

Some components may be used in some different devices with very different options. All my ptf components are handwritten, and uses many perl extensions. For example - i need write software 

 

 

--- Quote Start ---  

I would also recommend to look at the Nios Forum (www.niosforum.com - A link is also available from the main topic list on the alteraforum) for users who are much more experienced with SOPC Builder and building componets. If you look at the projects link there you can find some users who have shared their own developed IP. Perhaps you can find the help you are looking for there. 

--- Quote End ---  

 

I know about niosforum, and if you see - all components in old format. This components will be slow or less informative in new gui, because altera hide access for new gui( 

 

Now, i think that i need write software which will create component for sopc builder...but it's not simple pushbutton interface... i'll try to use tk
0 Kudos
Reply