VRQ(1)

πŸ“¦ version 1.0.134, in fedora 43, fedora 44

πŸ’– VRQ(1) β€” the manual page for Vrq πŸ’–

User Commands ✨ so you're in the right place bestie


🌸 NAME 🌸

Vrq β€” manual page for Vrq 1.0.134, periodt πŸ’…


✨ SYNOPSIS ✨

vrq [options] <file1> [<file2>...]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so listen. 'Vrq' is a framework for creating verilog based tools. that's the whole vibe. you bring the verilog, vrq brings the tool-making energy. slay πŸ’–


πŸ‘‘ OPTIONS πŸ‘‘

one bullet per option, no skips, no shortcuts, we're doing this properly 🫢

  • --version β€” Print version
  • --help β€” This message
  • --bindir β€” Binary install path
  • --libdir β€” Library install path
  • --pkglibdir β€” Plugin install path
  • --includedir β€” Include install path
  • --cflags β€” Compiler flags used
  • --ldflags β€” Linker flags used
  • --libs β€” Libraries used
  • --randomizeheap β€” Randomize heap
  • -V β€” Verbose
  • -y <directory> β€” Search directory for module definitions
  • -f <filename> β€” Read options from <filename>
  • -v <lib_filename> β€” Search file for module definitions
  • -l <filename> β€” Set log file to <filename>
  • -w <message>=<policy> β€” Set policy for warning <message> to <policy>; ignore, warning, error, info
  • -w all=<policy> β€” Set policy for all warnings to <policy>; ignore, warning, error, info
  • -wl β€” List all warning messages
  • +libext+<extension> β€” Specify library suffix to <extension>
  • -sv β€” Enable System Verilog support
  • -dump β€” Dump internal tree
  • -debug β€” Print debug/statistics info
  • -quiet β€” Print minimal runtime info
  • -lexbuffersize <bufferSize> β€” Set lexer buffer size (default=1048576)
  • -infervectors β€” Infer reg and wire vectors
  • -keeptickdefines β€” Best effort attempt to keep tick defines and `include statements in code (EXPERIMENTAL)
  • -macrocheck β€” Do not allow undefined macros
  • -o <filename> β€” Specify output file
  • -dir <directory> β€” Specify output directory
  • -pragma <regexp> β€” Extended regular expression template for pragma comments
  • -passthru <name> β€” Pass through ifdef blocks with label
  • +incdir+<directory> β€” Specify include search path
  • +define+<name>=<value> β€” Define `define
  • +<name>+<value> β€” Define plusargs
  • -tool builder β€” Auto route hierarchy
  • -tool coverage β€” Add line coverage instrumentation
  • -tool dump β€” Print verilog output
  • -tool filter β€” Extract elements of hierarchy
  • -tool flatten β€” Reduce to single level hiearchy
  • -tool rectify β€” Replace all X constants with 0 or 1
  • -tool sim β€” Verilog simulator
  • -tool stats β€” Print summary of hiearchy
  • -tool xprop β€” Add X propagation instrumentation
ngl bestie, -keeptickdefines literally says EXPERIMENTAL in the source, so like… be aware. πŸ™ˆ

πŸ› οΈ * 'builder' Options πŸ› οΈ

the builder tool's lil squad of plusargs, and yes they all start with a + πŸŽ€

  • +tree_ext=<ext> β€” File extension for files to be expanded
  • +depend=<filename> β€” Generate dependency info
  • +builder-verbose β€” Dump vebose log of actions

πŸ“Š * 'coverage' Options πŸ“Š

  • +coverage_output_file=<filename> β€” Filename for coverage line mapping info

πŸ—‘οΈ * 'dump' Options πŸ—‘οΈ

this is the "print the verilog back out, but make it fashion" crew ✨

  • +dump-alt-rxnor β€” Use alternate rxnor op ^~
  • +dump-fps β€” Force part selects on all vectors
  • +dump-fvl β€” Convert all logical ops to vector ops
  • +dump-fcc β€” Convert all comments to c++ style
  • +dump-swda β€” Split wire declaration assignments
  • +dump-fbae β€” Force begin/end block after event statement
  • +dump-nns β€” Replace null statements with begin/end pairs
  • +dump-sabo β€” Add spaces around binary operators
  • +dump-ced β€” Create explicit declarations for implicitly declared variables
  • +dump-strip-attr β€” strip out all attributes
  • +dump-timescale=<timescale> β€” emit `timescale <timescale> statements for all modules missing `timescale declarations
  • +dump-simplify β€” Simplify constant expressions (EXPERIMENTAL)
ok so +dump-simplify is giving EXPERIMENTAL energy too, bestie. noted. πŸ’€

🧚 * 'filter' Options 🧚

this is the BIG one. every element of your hierarchy gets a keep-or-delete moment, main character energy for each πŸŽ€. two defaults up top decide the fate of everything you don't explicitly mention.

  • +filter-default-policy-keep β€” keep all element by default
  • +filter-default-policy-delete β€” delete all element by default (tool default behavior)
  • +filter-comment-keep β€” keep comment
  • +filter-comment-delete β€” delete comment
  • +filter-vrq-keep β€” keep vrq comment
  • +filter-vrq-delete β€” delete vrq comment
  • +filter-pragma-keep β€” keep program pragma
  • +filter-pragma-delete β€” delete program pragma
  • +filter-instance-ref-keep β€” keep instance reference
  • +filter-instance-ref-delete β€” delete instance reference
  • +filter-gate-ref-keep β€” keep gate instance
  • +filter-gate-ref-delete β€” delete gate instance
  • +filter-task-enable-keep β€” keep call to a task
  • +filter-task-enable-delete β€” delete call to a task
  • +filter-systask-call-keep β€” keep call to enable a systask
  • +filter-systask-call-delete β€” delete call to enable a systask
  • +filter-timing-call-keep β€” keep call to a timing task
  • +filter-timing-call-delete β€” delete call to a timing task
  • +filter-function-call-keep β€” keep call to a function
  • +filter-function-call-delete β€” delete call to a function
  • +filter-enum-ref-keep β€” keep reference to a enum
  • +filter-enum-ref-delete β€” delete reference to a enum
  • +filter-type-ref-keep β€” keep reference to a type
  • +filter-type-ref-delete β€” delete reference to a type
  • +filter-net-decl-keep β€” keep net declaration
  • +filter-net-decl-delete β€” delete net declaration
  • +filter-var-decl-keep β€” keep variable declaration
  • +filter-var-decl-delete β€” delete variable declaration
  • +filter-param-decl-keep β€” keep parameter declaration
  • +filter-param-decl-delete β€” delete parameter declaration
  • +filter-specparam-decl-keep β€” keep specify parameter declaration
  • +filter-specparam-decl-delete β€” delete specify parameter declaration
  • +filter-port-decl-keep β€” keep port declaration
  • +filter-port-decl-delete β€” delete port declaration
  • +filter-genvar-decl-keep β€” keep genvar declaration
  • +filter-genvar-decl-delete β€” delete genvar declaration
  • +filter-typedef-decl-keep β€” keep type declaration
  • +filter-typedef-decl-delete β€” delete type declaration
  • +filter-init-keep β€” keep initial block
  • +filter-init-delete β€” delete initial block
  • +filter-always-keep β€” keep always block
  • +filter-always-delete β€” delete always block
  • +filter-always-latch-keep β€” keep always latch block
  • +filter-always-latch-delete β€” delete always latch block
  • +filter-always-ff-keep β€” keep always flip-flop block
  • +filter-always-ff-delete β€” delete always flip-flop block
  • +filter-always-comb-keep β€” keep always combinational logic block
  • +filter-always-comb-delete β€” delete always combinational logic block
  • +filter-specify-ref-keep β€” keep specify block
  • +filter-specify-ref-delete β€” delete specify block
  • +filter-assign-keep β€” keep procedural assignment
  • +filter-assign-delete β€” delete procedural assignment
  • +filter-gassign-keep β€” keep generate intialize assignment
  • +filter-gassign-delete β€” delete generate intialize assignment
  • +filter-add-assign-keep β€” keep procedural assignment with add
  • +filter-add-assign-delete β€” delete procedural assignment with add
  • +filter-sub-assign-keep β€” keep procedural assignment with subtract
  • +filter-sub-assign-delete β€” delete procedural assignment with subtract
  • +filter-mul-assign-keep β€” keep procedural assignment with mul
  • +filter-mul-assign-delete β€” delete procedural assignment with mul
  • +filter-div-assign-keep β€” keep procedural assignment with div
  • +filter-div-assign-delete β€” delete procedural assignment with div
  • +filter-mod-assign-keep β€” keep procedural assignment with mod
  • +filter-mod-assign-delete β€” delete procedural assignment with mod
  • +filter-and-assign-keep β€” keep procedural assignment with bitwise and
  • +filter-and-assign-delete β€” delete procedural assignment with bitwise and
  • +filter-or-assign-keep β€” keep procedural assignment with bitwise or
  • +filter-or-assign-delete β€” delete procedural assignment with bitwise or
  • +filter-xor-assign-keep β€” keep procedural assignment with bitwise xor
  • +filter-xor-assign-delete β€” delete procedural assignment with bitwise xor
  • +filter-lsh-assign-keep β€” keep procedural assignment with left shift
  • +filter-lsh-assign-delete β€” delete procedural assignment with left shift
  • +filter-rsh-assign-keep β€” keep procedural assignment with right shift
  • +filter-rsh-assign-delete β€” delete procedural assignment with right shift
  • +filter-lsha-assign-keep β€” keep procedural assignment with left arithmetic shift
  • +filter-lsha-assign-delete β€” delete procedural assignment with left arithmetic shift
  • +filter-rsha-assign-keep β€” keep procedural assignment with right arithmetic shift
  • +filter-rsha-assign-delete β€” delete procedural assignment with right arithmetic shift
  • +filter-force-keep β€” keep force statement
  • +filter-force-delete β€” delete force statement
  • +filter-release-keep β€” keep release statement
  • +filter-release-delete β€” delete release statement
  • +filter-nbassign-keep β€” keep nonblocking assignment
  • +filter-nbassign-delete β€” delete nonblocking assignment
  • +filter-if-keep β€” keep if statement
  • +filter-if-delete β€” delete if statement
  • +filter-forever-keep β€” keep forever statement
  • +filter-forever-delete β€” delete forever statement
  • +filter-repeat-keep β€” keep repeat statement
  • +filter-repeat-delete β€” delete repeat statement
  • +filter-while-keep β€” keep while statement
  • +filter-while-delete β€” delete while statement
  • +filter-wait-keep β€” keep wait statement
  • +filter-wait-delete β€” delete wait statement
  • +filter-for-keep β€” keep for statement
  • +filter-for-delete β€” delete for statement
  • +filter-case-keep β€” keep case statement
  • +filter-case-delete β€” delete case statement
  • +filter-casex-keep β€” keep casex statement
  • +filter-casex-delete β€” delete casex statement
  • +filter-casez-keep β€” keep casez statement
  • +filter-casez-delete β€” delete casez statement
  • +filter-cassign-keep β€” keep continious assignment
  • +filter-cassign-delete β€” delete continious assignment
  • +filter-import-keep β€” keep import item
  • +filter-import-delete β€” delete import item

and that's the end of part 1, bestie β€” there's more coming, don't go anywhere πŸ’œ

okay so picking up right where we left off in the OPTIONS section β€” here are all the filter options, and bestie, there are a LOT. but we love that for us. πŸ’…

  • +filter-function-def-keep β€” keep function definition ✨
  • +filter-function-def-delete β€” delete function definition πŸ—‘οΈ
  • +filter-module-def-keep β€” keep module definition πŸ’–
  • +filter-module-def-delete β€” delete module definition πŸ’€
  • +filter-package-def-keep β€” keep package definition πŸ“¦
  • +filter-package-def-delete β€” delete package definition πŸ—‘οΈ
  • +filter-port-def-keep β€” keep port definition πŸ”Œ
  • +filter-port-def-delete β€” delete port definition πŸ—‘οΈ
  • +filter-defparam-keep β€” keep defparam statement ✨
  • +filter-defparam-delete β€” delete defparam statement πŸ—‘οΈ
  • +filter-path-keep β€” keep path statement πŸ›€οΈ
  • +filter-path-delete β€” delete path statement πŸ—‘οΈ
  • +filter-trigger-keep β€” keep event trigger ⚑
  • +filter-trigger-delete β€” delete event trigger πŸ—‘οΈ
  • +filter-passign-keep β€” keep procedural assignment πŸ“
  • +filter-passign-delete β€” delete procedural assignment πŸ—‘οΈ
  • +filter-deassign-keep β€” keep deassign statement ✨
  • +filter-deassign-delete β€” delete deassign statement πŸ—‘οΈ
  • +filter-disable-keep β€” keep disable statement 🚫
  • +filter-disable-delete β€” delete disable statement πŸ—‘οΈ
  • +filter-attribute-keep β€” keep attribute specification 🏷️
  • +filter-attribute-delete β€” delete attribute specification πŸ—‘οΈ
  • +filter-gif-keep β€” keep structural if statement ❓
  • +filter-gif-delete β€” delete structural if statement πŸ—‘οΈ
  • +filter-gfor-keep β€” keep structural for statement πŸ”
  • +filter-gfor-delete β€” delete structural for statement πŸ—‘οΈ
  • +filter-gcase-keep β€” keep structural case statement πŸ“‹
  • +filter-gcase-delete β€” delete structural case statement πŸ—‘οΈ
  • +filter-table-keep β€” keep udp table πŸ“Š
  • +filter-table-delete β€” delete udp table πŸ—‘οΈ
  • +filter-enum-spec-keep β€” keep enum specification πŸ”’
  • +filter-enum-spec-delete β€” delete enum specification πŸ—‘οΈ
  • +filter-member-keep β€” keep member reference (structure, class or external πŸ”—
  • +filter-member-delete β€” delete member reference (structure, class or external πŸ—‘οΈ
  • +filter-return-keep β€” keep return ↩️
  • +filter-return-delete β€” delete return πŸ—‘οΈ
  • +filter-preinc-keep β€” keep preincrement ⏫
  • +filter-preinc-delete β€” delete preincrement πŸ—‘οΈ
  • +filter-postinc-keep β€” keep postincrement ⏫
  • +filter-postinc-delete β€” delete postincrement πŸ—‘οΈ
  • +filter-predec-keep β€” keep predecrement ⏬
  • +filter-predec-delete β€” delete predecrement πŸ—‘οΈ
  • +filter-postdec-keep β€” keep postdecrement ⏬
  • +filter-postdec-delete β€” delete postdecrement πŸ—‘οΈ
  • +filter-cast-keep β€” keep data type change 🎭
  • +filter-cast-delete β€” delete data type change πŸ—‘οΈ
  • +filter-assignment-pattern-keep β€” keep assignment_pattern ✨
  • +filter-assignment-pattern-delete β€” delete assignment_pattern πŸ—‘οΈ
  • +filter-dollar-keep β€” keep queue dimension πŸ“
  • +filter-dollar-delete β€” delete queue dimension πŸ—‘οΈ

✨ 'rectify' Options ✨

  • +rectify-default-value={0|1} β€” change default replacement value πŸ”„
  • +rectify-attribute-name=<attrName> β€” attribute name used to override default replacement value 🏷️
  • +rectify-delete-decl-pragmas β€” delete pragmas attached to declarations πŸ’€

✨ 'sim' Options ✨

  • +sim-interactive β€” start simulation in interactive mode only πŸ•ΉοΈ
  • +sim-compile-only β€” do not simulate, compile only πŸ› οΈ
  • +sim-trace β€” enable execution tracing πŸ”
  • +sim-mindelays β€” use minimum delays ⏳
  • +sim-typdelays β€” use typical delays ⏱️
  • +sim-maxdelays β€” use maximum delays 🐒
  • +sim-pli=pliLib1+pliLib2+... β€” load pli librarys πŸ“š
  • +sim-log=file β€” use file for logging πŸ“
  • +sim-key=file β€” use file for key stroke log πŸ”‘

✨ 'xprop' Options ✨

  • +xprop-begin=<pragma> β€” insertion begin pragma 🎬
  • +xprop-end=<pragma> β€” insertion end pragma 🎞️
  • +xprop-clk-begin=<pragma> β€” insertion clock begin pragma ⏰
  • +xprop-clk-end=<pragma> β€” insertion clock end pragma πŸ•°οΈ
  • +xprop-disable-task β€” disable task output instrumentation 🚫
  • +xprop-disable-if β€” disable if instrumentation 🚫
  • +xprop-disable-case β€” disable case instrumentation 🚫
  • +xprop-disable-index β€” disable reference instrumentation 🚫
  • +xprop-disable-ternary β€” disable '?' instrumentation 🚫
  • +xprop-nox-attr=<name> β€” attribute specifing variable will never be x 🚷
  • +xprop-int-nox β€” declare integers will never be x πŸ”’
  • +xprop-enable-clock β€” instrument register clocks ⏱️
  • +xprop-clk-edge-control=[!]<tickdefine> β€” Supply a preprocessor tick define to enable instrumentation on both edges of the clock. ! indicates tickdefine disables both edges. If switch isn't supplied the behavior is single edge unless XPROP_BOTH_EDGES is defined 🌊

✨ AUTHOR ✨

Written by Mark Hummel πŸ’–


✨ REPORTING BUGS ✨

Report bugs at <http://sourceforge.net/projects/vrq> πŸ›


Copyright Β© 1997-2009 Mark Hummel

Vrq comes with ABSOLUTELY NO WARRANTY; This is free software, and you are welcome to redistribute it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


and that's the whole entire vibe, bestie. this page is from Vrq 1.0.134, September 2019. slay. πŸ’…βœ¨

πŸ“¦ where this page comes from