Code Tags

VSG supports inline tags embedded into code to enable or disable rules. This can be useful in fine tuning rule exceptions within a file. The code tags are embedded in comments similar to pragmas, and must be on it’s own line.

Full rule exclusion

Entire portions of a file can be ignored using the vsg_off and vsg_on tags.

-- vsg_off
process (write, read, full) is
begin
  a <= write;
  b <= read;
end process;
-- vsg_on

The vsg_off tag disables all rule checking. The vsg_on tag enables all rule checking, except those disabled by a configuration.

Individual Rule Exclusions

Individual rules can be disabled by adding the rule identifier to the vsg_off and vsg_on tags. Multiple identifiers can be added.

-- vsg_off process_016 process_018
process (write, read, full) is
begin
  a <= write;
  b <= read;
end process;
-- vsg_on

The bare vsg_on enables all rules not disabled by a configuration.

Each rule can be independently enabled or disabled:

-- vsg_off process_016 process_018
process (write, read, full) is
begin
  a <= write;
  b <= read;
end process;

-- vsg_on process_016
FIFO_PROC : process (write, read, full) is
begin
  a <= write;
  b <= read;
end process;

-- vsg_on process_018
FIFO_PROC : process (write, read, full) is
begin
  a <= write;
  b <= read;
end process FIFO_PROC;

In the previous example, the process_016 and process_018 are disabled for the first process. Process_018 is disabled for the second process. No rules are disabled for the third process.

Next Line Rule Exclusions

Rules can be disabled for a single line using the vsg_disable_next_line tag. Multiple identifiers can be added to a single tag..

-- vsg_disable_next_line process_016
process (write, read, full) is
begin
  a <= write;
  b <= read;
  -- vsg_disable_next_line process_018
end process;

In the above example, process_016 will only be disabled for the line with the process keyword. Successive processes without labels will be flagged by process_016.

Sequential next line exclusions will also be honored:

-- vsg_disable_next_line process_002
-- vsg_disable_next_line process_016
process(write, read, full) is
begin
  a <= write;
  b <= read;
  -- vsg_disable_next_line process_018
end process;

In the above example, both process_002 and process_016 will be disabled for the line starting with the process keyword.

Comments in code tags

Code tags themselves are comments, however there is a method to allow commenting of the code tag on the same line. The colon character, :, can be used to document why the code tag exists.

-- vsg_off process_016 process_018 : VSG errors out on the following code
process (write, read, full) is
begin
  a <= write;
  b <= read;
end process;
-- vsg_on process_016 process_018 : Done with exclusion until VSG is fixed