VHDL Hierarchy

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

VHDL Hierarchy

Larry

Hello.  I’m new to Doxygen and have spent many hours trying to find this answer on my own.  I will apologize ahead of time if I should have been able to find this without bothering the mailing list …

 

Is there any way to specify the “Top-Level” entity of set of VHDL code, and have Doxygen ignore any entities which it finds in the doxygen search path which are *not* in the hierarchy below the top-level entity? 

 

The reason I ask is because I have VHDL designs which instantiate entities from a pool of VHDL utilities.  If I put the utilities libraries in the Doxygen search path, the resulting Doxygen documentation accurately describes the complete hierarchy, but also includes a ton of confusing extraneous stuff that is not relevant to the design being documented.   If I don’t include the libraries, the documentation of the relevant hierarchy is not complete. 

 

If this feature is not currently supported, can anyone give me advice on how one might go about adding it?  I have the all the doxygen sourcecode downloaded and running in Eclipse.  I have also been able to successfully rebuild the VHDL parser using javacc.  I’m having a little trouble getting up to speed on all the code and determining which features are supported and/or how to add features.  Or, is there anyone out there willing to add features for hire? (I hope that ok to ask on the mailing list.)

 

Btw, I did enhance the VHDL parser to accept underscores inside hex literals by modifying this line in the jj file:

<BASED_LITERAL: <INTEGER>["#"]<BASED_INTEGER> ((["_"])? <BASED_INTEGER>)* (["."] <BASED_INTEGER>)? ["#"] (<EXPONENT>)? >  /*Gary Pratt added ((["_"])? <BASED_INTEGER>)* */

 

I can provide the modified vhdlparser.jj file. 

 

Thanks in advance.  And, thanks to Dimitri and everyone who has helped build a fantastic tool.

 

Gary

 

Gary L. Pratt, P.E.

President

ControlSphere Engineering

 

 

 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users
Reply | Threaded
Open this post in threaded view
|

Re: VHDL Hierarchy

Richard Damon
On 4/26/17 6:32 AM, Larry wrote:

>
> Hello.  I’m new to Doxygen and have spent many hours trying to find
> this answer on my own.  I will apologize ahead of time if I should
> have been able to find this without bothering the mailing list …
>
> Is there any way to specify the “Top-Level” entity of set of VHDL
> code, and have Doxygen ignore any entities which it finds in the
> doxygen search path which are **not** in the hierarchy below the
> top-level entity?
>
> The reason I ask is because I have VHDL designs which instantiate
> entities from a pool of VHDL utilities.  If I put the utilities
> libraries in the Doxygen search path, the resulting Doxygen
> documentation accurately describes the complete hierarchy, but also
> includes a ton of confusing extraneous stuff that is not relevant to
> the design being documented.   If I don’t include the libraries, the
> documentation of the relevant hierarchy is not complete.
>
> If this feature is not currently supported, can anyone give me advice
> on how one might go about adding it?  I have the all the doxygen
> sourcecode downloaded and running in Eclipse.  I have also been able
> to successfully rebuild the VHDL parser using javacc.  I’m having a
> little trouble getting up to speed on all the code and determining
> which features are supported and/or how to add features.  Or, is there
> anyone out there willing to add features for hire? (I hope that ok to
> ask on the mailing list.)
>
> ...
>
> Gary
>
My understanding of Doxygen is the it doesn't have any from of pruning
the source file list to only what is "needed". That actually would be a
somewhat tricky problem, as it would be language dependent (C++ with its
overloads, especially operator xxx()s would require basically a FULL:
parsing of the code).

One option would be to not include the whole library directory as an
input, but only the specific files that you need from the library.

--
Richard Damon


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users
Reply | Threaded
Open this post in threaded view
|

Re: VHDL Hierarchy

Larry
Thank you Richard.  Unfortunately, there are many entities per file, so even
if there was some way of knowing which files contained the entities used in
the active tree, it would be difficult to filter out the unused entities in
that file.  

There is no overloading in VHDL, so determining the hierarchy without a full
compile is feasible (doxygen in fact already does that for VHDL). I could
write a program to read the code, determine the hierarchy, search the files
to find the entities used in the hierarchy, then copy those into another
file to include in doxygen ... but since doxygen is already parsing the
file, it seem like a short stretch to have doxygen do this.  The challenge
for me is to understand the doxygen source code well enough to know how to
add that feature.

Gary


-----Original Message-----
From: Richard Damon [mailto:[hidden email]]
Sent: Wednesday, April 26, 2017 2:35 PM
To: [hidden email]
Subject: Re: [Doxygen-users] VHDL Hierarchy

