VPPREPROC(1p)

πŸ“¦
version 3.482 Β· 5 versions
, in debian trixie, ubuntu resolute

πŸ’– VPPREPROC πŸ’–

okay bestie, gather round, because this is the manual page for vppreproc β€” the preprocess-Verilog-code-using-verilog-perl girlie. she's the one you call when you want your Verilog chewed up and spat out all pretty. πŸ¦‹


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

so here's the vibe: vppreproc reads the Verilog files you hand it on the command line, and then it spits out the preprocessed output β€” either to standard out, or to whatever filename you gave it with -o. that's it. that's the whole job. she's simple, she's efficient, she's that girl. πŸ’…

🫢 heads up, tiny lore drop: vppreproc was literally named vppp up until release 3.100. so if you came here looking for vppp... bestie, this IS the right replacement, you found her. the vppp name had beef with another non-Verilog-related tool, so she rebranded. main character move honestly.

πŸŽ€ VERILOG ARGUMENTS πŸŽ€

these arguments are compatible with GCC, VCS, and honestly most Verilog programs out there. they play nice. ✨

  • +define+var+value =item -Dvar=value β€” defines the given preprocessor symbol. it's giving "here's a thing, remember it."
  • -f file β€” read the specified file, and act as if all text inside it was specified as command line parameters. lowkey a whole file's worth of args in one flag, iconic.
  • -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. (yes bestie, this one's listed again β€” and it comes with the relative-paths detail this time. the manual said it twice so we're saying it twice. no cap. πŸ’€)
  • +incdir+dir =item -Idir β€” add the directory to the list of directories that should be searched for include directories or libraries. it's the "look here too" flag.
  • +libext+ext+ext... β€” specify the extensions that should be used for finding modules. if for example module x is referenced, look in x.ext. slay, autodiscovery.
  • -y dir β€” add the directory to the list of directories that should be searched for include directories or libraries.

πŸ‘‘ VPPREPROC ARGUMENTS πŸ‘‘

these are her own flags. her personal collection. πŸ’œ

  • --help β€” displays this message and program version and exits. the classic "help meee" move.
  • --o file β€” use the given filename for output instead of stdout. (yep, that's how it's spelled in the page β€” one dash, two letters, --o. we keep it exactly, no fixing, no inventing.)
  • --dump-defines β€” suppress normal output, and instead print a list of all defines existing at the end of processing the input file. receipts, basically. 🧾
  • --noblank β€” removes empty lines from the output. should be used with --noline, because if correct line numbers are needed, blank lines must be preserved for proper accounting by the program reading the output of vppreproc. so like... don't do this one casually, it matters. 🫠
  • --nocomment β€” remove comments. bye bye commentary. 😭
  • --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. she's strict. she's giving hall monitor energy. πŸ“
  • --simple β€” requests simple output, an alias for --noline, --nocomment and --noblank. one flag, three jobs, efficiency queen. πŸ”₯
  • --synthesis β€” define SYNTHESIS, and ignore text between "ambit", "pragma", "synopsys" or "synthesis" translate_off and translate_on meta comments.
⚠️ ngl, using metacomments is discouraged β€” they have led to silicon bugs (versus ifdef SYNTHESIS). like, actual hardware bugs, bestie, not a vibe. see <https://www.veripool.org/papers/TenIPEdits_SNUGBos07_paper.pdf> for the whole story.
  • --version β€” displays program version and exits.

🌈 LANGUAGE EXTENSIONS 🌈

vppreproc supports the preprocessing constructs defined in the Verilog 2001 and SystemVerilog 2005 standards. so she speaks the official languages, fluently. πŸ’…

and also?? the following additional constructs may be added to your Verilog code. bonus features, bestie. 🎁

  • `__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!). she was ahead of the curve, periodt. ⭐
  • `__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!). (yes, the page says "current filename" here β€” we're keeping it word for word even though it's a little chaotic. πŸ™ˆ)
  • `error string β€” this will report an error when encountered, like C++'s #error. dramatic exits only. 😭

πŸ¦‹ 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 a wrap, bestie! πŸŽ€ this page is perl v5.40.1, dated 2025-04-20, from VPPREPROC(1p). go forth and preprocess. slay. πŸ’–βœ¨

πŸ“¦ where this page comes from