Teoría de Diseño lógico

Teoría de Diseño lógico Diseño lógico EUI – ULPGC Jose Torres 1 de 45 1. Dispositivos de lógica programable Son circuitos integrados cuyas funcio

3 downloads 58 Views 309KB Size

Recommend Stories


CAUSA DE CANONIZACIÓN DE LA SIERVA DE DIOS. (29 de Marzo de de Agosto de 2004)
CAUSA DE CANONIZACIÓN DE LA SIERVA DE DIOS MADRE MERCEDES DE JESÚS EGIDO IZQUIERDO IMPULSORA DE LA VUELTA A LAS FUENTES DE LA ORDEN DE LA INMACULADA

1999, de 23 de marzo, de ORDEN de 23 de marzo de 1999 por la que
13502 Sábado 10 abril 1999 CAPÍTULO 10 Instalaciones eléctricas 20. En el párrafo 10.2.3.4.2, segunda oración, se sustituye «a juicio de la Administ

PROYECTO DE ORDEN DE. DE
CONSEJERÍA DE JUSTICIA E INTERIOR Dirección General de Interior, Emergencias y Protección Civil PROYECTO DE ORDEN DE …. DE ........ DE 2016, POR LA Q

CALIFICACION DE LABORATORIOS DE CONTROL DE CALIDAD DE LA OMS
REUNION TECNICA DE CONTROL DE CALIDAD DE PRODUCTOS FARMACEUTICOS, DISPOSITIVOS MEDICOS Y PRODUCTOS SANITARIOS CALIFICACION DE LABORATORIOS DE CONTROL

Story Transcript

Teoría de Diseño lógico

Diseño lógico

EUI – ULPGC

Jose Torres

1 de 45

1. Dispositivos de lógica programable Son circuitos integrados cuyas funciones lógicas se pueden reprogramar, es decir, se puede modificar su diseño sin modificación física.

Diseño lógico

EUI – ULPGC

Jose Torres

2 de 45

Los primeros fueron los PLA (Programable Logic Array), una estructura de 2 niveles de AND y OR con conexiones programables

Diseño lógico

EUI – ULPGC

Jose Torres

3 de 45

Actualmente, PLD (Devices), que son los “MSI” 2 enfoques para aumentar la complejidad de los PLDs: CPLD (Complex): varios PLDs y una estructura de interconexión también programable

Diseño lógico

EUI – ULPGC

Jose Torres

4 de 45

FPGA (Field Programable Gate Array): mayor número de bloques lógicos (más simples) interconectados.

Diseño lógico

EUI – ULPGC

Jose Torres

5 de 45

Ahorro de tiempo de diseño con las FPGA

El mayor fabricante de PLDs, Xilinx Inc., fabrica los 2 tipos

Diseño lógico

EUI – ULPGC

Jose Torres

6 de 45

Lenguajes de descripción de hardware: VHDL y ABEL Avance, reducción del tiempo de comercialización Herramientas software permiten que un diseño sea: - compilado - sintetizado - descargado en un PLD en pocos minutos

Diseño lógico

EUI – ULPGC

Jose Torres

7 de 45

2. El lenguaje de descripción de hardware VHDL Mediados de los 80 Departamento de defensa de USA e IEEE patrocinan su desarrollo. VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit

Diseño lógico

EUI – ULPGC

Jose Torres

8 de 45

Características: x Descomposición jerárquica de los diseños x Cada elemento de diseño se compone de: - interfaz, para conectarlo a otros - especificación del comportamiento mediante la estructura o mediante algoritmo x Modela señales de reloj: concurrencia y temporización x Permite simulación lógica y temporal

Diseño lógico

EUI – ULPGC

Jose Torres

9 de 45

Existen herramientas de síntesis VHDL para crear el circuito a partir de la descripción VHDL Con VHDL se puede diseñar, simular y sintetizar desde un circuito combinacional simple hasta un sistema microprocesador completo en un chip Primer estándar IEEE: VHDL-87; extendido: VHDL-93

Diseño lógico

EUI – ULPGC

Jose Torres

10 de 45

Otro lenguaje: Verilog Apareció al mismo tiempo, presentado en 1984 por Gateway Design Automation Actualmente ambos uso generalizado 50% cada uno Verilog raíces sintácticas en C y VHDL más parecido a Ada Ambos lenguajes son fáciles de aprender y difíciles de dominar

Diseño lógico

EUI – ULPGC

Jose Torres

11 de 45

2.1. Flujo de diseño Pasos en un proceso de diseño en VHDL:

Diseño lógico

EUI – ULPGC

Jose Torres

