Doxygen is a documentation generation tool, licensed under the Gnu Public License (GPL). It was written to scan through programs and automatically generate documentation based on meta-comments added to the program. Fortunately for SystemC (which doesn't have such meta-comments!) it can also be made to extract absolutely everything.
You can download Doxygen here. For the best results, Doxygen can make use of a tool called Dot, which is supplied as part of the graphics visualization library Graphviz. What this means is that you get prettier pictures if you have Graphviz. Graphviz is available here
Both tools can be downloaded and installed straighforwardly from source on Unix platforms. On Linux RedHat 7.3, we downloaded an rpm of Graphviz, and then installed Doxygen from source using gcc 2.95.3. Note that if you want Graphviz/Dot, you should install Graphviz before you install Doxygen.
Doxygen can be configured using a text configuration file directly, or using a front-end GUI configuration editor "doxywizard". We just used the configuration file. You can create a reference configuration file by running
doxygen -g configref
and then edit the default file. You need to specify directories to search, whether you have Dot or not, which file extensions to search for, and so on. To save you a bit of trouble, you can download our configuration file here. You can also download a file of differences between our configuration file and the default. This file of differences shows you what we had to edit to get doxygen working.
(Note: you may have to right click on the following links and click "save as", otherwise the files will just open in your browser). The configref file is here, the SystemC 2.0.1 file we used is here, and the differences file is here.
When you've edited the configuration file to match your situation (remember you may have to tell it that you don't have Dot if you don't have Dot, by setting HAVE_DOT = NO), then just run doxygen as follows
If you have Dot installed, you will get about 38Mbytes of html data to browse at your leisure.