VPPREPROC(1)

πŸ“¦
version 3.482 Β· 3 versions
, in fedora 43

πŸ’– VPPREPROC(1) πŸ’–

okay bestie, welcome to the manual page for vppreproc β€” the User Contributed Perl Documentation section 1 girlie πŸ’…. It's pronounced "vee-pee-pre-proc" and it's about to preprocess your Verilog so good it'll give you main character energy. sit down, grab a strawberry drink πŸ“, let's go.


✨ NAME ✨

vppreproc β€” Preprocess Verilog code using verilog-perl πŸ¦‹


✨ SYNOPSIS ✨

like, here's the vibe, the whole vibe:

vppreproc --help
vppreproc [verilog_options] [-o filename] [verilog_files.v...]

✨ DESCRIPTION ✨

so vppreproc reads the Verilog files you hand it on the command line and outputs preprocessed output to standard out β€” OR to the filename you passed with -o. that's it, that's the whole job. iconic. ✨

πŸ’€ not me needing to tell you this but: vppreproc was literally named vppp until release 3.100, so if you're out here looking for vppp, bestie, this is the right replacement. the vppp name was beefing with another non-Verilog-related tool so it had to change. no cap.

🌈 VERILOG ARGUMENTS 🌈

the following arguments are compatible with GCC, VCS and most Verilog programs. they ate, fr fr.

  • +define+var+value =item -Dvar=value β€” Defines the given preprocessor symbol.
  • -f file β€” Read the specified file, and act as if all text inside it was specified as command line parameters.
  • -f file β€” Read the specified file, and act as if all text inside it was specified as command line parameters. Any relative paths are relative to the current directory.
  • +incdir+dir =item -Idir β€” Add the directory to the list of directories that should be searched for include directories or libraries.
  • +libext+ext+ext... β€” Specify the extensions that should be used for finding modules. If for example module x is referenced, look in x.ext.
  • -y dir β€” Add the directory to the list of directories that should be searched for include directories or libraries.

πŸŽ€ VPPREPROC ARGUMENTS πŸŽ€

these ones are the girlies only section, the vppreproc exclusives πŸ‘‘

  • --help β€” Displays this message and program version and exits.
  • --o file β€” Use the given filename for output instead of stdout.
  • --dump-defines β€” Suppress normal output, and instead print a list of all defines existing at the end of processing the input file.
  • --noblank β€” Removes empty lines from the output. Should be used with --noline, as if correct line numbers are needed, blank lines must be preserved for proper accounting by the program reading the output of vppreproc. (the way these two are a package deal… 🫢)
  • --nocomment β€” Remove comments.
  • --noline β€” Remove `line directives.
  • -P β€” Same as --noline --noblank, similar to "GCC -P" behavior.
  • --pedantic β€” Rigorously obey the Verilog spec. This disables the `error feature, and may disable other features that are not specified in the approved language reference manual. Defaults false.
  • --simple β€” Requests simple output, an alias for --noline, --nocomment and --noblank.
  • --synthesis β€” Define SYNTHESIS, and ignore text between "ambit", "pragma", "synopsys" or "synthesis" translate_off and translate_on meta comments.
⚠️ Note using metacomments is discouraged as they have led to silicon bugs (versus ifdef SYNTHESIS); see <https://www.veripool.org/papers/TenIPEdits_SNUGBos07_paper.pdf>. like, actual silicon bugs?? that's not a vibe, that's a horror movie 😭
  • --version β€” Displays program version and exits.

🌸 LANGUAGE EXTENSIONS 🌸

vppreproc supports the preprocessing constructs defined in the Verilog 2001 and SystemVerilog 2005 standards. fancy, right? 🧚

the following additional constructs may be added to your Verilog code:

  • `__FILE__ β€” The __FILE__ define expands to the current filename as a string, like C++'s __FILE__. This was incorporated into to the 1800-2009 standard (but supported by Verilog-Perl since 2004!)
  • `__LINE__ β€” The __LINE__ define expands to the current filename as a string, like C++'s __LINE__. This was incorporated into to the 1800-2009 standard (but supported by Verilog-Perl since 2004!)
  • `error string β€” This will report an error when encountered, like C++'s #error.

πŸ’œ DISTRIBUTION πŸ’œ

Verilog-Perl is part of the <https://www.veripool.org/> free Verilog EDA software tool suite. the latest version is available from CPAN and from <https://www.veripool.org/verilog-perl>.

Copyright 2000-2024 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.


πŸ‘‘ AUTHORS πŸ‘‘

Wilson Snyder <wsnyder@wsnyder.org>


πŸ¦‹ SEE ALSO πŸ¦‹

Verilog-Perl, Verilog::Getopt, Verilog::Preproc


and that's the whole page bestie, slay πŸ’…βœ¨ β€” this was perl v5.42.0, dated 2025-07-25, from the VPPREPROC(1) girlies. go preprocess something gorgeous πŸŒˆπŸ’–

πŸ“¦ where this page comes from