GESTION DE LA JERARQUIA - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

GESTION DE LA JERARQUIA

Description:

GESTION DE LA JERARQUIA Modelo de un proceso El modelo de simulaci n en VHDL consiste de m ltiples procesos que se encuentran ejecut ndose secuencialmente. – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 53
Provided by: JimenaAvi
Category:

less

Transcript and Presenter's Notes

Title: GESTION DE LA JERARQUIA


1
GESTION DE LA JERARQUIA
2
Modelo de un proceso
  • El modelo de simulación en VHDL consiste de
    múltiples procesos que se encuentran ejecutándose
    secuencialmente.

3
Concurrentes vs. Secuencial
  • Este modelo puede tener cualquier numero de
    procesos.
  • El proceso es visto como una sola sentencia
    concurrente.
  • Se puede tener n número de sentencias
    concurrentes y por lo tanto cualquier número de
    procesos.
  • architecture A of E is
  • begin
  • -- concurrent statements
  • P1 process
  • begin
  • -- sequential statements
  • end process P1
  • -- concurrent statements
  • P2 process
  • begin
  • -- sequential statements
  • end process P2
  • -- concurrent statments
  • end A

4
Asignación de señales en un proceso
5
Procesos concurrentes múltiples drivers.
  • Tenemos dos asignaciones a la señal Z, realizadas
    fuera de un proceso. Las sentencias fuera de un
    proceso son concurrentes y por lo tanto Z tiene
    dos drivers
  • Architecture CONCURRENT of MULTIPLE is
  • signal A, B, C ,D std_ulogic
  • signal Z std_logic
  • Begin
  • Z lt A and B
  • Z lt C and D
  • End CONCURRENT

A B
?
?
Z
C D
6
Dentro de un proceso un solo driver.
  • architecture SEQUENTIAL of MULTIPLE is
  • signal Z, A, B, C, D std_ulogic
  • begin
  • process(A, B, C, D)
  • begin
  • Z lt A and B
  • Z lt C and D
  • end process
  • end SEQUENTIAL
  • Dentro de este ejemplo similar, las dos
    asignaciones a Z se encuentran dentro de un
    proceso. (Un proceso puede definir únicamente un
    driver en una señal)

C D
Z
7
Última asignación
  • architecture SEQUENTIAL of MULTIPLE is
  • signal Z, A, B, D std_ulogic
  • begin
  • process (A, B, C, D)
  • begin
  • Z lt A and B
  • Z lt C and D
  • end process
  • end SEQUENTIAL
  • El lenguaje define que en un proceso, la última
    asignación hecha a una señal tiene efecto, pero
    únicamente cuando el proceso se suspende (final
    del proceso)

Tiene efecto
cuando se suspende
8
Diferente significado
  • Estas mismas dos sentencias tienen significado
    muy distinto, dependiendo si se ejecutan dentro o
    fuera de un proceso.

process (A, B, C, D) begin Z lt A and B Z lt C
and D end process

Architecture X of MULTIPLE is begin Z lt A and
B Z lt C and D end X
9
Llamadas a múltiples procesos?
  • Un proceso puede ser potencialmente ejecutado
    varias veces antes de que todas las señales sean
    actualizadas.

10
Ejemplo
Proceso llamado
  • SEÑALES ASIGNADAS DESPUES DE UNA LECTURA.
  • Tenemos un proceso con asignación a la señal M, y
    el valor de M es también leído en el proceso
  • B cambia de 0 a 1.

Evento en B
  • EJEMPLO process (A, B, M)
  • begin
  • Y lt A
  • M lt B
  • Z lt M
  • end process EJEMPLO

A 0 B1 M0 Z0
11
Actualización de valores
La asignación no es inmediata!
Ejemplo process(A,B,M) begin Y lt A M ltB Z
ltM end process Ejemplo
En este punto Z sigue teniendo valor 0!
12
Actualización de valores
Z no ha sido actualizada!
  • A
  • B
  • M
  • Z

