.rn '' }` ''' $RCSfile$$Revision$$Date$ ''' ''' $Log$ ''' .de Sh .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp .if t .sp .5v .if n .sp .. .de Ip .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .de Vb .ft CW .nf .ne \\$1 .. .de Ve .ft R .fi .. ''' ''' ''' Set up \*(-- to give an unbreakable dash; ''' string Tr holds user defined translation string. ''' Bell System Logo is used as a dummy character. ''' .tr \(*W-|\(bv\*(Tr .ie n \{\ .ds -- \(*W- .ds PI pi .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch .ds L" "" .ds R" "" ''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of ''' \*(L" and \*(R", except that they are used on ".xx" lines, ''' such as .IP and .SH, which do another additional levels of ''' double-quote interpretation .ds M" """ .ds S" """ .ds N" """"" .ds T" """"" .ds L' ' .ds R' ' .ds M' ' .ds S' ' .ds N' ' .ds T' ' 'br\} .el\{\ .ds -- \(em\| .tr \*(Tr .ds L" `` .ds R" '' .ds M" `` .ds S" '' .ds N" `` .ds T" '' .ds L' ` .ds R' ' .ds M' ` .ds S' ' .ds N' ` .ds T' ' .ds PI \(*p 'br\} .\" If the F register is turned on, we'll generate .\" index entries out stderr for the following things: .\" TH Title .\" SH Header .\" Sh Subsection .\" Ip Item .\" X<> Xref (embedded .\" Of course, you have to process the output yourself .\" in some meaninful fashion. .if \nF \{ .de IX .tm Index:\\$1\t\\n%\t"\\$2" .. .nr % 0 .rr F .\} .TH V2HTML 1 "v2html 5.0" "1/Mar/99" "v2html" .IX Title "V2HTML 1" .UC .IX Name "v2html - Verilog to HTML converter" .if n .hy 0 .if n .na .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .de CQ \" put $1 in typewriter font .ft CW 'if n "\c 'if t \\&\\$1\c 'if n \\&\\$1\c 'if n \&" \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 '.ft R .. .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 . \" AM - accent mark definitions .bd B 3 . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds ? ? . ds ! ! . ds / . ds q .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E .ds oe o\h'-(\w'o'u*4/10)'e .ds Oe O\h'-(\w'O'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds v \h'-1'\o'\(aa\(ga' . ds _ \h'-1'^ . ds . \h'-1'. . ds 3 3 . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE . ds oe oe . ds Oe OE .\} .rm #[ #] #H #V #F C .SH "NAME" .IX Header "NAME" v2html \- Verilog to HTML converter .SH "SYNOPSIS" .IX Header "SYNOPSIS" \fBv2html\fR [options] file1 [file2] ... .PP \fBv2html\fR is a perl 5 script that converts a bunch of verilog files to html, linking various things to their definitions. At the moment it handles: .Ip "" 5 .IX Item "" modules .Ip "" 5 .IX Item "" tasks .Ip "" 5 .IX Item "" functions .Ip "" 5 .IX Item "" includes .Ip "" 5 .IX Item "" defines .Ip "" 5 .IX Item "" parameters .Ip "" 5 .IX Item "" inputs,outputs,inouts .Ip "" 5 .IX Item "" signals: wire, reg etc. .Ip "" 5 .IX Item "" mail addresses in comments .Ip "" 5 .IX Item "" http \s-1URLS\s0 (http:....) in comments .PP It also generates a page containing all the modules it found arranged hierarchically and separate index pages for all of the files, modules, signals, tasks and functions. .PP Once you have the html files they can be installed on a web-server, or simply viewed using \*(L"Open File...\*(R" in your web browser. .PP Details on navigating around the converted files, and many examples can be found at http://www.abrizio.com/v2html/v2html.html . .PP Note that as of version 5.0 \fBv2html\fR uses \fIcascading style sheets\fR to colour the display. This means that pages viewed with old browsers that do not support \fIcascading style sheets\fR (for instance Netscape 3) will not be coloured. .SH "DESCRIPTION" .IX Header "DESCRIPTION" In addition to the switches detailed below \fBv2html\fR also accepts and ignores most VCS/verilog options and all other options starting with a plus. This means that you should be able to run it with the same command file you use for running simulations. .PP Switches: .Ip "\fB\-q\fR " 5 .IX Item "\fB\-q\fR " Be quiet \- so don't print all those informative messages about what it is doing. .Ip "\fB\-f\fR\ command_lines_options_file " 5 .IX Item "\fB\-f\fR\ command_lines_options_file " Specify a file to get more command line options from. For instance you could put a list of all your files in src_files and then use \fB\-f\fR src_file. You can also put in just about anything that you can put on the command line. Comments can be included using # or // at the start of the line. Wildcards are not allowed in the file names. Use single or double quotes to quote arguments that have spaces in them for example: .Sp .Vb 6 \& # v2html -f file - turn on gzip compression \& -z -ze .gz \& -zc 'gzip -f' \& \&You can have as many -f options as you want and you can probably put \&-f options in the file too. .Ve .Ip "\fB+define+\s-1NAME\s0[=\s-1VALUE\s0]\fR " 5 .IX Item "\fB+define+\s-1NAME\s0[=\s-1VALUE\s0]\fR " Pre-define a value. This is just the same as putting: .Sp .Vb 1 \& 'define NAME [VALUE] .Ve at the top of each of your input files. The rather strange syntax is the same as verilog's. This option is useful for controlling which ifdefs appear true to \fBv2html\fR. .Ip "\fB+incdir+\s-1DIR\s0\fR " 5 .IX Item "\fB+incdir+\s-1DIR\s0\fR " Specify a directory to search for include files (just like verilog). .Ip "\fB\-y\fR\ \s-1DIR\s0 " 5 .IX Item "\fB\-y\fR\ \s-1DIR\s0 " Specify a directory to search for modules (just like verilog). Note that \fBv2html\fR doesn't do any fancy search orders like verilog \- it just searches the directories in the order that you specify them on the command line. .Ip "\fB+libext+\s-1EXT\s0\fR " 5 .IX Item "\fB+libext+\s-1EXT\s0\fR " Specify an extension use when searching for modules (just like verilog). You can specify multiple extensions using \fB+libext+\s-1EXT1+EXT2+EXT2\s0\fR or by specifying multiple \fB+libext+\s-1EXT\s0\fR options. .Ip "\fB\-v\fR\ \s-1LIBFILE\s0 " 5 .IX Item "\fB\-v\fR\ \s-1LIBFILE\s0 " Specify a library file to use (just like verilog). .Ip "\fB\-css\fR\ cascading_style_sheet" 5 .IX Item "\fB\-css\fR\ cascading_style_sheet" The appearance of all the different elements of the html page can be altered using a \fIcascading style sheet\fR. By default \fBv2html\fR uses a file called \fIv2html.css\fR in the same directory as the html files. You can customize the appearance of the html files by editing this file (\fBv2html\fR will create one if it does not exist, but will not overwrite an existing one). .Sp If you have many different html directories which you want to use the one central cascading style sheet then you can use the \fB\-css\fR option to specify one. For example: .Sp .Vb 1 \& -css http://www.barking.com/joes_style.css .Ve .Ip "\fB\-m\fR\ mail_addr" 5 .IX Item "\fB\-m\fR\ mail_addr" A mail address of the site maintainer. This is placed in a field at the bottom of each file like this: .Sp .Vb 4 \& This page: \& Maintained by: Joe_Bloggs@barking.com \& Created: Thu Nov 6 08:53:37 1997 \& From: test2.v .Ve .Ip "\fB\-i\fR " 5 .IX Item "\fB\-i\fR " Incremental mode. At the moment this isn't very incremental! \fBv2html\fR checks the dates on all of the files that it read last time it ran and all of the output files it generated. If any of the input files are newer than the output files, or if the command line options have changed it \fBdeletes\fR all of the files it made last time and rebuilds everything. The delete is done to stop old files accumulating in the output directory. .Sp \fBv2html\fR keeps track of all the information it needs to do this in a file called .v2html_incr . .Sp Note that if a new file is added to one of the library directories but isn't specified on the command line \fBv2html\fR will not know that it has to pull it in and so will not do a rebuild. .Ip "\fB\-o\fR\ output_dir" 5 .IX Item "\fB\-o\fR\ output_dir" Set the output directory for the html files. The default is the current directory. .Ip "\fB\-h\fR\ hier_file" 5 .IX Item "\fB\-h\fR\ hier_file" Set the name of the file that the hierarchy is written to. The default is hierarchy.html. This is also used as a base for the index file names. These file names are formed put appending \f(CW-f\fR, \f(CW-m\fR, \f(CW-s\fR, \f(CW-t\fR and \f(CW-fn\fR to the part of the hierarchy file name before the first dot (so hier.htm will put the files index in hier-f.htm). .Ip "\fB\-ht\fR\ top_module " 5 .IX Item "\fB\-ht\fR\ top_module " Set the name of a top module you want in the hierarchy. You can specify multiple \fB\-ht\fR options to specify multiple top modules. .Sp If you don't specify any \fB\-ht\fR options then \fBv2html\fR will inspect the hierarchy and find all the top modules in the verilog files and print these out. The \*(L'top modules\*(R' are modules that are not instantiated but instantiate other modules that \fBv2html\fR has found the definition of. .Ip "\fB\-hc\fR\ hierarchy_comment " 5 .IX Item "\fB\-hc\fR\ hierarchy_comment " Specifies some text to put at the top of the hierarchy. For instance: .Sp .Vb 1 \& v2html -hc "This is our ASIC" *.v .Ve .Ip "\fB\-htf\fR " 5 .IX Item "\fB\-htf\fR " Turns on printing of tasks and functions in the hierarchy. By default they are not printed. .Ip "\fB\-lines\fR\ max_lines_per_file" 5 .IX Item "\fB\-lines\fR\ max_lines_per_file" In order to speed up viewing \fBv2html\fR splits large verilog files across multiple html pages. This option lets you specify how many lines you want on a page. The default is 1000. .Ip "\fB\-nnm\fR " 5 .IX Item "\fB\-nnm\fR " No \*(L"No modules\*(R". By default the hierarchy contains three sections, the hierarchies of the top modules, a list of files containing no modules and a list of unconnected modules (modules that are not instantiated but also do not qualify as top modules). The \fB\-nnm\fR makes \fBv2html\fR skip printing the list of files containing no modules. See \fB\-nu\fR. .Ip "\fB\-nu\fR " 5 .IX Item "\fB\-nu\fR " No unconnected. See \fB\-nnm\fR. Makes \fBv2html\fR skip writing the list of unconnected modules in the hierarchy file. .Ip "\fB\-nh\fR" 5 .IX Item "\fB\-nh\fR" No hierarchy. Don't print out the hierarchy. .Ip "\fB\-nindex\fR" 5 .IX Item "\fB\-nindex\fR" No indexes. Don't print out the indexes. .Ip "\fB\-ni\fR" 5 .IX Item "\fB\-ni\fR" By default \fBv2html\fR \*(L'greys out\*(R' any code that is ifdefed out. The \fB\-ni\fR turns this greying out off. Note that v2html always ignores code that is ifdefed out when it is parsing. .Ip "\fB\-z\fR " 5 .IX Item "\fB\-z\fR " Compress the html files generated (and make sure the links point to the compressed versions). This can be useful if you convert machine generated code, like \s-1ASIC\s0 \s-1RAM\s0 macros which are huge before they are converted and even bigger afterwards. .Ip "\fB\-zc\fR\ compresser " 5 .IX Item "\fB\-zc\fR\ compresser " The executable to use to compress the html files if \fB\-z\fR is used. The Default is \*(L'compress \f(CW-f\fR\*(R'. For instance to use gzip use \fB\-zc\fR \*(L'gzip \f(CW-f\fR\*(R' (the \f(CW-f\fR stops gzip prompting you about overwriting files). .Ip "\fB\-ze\fR\ compressed_extension " 5 .IX Item "\fB\-ze\fR\ compressed_extension " The extension that your compress executable uses. The default is \*(L'.Z\*(R'. If you were using gzip then you'd want \fB\-ze\fR .gz .Ip "\fB\-F\fR\ [frame_file.html]" 5 .IX Item "\fB\-F\fR\ [frame_file.html]" Frame mode. Using \fB\-F\fR turns on the generation of framed output where a top level frame file is generated that creates three frames in your browser, the top one for the hierarchy the middle one for the code and the bottom one for any definitions to appear in. .Sp The default name for the frame file is frame.html. This default can be overridden by specifying a file name after the \fB\-F\fR option. .Ip "\fB\-g\fR\ global_inc_file.v" 5 .IX Item "\fB\-g\fR\ global_inc_file.v" Specify a global include file (without the path). This is the same as putting: .Sp .Vb 1 \& 'include "global_inc_file.v" .Ve at the top of all of your verilog files. This option is provided for designs that rely on reading in the global include file before any others in verilog or synopsys (rather than including it). .Sp The global_inc_file.v file must appear in the list of input files. .Ip "\fB\-s\fR " 5 .IX Item "\fB\-s\fR " Link to the source. This causes the file name in From field of the page footer to become a link to the unconverted verilog file: .Sp .Vb 4 \& This page: \& Maintained by: Joe_Bloggs@barking.com \& Created: Thu Nov 6 08:53:37 1997 \& From: /asic/verilog/test2.v .Ve For this to work your web server must have access to the source code. Also, you must either run v2html in the output directory or use absolute path names for the verilog files. .Sp For example, if the source is in /home/asic/verilog and the html files want to end up in /home/www/verilog then there are two ways to run it to get \fB\-s\fR to work: .Sp .Vb 3 \& 1) In the output directory with verilog files specified by relative paths: \& cd /home/www/verilog \& v2html -s ../../asic/verilog/*.v .Ve .Vb 3 \& 2) In any directory with verilog files specified by absolute paths: \& cd /anywhere \& v2html -s -o /home/www/verilog /home/asic/verilog/*.v .Ve .Ip "\fB\-c\fR\ /cgi_script\ /path_to_html_files " 5 .IX Item "\fB\-c\fR\ /cgi_script\ /path_to_html_files " Activate \s-1CGI\s0 features which allow the user to hide and show regions of the hierarchy in a similar way to the old file manager on windows 3.1. This method only works if you put the files on a web server (you can't just use \*(L"Open File...\*(R" to view it \- see \fB\-js\fR for a method where you don't need a web server). .Sp To use this you must have installed the v2html \s-1CGI\s0 script on your web-server. The /cgi_script is the name of the \s-1CGI\s0 script (with path). The /path_to_v_files is the directory you are putting your html files. .Sp These paths are the paths your web server sees (not the full paths on the system) so is the same path that appears after \fIhttp://server\fR when accessing the files. .Sp Here's an example: .Sp .Vb 2 \& cp v2html-cgi /opt/CERNhttpd/cgi-bin/ \& chmod 755 /opt/CERNhttpd/cgi-bin/v2html-cgi .Ve .Vb 2 \& cd /home/web/v2html/example/ex1 \& v2html -c /cgi-bin/v2html-cgi /v2html/example/ex1 ../verilog/*.v .Ve Note that \fBv2html\fR can't check the parameters to \fB\-c\fR while converting the files. You'll have to do it yourself by viewing the hierarchy in your web browser and clicking on \fB[Hide\ All]\fR at the top of the hierarchy. Make sure you view the file using the web server (use \fIhttp://server/v2html/example/ex1/hierarchy.html\fR rather than \fIfile:/home/web/v2html/example/ex1/hierarchy.html\fR). .Sp If you get a message like this when you click on \fB[Hide\ All]\fR: .Sp .Vb 2 \& Bad script request -- neither '/opt/CERNhttpd/cgi-bin/v2html-cg' \& nor '/opt/CERNhttpd/cgi-bin/v2html-cg.pp' is executable .Ve Then either there is either a problem with the installation of the cgi script or you have incorrectly specified the first parameter to \fB\-c\fR. .Sp If you get a message like this: .Sp .Vb 1 \& v2html error. .Ve then you have probably got the second parameter to \fB\-c\fR wrong. .Ip "\fB\-k\fR\ key_string " 5 .IX Item "\fB\-k\fR\ key_string " Specify the key to use for to stop people looking at hierarchy files that are protected by web-server security. The default is to use a random key, but this means that you can't have bookmarks of the hierarchy in various states (because the bookmark will contain the key, and the key will change each time you run \fBv2html\fR). To get round this problem you can use \fB\-k\fR and always have the same key string. The key can be any string of digits and letters. .Ip "\fB\-js\fR" 5 .IX Item "\fB\-js\fR" Activate javascript features that allow the user to hide and collapse regions of the hierarchy. This is an alternative to the \s-1CGI\s0 script described above. .Sp The \fB\-js\fR option makes \fBv2html\fR produce javascript program in hierarchy.html that runs inside your web browser to do the showing and hiding of chunks of the hierarchy. .Sp Javascript has several advantages over \s-1CGI\s0: .Ip "" 10 .IX Item "" you don't need to install the \s-1CGI\s0 script. .Ip "" 10 .IX Item "" you don't need to specify the paths to everything for v2html. .Ip "" 10 .IX Item "" you don't need a web server (you can just open the files with netscape and it works). .Ip "" 10 .IX Item "" it is faster if you are far from the server. .PP But a few disadvantages: .Ip "" 10 .IX Item "" It might crash your browser sometimes (actually I can only get it to crash these days by clicking on a folder while it is still drawing the page). .Ip "" 10 .IX Item "" you use Internet Explorer the display will jump to the top of the page each time you hide or expand something. .Ip "\fB\-tab\fR\ value" 0 .IX Item "\fB\-tab\fR\ value" Expand tabs to the specified value. .Ip "\fB\-ncookies\fR" 0 .IX Item "\fB\-ncookies\fR" The Javascript version of the hierarchy uses cookies to remember the state you left the hierarchy in, so when you next visit the hierarchy page it will be in the same state. If you hate cookies then use the \fB\-ncookies\fR option to turn them off. .Ip "\fB\-nqs\fR " 0 .IX Item "\fB\-nqs\fR " Turn off quick search feature (only works in Netscape Navigator 4). Quick search lets you jump to the next or previous occurance of a link by simply by clicking on it. The mouse buttons are bound as follows: .PP .Vb 2 \& Middle (or Left+Control) = search forwards \& Middle+Shift (or Left+Shift) = search backwards .Ve .Ip "\fB\-debug\fR " 0 .IX Item "\fB\-debug\fR " Turn on lots of debugging information. .SH "AUTHOR" .IX Header "AUTHOR" Costas Calamvokis <\fIv2html@iname.com\fR>. .SH "EXAMPLES" .IX Header "EXAMPLES" Here is an example where \fBv2html\fR is run in the directory containing the verilog files (note the \fB\-o\fR option): .PP .Vb 4 \& cd /users/jb/verilog_files/ \& v2html -F my_frame.html -h my_hier.html -ht chip_top -htf -nu \& -o /users/www/project/verilog -m Joe_Blogs@barking.com -s \& -c /cgi-bin/v2html-cgi /project/verilog *.v .Ve As the verilog files don't have absolute paths and we aren't running in the destination directory can't use \fB\-s\fR (link to source) as the links \fBv2html\fR will create wouldn't allow the web server to find the files. .PP Here is an example where \fBv2html\fR is run in the directory where we want the html files (no \fB\-o\fR option): .PP .Vb 4 \& cd /users/www/project/verilog \& v2html -F my_frame.html -h my_hier.html -ht chip_top -nu -htf \& -m Joe_Blogs@barking.com -s \& -c /cgi-bin/v2html-cgi /project/verilog ../../../jb/verilog_files/*.v .Ve Here we can use the \fB\-s\fR option because we are running the the destination directory, so the links \fBv2html\fR creates to the source will work (providing the web server is allowed to server files from /users/jb/verilog_files). .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" By default \fBv2html\fR tells you a lot about what it is doing (this is because it is slow and if it didn't you'd think it had crashed!). These messages can get in the way of the warnings \fBv2html\fR produces, so if you have a problem first try \fB\-q\fR (quiet) to see if there are any warnings you missed in the deluge of messages. .PP Most of the Error messages concern failures to open files, I guess these will be caused by bad permissions, or you pointing \fBv2html\fR at files or directories that don't exist. .PP The errors that say things like: .PP .Vb 1 \& Error: confused at line 1034 .Ve mean that you have written some verilog that I wasn't expecting \- send it to me and I'll see what I can do. .PP Most of the warnings concern things that \fBv2html\fR will ignore because it found more than one of them. The most common is a duplicate module being found because an old copy of one of the files is lurking in your source directory. The easiest way around this is to use the \fB\-f\fR option something like this: .PP .Vb 2 \& ls /path/*.v | grep -v old_module_file.v > src_files \& v2html -f src_files .Ve Generally \fBv2html\fR will ignore duplicate things (so for example modules won't appear in the hierarchy), but sometimes it will just pick one of them, so watch those warnings. .rn }` ''