On 4/26/17 6:32 AM, Larry wrote:

>
> Hello.  I'm new to Doxygen and have spent many hours trying to find
> this answer on my own.  I will apologize ahead of time if I should
> have been able to find this without bothering the mailing list .
>
> Is there any way to specify the "Top-Level" entity of set of VHDL
> code, and have Doxygen ignore any entities which it finds in the
> doxygen search path which are **not** in the hierarchy below the
> top-level entity?
>
> The reason I ask is because I have VHDL designs which instantiate
> entities from a pool of VHDL utilities.  If I put the utilities
> libraries in the Doxygen search path, the resulting Doxygen
> documentation accurately describes the complete hierarchy, but also
> includes a ton of confusing extraneous stuff that is not relevant to
> the design being documented.   If I don't include the libraries, the
> documentation of the relevant hierarchy is not complete.
>
> If this feature is not currently supported, can anyone give me advice
> on how one might go about adding it?  I have the all the doxygen
> sourcecode downloaded and running in Eclipse.  I have also been able
> to successfully rebuild the VHDL parser using javacc.  I'm having a
> little trouble getting up to speed on all the code and determining
> which features are supported and/or how to add features.  Or, is there
> anyone out there willing to add features for hire? (I hope that ok to
> ask on the mailing list.)
>
> ...
>
> Gary
>
My understanding of Doxygen is the it doesn't have any from of pruning the
source file list to only what is "needed". That actually would be a somewhat
tricky problem, as it would be language dependent (C++ with its overloads,
especially operator xxx()s would require basically a FULL:
parsing of the code).

One option would be to not include the whole library directory as an input,
but only the specific files that you need from the library.

--
Richard Damon


----------------------------------------------------------------------------
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users
Reply | Threaded
Open this post in threaded view
|

Re: VHDL Hierarchy

Luc Braeckman

I understood doxygen is mainly used for documentation. If one would like to find the hierarchy of a set of VHDL entities, I'd rather use other tools. I mainly use Sigasi as VHDL editor/validation tool. 

But of course there are others on the market.

Obviously I don't want to start a discussion in a doxygen thread of which one is better - I just want to share my findings.

Luc


Van: Larry <[hidden email]>
Verzonden: donderdag 27 april 2017 3:36:28
Aan: 'Richard Damon'; [hidden email]
Onderwerp: Re: [Doxygen-users] VHDL Hierarchy
 
Thank you Richard.  Unfortunately, there are many entities per file, so even
if there was some way of knowing which files contained the entities used in
the active tree, it would be difficult to filter out the unused entities in
that file. 

There is no overloading in VHDL, so determining the hierarchy without a full
compile is feasible (doxygen in fact already does that for VHDL). I could
write a program to read the code, determine the hierarchy, search the files
to find the entities used in the hierarchy, then copy those into another
file to include in doxygen ... but since doxygen is already parsing the
file, it seem like a short stretch to have doxygen do this.  The challenge
for me is to understand the doxygen source code well enough to know how to
add that feature.

Gary


-----Original Message-----
From: Richard Damon [[hidden email]]
Sent: Wednesday, April 26, 2017 2:35 PM
To: [hidden email]
Subject: Re: [Doxygen-users] VHDL Hierarchy

On 4/26/17 6:32 AM, Larry wrote:
>
> Hello.  I'm new to Doxygen and have spent many hours trying to find
> this answer on my own.  I will apologize ahead of time if I should
> have been able to find this without bothering the mailing list .
>
> Is there any way to specify the "Top-Level" entity of set of VHDL
> code, and have Doxygen ignore any entities which it finds in the
> doxygen search path which are **not** in the hierarchy below the
> top-level entity?
>
> The reason I ask is because I have VHDL designs which instantiate
> entities from a pool of VHDL utilities.  If I put the utilities
> libraries in the Doxygen search path, the resulting Doxygen
> documentation accurately describes the complete hierarchy, but also
> includes a ton of confusing extraneous stuff that is not relevant to
> the design being documented.   If I don't include the libraries, the
> documentation of the relevant hierarchy is not complete.
>
> If this feature is not currently supported, can anyone give me advice
> on how one might go about adding it?  I have the all the doxygen
> sourcecode downloaded and running in Eclipse.  I have also been able
> to successfully rebuild the VHDL parser using javacc.  I'm having a
> little trouble getting up to speed on all the code and determining
> which features are supported and/or how to add features.  Or, is there
> anyone out there willing to add features for hire? (I hope that ok to
> ask on the mailing list.)
>
> ...
>
> Gary
>
My understanding of Doxygen is the it doesn't have any from of pruning the
source file list to only what is "needed". That actually would be a somewhat
tricky problem, as it would be language dependent (C++ with its overloads,
especially operator xxx()s would require basically a FULL:
parsing of the code).

