エイリアス

-- これは単に別名をつけるだけ。
alias new_name is original_name;

-- インデックスを指定して(あるいはスライスして)その部分にだけ別名をつけることも可能
signal alu_result: unsigned(31 downto 0);
alias sign_bit is alu_result(31);

-- こうすれば範囲境界が変更できる。
signal operands: std_logic_vector(31 downto 0);
alias left_operand: std_logic_vector(15 downto 0) is operands(31 downto 16);
alias right_operand: std_logic_vector(15 downto 0) is operands(15 downto 0);

-- オーバーロードしたサブプログラム(ここではプロシージャ)にエイリアスを利用すれば、バージョンごとに明確に使い分けることができる。
-- (訳註: 別のプロシージャを定義したほうが早いような気もするが)        
procedure sort(a, b: in integer; x, y: out integer) is ...
procedure sort(a, b: in unsigned; x, y: out unsigned) is ...
alias sort_int is sort[integer, integer, integer, integer];
alias sort_uns is sort[unsigned, unsigned, unsigned, unsigned];