VHDL alias syntax "<< ... >>"

Greg picture Greg · Jun 25, 2013 · Viewed 11k times · Source

I'd like to understand the syntax used in the line of code below where an alternate name is created using an ALIAS declaration. Specifically, I'd like to know what the << and >> imply. An example alias statement is,

alias x2_dac_data is
   << signal server.x2_dac_data : std_logic_vector(23 downto 0) >>;

where server is an instantiated component and x2_dac_data is a signal with the component, but not listed in the port declaration.

I've reviewed Pedroni's text and a course guide, neither of which reference the << ... >> syntax as it relates to alias.

Thanks

Answer

user1155120 picture user1155120 · Jun 25, 2013

The double Less-Thans and double Greater characters (<<, >>) enclose an External Name, which is a path name to a object (e.g. signal, constant, variable) through a design model's hierarchy. The intended use is for design verification, allowing a testbench to reach objects not visible at the top level of a design.

See Peter Ashenden and Jim Lewis The Designer's Guide to VHDL (3rd Ed.), Section 18.1 External Names and Doulos VHDL-2008: Easier to use, Hierarchical Names, or IEEE Std 1076-2008, 8.7 External names.

There's an example on Page 561 of The Designer's Guide to VHDL:

alias duv_data_bus is
 <<signal .tb.duv_rtl.data_bus : std_ulogic_vector(0 to 15)>>;

The syntax is described on Page 560. Pages 559-562 are visible in the Google Book preview. The example found in The Designer's Guide to VHDL dealing with external names is also found in Chapter 2, Section 2.1 External Names of VHDL 2008 Just the New Stuff by the same authors and while without the EBNF syntax description goes further into the philosophy behind external names. Unfortunately the book's Google Book preview doesn't reach Section 2.1. Jim Lewis is organizing the P1076 Study Group of the IEEE VHDL Analysis and Standardization Group (VASG) responsible for developing the next revision of IEEE Std 1076-201X. Peter Ashenden is a long time contributor to the VHDL standardization effort as well.