One option would be to not include the whole library directory as an input,
but only the specific files that you need from the library.

--
Richard Damon


----------------------------------------------------------------------------
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users
Reply | Threaded
Open this post in threaded view
|

Re: VHDL Hierarchy

Larry

Thanks Luc.  We use Sigasi (its great).  But we are trying to fully automate the process.  Check in the code, elaborate the templates, run the unit tests, synthesize, place & route, run the system tests, generate the documentation and post it to Confluence.  Since Doxygen seems 99% of the way there (it already knows the hierarchy and outputs fantastic call and called graphs), it seems it would be easy to get that last 1% … either by specifying the top level and trim what’s not in the hierarchy, or adding something like a “libraries path” to find entities/architectures referenced by the entities in the normal source path, but ignore all the other entities (the same way the synthesizer works).  Our libraries are quite substantial, so documenting all the unused entities triples the size of the documentation (600 meg) and the extra clutter makes the resulting documentation more difficult to follow.   

 

Gary

 

 

From: Luc Braeckman [mailto:[hidden email]]
Sent: Thursday, April 27, 2017 10:20 AM
To: Larry <[hidden email]>; 'Richard Damon' <[hidden email]>; [hidden email]
Subject: Re: [Doxygen-users] VHDL Hierarchy

 

I understood doxygen is mainly used for documentation. If one would like to find the hierarchy of a set of VHDL entities, I'd rather use other tools. I mainly use Sigasi as VHDL editor/validation tool. 

But of course there are others on the market.

Obviously I don't want to start a discussion in a doxygen thread of which one is better - I just want to share my findings.

Luc


Van: Larry <[hidden email]>
Verzonden: donderdag 27 april 2017 3:36:28
Aan: 'Richard Damon'; [hidden email]
Onderwerp: Re: [Doxygen-users] VHDL Hierarchy

 

Thank you Richard.  Unfortunately, there are many entities per file, so even
if there was some way of knowing which files contained the entities used in
the active tree, it would be difficult to filter out the unused entities in
that file. 

There is no overloading in VHDL, so determining the hierarchy without a full
compile is feasible (doxygen in fact already does that for VHDL). I could
write a program to read the code, determine the hierarchy, search the files
to find the entities used in the hierarchy, then copy those into another
file to include in doxygen ... but since doxygen is already parsing the
file, it seem like a short stretch to have doxygen do this.  The challenge
for me is to understand the doxygen source code well enough to know how to
add that feature.

Gary


-----Original Message-----
From: Richard Damon [[hidden email]]
Sent: Wednesday, April 26, 2017 2:35 PM
To: [hidden email]
Subject: Re: [Doxygen-users] VHDL Hierarchy

On 4/26/17 6:32 AM, Larry wrote:


>
> Hello.  I'm new to Doxygen and have spent many hours trying to find
> this answer on my own.  I will apologize ahead of time if I should
> have been able to find this without bothering the mailing list .
>
> Is there any way to specify the "Top-Level" entity of set of VHDL
> code, and have Doxygen ignore any entities which it finds in the
> doxygen search path which are **not** in the hierarchy below the
> top-level entity?
>
> The reason I ask is because I have VHDL designs which instantiate
> entities from a pool of VHDL utilities.  If I put the utilities
> libraries in the Doxygen search path, the resulting Doxygen
> documentation accurately describes the complete hierarchy, but also
> includes a ton of confusing extraneous stuff that is not relevant to
> the design being documented.   If I don't include the libraries, the
> documentation of the relevant hierarchy is not complete.
>
> If this feature is not currently supported, can anyone give me advice
> on how one might go about adding it?  I have the all the doxygen
> sourcecode downloaded and running in Eclipse.  I have also been able
> to successfully rebuild the VHDL parser using javacc.  I'm having a
> little trouble getting up to speed on all the code and determining
> which features are supported and/or how to add features.  Or, is there
> anyone out there willing to add features for hire? (I hope that ok to
> ask on the mailing list.)
>
> ...
>
> Gary
>
My understanding of Doxygen is the it doesn't have any from of pruning the
source file list to only what is "needed". That actually would be a somewhat
tricky problem, as it would be language dependent (C++ with its overloads,
especially operator xxx()s would require basically a FULL:
parsing of the code).

One option would be to not include the whole library directory as an input,
but only the specific files that you need from the library.

--
Richard Damon


----------------------------------------------------------------------------
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Doxygen-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/doxygen-users