representación de palabras clave

1

Aquí hay algunas representaciones de declaraciones VHDL simples.

Sintetizando

        Y <= A and B ; 

resultados en

"Pág. >

Sintetizando

         A <= B or C ;
         D <= A and E ;

resultados en:

O entrada de puerta a la puerta AND http://www.takeprint.com/wp -content / uploads / 2011/01 / 221.jpg .

¿Cuáles son las representaciones de las siguientes palabras clave?

  • < =
  • : =
  • proceso
  • entidad
  • espera
  • si-entonces
  • caso
  • mientras que
  • para

VHDL es un lenguaje basado en hardware. Por lo tanto, todas las palabras clave deben tener una representación en la vida real.

Por ejemplo, después de sintetizar:

          <=

¿Cuál será el resultado, solo un cable?

Para una síntesis más compleja, ¿cuál será el resultado de

for index in 1 to 32 loop
    if product_register(0) = '1' then
        product_register(63 downto 32) := produce_register(63 downto 32) + multiplicand_register(31 downto 0) ;
    end if ;
    product_register(63 downto 0) := '0' product_register(63 downto 1) ;
end loop ;

Cuando usamos for o while , después de sintetizar, ¿qué es la representación?

    
pregunta Community

2 respuestas

7

Creo que estás confundido acerca de la naturaleza de VHDL. No hay un mapeo 1-1 entre las palabras clave VHDL y las puertas, más bien, la mayoría de las palabras clave que se enumeran están compuestas de muchas puertas.

Las puertas lógicas estándar son:

  • NO
  • Y
  • O
  • XOR
  • NAND
  • NOR
  • XNOR

Hay algunas estructuras adicionales, como flip-flops, pero el número de representaciones básicas es pequeño. Las abstracciones de nivel superior como while y if-else están compuestas por un gran número de estas puertas, que a su vez están compuestas por una serie de transistores. Los transistores son el hardware real, no hay un componente electrónico básico para los símbolos que ha mostrado. Todo lo que está por encima de los transistores es una abstracción del hardware.

Si está familiarizado con la arquitectura de un programa en software, lo que pregunta es muy similar a la pregunta "¿Cuál es la instrucción de ensamblaje para la palabra clave class o Array.length ?" No hay ninguno. Esas palabras clave se compilan a una serie de instrucciones de montaje; no hay un mapeo 1-1.

    
respondido por el Kevin Vermeer
2

Para responder a algunas preguntas que has hecho en orden inverso:

  

VHDL es un lenguaje basado en hardware.

Es un lenguaje de descripción de hardware.

  

Por lo tanto, todas las palabras clave deben tener   Una representación en la vida real.

No todo lo que se puede escribir en VHDL se puede asignar a hardware real (piense en los tipos access , que son como punteros). Algunos de estos bits no sintetizables son muy útiles para modelar su hardware real en simulaciones sin tener que entrar en el mínimo grado de agilidad como es necesario para el código sintetizable.

  

¿Cuáles son las representaciones de las siguientes palabras clave?

A menudo depende del contexto:

  

< =

Una asignación de señal: controla un valor en una señal. Si eso sucede dentro de un proceso cronometrado, obtienes un flip-flop como el conductor (potencialmente con algunas puertas alimentando su entrada D). Si (como en sus ejemplos) lo está utilizando en asignaciones continuas, simplemente obtiene las puertas lógicas.

  

: =

Una asignación de variable: esto crea algunas puertas lógicas. Si lees la variable "arriba" de la asignación en el proceso, también obtienes un flipflop.

  

proceso

con una señal de reloj en la lista de sensibilidad y una construcción de tipo if rising_edge(clk) , esto se puede usar para inferir flipflops. En el código sintetizable evito usar procesos para otra cosa que no sea la lógica sincronizada. En el código no sintetizable, puede usar wait s y otras estructuras de flujo de control para realizar modelos de comportamiento de hardware externo.

  

entidad

Vea esta pregunta: VHDL: Componente vs Entidad

  

espera

En términos de hardware real, se puede utilizar process con wait until rising_edge(clk) para inferir flipflops: enlace . En la simulación, puede wait para una variedad más amplia de cosas, incluido el tiempo simulado.

  

si-entonces   caso

Lógica de "selección" (como por ejemplo un mux)

  

mientras   para

Los bucles en procesos cronometrados, se pueden usar para varias cosas, por ejemplo, como abreviatura, para hacer lo mismo con muchos elementos de la matriz de una vez en un solo ciclo de reloj.

No tengo idea acerca de su última pregunta, el bucle que muestra tiene un índice que no se usa dentro del bucle, por lo que simplemente será ignorado (simplemente está haciendo exactamente lo mismo una y otra vez)

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas