14 votos

VHDL: Arquitectura y la nomenclatura de interpretación

Nota: estoy usando Xilinx ISE y tienen un FPGA de la junta de trabajar (con interruptores y luces, y así sucesivamente), y me he hackeado algunos proyectos simples hasta ahora. Al mismo tiempo estoy leyendo varios tutoriales para construir una base para lo que estoy haciendo.

He visto varias entidades y sus arquitecturas mencionadas en los materiales de referencia que he estado pasando, pero el nombre es a menudo confuso. A menudo, en lugar de "arquitectura de la rtl de.." o "la arquitectura estructural de..." voy a ver "la arquitectura foo ..." o incluso "arquitectura de arco de..."

Me doy cuenta (tarde) de que la arquitectura nombre es tan arbitraria como la entidad de nomenclatura, aunque hay guías de estilo que sugieren más consistente de las convenciones de nomenclatura se puede utilizar para evitar este problema. Esto me lleva a un par de preguntas:

  • Buscando en una entidad, ¿cómo se puede determinar el arquitectónica modelo utilizado sin indicios de la arquitectura de nombre? RTL, conductuales, estructurales... que parece ser muy similar a mi alumno del ojo (suponiendo que los ejemplos que he visto eran en realidad el nombre de correctamente). Un simple pero ejemplo obvio sería útil aquí (o un puntero a uno).

  • Si especifica varias arquitecturas para una entidad única (que yo comprender es posible) ¿usted simplemente dar las arquitecturas nombres diferentes en el mismo archivo o...?

  • Son los nombres de la arquitectura confinado a una entidad determinada (que es, es hay algún problema con los "espacios de nombres" utilizando la misma arquitectura nombre a través de varias entidades)?

Edit: y uno más:

  • Parece que hay una distinción entre RTL y de comportamiento, pero como se mencionó anteriormente, no estoy muy de ver en los ejemplos que he visto (a menudo sólo veo una arquitectura, que está definido). Es una arquitectura más común que los otros?

Lo que he estado buscando es una completa pero sencilla aplicación en los componentes del proyecto (componentes), por escrito, utilizando las mejores prácticas (adecuada nomenclatura, no todos hacinados en un archivo, etc.) pero aún tengo que encontrar uno. Me parece adecuada redacción de proyectos de ejemplo muy útil para iluminar a los principios básicos y las mejores prácticas. Si usted sabe de un proyecto de ejemplo me gustaría estar agradecidos por un puntero para que así. (Si nada más, tal vez una vez me figura esto puedo compartir una de mis propios...)

8voto

Jonas Puntos 1764

Aquí están los tipos de arquitectura:

Comportamiento:

Notas generales:

  • Tradicionalmente ninguna jerarquía (un solo archivo, sin componentes instanciado), aunque esto varía entre las herramientas.
  • Muy rápido para simular.
  • Las señales de los comportamientos definidos.
  • Cuando el comportamiento es utilizado para la simulación sólo puede contener no synthesizable código. La intención de comportamiento para la síntesis, naturalmente, deben synthesizable.

Xilinx notas específicas

  • Generalmente núcleo generador de modelos pre-síntesis .archivos vhd

Estructurales:

Definición General

  • Sólo se crea una instancia de componentes y cables juntos (jerárquica).
  • Más lento para simular de comportamiento.
  • No hay señal real el comportamiento de definición en el nivel superior.
  • Sólo synthesizable código.

Xilinx xpecific notas

  • Núcleo generador de modelos no toman temporización en cuenta.
  • Generalmente núcleo generador de modelos de crear instancias de post-síntesis de listas

Las anteriores son, básicamente, la principal tradicional de dos animales de la arquitectura. Muy comúnmente una "mezcla" de la definición, que contiene las propiedades de ambos.

RTL:

RTL lo que en realidad es poner en la FPGA al final del día. Así que esto es synthesizable código que define el comportamiento del sistema y se compone de un código de jerarquía:
La parte inferior de las capas será synthesizable de comportamiento, donde los entresijos de la señal de comportamiento se define, y los niveles superiores será estructural, donde el comportamiento de los componentes están atados juntos para crear un gran nivel superior "diagrama de bloques" si se quiere.

En varias arquitecturas:

Arquitecturas pueden ser todas en un solo archivo o en varios archivos. La única cosa importante es que la entidad se compila en primer lugar, y que la arquitectura para ser utilizado se especifica.

Este libro es muy práctico y detalles de este tipo de cosas bastante bien.