12 de 45

Pasos del modelado (front-end): 1. Jerarquía / diagrama de bloques: definir los módulos y sus interfaces 2. Codificación: escribir el código VHDL mediante un editor especializado: resalta palabras clave, sangría automática, plantillas de estructuras, verificación de sintaxis. 3. Compilación: el compilador analiza la sintaxis, verifica la compatibilidad con otros módulos y genera información interna para el simulador

Diseño lógico

EUI – ULPGC

Jose Torres

13 de 45

4. Simulación /verificación : Simulación: permite definir y aplicar entradas y observar salidas (sin construir el circuito) Proyectos pequeños ´manualmente´. Proyectos grandes: bancos de prueba (automáticamente aplican entradas y comparan las salidas con las esperadas) Verificación (de que funciona; definir los casos de prueba):  funcional : funcionamiento lógico  de temporización: incluyendo retardos estimados Faltarían los pasos para descargar el diseño en el PLD

Diseño lógico

EUI – ULPGC

Jose Torres

14 de 45

2.2. Estructura de programa VHDL diseñado con principios de programación estructurada (Pascal y Ada) Idea clave: definir la interfaz de un módulo hw ocultando sus detalles internos Una entidad es simplemente una declaración de las entradas y salidas de un módulo Una arquitectura es una detallada descripción del comportamiento o estructura interna del mismo

Diseño lógico

EUI – ULPGC

Jose Torres

15 de 45

La siguiente figura ilustra el concepto:

Una declaración de entidad es una ´envoltura´ para la arquitectura: oculta los detalles de ésta y proporciona los conectores para que otros módulos la usen

Diseño lógico

EUI – ULPGC

Jose Torres

16 de 45

Esto es el fundamento del diseño jerárquico: la arquitectura de una entidad de un nivel ‘medio’ puede utilizar (instanciar) otras entidades ocultando los detalles de arquitectura de entidades de nivel más bajo a las de nivel más alto como se muestra en la siguiente figura:

Diseño lógico

EUI – ULPGC

Jose Torres

17 de 45

Diseño lógico

EUI – ULPGC

Jose Torres

18 de 45

En el archivo de texto de un programa VHDL, la declaración de entidad y la definición de arquitectura están separadas Un ejemplo de programa VHDL (puerta ´inhibitoria´ con 2 entradas):

Diseño lógico

EUI – ULPGC

Jose Torres

19 de 45

VHDL ignora espacios en blanco y saltos de línea Los comentarios comienzan con 2 guiones (--) y finalizan con el final de línea Palabras clave , en el ejemplo : entity , port , is , in , out , end , architecture , begin , when , else y not

Diseño lógico

EUI – ULPGC

Jose Torres

20 de 45

Los identificadores definidos por el usuario, comienzan con una letra y contienen letras, dígitos y guiones bajos (no seguidos ni como último carácter) En el ejemplo: Inhibit, X, Y, BIT, Z e inhibit_arch “BIT” es un identificador integrado para un tipo predefinido no se considera palabra reservada porque puede ser redefinida No hay diferencia entre mayúsculas y minúsculas

Diseño lógico

EUI – ULPGC

Jose Torres

21 de 45

Esta sería la sintaxis de una declaración de entidad: entity nombre-entidad is port ( nombres-señal : modo tipo-señal; nombres-señal : modo tipo-señal; ... nombres-señal : modo tipo-señal); end nombre-entidad; cuyo propósito es: - dar nombre a la entidad - definir sus señales de interfaz (con otros módulos) o puertos Diseño lógico

EUI – ULPGC

Jose Torres

22 de 45

Además de las palabras clave (en negrita) esta declaración tiene los siguientes elementos: nombre-entidad: un identificador de usuario para nombrar la entidad nombres-señal: lista de identificadores de usuario separados por comas para nombrar los puertos

Diseño lógico

EUI – ULPGC

Jose Torres

23 de 45

modo: un palabra clave especificando la dirección de la señal:  in : entrada a la entidad  out: salida de la entidad. Su valor no puede ser ´leído´ dentro de la arquitectura de la entidad, solo por otras entidades que la utilicen  buffer: salida de la entidad, pero su valor puede ser leído dentro de la arquitectura  inout : entrada o salida; utilizado para terminales triestado tipo-señal: predefinido o definido por el usuario

Diseño lógico

EUI – ULPGC

Jose Torres

24 de 45

Ejemplos: entity processor is port (clock : in bit; address : out integer; data : inout word_32; control : out proc_control; ready : in bit); end processor; entity ROM is port (enable : in bit; address : in bit_vector(depth–1 downto 0); data : out bit_vector(width–1 downto 0) ); end ROM; Diseño lógico

