WORK库表示当前正在被处理的库。当前设计的源文件所在的库(或目录)即为WORK库。分析器对VHDL源文件分析的结果存入WORK库,供以后的分析、综合过程使用。WORK不是库名,但可代替库名。
  STD库是VHDL标准定义的一个标准库,其中包含2个程序包由VHDL标准定义:标准程序包STANDARD和文件输入输出程序包TEXTIO。程序包STANDARD中定义了如下项目:
  · 类型BIT, BIT_VECTOR,BOOLEAN,CHARACTER和STRING;assert语句中的SEVERITY_LEVEL类型;
  · 类型INTEGER和REAL以及INTEGER的子类型NATURAL和POSITIVE;
  · 类型TIME;
  · 函数NOW,其返回值是当前的模拟时刻。
  STD库中另一个程序包是TEXTIO,该程序包中含有支持VHDL的ASCII码输入/输出操作,以及文件子系统的类型声明与子程序声明。除下基本定义外,它还包括对每个预定义类型对象的读写过程、对一整行的读写过程以及对行结束或文件结束的条件进行测试的函数(参见附录)。
  设计库中的对象即为编译单元。前面已经说过,编译单元可分为两类:初级单元和次级单元。初级单元包括程序包声明、实体声明以及配置声明,次缴单元包括结构体和程序包体。应该注意的是;次级单元不输出任何名字,所有外部可使用的名字都来自初级单元,因此,对于一个特定的库而言,use语句中只能出现初级单元名。


  一个设计实体被分析时,可以访问多个设计库中的信息。被访问库的逻辑名由恰好在该设计实体描述之前的库语句给出,库语句的形式为:
      library<库逻辑名表>;
  分析器按照某种特定实现所建立的规则,对库语句中的逻辑名表中的每个库进行定位。逻辑名表所表示的各个设计库中的初级单元名,在该库语句之后的设计实体中的任何地方都可以通过选项(即带有前缀、后缀的表示法)而成为可见。
  在某实体中可见的设计库分为两类,一个工作库WORK和多个资源库。工作库中存放分析过程(一般说来是其中间表示形式)的结果,资源库中含有其他一些信息,例如,分析时单元所引用的实体声明和程序包声明。因此,分析过程不能对资源库做写入操作,事实上,VHDL做了如下假定:资源库的内容在分析过程中不可更改。
  每个分析过程都拥有一个工作库,在单元声明之前已隐式含有库语句:
      library WORK
自动使工作库对此分析单元可见。但要注意,库WORK中的设计单元(程序包声明和包体)并不能直接成为可见,还要使用use语句才能使WORK库中的元素成为可见。

  WORK值时表示当前设计源程序所在的库,"WORK"不是其真正的库名,他可以是任意库名。当该设计结束,而另外的新的设计将该设计作为资源库而需要引用该设计的内容时,要用显式库语句library引用其正式名字。这时新的设计成为WORK库。

  每个分析过程都要使用STD库提供的类型和对象,因此,VHDL通过隐含语句
  library STD;use STD.STANDARD.all
使库STD对分析单元可见,用户不必显式声明。同时,在分析过程中,STD中的所有元素以及程序包STANDARD中的所有声明都直接可见(即对它们的引用不必提供其全名)。显然,STD是一个特殊资源库。
  如果某个分析过程需要其他的资源库,则必须通过显式的库语句使这些资据库成为可见。