¿Cómo construyo y uso mi propia biblioteca VHDL?

Estoy tratando de crear una biblioteca de componentes en VHDL. Tengo muchos archivos fuente .vhd con diferentes componentes. Idealmente, me gustaría poder instanciarlos en un diseño usando el mismo método que una biblioteca estándar (o similar)

ejemplo:

library my_lib;
use my_lib.something.all;

Y construya un diseño usando estos componentes estructuralmente. Idealmente, me gustaría mantenerlos como archivos separados porque hay archivos adjuntos de símbolos personalizados (bds) asociados.

Los símbolos solo importan cuando se usa Active-HDL (10.1). ¡Sería genial poder extraer estos archivos y usarlos en el archivo de diagrama de bloques!

Estaría usando Aldec Active-HDL (10.1), Xilinx Vivado (2014.2) y Altera Quartus (9.1 web).

Cualquier ayuda sería muy apreciada.

Respuestas (2)

Xilinx vivo :

Puede crear/cambiar la biblioteca que reside un archivo en Vivado haciendo clic en el archivo y luego haciendo clic en el botón a la derecha de la etiqueta Biblioteca en la Source File Propertiespestaña. Puede crear una biblioteca asignando un archivo a una biblioteca que no existe.

Altera cuarto II :

Puede especificar la biblioteca en Properties, por ejemplo: ingrese la descripción de la imagen aquíTambién puede modificar el archivo de configuración de Quartus II ("".qsf") para el proyecto usando set_global_assignmentopciones.

Puede mover las declaraciones de sus componentes a un paquete VHDL. Luego, este paquete se carga mediante una useinstrucción.

Un archivo no puede crear una biblioteca, pero todas las herramientas, que yo sepa, tienen la capacidad de crear una biblioteca en el proyecto y asignarles archivos. O algunas herramientas tienen un campo de propiedad de archivo para asignar el archivo seleccionado a una biblioteca.

Si su intención es ahorrar declaraciones de componentes en el encabezado de la arquitectura, también hay una sintaxis 'nueva' para especificar el nombre completo de una entidad:

myinst : entity mylib.myentity
  port map (
  ...
  );

Solo necesita nombrar la biblioteca utilizada como el conocido IEEE:

library mylib;