Sigasi Visual HDL can check for a number of problems related to deferred constants that the VHDL language reference mandates:
Duplicate declaration
A deferred constant cannot reassign its initial value to a different value (rule 54).
package pkg is
constant foo : integer := 2;
constant bar : boolean;
end package;
package body pkg is
constant foo : integer := 3; -- foo was already assigned a value
constant bar : boolean := false;
end package body;Missing full constant declaration
If a constant declaration in a package has no initial value, it shall have a deferred constant declaration in the package body with a matching initial value (rule 233).
package pkg is
constant a : integer;
constant b, c : boolean;
end package;
package body pkg is
constant a : integer := 3;
constant b : boolean := false; -- c was not assigned a value
end package body;Incorrect full constant declaration subtype
The type of a deferred constant declaration in the package body must match the type of the constant declaration in the package (rule 234).
package pkg is
constant foo : boolean;
constant bar : integer;
end package;
package body pkg is
constant foo : integer := 8; -- foo was declared as a boolean in the package
constant bar : integer := 7;
end package body;