T1process Tiempo que tarda en ejecutarse el
bloque process
T1process
El proceso termina la primera ejecución
13
Debido a que M ha cambiado de 0 a 1 (por la
asignación MltB), el proceso vuelve a ejecutarse
Al ejecutarse esta línea Z no es afectada!
Segunda ejecución del proceso
Ejemplo process(A,B,M) Begin Y lt A M ltB Z
ltM end process Ejemplo
  • A
  • B
  • M
  • Z

T1process
14
Actualización de valores
  • A
  • B
  • M
  • Z

T1 process
T2 process
Termina la segunda ejecución del proceso
15
ENTRADA Y SALIDA
16
Definición de entrada/salida
  • Se necesitan dos pasos para definir las
    entradas/salidas.
  • A) El tipo buffer (entrada, salida, tres estados
    ,etc.)
  • B) La asignación de pins (pin particular del
    circuito)

17
Definición del tipo en el código
  • Inferir o instanciar la entrada y salida.
  • La herramienta de síntesis Xilinx es capaz de
    inferir automáticamente los tipos de
    entrada/salida.

18
Jerarquía separada para entrada/salida
  • Existen herramientas que no infieren en la
    entrada/salida básica.
  • Para poder instanciarlos consultar el manual de
    uso del fabricante.

Nivel Superior
Instanciación de los componentes de la lógica
del núcleo
Buffer E/S
19
Definición del tipo en la herramienta de síntesis
  • Se puede realizar de forma separada la definición
    de entrada/salida.
  • Se selecciona los tipos de buffer y se asignan a
    los puertos de la lógica del núcleo.

20
Asignación de los pins de entrada/salida
  • Asignación de pins en las Herramientas de
    Foundation.
  • User Control File (.UCF)
  • Con las herramientas de Xilinx, la asignación de
    los pins es a través del archivo (.UCF).

21
Tres estados y entrada/salida bidireccional
  • Dentro de la familia Xilinx es capaz de soportar
    entrada/salida bidireccional, de tres estados o
    con registros, etc.

22
Salida de 3 estados
  • Las herramientas de síntesis tienen la habilidad
    de inferir automáticamente celdas de
    entrada/salida tanto salidas de 3 estados como
    bidireccionales.

Código VHDL
Síntesis
EN
EN
OUT
Z
IN
OUT
Z
23
Estilo de código para inferir 3 estados.
  • El uso de la asignación de Z es la que permite a
    la herramienta de síntesis inferir en el buffer
    de tres estados.

if (EN 0) then OUT_PAD lt
BUS_OUT else OUT_PAD lt Z end if
Síntesis
EN
BUS _OUT
OUT_PAD
24
Código para inferir entradas y salidas
bidireccionales
CORE_IN lt BIDI process (CORE_OUT, BIDI) if
(EN0) then BIDI lt CORE_OUT else
BIDI lt Z end if end process
Sentencia concurrente
Síntesis
Uso de la asignación al valor Z
EN
BIDI
CORE_OUT
CORE_IN
25
Entrada/Salida con registro
  • La implementación es automática utilizando un
    registro en la celda de entrada/salida apropiada
    si esta disponible.
  • Debe soportar el uso implícito de enable y reset
    síncronos en la celda.

D
Q
Terminal de Salida
CLK
26
Inserción de registros durante MAP
  • Además las herramientas de implementación de
    Xilinx tiene un interruptor que les permite
    poner registros en las celdas de entrada/salida
    donde sea apropiado.

27
Pull-up
  • Xilinx en su mayoría de dispositivos permite el
    uso de pull-up/down, en las terminales de
    entrada/salida.

28
Requerimentos de ruteo especiales
  • En ocasiones, se requiere que las señales de
    reset y del reloj, tengan mejor velocidad y
    desempeño.
  • Sucede cuando alguna señal se distribuye en una
    red de elementos (alto fanout).
  • Si la herramienta de síntesis no infiere esta
    red, se debe especificar con STARTUP, una red
    llamada GSR (Global set/reset)

29
Redes para reloj
  • Al sintetizar Xilinx, instancia buffers globales
    automaticamente en redes de reloj.
  • Si esto no sucede, entonces debe instanciarse una
    celda de buffer global para manejar la red del
    reloj
  • Los Buffers Genéricos son

XC3000 BUFG XC5200 BUFG XC4000E
BUFGP,BUFGS
30
BUFG
  • Puede ser aplicado sobre un IBUF (buffer de
    entrada), o sobre redes internas que manejan
    señales de CLK.
  • El efecto que tiene es conectar una señal, por la
    ruta mas corta, a la red sobre la que se aplica
    el BUFG
  • Ejemplos
  • BUFG CLK mapea hacia una línea global de
    reloj (GCK)
  • BUFG OE mapea hacia una línea global de
    control 3-estado.
  • BUFG SR mapea a una linea global de control
    set/reset

31
Sintaxis BUFG
  • attribute BUFG string
  • attribute BUFG of signal_name signal is
    CLKOESRDATA_GATE

32
Señales internas de 3 estados
  • El uso de buffers internos ayuda en ocasiones a
    simplificar el diseño
  • Estos buffers pueden ser implementados de tres
    maneras
  • - tres estados
  • - and cableada
  • - or-and cableada
  • Para el uso de un mux 5-1, el uso de estos
    elementos simplifica el diseño

33
Mux 5-1 con Buffers internos
Xilinx infiere cuando instanciar automáticamente
buffer, (BUFT)
34
Decodificadores amplios(Wide Edge Decoder)
  • En ocasiones es de mucha utilidad contar con un
    decodificador de direcciones, por ello Xilinx
    tiene circuiteria dedicada sobre el contorno del
    dispositivo, por lo que las señales de entrada
    pueden ser decodificadas. Estos decoficadores son
    implementados con celdas and y pull-up.
  • Existe el tipo WAND, que permite instanciar este
    tipo de decodificadores.

35
TIEMPO
  • VHDL nos permite modelar el tiempo, que es una
    parte importante al describir sistemas
    electrónicos.

36
ESTRUCTURA
  • Composición de elementos.

37
ENTIDAD
  • La entidad en VHDL describe la interfase de un
    bloque jerárquico, sin describir su
    comportamiento.
  • La entidad es equivalente a un símbolo en un
    diseño basado en una estructura esquemática.
  • Es la porción de código que permite definir en
    particular Entradas y Salidas

38
ENTIDAD Informaciones Complementarias
  • Equivalente a símbolos en los esquemas.
  • Los ports de entrada/salida deben
    imperativamente estar declarados dentro de la
    entidad y definir su modo
  • in, out, inout, buffer.
  • Modo por defectoin
  • - Los ports pueden igualmente ser declarados en
    forma de señales simples (ej. Bit) o en forma
    de bus (ej bit_Vector).

39
EJEMPLO DE ENTIDAD
  • Ejemplo
  • entity Ejemplo is
  • port(
  • A,Bin bit_vector(7 downto 0)
  • SELin bit
  • Mux_ORout bit )
  • end Ejemplo

Equivalencia Esquemática
40
ENTIDAD Sintaxis de declaración
  • entity EJEMPLO is
  • port(Lista puertos de entrada/Salida
    comprimiendo
  • Nombre_de_señalmodo y tipo.)
  • end EJEMPLO
  • --Los corchetes indican que es opcional usar
    de
  • --nuevo el nombre de la entidad después de la
    palabra
  • -- clave end.
  • El nombre dado a la entidad puede ser cualquiera.
    (excepto las palabras reservadas).
  • Dar de preferencia el mismo nombre a la entidad y
    al fichero VHDL (En este caso EJEMPLO.vhd)
  • La lista de puertos está comprendida entre dos
    paréntesis y seguida de un punto y coma.
  • Nombre de la entidad opcional después de la
    palabra end.