No hay ninguna regla dura y rápida acerca de cómo deben hacerse las cosas en términos de tener distintos de comportamiento y modelos estructurales o simplemente la mezcla de ellos. Generalmente en grandes firmware diseños (o en grandes corporaciones, donde el código es compartida y reutilizada) es útil distinguir entre los dos para simplificar el tema, sin embargo al final del día se llega a lo que funcione para usted.

6voto

Martin Thompson Puntos 6509

Buscando en una entidad, ¿cómo se puede determinar el arquitectónica modelo utilizado sin indicios de la arquitectura de nombre?

No puedes, cuando se crea una instancia o configurado la arquitectura puede ser especificada (si hay más de uno para elegir) o un valor predeterminado será el elegido para usted.

Si especifica varias arquitecturas para una entidad única (que yo comprender es posible) ¿usted simplemente dar las arquitecturas diferentes los nombres en el mismo archivo o...?

Se les dan diferentes nombres. No tiene que ser dentro del mismo archivo (de hecho VHDL se preocupa mucho menos de lo que usted piensa acerca de lo que está en qué archivo)

Son los nombres de la arquitectura confinado a una entidad determinada (que es, es hay algún problema con los "espacios de nombres" utilizando la misma arquitectura nombre a través de varias entidades)?

Ellos están "conectados" a una entidad, por lo que pueden ser reutilizados.

A menudo utilizo a1 como mi arquitectura para todo synthesisable como

  • rtl implica menor nivel (para muchos lectores) que escribo.
  • behavioural a menudo implica no synthesisable (para algunos lectores)
  • synth es utilizado por el sintetizador para su modelo (de lo contrario tendría que utiliza)

a1 ha sido no-conflicto tan lejos y no causar confusión ;)

Si, de hecho tengo más de una arquitectura, que tienden a nombre de ellos muestra un (por ejemplo hard_multipliers y lut_multipliers de un filtro que crea - o no - MUL18 bloques).

Muy a menudo, usted sólo tiene una arquitectura, por lo que no importa. Buena nombres de entidad son mucho más importantes.

Parece que hay una distinción entre RTL y de comportamiento, pero como se mencionó anteriormente, no estoy muy de ver en los ejemplos que he visto (a menudo sólo veo una arquitectura, que está definido). Es una arquitectura más común de lo que los otros?

Es histórico - que no solía ser capaz de sintetizar el "comportamiento" de código (que en un punto se incluye cosas tales como añadir!) - así que ha creado una versión RTL que crea una instancia de complementos y similares. (Que es como yo lo entiendo - he estado escribiendo de comportamiento (y aún synthesisable) código desde que empecé a VHDLing en acerca de 1999!)

2voto

Rob Lachlan Puntos 7880

Primero de todo, el mundo real de la arquitectura y los diseños pueden no ser estrictamente clasificados como eso. ¿Por qué limitarse? Puede que desee crear instancias de otras entidades y conectar con ellos "estructuralmente", pero agrega un proceso o concurrente de asignación de aquí y de allá para añadir un poco de "rtl" de la lógica, y tal vez el uso de algunos de "comportamiento" de la codificación de los patrones, de modo que el sintetizador de figuras de algunos de los detalles que no le importa (como la adición sin específicamente de crear instancias de un sumador con el área y/o la canalización/parámetros de rendimiento), todos en la misma arquitectura.

Lo que es más importante, usted debe entender lo que está synthesizable en la actual asic/fpga tecnologías y lo que no lo es, y esto es independientemente de la arquitectura de modelo.

Una entidad puede ser implementado de varias formas, incluso permitiendo ligeramente diferentes comportamientos, de modo que usted puede tener varias arquitecturas para la misma entidad. Además, usted puede tener una arquitectura para la simulación (habitualmente no synthesizable) que pueden simular más rápido que el "real" de la versión, que puede ser útil cuando se testbenching grandes diseños como un todo. Usted daría a estas arquitecturas nombres que te ayudarán a recordar lo que los hace diferentes a los demás, y simplemente bhv/str/rtl no suele ser suficiente o preciso, dado el carácter híbrido del mundo real diseños.

Respecto a su pregunta específica, la arquitectura de la declaración está ligado a un nombre de la entidad, por lo que no hay problemas de espacio de nombres con las arquitecturas del mismo nombre para diferentes entidades. Sólo el uso de diferentes nombres para las arquitecturas para la misma entidad.

Arquitecturas pueden residir en diferentes archivos, usted sólo tiene que asegurarse de que la entidad de la declaración es compilado en primer lugar.

Usted puede seleccionar que la arquitectura a utilizar al crear instancias de la entidad, o mediante la configuración de las declaraciones. Si no, el valor predeterminado es 'normalmente' el último de la arquitectura que el compilador vio por una entidad determinada declaración.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X