元件声明指明了所引用元件的类属参数与端口的声明,但并不明确指定是哪个实体,不指定内部的功能或结构。因而,元件声明只是一个虚拟的元件模型。元件例化语句指定一个实例元件对应哪个元件模型。当然,还需要在指定实例元件或元件模型与哪个实体相对应。这需要配置指定语句或配置声明单元来实现,我们在本节后面将详细说明。
  component 元件模型名
    [generic (参数名表:类型;…)]
    port (输入端口表:[in] 类型;… )
  end component
元件声明中的端口声明与实体声明中的端口声明格式相同。例如:
  component And2
    port(I1, I2:Bit;O1: out Bit);
  end component

  
实体声明和元件声明有几个重要的区别:第一,实体声明是一个独立的库单元,而元件声明只是某个库单元中的一部分。元件声明既可以出现在结构体中,也可以出现在程序包中。第二,实体声明是对真正"存在"于设计库里的东西进行声明,而元件声明则声明了一个并不真正存在于设计库中的模板,这种外观图(端口名、类型、方向)的两种定义给VHDL以极大的灵活性。