EUI – ULPGC

Jose Torres

25 de 45

El funcionamiento de la entidad se especifica en su definición de arquitectura, cuya sintaxis es: architecture nombre-arquitectura of nombre-entidad is declaraciones de tipo declaraciones de señal declaraciones de constante definiciones de función definiciones de procedimiento declaraciones de componente begin sentencia-concurrente ... sentencia-concurrente end nombre-arquitectura; Diseño lógico

EUI – ULPGC

Jose Torres

26 de 45

Donde: - nombre-arquitectura : identificador usuario - nombre-entidad : a la que se refiere Los puertos se heredan de la entidad Una arquitectura puede incluir señales y otras declaraciones locales Las declaraciones comunes a varias entidades se pueden agrupar en un ´paquete´ por separado Las declaraciones de objetos locales pueden aparecer en cualquier orden Diseño lógico

EUI – ULPGC

Jose Torres

27 de 45

Para empezar hablaremos de la declaración de señal Misma información que declaración de puerto , excepto el modo: signal nombre-señal : tipo-señal; Las señales se corresponden con los ´hilos´ en un diagrama lógico Pueden leerse o escribirse sólo dentro de la definición de la arquitectura

Diseño lógico

EUI – ULPGC

Jose Torres

28 de 45

Las variables VHDL son semejantes a las señales excepto que no tienen significación física en un circuito No se declaran en una arquitectura Las variables se utilizan en funciones , procedimientos y procesos , donde la declaración de variable será : variable nombres-variable : tipo-variable ;

Diseño lógico

EUI – ULPGC

Jose Torres

29 de 45

2.3. Tipos y constantes Señales, variables y constantes tienen un tipo asociado Especifica el conjunto o intervalo de valores que puede tomar Tiene asociado un conjunto de operadores (suma, AND,…)

Diseño lógico

EUI – ULPGC

Jose Torres

30 de 45

VHDL es ´fuertemente tipeado´ El compilador no permite asignar un valor a una señal o variable a menos que el tipo del valor coincida con el declarado del objeto Esto es bueno y malo a la vez: - los programas son más fiables y fáciles de depurar - puede ser exasperante, p.e. para volver a interpretar una señal de 2 bits como un entero, puede requerir una llamada a una función de conversión de tipo explícitamente

Diseño lógico

EUI – ULPGC

Jose Torres

31 de 45

VHDL tiene tipos predefinidos: bit bit_vector boolean

character integer real

severity_level string time

Los más usados son:     

boolean = {true , false} character = cto. caracteres ISO de 8 bits integer = [-231+1 , +231-1] bit ={‘0’, ‘1’} bit_vector’: habrá que indicar el rango del índice según se explica más adelante en el tipo ‘array’

Diseño lógico

EUI – ULPGC

Jose Torres

32 de 45

Los operadores integrados para los integer y boolean son : Operadores integer + suma resta * multiplicación / división mod módulo división rem módulo residuo abs valor absoluto ** exponenciación

Operadores boolean and AND or OR nand NAND nor NOR xor OR Exclusivo xnor NOR Exclusivo not complementación

Los operadores booleanos están también definidos para el tipo bit y bit_vector Diseño lógico

EUI – ULPGC

Jose Torres

33 de 45

Asignación de un valor a una señal: Z '0',16=>'0',24=>'0',others=>'1'); donde w es de tipo word. Diseño lógico

EUI – ULPGC

Jose Torres

43 de 45

Para literales de array de std_logic usar cadena de caracteres (secuencia entre “”) , ya que es un array de caracteres . Para los ejemplos anteriores : B := "11111111"; W := "11111110111111101111111011111110";

Porción de un array: especificando los índices inicio y final Ejemplo: M(6 to 9), B(3 downto 0), W(15 downto 8), R(0,7 downto 0), R(1 to 2), S(stop to go) donde la dirección de la porción es la misma que la del array original Diseño lógico

EUI – ULPGC

Jose Torres

44 de 45

Operador de concatenación (&) de arrays y elementos de array Ejemplo: ‘0’ & ‘1’ & “1Z” = “011Z” B(6 downto 0) & B(7) produce un desplazamiento circular a la izquierda del array B de 8 bits Array más usado (definido en el paquete 1164 de la IEEE) type STD_LOGIC_VECTOR is array ( natural range ) of STD_LOGIC; que es un array no restringido ; el intervalo del índice se concreta cuando se declara una señal o variable de este tipo Diseño lógico

EUI – ULPGC

Jose Torres

45 de 45

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.