Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
21615 Discussions

Symbols pipe ( | ), colon ( : ), and underscore ( _ ) characters mean in naming...

Altera_Forum
Honored Contributor II
2,385 Views

What do the symbols pipe ( | ), colon ( : ), and underscore ( _ ) mean in the Quartus II naming mechanism. When I open the node window I am flooded with signals that have long names and they seem to contain these symbols within them. What do they mean in this case?

0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
1,634 Views

Probably nothing at all. 

They appear in generated names when two items are concatenated, using characters that don't appear elsewhere can avoid issues with non-unique names. 

Long names are typical of any system that uses software to generate 'code'. 

In the past I've seen a C compiler warn "variable names are not unique in their first 256 characters" !
0 Kudos
Altera_Forum
Honored Contributor II
1,634 Views

Pipe separates hierarchies. Each hierarchy is represented by the module/entity and the instance, separated by a colon. So you might have something like: 

top|rf:rf_A|filter:filt_inst|free_count[3] 

So top instantiates an entity/instance called rf with instantiation rf_A. Then filter is instantiated, and within that is a register called free_count, and this is bit 3. The underscores are added by the user, but can also be added during synthesis if something gets resynthesized(although I think Quartus often adds ~, i.e. it might be free_count~RESYNTH323432 as a new name if it gets resynthesized. It depends.
0 Kudos
Altera_Forum
Honored Contributor II
1,634 Views

Thanks for the response, but could you elaborate a tiny bit more on the meaning of the ~ symbol?

0 Kudos
Altera_Forum
Honored Contributor II
1,634 Views

It doesn't directly mean anything. Synthesis manipulates your logic, and hence has to give it a different name so the user doesn't confuse it's behavior with a logical name in their design. Users generally don't add ~ in their names, but synthesis tools do(I believe Synplify does this too). So it's just a way to give it a different name.

0 Kudos
Reply