41
ARQUITECTURA
  • Porción de descripción del comportamiento del
    dispositivo a sintetizar.
  • La arquitectura describe el comportamiento de la
    entidad.
  • Esta asociada a una entidad
  • (dentro del mismo fichero)
  • Posee una parte declaratoria y una parte
    operatoria.

42
Entidad y Arquitectura
  • Una entidad puede tener mas de una arquitectura.
  • Una aplicacion es útil, esto es cuando un diseño
    es descrito a varios niveles de abstracción
    pueden existir descripciones a nivel de
    comportamiento, RTL y de compuertas, del mismo
    diseño, o varias formas de describir el mismo
    circuito.

43
PAQUETE
  • Un paquete tiene una colección de definiciones
    que pueden ser referenciados por varios diseños
    al mismo tiempo.

44
ARREGLOS
  • Son elementos del mismo tipo.
  • VHDL define dos tipo de arreglo estándar
    bit_vector y string.
  • Un arreglo en VHDL tiene las siguientes tres
    características
  • 1.-El tipo de elementos en el arreglo (tienen
    que ser del mismo tipo)
  • 2.-La longitud de el arreglo
  • 3.-Los índices del arreglo
  • bit_vector representa un tipo especial de
    arreglo en el cual el numero de bits o la
    longitud del arreglo no es restringida y es
    puesta en la declaración del objeto

45
bit string literal.
  • Es una notación para especificar el valor de un
    bit_vector.

46
Asignación por posición.
  • Dos objetos de tipo arreglo pueden ser asignados
    uno al otro, mientras sean del mismo tamaño y del
    mismo tipo
  • Notar que la asignación es por posición y no por
    número de índice. El concepto de bit más
    significativo no esta definido en VHDL.

signal Z_BUS bit_vector(3 downto
0) signal C_BUS bit_vector(1 to 4)
47
Parte de un arreglo. (Slices)
  • Una parte de un arreglo unidimensional, en
    general, y un bit_vector en particular puede ser
    referenciado, inclusive por un solo elemento. La
    dirección de esta parte (es decir, to o downto)
    debe corresponder con la dirección del arreglo
    declarado.

signal Z_BUS bit_vector(3 downto
0) signal C_BUS bit_vector(1 to 4)
48
Concatenación y agregados.
  • Ahora se discuten dos conceptos conocidos como
    concatenación y agregado. Estos son dos métodos
    que sirven para asociar señales entre ellos y
    asignarlas a un arreglo de objetos.

49
Concatenación
  • VHDL tiene la habilidad de asociar bits
    individuales y vectores para formar una
    estructura de arreglo. Esto es conocido como
    concatenación y utiliza el operador ampersand
    (). Los ejemplos muestran que bits individuales
    y vectores de bits pueden ser concatenados para
    formar nuevos vectores

50
Agregados.
  • Otro método de asignación a elementos de un
    arreglo es conocido como agregado.
  • Un agregado esta contenido entre paréntesis y
    las asignaciones a cada elemento son separadas
    por comas.

Z_BUSlt(A, B, C, D)
51
Especificando los elementos por nombre.
  • Es posible asignar a los elementos de un arreglo
    por nombre o por posición.
  • Este ejemplo demuestra que también un rango del
    arreglo puede ser asignado, siempre y cuando el
    mismo valor sea asignado a cada elemento del
    rango.

Xlt (3gt1, 1 downto 0 gt1, 2gtB)
52
Others, soporte para síntesis.
  • Los agregados tienen la habilidad de usar la
    sentencia others, la cual asignará un valor a
    todos los otros elementos de un arreglo que no
    han sido especificados. Finalmente, no todas las
    herramientas de síntesis soportan el uso de
    agregados, por lo que puede ser necesario usar
    concatenación para realizar manipulaciones sobre
    arreglos.

Xlt (3gt1, 1 gt0, othersgtB)
Write a Comment
User Comments (0)
About PowerShow.com