Vhdl introduccion



Descargar 95,53 Kb.
Página5/6
Fecha de conversión22.07.2017
Tamaño95,53 Kb.
1   2   3   4   5   6

CONCEPTO DE TIPO DE DATO

  • Todos los objetos en VHDL son de un tipo dado.
  • Un tipo de dato se caracteriza por el conjunto de
  • valores que puede tomar y los operadores que
  • se le puede aplicar a un objeto.

TIPO

  • El tipo define un conjunto de valores y una asignación a esa señal debe ser un valor definido por ese conjunto.
  • Cuando hacemos una asignación a una señal, los tipos en ambos lados del operador de asignación de señal deben corresponder.

Declaraciòn de tipos de datos

  • Sintaxis general
  • type id is definiciòn_tipo;
  • Ejemplos
  • type DiaMes is range 1 to 31 ;
  • type Dela31 is range 1 to 31;
  • type Orientacion is (norte,sur,este,oeste);
  • Uso
  • constant DiasEnero : DiasMes :=31;
  • variable DiaHoy : DiaMes;
  • signal Direcciòn : Orientacion;

Los tipos deben corresponder

  • Cuando hacemos una asignaciòn a una señal,
  • los tipos en ambos lados del operador de
  • asignaciòn de señal deben corresponder.
  • Ejemplo:
  • Entity HALFADD is
  • port (A,B : in bit;
  • SUM, CARRY : out bit);
  • end HALFADD;

Tipos predefinidos

  • Escalares
  • Enumerados
  • BOOLEAN,BIT,CHARACTER
  • Enteros
  • INTEGER
  • Físicos
  • TIME
  • Flotantes
  • REAL
  • Compuestos
  • Arrays
  • STRING,BIT_VECTOR

Otros

TIPO BOOLEAN

  • Este tipo de dato puede tomar un valor
  • falso o verdadero
  • TRUE
  • FALSO
  • Cuando se comparan dos valores de tipo boolean
  • el resultado también es de tipo boolean.

TIPO BIT

  • El tipo BIT sirve para modelar niveles lógicos.
  • Conjunto de valores ‘0’ y ‘1’
  • Operaciones definidas sobre el:
  • Lógicas: not,and,nand,or,nor,xor y xnor
  • Comparación: ‘=‘, ‘/=‘,’<‘, ‘<=‘, ‘>’, ‘>=‘
  • Concatenación: &
  • type bit is (‘0’, ‘1’)

TIPO CHARACTER

  • Se utiliza para definir un solo carácter.
  • ‘A’
  • ‘b’
  • ‘x’

TIPO INTEGER

  • Un tipo integer es un dato cuyo contenido es un
  • valor numerico entero que esta dentro del siguiente rango :
  • 2,147,483,647 a +2,147,483,647.
  • Ejemplos
  • +1
  • 682
  • -139
  • +239
  • TYPE Integer IS 0 TO 255;
  • TYPE index IS RANGE 7 DOWNTO 1;

TIPO TIME

  • type time is orange -2147483647 to 2147483647
  • units
  • fs;
  • ps = 1000 fs;
  • ns = 1000 ps;
  • us = 1000 ns;
  • min = 60 sec;
  • end units;

TIPO REAL

TIPO STRING

TIPO BIT_VECTOR

  • El tipo bit_vector es un arreglo de bit:
  • Permite modelar buses con un solo driver
  • Solo admite valores ‘0’ y ‘1’
  • "0101_1001"
  • x"00AF"
  • type bit_vector is array (natural range <>) of bit;

SUBTIPOS DE DATOS

  • VHDL permite la definición de subtipos
  • que son restricciones o subconjuntos de
  • tipos existentes.
  • Hay dos tipos, el primero son subtipos
  • obtenidos a partir de la restricción de un
  • tipo escalar a un rango.
  • Ejemplo:
  • SUBTYPE raro IS integer RANGE 4 TO 7;
  • SUBTYPE digitos IS character RANGE '0' TO '9';
  • El segundo tipo de subtipos son aquellos que restringen el rango de una matriz:
  • Ejemplo:
  • SUBTYPE id IS string(1 TO 20);
  • SUBTYPE word IS bit_vector(31 DOWNTO 0);

Tipos enumerated.

  • Un tipo de datos definido por el usuario es conocido en VHDL como un tipo enumerated. Lo más común es definir los tipos dentro de un paquete, arquitectura o proceso, y la mayoría de las herramientas de síntesis son capaces de sintetizar VHDL que contiene tipos enumerated.

Síntesis de tipo enumerated

  • La mayoría de las herramientas de síntesis pueden construir lógica desde una señal del tipo enumerated. Usualmente la señal tiene el número mínimo de bits requerido para representar el número de valores posibles. Este ejemplo muestra cada como cada valor es usualmente codificado en la implementación del hardware.
  • RESET “00”
  • IDLE “01”
  • RW “10”
  • INT_CYCLE “11”
  • Mínimo número de bits
  • type MY_SATE is
  • (RESET, IDLE, RW_CYCLE, INT_CYCLE);
  • Codificación de derecha a izquierda en secuencia binaria

TIPO PREDEFINIDO (enumerated)

  • Son especificados como código fuente de VHDL, y se encontran en un paquete llamado STANDARD:
  • Boolean
  • Time
  • Bit
  • Bit_vector
  • Character
  • String
  • Integer
  • real

STANDARD_LOGIC

  • El Estándar 1164 está definido en código fuente VHDL puro y describe un tipo de dato llamado “std_ulogic”, el cual define los nueve estados posibles.

TIPO STD_ULOGIC

  • El tipo std_ulogic es un tipo de dato unresolved, y puede tener un solo driver. De hecho, la “u” se refiere al hecho de que es de tipo unresolved.
1   2   3   4   5   6


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal