I use Google Analytics to analyze the traffic on this site, in combination with Google Ads to track conversions. It is thus
possible that your data is stored on non-European servers by Google. It is also possible that Google uses the collected
information to provide you with personalized marketing/advertisements on other websites.
Google's Data Processing Terms
I will not use your data for anything else than the purposes stated above. I will not sell or share any data
with third parties. I will not store your data, or otherwise use it for anything else than site statistics and conversion
tracking.
V4P supports a separate set of preferences for each root-/workspace-folder. The configuration file can either be INI-based (recommended) or JSON-based.
The file must be named config.v4p or .config.v4p and be located
directly in your root-/workspace-folders (this one has priority)
in the .vscode subdirectory of any root-/workspace folder
Substitution of environment variables is supported in config.v4p files. The variable names are case-sensitive and must be enclosed in
${}, e.g. ${HOME}. Substitution is supported everywhere in the file, also inside strings.
Variables that do not exist will not be replaced.
Per Root-Folder configs are useful as you sometimes will have projects that combine various sub-projects with possibly different coding styles, library assignments and settings.
INI-based config files
JSON-based config files
In order to better handle various global settings, V4P also support an optional Master Config. This is an ordinary config file which can be located in
any of the following locations, and must be named config.v4p or .config.v4p:
At the location specified by the environment variable V4P_MASTER_CONFIG
In your Home folder (/home/<user> or C:\Users\<user>)
In the folder pointed to by environment variable HOME
If present, a Master Config can define default library mappings for common folders (eg, simulation libraries like OSVVM), exclude patterns, and common settings. A local
config file, if present, always has precedence if there are any conflicting settings. Libraries and Excludes are merged. If they reference the same Glob-pattern, the masterconfig's entry is discarded.
You can find a detailed description of »Glob-Patterns on Wikipedia. However, I am supporting the list enhancement (curly braces, see examples).
Remarks
As the MasterConfig is not part of any specific project/workspace/root-folder, the glob-patterns therein should be 'absolute' (i.e., start with **/)
Root-folder specific Glob-patterns are always relative to that specific root-folder
Glob-Patterns are case-sensitive (also in Windows)
Glob-Patterns can be written in Linux (with slashes) or Windows style (with backslahes and drive-prefix like c:\). Escaping the backslashes is not necessary. It does not matter whether V4P is executed on Windows or Linux.
The following table shows a couple of glob-patterns with exemplary matches and mismatches for the given patterns. Notice that in these example we assume that the patterns are defined in a config.v4p of some root-folder <r>
Glob
Matches
Mismatch
*/src/?.vhd
<r>/a/src/b.vhd<r>/abc/src/1.vhd
<r>/a/src/.vhd<r>/a/src/file.vhd<r>/a/b/src/a.vhd
**/src or **/src/*.*
<r>/src/a.vhd<r>/a/b/src/abc.vhd
<r>/src/a/a.vhd
**/src/**
<r>/a/b/src/c/d<r>/src/a.vhd<r>/src/d/e.vhd
<r>/dst/a.vhd
*.vhd?
<r>/file.vhdl<r>/file.vhdA
<r>/file.vhd<r>/file.VHDL
*.{vhd,vhdl}
<r>/file.vhdl<r>/file.vhd
<r>/file.VHDL
file[A-G].vhd
<r>/fileA.vhd<r>/fileD.vhd
<r>/fileH.vhd<r>/filea.vhd<r>/file.vhd
file{[A-G],[1-3]}.vhd
<r>/fileA.vhd<r>/file2.vhd
<r>/fileH.vhd<r>/fileA1.vhd
a/{b,[cd],e/*/f}/*.vhd
<r>/a/b/c.vhd<r>/a/d/c.vhd<r>/a/e/e1/f/c.vhd
<r>/a/cd/c.vhd<r>/a/e/f/c.vhd
Add external files to the project: By defining external files, one can easily add e.g. vendor libraries or utility packages to the project
without the need to add the entire folder as root-folder. All files added as part of the external are flagged as
"Vendor Library": For reasons of performance, they are assumed to be read-only and some features like semantic highlighting, error checking, and
code completion might be restricted.
The syntax according to the below example is rather simple:
Absolute or relative path to the respective file. GLOB patterns are not supported
Relative paths are only allowed for local config.v4p files, not for the master-config
On the right side of the equal sign is the library which shall be associated with the file. Only one library is supported
Example:
Assign libraries to design files: You can specify a comma-separated list of libraries for each design file or sets of files. Files are specified as
»Glob-Pattern as shown in the example above. The Glob-patterns are case sensitive (also in Windows).
Usually there is only one library per file, but multiple libraries might be useful for files that are shared by various projects and therefore belong to potentially different libraries.
The libraries section does not add files to the project! It rather defines library assignments for existing files. Use the external section, or symlinks, to add external files.
Example:
Exclude design files from parsing: In addition to Visual Studio Code's exclude list, you can provide a separate list of excludes
for each root-folder. The files are specified as »Glob-Pattern and will not be parsed or analyzed by V4P if they are assigned with true. The Glob-patterns are case sensitive (also in Windows).
Example:
Define specific preferences for the corresponding root-folder.
Undefined settings are assumed as @inherit. It is therefore not necessary to explicitly declare entries as inherited.
There are two special assignments that can always be used:
@default: Uses the value from V4P's default settings. The list below shows the default value for each setting.
@inherit: Uses the value from the Master Config (if present), otherwise V4P's default.
V4p.Settings.Basics.TopLevelEntities
Values
String
Default
""
Remarks
Specifies the top-level entities of the design as comma-separated list. Can contain the corresponding library as prefix, e.g. "sim_top, design_lib.dut_top". Entities specified in the MasterConfig will be merged with local entities. If no library is specified, all entities with the given name(s) are considered as top-level
V4p.Settings.Basics.LogSeverity
Values
DetailDebugNoteInfoWarningErrorFatal
Default
Note
Remarks
Specifies minimum severity for log-messages. Messages below the given threshold are not written to the logfile.
V4p.Settings.Basics.LicenseFile
Values
String
Default
""
Remarks
Path to the license file (must include filename!). There are other ways as well to specify a license file, see Section License.
V4p.Settings.Formatting.StandardLibraryStyle
Values
AsDefinedLowerUpper
Default
Lower
Remarks
Defines the capitalization style of standard-library elements for snippets and code-completion.
V4p.Settings.Formatting.KeywordStyle
Values
LowerUpperVbaStyle
Default
Lower
Remarks
Defines the capitalization style of keywords. If style VbaStyle is used, the first letter is converted to upper case, while the reset is lower case.
V4p.Settings.Formatting.EndIdentifiers
Values
String
Default
""
Remarks
A comma-separated list of VHDL-constructs which support "end identifiers" (e.g., procedure proc (...) is begin (...) end procedure proc; The following values are supported: architectureblockcasecomponentcontextentityfunctiongeneratelooppackageprocedureprocessprotectedrecord
If true, consecutive signal/variable assignments inside sequential blocks (processes, subroutines) will be aligned wrt. the assignment operator <= or :=
Defines when V4P inserts newlines when formatting code. Allowed values in the definition above are ProtectedKeywordRecordKeywordUnitsKeyword .
V4p.Settings.Formatting.Newlines.WhenChoices
Values
AlwaysNeverKeep
Default
Keep
Remarks
Defines whether choices of case-when statements shall be put is a separate line or not
V4p.Settings.Formatting.Indentation.UseTabs
Values
Boolean
Default
False
Remarks
Defines whether to use tab-stops or whitespaces for indentation. This affecs code-completion, snippets and type-time (smart) indenation.
V4p.Settings.Formatting.Indentation.TabWidth
Values
Integer
Default
2
Remarks
Defines how many spaces to insert for each level of indentation. See also V4p.Settings.Formatting.Indentation.UseTabs
V4p.Settings.Formatting.Indentation.<*>
Values
Boolean
Default
True
Remarks
Specifies when V4P shall add indentation (relative to the previous line). Allowed values for the * in the definition above are ReportSeverityWhenChoicesDeclarationsPortMapsUseClausesPortDeclarations .
V4p.Settings.Completion.ShowKeywords
Values
Boolean
Default
True
Remarks
Defines whether keywords shall be part of the code-completion list.
V4p.Settings.Completion.ShowUncommon
Values
Boolean
Default
False
Remarks
Defines whether uncommon elemments of the IEEE standard libs shall be part of the completion list. Uncommon elements are for example character-literals, ux01to_ux01 , ...
V4p.Settings.Completion.ShowEnums
Values
Boolean
Default
True
Remarks
Defines whether enumeration values shall be part of the code-completion list.
V4p.Settings.Completion.ShowVendorSymbols
Values
Boolean
Default
False
Remarks
Defines whether symbols of Vendor Libraries (eg, unisim, altera_mf) shall be part of code completion suggestions. This might severely impact performance as Vendor Libraries tend to be huge. Currently the following files are recognized as Vendor Libraries (filenames case insensitive) if the specified libary name is assigned:
Filename
Library
retarget_VCOMP.vhd
unisim
unisim_retarget_VCOMP.vhd
unisim
unisim_VCOMP.vhd
unisim
unisim_VPKG.vhd
unisim
altera_mf.vhd
altera_mf
altera_mf_components.vhd
altera_mf
V4p.Settings.Completion.ShowVendorSnippets
Values
Boolean
Default
False
Remarks
Defines whether component-snippets of Vendor Libraries (eg, unisim, altera_mf) shall be part of code completion suggestions. This might severely impact performance as Vendor Libraries tend to be huge. Currently the following files are recognized as Vendor Libraries (filenames case insensitive) if the specified libary name is assigned:
Filename
Library
retarget_VCOMP.vhd
unisim
unisim_retarget_VCOMP.vhd
unisim
unisim_VCOMP.vhd
unisim
unisim_VPKG.vhd
unisim
altera_mf.vhd
altera_mf
altera_mf_components.vhd
altera_mf
V4p.Settings.HoverInfo.ShowLibraries
Values
Boolean
Default
False
Remarks
If true, the hoverinfo shows the library to which the current symbol belongs.
V4p.Settings.HoverInfo.ShowLocation
Values
Boolean
Default
False
Remarks
If true, the hoverinfo shows the file and location of the current symbol.
V4p.Settings.HoverInfo.ResolveStdTypes
Values
Boolean
Default
False
Remarks
If true, standard ieee types are further resolved into their primitive types (if any).
V4p.Settings.HoverInfo.ResolveTypes
Values
Boolean
Default
True
Remarks
If true, complex types (eg, arrays) will be further resolved to their primitive types.
V4p.Settings.HoverInfo.ShowAllOverloads
Values
Boolean
Default
False
Remarks
If true, the hoverinfo contains all overloads of the current subroutine. Notice that this might result in truncated output. If false, only a summary of the overloaded subroutines is displayed.
V4p.Settings.HoverInfo.ShowComments
Values
NeverSignalsOnlyAlways
Default
SignalsOnly
Remarks
Defines whether source-comments associated with a symbol shall be part of the hover-info. SignalsOnly restricts comments to signals, variables, constants and port signals.
V4p.Settings.ParameterHelp.Instances
Values
Boolean
Default
True
Remarks
If true, parameter-help for instances is provided. As this might be quite annoying for large entities, it can be disabled.
V4p.Settings.Snippets.SignalNamePrefix
Values
String
Default
(empty)
Remarks
Defines a prefix for the signal names that are used in instance snippets (i-name). This way it can be avoided that "valid" associations are generated by accident in case that signal names match the association names.
V4p.Settings.StutterMode.Enabled
Values
Boolean
Default
True
Remarks
If true, stutter mode is enabled. See below for details.
V4p.Settings.StutterMode.HorizontalLineWidth
Values
Integer
Default
100
Remarks
Defines the number of dashes to insert for the "horizontal line (---)" stutter insertion
Defines a comma-separated list of attributes that are treated as "read-access" to the respective symbol (e.g., mySignal'delayed(1 ns)). You can use @default and @inherit as part of the list to add something to default/inherited settings, e.g. "@default, event". You can use all to simply treat all calls to attributes as read-access for the respective symbol.
If true, read-access of symbols as part of an assert statement are ignored. They do not count as "signal has been read". If false, reading symbols inside assert statements counts as regular read and thus avoids the corresponding warning message.
Example:
The [ignores] section is an alternative to Meta Comments, e.g. if your company forbids tool specific comments
as part of your source code. In this section you can define warning messages for specific symbols which shall be ignored by the error checker. The syntax is as follows:
glob-pattern-file defines a (case sensitive) GLOB pattern to match any source file(s).
glob-pattern-symbol defines a (case insensitive) GLOB pattern to match any symbol within the set
of source files. You can use unqualified, partially qualified or fully qualified symbol names with wildcards.
"msg1,msg2" is a comma-separated list of error/warning names or error-warning codes (see table below) which are to be ignored for the matched symbols.
To improve readability, the parts left and right of the equality sign = can be put inside double quotes. A detailed description of the supported errors/warnings
can be found in Meta Comments.
Code
Name
w-301
missing-association
w-302
never-written
w-303
never-read
w-304
alias-unused
e-202
not-found
Example:
V4P comes with a pre-installed, 30-day trial license (full feature set, no restrictions, commercial use). After the trial period, you have
to purchase a license on my website. The file must be named license.v4p or .license.v4p,
and must be located in any of the following locations:
At the location specified by the environment variable V4P_LICENSE_FILE
In your Home folder (/home/<user> or C:\Users\<user>)
In the folder pointed to by environment variable HOME
In any of your Root Folders
In any of your config.v4p files (even in the Master Config), point to the location of the license file: V4p.Settings.Basics.LicenseFile=<path>
Feature
Description
Default Shortcut
Renaming
Allows semantically correct renaming of signals, variables, functions, entities, etc.
F2
Code Formatting (full)
Formats the entire source file according to the V4p.Settings.Formatting settings. See Pragmas (Formatter) for in-code control.
Shift+Alt+F
Code Formatting (selection)
Formats the selected range according to the V4p.Settings.Formatting settings. See Pragmas (Formatter) for in-code control.
Ctrl+K+Ctrl+F
Find All References
Finds all references of a given identifier in the entire project. The results are shown in a separate side panel view.
Shift+Alt+F12
Find All Sources
Finds all sources/drivers of the signal/variable below the cursor.
Right-click Menu
Go To References
Finds all references of a given identifier in the entire project.
Shift+F12
Syntax Highlighting
Code highlighting according to VHDL 2008 syntax: Keywords, symbols, strings, identifiers, etc.
Semantic Highlighting
Code highlighting according to semantic analysis: Types, signals, ports, constants, etc. editor.semanticHighlighting.enabled must be enabled in Visual Studio Code.
(Beta) It is supported to highlight in, out and inout port signals differently. For details please refer to VS Code Documentation. Use variable.parameter.in.v4p.vhdl, variable.parameter.out.v4p.vhdl and variable.parameter.inout.v4p.vhdl as value for scope.
Type-time Syntax Checking
On-the-fly syntax checking and highlighting. Output in Visual Studio Code's Problems Panel.
Type-time Semantic Checking
Performs error/warning checks during design entry. Supported checks:
s-101: Syntax Error
e-201: Symbol already defined
e-202: Symbol not defined
e-203: Signal vs. Variable assignment operator
e-204: End-Label does not match declaration
e-205: Symbol cannot be target of assignment
w-301: Missing association in instances
w-302: Symbol is never written
w-303: Symbol is never read
w-304: Alias is never used
You can enable/disable warnings per file or per symbol using MetaComments. See the MetaComments section for details.
You can configure V4P's error-checking behavior in various ways. See V4p.Settings.ErrorChecker in the Configuration Files section.
Stutter Mode
If enabled (V4p.Settings.StutterMode.Enabled), stutter mode as known from EMACS can be used.
editor.formatOnType must be enabled in Visual Studio Code. The following shortcuts are supported:
'' (two single quotes) → " (double quote)
;; → :
;;; → :=
.. → =>
,, → <=
[ → (
[[ → [
] → )
]] → ]
--- → ----------- (horizontal line according to V4p.Settings.StutterMode.HorizontalLineWidth
Parameter Help
Brings up a tooltip with parameter help for (possibly overloaded) functions/procedures/components/instances. Highlights the current parameter and provides type information.
Ctrl+Shift+Space
Smart Indentation
Automatically sets the indent of new code lines according to formatting rules. See also Section Preferences.
Code Completion/Autocomplete
Context sensitive code completion (for defined signals, types, entites, etc.), according to code completion rules. See also Section Preferences.
Ctrl+Space
Block Selection Keyboard
Very handy block/column-selection mode of Visual Studio Code.
Ctrl+Alt+Shift+Cursors
Block Selection Mouse
Use the middle mouse button for block-selection mode with the mouse.
Middle Mouse Button
Increase Indent
Increases the indent of the currently selected code lines.
Tab
Decrease Indent
Decreases the indent of the currently selected code lines.
Shift+Tab
Hover Info / Quickinfo
Show Hover Info for symbol at cursor. Usually you just hover the mouse over an item.
Ctrl+K+Ctrl+I
Expression Evaluator
For constants and generics, V4P displays the actual value of the symbol as part of the hover info, whereever possible.
Ctrl+K+Ctrl+I
Number Conversion
Converts numbers to different bases. Just hover the mouse over a number.
Ctrl+K+Ctrl+I
Comment Lines
Comments the current/selected lines (line commenting).
Ctrl+K+Ctrl+C
Uncomment Lines
Uncomments the current/selected lines (line commenting).
Ctrl+K+Ctrl+U
Toggle Line Comment
Toggle line comment for the current/selected lines.
Ctrl+/
Toggle Block Comment
Toggle block comment for the current selected.
Shift+Alt+A
Copy Line Down
Copys the current line / current selection and inserts it below
Shift+Alt+Down
Copy Line Up
Copys the current line / current selection and inserts it above
Shift+Alt+Up
Code Snippets
Snippets are part of code completion. All snippets start with a short prefix, followed by '-'. For some snippets, an identifier after the minus further defines the snippet (eg, for instances). Snippets respect your formatting settings, see also Section Preferences. editor.suggest.showSnippets must be enabled in Visual Studio Code. The following snippets are defined:
if-: if cond then ... end if;
ife-: if cond then ... else ... end if;
sl-: std_logic
slv-: std_logic_vector
slvr-: std_logic_vector( range )
sul-: std_ulogic
sulv-: std_ulogic_vector
sulvr-: std_ulogic_vector( range )
o-: (others => '0')
oo-: (others => '...')
s-: signed
sr-: signed( range )
ts-: to_signed(...)
u-: unsigned
ur-: unsigned( range )
tu-: to_unsigned(...)
arch-: Architecture template
entarch-: Entity with architecture template
ent-: Entity template
comp-: Component template
const-: Template for a constant definition
func-: Function template
proc-: Procedure template
sig-: Signal declaration template
var-: Variable declaration template
sha-: Shared Variable declaration template
rec-: Record type declaration template
prot-: Protected type declaration template
protbdy-: Protected type body definition template
pkg-: Package head declaration template
pkgfull-: Package head and body template
p-: Process template
genif-: Generate IF template
genfor-: Generate FOR template
gencase-: Generate CASE template
Specific Snippets
i-name: Create an instance of the given entity/component. The instance is created with all generic maps and port maps according to the module's definition.
cs-name: Create a case statement for the given signal/variable (of enumeration type). The case statement is created with all enumeration values.
*-
Code Snippets (Forward)
When in snippet insertion mode, use this shortcut to move to the next field (and probably show the suggestions list).
Tab
Code Snippets (Backward)
When in snippet insertion mode, use this shortcut to move to the previous field (and commit the current value for previous, and probably show the suggestions list).
Shift+Tab
Code Snippets (Leave)
When in snippet insertion mode, use this shortcut to leave snippet mode.
Shift+Escape
Code Snippets (Leave)
When in snippet insertion mode, use this shortcut to leave snippet mode.
Escape
Code Actions
Context sensitive code actions are available. They are indicated with a light bulp icon and can also be activated with a shortcut. The following features are supported:
Insert missing instance associations
Insert missing instance associations and also create local signals for the newly created associations
Create signal declarations for unknown instance associations
Ctrl+.
Feature
Description
Default Shortcut
Find All References
Finds all references of a given identifier in the entire project, shows the results in 'References' Activity Bar.
Shift+Alt+F12
Find All Sources
Finds all sources/drivers of the signal/variable below the cursor. The results are shown in a separate side panel view.
Right-click Menu
Go To References
Finds all references of a given identifier in the entire project, shows the results in an inline window with code preview.
Shift+F12
Navigate Forward
Move forward to an already visited location.
Alt+Right
Navigate Backward
Move backward to a previously visited location.
Alt+Left
Code Folding
Collapse certain code blocks for better overview and navigation efficiency (processes, function, entities, classes, methods, records, instances, ...). editor.folding must be enabled in Visual Studio Code.
Goto Definition
Jumps to the definition of the current item (if different from its declaration, eg. package body or function implementation).
F12
Goto Declaration
Jumps to the declaration of the current item (if different from its definition, eg. package head or function declaration in package head).
Goto Type Definition
Jumps to the type of the current item, eg. the type of the signal/variable/constant. For components, jumps to the respective entity declaration
Libraries View
Located in the HDL Panel of the activiy bar. Shows hierarchical view of all libraries and packages / entities / symbols therein.
Manual refresh
Design Hierarchy View
Located in the HDL Panel of the activiy bar. Shows hierarchical view of the entire workspace. You can use V4p.Settings.Basics.TopLevelEntities to define one or multiple top-level entities.
Manual refresh
Document Outline
Provides a hierarchical outline for the current document, e.g. subroutines, instances, signals, processes, etc.
The activity bar provides access to several very useful features and information panels.
HDL Panel
Commands: Easy access to all commands. Notice that they are also accessible through the Command Palette ctrl+shift+p.
Library Hierarchy: Hierarchical view of all libraries with their respective packages, entities, architectures, etc.
Design Hierarchy: Hierarchical view of your entire design workspace. You can define multiple top-level entities
Search Results for 'Find all Sources'
Explorer Panel
Document Outline: Provides a concise hierarchical overview for the current document, such as entities, blocks, instances, signals, processes, subroutines, etc.
General Description
Meta-Comments can be used to (temporarily) disable warnings/errors. This is achieved by
putting a meta comment inside your source code. See below for syntax and examples.
Alternatively, you can use the [ignores] section in your config.v4p in case you don't
want to add tool specific comment to your source code. See also [ignores]-Section (config.v4p)
Disable warnings for specific symbols or for the entire file
You can use the warning-code or the warning-name interchangeably
Meta-Comments for ignore are valid in the line they are declared only. It is a handy shortcut to disable warnings for specific symbols. Usually, this is the one you want
Meta-Comments for enable|disable are valid starting with the line they are defined in until the end of file (or until a new comment for the respective feature is found)
Meta-Comments are limited to the file they are declared in
Meta-Comments are generally evaluated at the location of declaration of a symbol only, if not stated otherwise
Syntax
Meta-Comments are only available for line comments (ie, starting with --) and have the following syntax: -- v4p (enable|disable|ignore) warning-list [symbol-list]
The warning-list is a comma-separated list of warnings to enable/disable. You can either use the warnings code or name, as defined by the table below
The symbol-list is an optional comma-separated list of symbol names for which the rule shall be applied. If it is empty, all symbols are effected. It does not support wildcards
List of Errors/Warnings
Code
Name
Description
w-301
missing-association
Warning that indicates that there are signals defined in an entity/component which do not have an association in the given instance.
w-302
never-written
Warning that indicates that a symbol was declared but no value has ever been assigned to it.
w-303
never-read
Warning that indicates that a symbol was declared but its value has never been written.
w-304
alias-unused
Warning that indicates that an alias has been defined but is never used.
e-202
not-found
Error that indicates that a symbol has not been declared. This meta-comment must be used at the location where the error occurs
Examples
1: architecture rtl of ent is 2: -- v4p disable never-written,never-read s2,s3 /* also matches "s2" of "proc1()" */
3: signal s1, s2, s3: integer; 4: signal s4, s5, s6: integer; -- v4p disable never-written/* disable for all syms starting here (including s4, s5, s6) */
5: signal s7, s8 : integer; -- v4p ignore w-302 /* ignore warning w-302 for symbols IN THIS LINE ONLY */
6: procedureproc1(s2, s5: out integer) is 7: begin 8: endprocedure; 9: -- v4p enable w-302,never-read /* reenable warnings for all syms starting here */
10: component comp is 11: port ( 12: clk, rst: in std_logic; 13: -- v4p disable missing-association dbg /* generally disable for "dbg" of all instances of component */
14: d1, dbg: out std_logic 15: ); 16: endcomponent; 17: begin 18: -- v4p disable missing-association comp_inst /* do not check entire instance comp_inst */
19: -- v4p disable missing-association comp_inst.d1 /* just do not check "d1" of this specific instance comp_inst*/
20: comp_inst: comp 21: portmap (clk, rst); 22: -- v4p disable not-found unknown /* ignore the fact that "unknown" is not found in the scope */
23: unknown_inst: unknown 24: portmap (clk, rst); 25: endarchitecture;
The code-formatting can be temporarily disabled using special v4p in-code pragmas.
Use the pragma -- v4p formatting off to turn off code-formatting, starting with this very comment
Use the pragma -- v4p formatting on to re-enable code-formatting, starting with the next token after this comment
Text (as part of the comment) after the pragmas is ignored
Pragmas are only valid in the file they are declared in
Pragmas are only evaluated if they are actually part of the text-selection that is to be formatted
If the formatter is turned off, the code is taken as-is, i.e. with spaces, newlines, tabs, etc.
Examples
1: architecture rtl of ent is 2: signal s1, s2, s3 : integer; 3: -- v4p formatting off (additional ignored comment text)
4: signal s4, s5, s6, 5: s7, s8, s9: integer; 6: -- v4p formatting on 7: signal s10, s11 : integer; 8: begin 9: [...] 10: endarchitecture;
Name
Description
v4p.version
Displays the current version and build date
v4p.license
Displays information about all found licenses
v4p.license.renew
Opens the website to renew your current license
v4p.license.mac
Opens the website to update your MAC addresses
v4p.reload
Reloads the workspace, especially reloads the config.v4p files. Does not reparse the .vhd files
v4p.logfile
Opens the logfile in Visual Studio Code
v4p.thirdparty
Displays licensing and copyright information about Third Party software used in V4P
v4p.settings
Displays detailed information about V4P's configuration (libraries, excludes, settings, ignores)
v4p.masterconfig
Opens (or creates) MasterConfig, by default in home-directory
v4p.version
Displays the current version and build date
v4p.eula
Show End User License Agreement
v4p.fileinfo
Show detailed information about all files in the workspace, including code statistics
v4p.cheatsheet
Opens the CheatSheet of V4P in the browser
v4p.stats
Shows code statistics (lines of code, comments, empty lines) in a table for all files
v4p.demo
Opens a demo project in Visual Studio Code
v4p.localconfig
Opens (or creates) a local config.v4p, for the folder of the currently active document
Shortcut
Value
Remarks
[ctrl]+[,] editor.formatOnType
Enable
Required for VHDL/V4P specific (smart) indentation
[ctrl]+[,] editor.folding
Enable
Required for VHDL/V4P specific code folding
[ctrl]+[,] editor.foldingStrategy
Auto
Required for VHDL/V4P specific code folding
[ctrl]+[,] editor.suggest.showSnippets
Enable
Required, enables VHDL/V4P specific snippets
[ctrl]+[,] editor.semanticHighlighting.enabled
True, ConfiguredByTheme
Required, needed for semantic token highlighting. The color theme must support semantic highlighting!
[ctrl]+[,] editor.showFoldingControls
Always
Optional, disallow the folding controls to disappear
[ctrl]+[,] editor.minimap.enabled
Enable
Optional, shows the mini-map next to the scrollbar. Very useful.
[ctrl]+[,] editor.minimap.showSlider
Always
Optional, disallow the minimap slider to disappear
[ctrl]+[,] editor.minimap.size
Fit
Optional, fit the minimap to show the preview of the entire file
[ctrl]+[,] editor.snippetSuggestions
top, bottom or inline
Optional, define the snippets' position inside the code-completion list
[ctrl]+[,] editor.wordBasedSuggestions
Disable
Recommended, avoid code-completion suggestions from Visual Studio Code. Only show V4P's code-completion suggestions.