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

5

Estoy intentando crear una biblioteca de componentes en VHDL. Tengo muchos archivos de origen .vhd con diferentes componentes. Lo ideal sería poder crear una instancia de ellos en un diseño utilizando el mismo método que una biblioteca estándar (o similar)

example:

library my_lib;
use my_lib.something.all;

Y construya un diseño usando estos componentes estructuralmente. Idealmente, me gustaría guardarlos como archivos separados porque hay archivos de símbolos personalizados adjuntos (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.

    
pregunta Hayden DeBoer

2 respuestas

3

Xilinx Vivado :

  

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

Altera Quartus II :

  

Puede especificar la biblioteca en Properties , por ejemplo:     TambiénpuedemodificarelarchivodeconfiguracióndeQuartusII(".qsf") para el proyecto utilizando las opciones set_global_assignment .

    
respondido por el Qiu
1

Puede mover sus declaraciones de componentes a un paquete VHDL. Este paquete luego se carga con una declaración use .

No se puede crear una biblioteca con un archivo, 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 guardar 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 la conocida IEEE:

library mylib;
    
respondido por el Paebbels

Lea otras preguntas en las etiquetas