VHDL提供层次化结构描述的手段。一个电路系统用一个实体描述,组成该电路系统的每个元件实际上也是一个一个的实体。整个电路系统可以作为更大型电路系统的一个元件。VHDL结构模型就是指对这些元件的相互关联和引用的描述。因此,实体可以表示整个系统、一个子系统、一个线路板、一个芯片、一个逻辑门,或者其他任何级别的抽象描述。
  我们已经知道,实体的描述分两部分:实体声明(entity)和结构体(architecture)。实体声明定义实体的外部接口,结构体规定该实体的内部结构或行为。本节我们讨论用实体组成层次化结构描述的一些问题。
符号
模式
读入信号值
得到新信号的值
in
输入
--
--
out
输出
--
--
inout
双向
--
--
buffer
缓冲
--
--


  inoutbuffer的区别为:inout可接多个信号源(决断信号), 而buffer只能接一个信号源,或与另一个buffer端口信号相连接。
  下面的例子中对输入信号(端口模式为in)赋值,而又断表达式中出现输出信号,都是不允许的。
  entity Wrong_way is
   port(Not_to_be_read : out Bit;Not_to_be_written:in Bit);
  end Wrong_way;
  architecture Wrong_way of Wrong_way is
  begin
   process
    begin
      --下一行中有两个错误,请注意观察
       Not_to_be_written <= Not_to_be_ read after 5 ns;
       wait for 1 us;
    end process;
  end Wrong_way;

  
信号Not_to_be_written被声明为输入信号(in),只能读,不能写,因而不能放在信号赋值语句的左边。而信号Not_to_be_read被声明为输出信号(out),因而只能写,不能读,因而不能放在信号赋值语句的右边表达式中。