Vivado synthesis uses conditional identifiers that can control synthesis based on the tool or version.
For example, the following code creates an extra output if the tool is a synthesis tool :
entity my_ent is port(
clk : in std_logic;
in1, in2 : in std_logic;
`if TOOL_TYPE = "SYNTHESIS" then
new_out : out std_logic;
`end if
out1 : out std_logic;
Vivado synthesis supports the following conditional identifiers.
| Identifier | Value |
|---|---|
| VHDL_VERSION | Same as in VHDL compile version |
| TOOL_TYPE | “SYNTHESIS” |
| TOOL_VENDOR | “AMD/XILINX” |
| TOOL_NAME | “Vivado” |
| TOOL_EDITION | “ML Editions” |
| TOOL_VERSION | Current tool version |
Note: The values for these identifiers are case
sensitive.