Circuitos Combinacionales. Escuela de Ingeniería Electrónica TALLER VHDL. Ing. José Alberto Díaz García

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Circuitos Combinacionales. Escuela de Ingeniería Electrónica TALLER VHDL. Ing. José Alberto Díaz García"

Transcripción

1 Página 1

2 DE OBJETIVO: Dar a conocer la metodología de diseño y uso de las herramientas que se utilizan en circuitos lógicos para empotrar en un FPGA de SPARTAN III Página 2

3 I Parte: Circuitos combinacionales II Parte: Circuitos secuenciales III Parte: Máquinas de secuenciales Mayo 2006 Página 3

4 I Parte: Circuitos Combinacionales OBJETIVO: Dar a conocer y utilizar los diferentes comandos del lenguaje de programación orientado a hardware (HW), utilizando circuitos combinacionales Página 4

5 METODOLOGIA En cada sesión se realizará una presentación del tema. Se realizará una práctica en la lección Se dejará un proyecto a realizar fuera de la lección, el cual se evaluará, esto con el fin de asignar puntos para el cambio de categoría. Página 5

6 CONTENIDO Introducción Aspectos relacionados con Diseñar un sumador completo Expresión boleana del sumador Circuitos con compuertas Formato para escribir un programa en Instrucciones en Uso del ISE para sintetizar el circuito Uso del ModelSim Uso del Impact Descarga del modelo a un FPGA Proyecto Página 6

7 AGENDA Introducción Diseño de un sumador completo Estructura de código en Bibliotecas Entidad Arquitectura Tipos de datos Página 7

8 INTRODUCCIÓN Es un estándar Es un lenguaje independiente de la tecnología y del fabricante Es transportable Es reutilizable APLICACIONES INMEDIATAS Dispositivos lógicos programables ASICS (Application Specific Integrated Circuits) Página 8

9 Very High Speed Integrated Circuit VHardware Description Lenguaje Es un lenguaje de descripción de hardware Página 9

10 Para qué sirven los HDLs? Los lenguajes de descripción de HW sirven para modelar circuitos. Los modelos se pueden simular para comprobar si corresponden con el funcionamiento deseado. O si se pueden sintetizar para crear un circuito que funcione como el modelo. Página 10

11 Los HDLs cuando el circuito ya existe Se puede crear un modelo de un circuito que ya existe, que ya esté implementado. En este caso el objetivo es simular el circuito para comprobar que su funcionamiento se ajusta a las especificaciones iniciales para luego enviarlo a fabricar. Página 11

12 Los HDLs como documentación Los modelos de los circuitos si están bien comentados sirven como documentación del diseño. Los HDLs se pueden utilizar también para crear bancos de pruebas, o sea, para crear estímulos y ver resultados durante la simulación. Página 12

13 HDLs: estado actual y alternativas En la actualidad, los esquemáticos no son una alternativa realista de diseño en ningún proyecto. Ejemplo: GeForce4, 65 millones de transistores y líneas de código Verilog. La alternativa estándar es usar un HDL. Verilog: Costa Oeste, ASICs, menos verboso, más parecido a C, menos expresivo. : Costa Este y Europa, FPGAs, mas verboso, más parecido a PASCAL y ADA, más expresivo. El diseño se sintetiza a partir de un HDL, pero parte del diseño y la verificación se puede realizar con otros lenguajes: C y Matlab es el estándar para FPGAs en proyectos industriales de moderada complejidad en Europa. Página 13

14 VDHL: orígenes e historia surge a principios de los 80 de un proyecto DARPA (Departamento de Defensa de los EE.UU.) llamado VHSIC-Very High Speed Integrated Circuits. aparece como una manera de describir circuitos integrados: Permite el trabajo en equipo sobre un mismo diseño, ya que con el diseño modular los encargados de la programación podrían trabajar en forma paralela. La crisis del ciclo de vida del HW: cada día los circuitos integrados eran más complicados, y el costo de reponerlos cada vez era mayor, porque no estaban correctamente documentados. nació como una manera estándar de documentar los circuitos. Al mismo tiempo, se vio que la expresividad del permitiría reducir el tiempo de diseño de los circuitos, porque se podrían crear directamente de su descripción: utilidad de las síntesis. En 1987 el trabajo fue cedido al IEEE, y a partir de ese momento se convirtió en un estándar abierto. Página 14

15 : Evolución 1980: El departamento de defensa de los EEUU funda el proyecto para crear un HDL estándar dentro del programa VHSIC. 1981: Woods Hole Workshop, reunión inicial entre el Gobierno, Universidades e Industria. 1983: Se concedió a Intermetrics, IBM y Texas Instruments el contrato para desarrollar. 1985: Versión 7.2 de dominio público. 1987: El IEEE lo ratifica como su estándar 1076 (-87). 1993: El lenguaje fue revisado y ampliado, pasando a ser estándar (-93). 2001: Ultima modificación de. Página 15

16 Página 16 Y en el futuro? Escuela de Ingeniería Electrónica Los lenguajes de descripción de hardware tienen también limitaciones: Metodología de diseño nueva, exige un cambio de mentalidad con respecto al SW. No permiten rehusar código SW para HW. La decisión HW/SW debe hacer antes de la codificación. La simulación es lenta, siempre hay que recurrir a una simulación algorítmica usando lenguajes SW, lo que hace que se descarguen los programas directamente sobre un FPGA, evadiendo así la simulación. Como respuesta a esto, hay varias iniciativas para describir HW usando lenguajes de alto nivel, originarios del ámbito del SW: Handel-C, System-C Forge (Java) Superlog

17 DIAGRAMA DE FLUJO EN SINTESIS COMPILACIÓN OPTIMIZACIÓN Entrada en Netlist (nivel de compuertas) Netlist optimizada (nivel de compuertas) SIMULACIÓN Página 17 DISPOSITIVO FISICO SIMULACIÓN

18 LO MÁS IMPORTANTE No es secuencial, como la ejecución de instrucciones (una después de la otra) de un programa en un microprocesador. Es concurrente, es hardware. Página 18

19 EJERCICIO Diseñar un sumador completo utilizando compuertas lógicas. Sintetizar el sistema resultante. Empotrar el circuito en un FPGA Página 19

20 Página 20 MINTERMINO Escuela de Ingeniería Electrónica TABLA DE VERDAD ENTRA DAS SALI DAS CI A B S CO

21 CI SIMPLIFICACION POR MAPAS DE KARNAUGH PARA S A Página 21 B S(CI,A,B)=CI*B+ A*B+ CI*A

22 Escuela de Ingeniería Electrónica CIRCUITO LOGICO RESULTANTE PARA LA SALIDA S Página 22

23 Escuela de Ingeniería Electrónica SIMPLIFICACION POR MAPAS DE KARNAUGH PARA CO CO(CI,A,B)=CI*A*B+ CI*A*B+ CI*A*B+ CI*A*B Página 23

24 Escuela de Ingeniería Electrónica CIRCUITO LOGICO RESULTANTE PARA LA SALIDA CO Página 24

25 ESPECIFICACIONES DE DISEÑO Lo que se quiere es llegar a empotrar estos circuitos en una FPGA Spartan III de Xilinx. Este procedimiento se puede aplicar a cualquier otro circuito combinacional Página 25

26 FORMAS DE IMPLEMENTACIÓN Compuertas lógicas RTL Bloques Página 26

27 IMPLEMENTACIÓN CON COMPUERTAS LÓGICAS Página 27

28 Código del sumador completo en Como se puede observar, consiste de: una ENTITY, la cual es una descripción de los pines (PORT) del circuito, y una ARCHITECTURE, la cual describe el funcionamiento del circuito. Página 28

29 ESTRUCTURA DE UN DISEÑO EN Declaraciones de las entradas y salidas Parte declarativa de la arquitectura Cuerpo de la arquitectura library ieee; use ieee.std_logic_1164.all; entity toto is port ( ); end toto architecture test of toto is begin end test; Nombre de la entidad Nombre de la arquitectura Página 29

30 ESTRUCTURA EN CÓDIGO Página 30

31 OBSERVACIONES Al final de cada comando debe colocarse un (;) para que se ejecute. Los comentarios se hacen utilizando al inicio del comentario el los caracteres (--). Página 31

32 DECLARACIÓN DE BIBLIOTECAS Para declarar bibliotecas se necesitan dos líneas de código, Una donde contiene el nombre de la biblioteca, y Otra donde se indica una cláusula de uso Generalmente en un diseño se necesitan por lo menos tres paquetes, de tres bibliotecas diferentes: ieee.std_logic_1164 (de las bibliotecas de ieee) standard (de las bibliotecas std) work (de las bibliotecas work) Página 32

33 BIBLIOTECAS El propósito de las bibliotecas mencionadas anteriormente es el siguiente: El paquete std_logic_1164 especifica un sistema lógico de múltiples niveles. std es una biblioteca de recursos (tipos de datos, texto i/o, etc.) para el entorno de diseño de. work es donde se almacenará el diseño (el archivo.vhd, así como todos los archivos que llega a crear el compilador, simulador, etc.) Página 33

34 Página 34 BIBLIOTECAS Las bibliotecas ieee contienen algunos paquetes como: std_logic_1164: especifica el sistema lógico de múltiples valores, STD_LOGIC (8 niveles) y STD_ULOGIC (9 niveles) std_logic_arith: especifica tipos de datos SIGNED y UNSIGNED, y las operaciones aritméticas y de comparación. También contiene algunas funciones para conversión, que permiten convertir de un tipo a otro: conv_integer (p), conv_unsigned (p,b), conv_signed (p,b), conv_std_logic_vector (p,b) std_logic_signed: contiene funciones que permiten realizar operaciones con datos STD_LOGIC_VECTOR para manipular los datos como si fueran del tipo SIGNED. std_logic_unsigned: contiene funciones que permiten realizar operaciones con datos STD_LOGIC_VECTOR para manipular los datos como si fueran UNSIGNED.

35 BIBLIOTECAS PAQUETES FUNCIONES PROCEDIMIENTOS COMPONENTES CONSTANTES TIPOS DATOS Página 35

36 Página 36 Escuela de Ingeniería Electrónica Acerca de las bibliotecas en Bibliotecas clásicas (y anticuadas): std_logic_signed std_logic_unsigned std_logic_arith Las bibliotecas signed y unsigned se deben emplear cuando se quiere que los std_logic_vector estén respectivamente en complemento a 2 ó en binario natural. Aquí está el CONV_INTEGER La biblioteca arith es más completa y utiliza mayormente los tipos signed o unsigned (derivados de std_logic_vector). Aquí está CON_STD_LOGIC_VECTOR Tendencia actual del IEEE: emplear la biblioteca numeric_std Pensada para trabajar con los tipos signed y unsigned TO_INTEGER, TO_SIGNED, TO_UNSIGNED

37 Escuela de Ingeniería Electrónica Entidad y la arquitectura: 1 er nivel de abstracción Una unidad de hardware se visualiza como una caja negra. La interfaz de la caja negra está completamente definida. El interior está oculto, se define en otra unidad de diseño. En la caja negra se denomina entidad. La ENTITY describe la E/S del diseño. Para describir su funcionamiento se asocia una implementación que se denomina arquitectura La ARCHITECTURE describe el contenido del diseño. Abstracción: caja negra Interfaz: entradas y salidas Página 37

38 ENTITY (entidad) Es una lista de especificaciones de todos los pines (PORT) de entradas y salidas del circuito. La entidad debe tener un nombre. Debe existir un fin de la entidad. La entidad se utiliza para hacer una descripción caja negra del diseño, sólo se detalla su interfaz. Una entidad puede tener varias arquitecturas. Por ejemplo, la descripción de comportamiento que ha hecho el diseñador y el modelo post-layout obtenido después de implementar el chip. Página 38

39 PORT: Puertos de una entidad PORT: son los canales de comunicación, cada una de las posibles conexiones se denomina PORT y consta de: Un nombre, que debe ser único dentro de la entidad. Modo: la dirección del flujo de datos: entrada, salida, bidireccional Tipo: usualmente, los puertos toman valores de: 0, 1 o ( Z ), dependen de lo que se denomina TIPO de señal. Los puertos son una clase especial de señales que adicionalmente al tipo de la señal añade el modo (IN, OUT, etc.) Interfaz de dispositivo PORT: entradas y salidas Página 39

40 : Declaración de entidad La declaración de la caja negra: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY mi_componente IS PORT ( Clk, rst: IN std_logic; d: IN std_logic_vector(7 downto 0); q: OUT std_logic_vector(7 downto 0); co: OUT std_logic); END mi_componente; modo tipo Mi_componente Página 40

41 PORT: Modos de un port Modo de los PORT Indican la dirección y si el puerto puede leerse o escribirse dentro de la entidad IN una señal que entra en la entidad y no sale. La señal puede ser leída pero no escrita. OUT una señal que sale fuera de la señal y no es usada internamente. La señal no puede ser leído dentro de la entidad. BUFFER una señal que sale de la entidad y también es realimentada dentro de la entidad. INOUT una señal que es bidereccional, entrada/salida de la entidad. Página 41

42 ARCHITECTURE Es una descripción del funcionamiento del circuito. Los contenidos del circuito se modelan dentro de la arquitectura. La ARCHITECTURE tiene dos partes: Una parte declarative (optional), donde se declaran las señales y constantes. Una parte de code, partiendo de BEGIN hasta END. Como en la Entity, el nombre de la architecture puede ser cualquiera excepto los nombres reservados por, incluyendo el mismo nombre de la Entity. Página 42

43 EJERCICIO Realizar un programa en que simule un multiplexor de cuatro canales de entrada, y dos canales de selección. Utilizando compuertas lógicas. Página 43

44 TIPOS DE DATOS Son utilizados en la definición de elementos dentro de la Entity, así como en la Architecture. En la Entity se utilizan para definir el tipo de entradas y salidas. En la Architecture se utilizan para definir algunas señales internas necesarias para el funcionamiento del dispositivo. Página 44

45 Tipos de datos TIPO es la definición de los posibles valores que puede tomar un objeto es un lenguaje fuertemente tipificado: A los objetos se les asigna siempre un tipo cuando se declaran. La asignación sólo puede hacerse entre objetos del mismo tipo. Los tipos predefinidos se especifican en los estándares IEEE 1076 y IEEE 1164 y pueden ser: Escalares: integer floating point enumerated Compuestos: array record Punteros: access Archivos: file Página 45

46 Escuela de Ingeniería Electrónica Tipos básicos predefinidos Tipos IEEEE-1076 BIT: sólo puede tomar los valores de 0 ó 1. Para modelar señales digitales. BIT_VECTOR: un arreglo unidimensional (vector) de bits. Para modelar buses. Página 46

47 EJEMPLOS SIGNAL X: BIT; X se declara como una señal de un solo dígito del tipo bit. SIGNAL Y: BIT_VECTOR (3 DOWNTO 0); Y es un vector de 4 bits, con el bit de la izquierda como el MSB. SIGNAL W: BIT_VECTOR (0 TO 7); es un vector de 8 bits, con el bit de la izquierda como el MSB. Página 47

48 ASIGNACIÓN DE VALORES A UNA SEÑAL Para la asignación de un valor a una señal se utilizan los operadores (<=). Para asignar el valor inicial a una variable se utiliza (:=) Página 48

49 X<= 1 ; EJEMPLO -- X es una señal de un bit, cuyo valor es 1 Y<= 0011 ; -- Y es una señal de 4 bits, cuyo valor es 0011 el MSB es 0, las comillas dobles se utilizan en vectores. W<= ; -- W es una señal de 8 bits, cuyo valor es y el MSB es 0 Página 49

50 Escuela de Ingeniería Electrónica Tipos básicos predefinidos Tipos IEEEE-1076 (cont.) INTEGER: tipo entero de 32 bits (de -2,147,483,647 a + 2,147,483,647) usado como valor índice en lazos, constantes o valores genéricos BOOLEAN: tipo lógico Puede tomar como valores TRUE o FALSE NATURAL: enteros no negativos de (0 a 2,147,483,647) REAL: tipo para números en punto flotante, en el rango de - 1.0E38 a +1.0E38. No es sintetizable. LITERALES FISICOS: utilizados para representar cantidades físicas, como voltajes, etc. Muy útil en simulaciones. No es sintetizable. CARACTERES LITERALES: son caracteres ASCII o una de cadena de caracteres (string). No es sintetizable. SIGNED y UNSIGNED: son tipos de datos definidos en el paquete STD_LOGIC_ARITH de la biblioteca de IEEE. Tienen la apariencia de STD_LOGIC_VECTOR, pero acepta operaciones aritméticas, las cuales son tipos de datos INTEGER. Página 50

51 Tipo STD_LOGIC En la realidad los dos valores del tipo bit se quedan cortos para modelar todos los estados de una señal digital. El paquete IEEE.standard_logic_1164 define el tipo std_logic, que representa todos los posibles estados de una señal real: U No inicializado, valor por defecto. X Desconocido fuerte, salida con múltiples fuentes en corto. 0 Salida de una compuerta con nivel lógico bajo. 1 Salida de una compuerta con nivel lógico alto. Z Alta impedancia W Desconocido débil, terminación de bus L 0 débil, resistencia de pull-down H 1 débil, resistencia de pull-up - No importa, usado como comodín para síntesis Página 51

52 Estados metalógicos Son estados que utiliza la herramienta en el proceso de síntesis y que no son utilizados por el usuario. Estos estados son: U W X - Página 52

53 Tipo STD_LOGIC (cont.) Para describir buses se utiliza el tipo std_logic_vector, que es un arreglo de std_logic. Los tipos std_logic y std_logic_vector son los estándares industriales. Todos los valores son válidos en un simulador, sin embargo solo: 0, 1, Z, L, H y - se reconocen para la síntesis. En el paquete IEEE.std_logic_1164 aparecen otros dos tipos: std_ulogic y std_ulogic_vector. Son los mismos, pero sin haber pasado por la función de resolución. Esta función decide cuál debe ser el valor de la señal cuando tiene dos fuentes que le asignan valores distintos. Por ejemplo, si una fuente asigna un 1 y la otra una L, la función de resolución dice que la señal se queda a 1. Página 53

54 EJEMPLO SIGNAL X:STD_LOGIC; X se declara como una señal de un dígito (escalar) del tipo STD_LOGIC. SIGNAL Y:STD_LOGIC_VECTOR (3 DOWNTO O):= 0001 ; Se declara Y como un vector de 4 bits, con el bit de la izquierda como el MSB. El valor inicial de Y es Página 54

55 HOJA DE TRABAJO 1 Página 55

56 Utilizando los tipos: señales en El objeto distintivo en es la señal, que se utiliza para modelar los conductores del circuito. Puesto que modela nodos físicos, incluye información de tiempo No solo contiene unos valores ( 0, 1, Z, etc.) sino también el tiempo en el que se toman estos valores Se declaran antes del begin de la arquitectura (en la parte declarativa): ARQUITECTURE tec OF prueba IS SIGNAL s1 : STD_LOGIC; SIGNAL s2 : INTEGER; BEGIN Pueden tener un valor inicial (no soportado en síntesis) SIGNAL a : STD_LOGIC := 0 ; Página 56

57 Utilizando los tipos: constantes y variables Como en cualquier otro lenguaje, en se pueden utilizar constantes. Se declaran también en la parte declarativa, antes del begin ARCHITECTURE tec OF prueba IS CONSTANT c1 : STD_LOGIC := 0 ; CONSTANT c2 : TIME := 10 ns; CONSTANT c3 : INTEGER := 5; BEGIN Las constantes pueden ser de cualquier tipo El tercer objeto posible en son las variables: Sólo almacenan valores, no entienden de tiempo Visibilidad limitada, sólo dentro de un proceso y no en toda la arquitectura (a diferencia de las señales y constantes) Página 57

58 Usando arreglos para crear buses Los vectores se pueden definir tanto en rangos ascendentes como descendentes: SIGNAL a: STD_LOGIC_VECTOR(0 TO 3); -- p.e. rango ascendente SIGNAL b: STD_LOGIC_VECTOR(3 DOWNTO 0); -- p.e. rango descendente a<= 0101 ; b<= 0101 ; Produce como resultado: a(0)= 0 ; a(1)= 1 ; a(2)= 0 ; a(3)= 1 ; b(0)= 0 ; b(1)= 1 ; b(2)= 0 ; b(3)= 1 ; Una manera rápida y eficiente de asignar valores a vectores son los aggregates: a<=(0 => 0, 1 => c and d, others => Z ); Página 58

59 Escuela de Ingeniería Electrónica Asignación de señales en buses Flexibilidad en la asignación de valores de buses SIGNAL tmp : STD_LOGIC_VECTOR(7 downto 0); Todos los bits: Un solo bit: Un rango de bits: Notación: tmp <= ; tmp <= x A3 ; tmp(7) <= ' 1 ; tmp(7 <= downto 4) <= 1010 ; 1 bit : comilla simple (') Múltiples bits : comilla doble ( ) Página 59

60 Definición de tipos por parte del usuario Se pueden definir dos tipos de datos utilizando: Integer Enumerated Página 60

61 Definido por el usuario INTEGER Tipo INTEGER está en el rango de - 2,147,483,647 a + 2,147,483,647; Tipo NATURAL esta en el rango de 0 a +2,147,483,647; Tipo MI_INTEGER está en el rango -32 a 32; Tipo MIS_NOTAS esta en el rango de 0 a 100; Página 61

62 Cómo definir nuevos tipos (y usarlos)? permite definir nuevos tipos, bien a partir de tipos enumerados, o como subconjunto de tipos ya existentes, o tipos multidimensionales. Las definiciones de tipos se hacen frecuentemente en la parte declarativa de la arquitectura. Definir un tipo como una enumeración: TYPE estados IS (inactivo, operando, finalizar); SIGNAL mi_maquina : estados; Definir un tipo bidimensional: TYPE memoria IS ARRAY (1024 downto 0) OF Std_logic_vector(7 downto 0); SIGNAL mi_memoria : memoria; Página 62

63 Definido por el usuario ENUMERATED Type bit is ( 0, 1,); Type mi_logica is ( 0, 1, Z ); Type state is (idle, forward, backward,stop); Es un tipo definido especialmente en máquinas de estado. Type color is (rojo, verde, azul, blanco); En este comando se deben asignar dos bits, empezando con 00 para el primer estado, rojo, 01 para el verde, 10 para el azul y 11 para el blanco. Página 63

64 Subtipos Los subtipos son tipos con restricciones. La razón fundamental para realizar subtipos en vez de especificar un nuevo tipo es que realizar operaciones entre diferentes tipos de datos no es permitido. Solo se permiten entre un subtipo y su tipo base correspondiente. Página 64

65 Ejemplos Los siguientes subtipos se basan en los ejemplos anteriores Subtype natural is INTEGER RANGE 0 TO INTEGER HIGH; Como es de esperarse natural es un sutipo de integer. Subtype mi_logica is std_logic range 0 to z ; Recuerde que std_logic =( x, 0, 1, Z, W, L, H, - ), Por lo tanto, mi_logica=( 0, 1, Z ) Subtype mi_color is color range red to blue; Como color= (red, green, blue, white), entonces mi_color=(red, green, blue) Subtype small_integer is integer range -32 to 32; Página 65

66 Operaciones ilegales entre subtipos Subtype mi_logica is sted_logic range 0 to 1 ; Signal a: bit; Signal b: std_logic; Signal c: mi_logica; b<=a; Ilegal (error en tipo: bit vrs. Std_logic) b<=c; Legal (el mismo tipo base, std_logic) Página 66

67 Página 67 Escuela de Ingeniería Electrónica Conversión de datos no permite operaciones directas (aritméticas, lógicas, etc.) entre datos de diferentes tipos. Por lo que se hace necesario transferir datos de un tipo a otro. Esto se puede realizar de dos formas: Escribiendo un pedazo de código para realizar lo que se quiere. Invocando un FUNCTION. FUNCTION, es un paquete predeterminado que es capaz de realizar lo que deseamos.

68 Ejemplo Type long is integer range -100 to 100; Type short is integer range -10 to 10; Signal x : short; Signal y : long; y <= 2*x+5; Error, error en tipo y <= long(2*x+5); Ok, el resultado se convierte en tipo long. Página 68

69 FUNCTIONS para conversión de datos Muchas de las funciones para conversión de datos se encuentran en el paquete std_logic_arith de la biblioteca de ieee. Estos son: CONV_INTEGER(p): convierte el parámetro p de tipo INTEGER, UNSIGNED, SIGNED, o STD_ULOGIC a un valor INTEGER. Nótese que STD_LOGIC_VECTOR no se incluye. CONV_UNSIGNED(p,b): convierte el parámetro p de tipo INTEGER, UNSIGNED, SIGNED o STD_LOGIC a un valor UNSIGNED con el número de bits b. CONV_SIGNED(p,b): convierte el parámetro p de tipo INTEGER, UNSIGNED, SIGNED o STD_LOGIC a un valor SIGNED con el número de bits b. CONV_STD_LOGIC_VECTOR(p,b): convierte el parámetro p de tipo INTEGER, UNSIGNED, SIGNED o STD_LOGIC a un valor STD_LOGIC_VECTOR con el número de bits b. Página 69

70 EJEMPLOS LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all;.. SIGNAL a: IN UNSIGNED (7 DOWNTO 0); SIGNAL b: IN UNSIGNED (7 DOWNTO 0); SIGNAL y: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); y <= CONV_STD_LOGIC_VECTOR ((A+B), 8); Operación legal: a+b se convierte de UNSIGNED a un valor STD_LOGIC_VECTOR de 8 bits y se asigna a y. Página 70

71 Ejercicio Página 71

72 Arreglos Los arreglos son colecciones de objetos del mismo tipo. Pueden ser: Unidimensionales (1D) Bidimensionales (2D) Unidimensionales por unidimensionales (1DX1D) Página 72

73 Página 73 Un solo valor (escalar) Un vector (arreglo 1D) Arreglos Un arreglo de vectores (1Dx1D) Un arreglo de escalares (2D array)

74 Página 74 Escuela de Ingeniería Electrónica Arreglos Las categorías de los tipos de datos predefinidos en son solo escalar (single bit) o vector (arreglo unidimensional de bits). Los tipos sintetizables en cada una de estas categorías: Escalares: BIT, STD_LOGIC, STD_ULOGIC, y BOOLEAN. Vectores: BIT_VECTOR, STD_LOGIC_VECTOR, STD_ULOGIC_VECTOR, INTEGER, SIGNED y UNSIGNED. No hay arreglos predefinidos del tipo 2D y 1Dx1D, cuando sean necesarios deben ser especificados por el usuario. Para hacerlo debe definirse un nuevo TYPE, luego la nueva SIGNAL, VARIABLE o CONSTANT las cuales pueden ser declaradas utilizando el tipo de datos.

75 Especificación de un tipo de arreglo nuevo TYPE type_name IS ARRAY (especification) OF DATA_TYPE; Para hacer uso del nuevo tipo de arreglo: SIGNAL signal_name: type_name [:=initial_value]; En este ejemplo se declara una señal, la cual puede ser una constante o una variable. Nótese que su valor inicial puede ser opcional (solo para simulación) Página 75

76 Ejemplo Se quiere construir un arreglo que contenga cuatro vectores, cada uno de ellos de 8 bits. Se llamará a cada vector por filas y el arreglo completo como una matriz. Se asignará el bit de la izquierda como el MSB. Se quiere que el vector de arriba sea la fila 0. Página 76

77 Implementación TYPE row IS ARRAY (7 DOWNTO 0) OF STD_LOGIC; - arreglo 1D TYPE matrix IS ARRAY (0 to 3) OF row; - arreglo 1DX1D SIGNAL x: matrix; - señal 1Dx1D Página 77

78 Ejemplo Otra forma de construir un arreglo de 1Dx1D: TYPE matrix IS ARRAY (0 to 3) OF STD_LOGIC_VECTOR (7 DOWNTO 0); Página 78

79 Arreglo de 2D Ejemplo TYPE matrix2d IS ARRAY (0 TO 3, 7 DOWNTO 0) OF STD_LOGIC; Página 79

80 Inicialización de un arreglo El valor inicial es opcional. Cuando se requiere de inicialización debe hacerse: := 0001 ; - para un arreglo de 1D :=( 0, 0, 0, 1 ); - para un arreglo de 1D :=(( 0, 1, 1, 1 ),( 1, 1, 1, 0 )); -para un arreglo de 1Dx1D o un arreglo de 2D Página 80

81 PORT ARRAYS No hay un tipo de datos predefinido para mas de una dimensión. Para las especificaciones de los pines (PORT) de entrada y salida de un circuito, se necesita especificar los PORT como un arreglo de vectores. El comando TYPE no se puede utilizar en la descripción del circuito ENTITY. Se debe utilizar un tipo de datos definida por el usuario en un PACKAGE. Esto para que sea visible en todo el diseño, incluyendo ENTITY. Página 81

82 LIBRARY ieee; USE ieee.std_logic_1164.all; PACKAGE mis_datos_type IS Ejemplo de 8 bits TYPE vector_array IS ARRAY (NATURAL RANGE <>)OF STD_LOGIC_VECTOR(7 DOWNTO 0); END mis_datos_type; CODIGO PRINCIPAL LIBRARY ieee; USE ieee.std_logic_1164.all; USE work.mis_datos_type.all; ENTITY mux IS PORT (inp: IN VECTOR_ARRAY (0 TO 3);.); END mux; ; Tipo de datos definido por el usuario Que contiene un infinito número de vectores Almacenados en un paquete llamado mis_datos_type Utiliza la definición de tipo de datos Página 82

83 RECORDS Los RECORDS son similares a los arreglos, con la diferencia en que contienen objetos de diferentes tipos. Ejemplo TYPE cumpleaños IS RECORD Dia: INTEGER RANGE 1 TO 31; Mes: nombre_mes; END RECORD; Página 83

84 Tipos de datos con signo y sin signo Este tipo está definido en el paquete STD_LOGIC_ARITH de la biblioteca ieee. La sintaxis que se utiliza es: SIGNAL x: SIGNED (7 DOWNTO 0); SIGNAL y: UNSIGNED (0 TO 3); Un valor UNSIGNED es un número que nunca es menor de cero. Son utilizados principalmente en operaciones aritméticas. Página 84

85 Escuela de Ingeniería Electrónica Ejemplo: utilización legal e ilegal con tipos de datos con signo y sin signo LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; SIGNAL a: IN SIGNED (7 DOWNTO 0); SIGNAL b: IN SIGNED (7 DOWNTO 0); SIGNAL x: OUT SIGNED (7 DOWNTO 0); V <= a + b; Legal (operación aritmética) W <= a AND b; Ilegal (operación lógica) Página 85

86 Escuela de Ingeniería Electrónica Ejemplo: operación legal e ilegal con tipos de datos std_logic_vector LIBRARY ieee; USE ieee.std_logic_1164.all; SIGNAL a: IN STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL b: IN STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); V <= a+b; Ilegal (la operación aritmética no es correcta) W <= a AND b; Legal (la operación lógica es correcta) Página 86

87 MEZCLA DE ARITMÉTICAS Y LÓGICAS Hay una forma para que los datos del tipo STD_LOGIC_VECTOR participen directamente con las operaciones aritméticas. La biblioteca ieee provee de dos paquetes para realizarlo: Std_logic_signed Std_logic_unsigned Permiten operaciones con datos tipo STD_LOGIC_VECTOR para que sean utilizados como fueran datos tipo SIGNED o UNSIGNED, respectivamente. Página 87

88 Ejemplo LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; SIGNAL a: IN STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL b: IN STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); V <= a+b; -legal (la operación aritmética es correcta, unsigned) W <= a AND b; -Legal (la operación lógica es correcta) Página 88

89 Operadores y atributos Página 89

90 Operadores posee varios tipos de operadores pre-definidos: Asignación Lógicos Aritméticos Comparación Desplazamiento Concatenación Página 90

91 Operadores de asignación Se utilizan para asignar valores a señales, variables y constantes: <= Asignación de valor a una señal. := Asignación de valor a una variable, constante o genérica. => Usado para asignar valores a elementos individuales de arreglos Página 91

92 Ejemplo de asignación DECLARACIONES SIGNAL x : STD_LOGIC; VARIABLE y : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL w: STD_LOGIC_VECTOR(0 TO 7); USO X<= 1 ; -- 1 se le asigna a la SIGNAL X utilizando <= Y:= 0000 ; es asignado a la VAIRABLE Y utilizando := W<= ; -- el LSB es 1 W<=(0 => 1,OTHERS => 0 ); --LSB es 1 los otros son cero Página 92

93 Operadores lógicos Usados para realizar operaciones lógicas. El tipo debe de ser: BIT, STD_LOGIC ó STD_ULOGIC y extensiones. NOT AND OR NAND NOR XOR XNOR Página 93

94 Operadores Aritméticos Utilizados para realizar operaciones aritméticas sobre los tipos: INTEGER, SIGNED, UNSIGNED O REAL. + Suma (Sintetiza) -Resta (Sintetiza) * Multiplicación (Sintetiza) / División (Solo en potencias de 2) ** Potencia (Solo valores constantes) MOD Módulo (NO sintetiza) REM Resto (NO sintetiza) ABS Valor absoluto (NO sintetiza) Página 94

95 Operadores de comparación Usados para realizar comparaciones. Prácticamente no hay limitaciones respecto al tipo. = Igual a /= diferente de < menos que > mas que <= menor o igual a >= mayor o igual a Página 95

96 Operadores de desplazamiento Utilizados para desplazar vectores, introducidos en 93. sintaxis: <operando> <operacion> <# de desplazamientos> sll shift left lógico (adición de ceros a la derecha) srl Shift right lógico (adición de ceros a la izquierda) sla shift left aritmético (MSB pasa a ser LSB) sra shift right aritmético (LSB pasa a ser MSB) rol rotación izquierda ror rotación derecha Página 96

97 Ejemplo de desplazamiento Se tiene: x<= ; Se hace: y<= x sll 2; Se obtiene y<= Se tiene: x<= ; Se hace: y<= x rol 2; Se obtiene y<= ; Página 97

98 Operadores de Concatenación Se utilizan para agrupar variables, se pueden usar con los tipos listados para operadores lógicos. & (,,,,,,) Página 98

99 Ejemplo de concatenación Z <= x & ; Si x= 1 -- entonces z es: z<= Página 99

100 Atributos Le proporcionan flexibilidad al lenguaje, permiten la creación de porciones genéricas de código. Además de la lista de atributos ya predefinidos en el, el lenguaje permite al usuario definir atributos. Página 100

101 Atributos de datos Los atributos predefinidos y sintetizables son los siguientes, donde d es un arreglo: d LOW: retorna el menor índice del arreglo. d HIGH: retorna el mayor índice del arreglo. d LEFT: retorna el índice izquierdo del arreglo. d RIGHT: retorna el índice derecho del arreglo. d LENGTH: retona el tamaño del arreglo. d RANGE: retorna el rango del arreglo. d REVERSE_RANGE: retorna el rango del arreglo en orden inverso. Página 101

102 Se tiene: Ejemplo del uso de atributos SIGNAL d : STD_LOGIC_VECTOR (7 DOWNTO 0); Se puede obtener: d LOW=0, d HIGH=7,d LEFT=7,d RIGHT=0, d LENGTH=8, d RANGE=(7 downto 0), d REVERSE_RANGE=(0 to 7) Página 102

103 Atributos de señales Son utilizados principalmente para simulaciones, únicamente los primeros 2 son sintetizables. s EVENT: retorna verdadero cuando s cambie de estado. s STABLE[t]:retorna verdadero si s no cambia de estado en el tiempo t. s ACTIVE: retorna verdadero cuando ocurre una transaccion sobre s aunque no cambie su valor s QUIET[t] retorna verdadero si no ocurre ninguna transacción sobre s en el tiempo t. s LAST_VALUE: retorna el valor de s antes de la última transacción. S LAST_EVENT: retorna el tiempo desde el último evento de s s LAST_ACTIVE: retorna el tiempo desde la última transacción sobre s. Página 103

104 Ejemplos de atributos de señales Detector de flancos positivos IF(CLK EVENT AND CLK= 1 ) IF(NOT clk STABLE AND clk= 1 ) Página 104

105 Atributos definidos por el usuario El programador puede definir sus propios atributos, la sintaxis es la siguiente Declaración: ATTRIBUTE attribute_name: attribute_type; Especificación: ATTRIBUTE attribute_name OF target_name: class IS value; Donde: attribute_type: cualquier tipo de dato Class: TYPE, SIGNAL, FUNCTION, etc. Value: 0, 27, , etc. Página 105

106 Ejemplo del uso de atributos definidos por el usuario --declaración ATTRIBUTE number_of_inputs: INTEGER; --especificación ATTRIBUTE number_of_inputs OF nand3: SIGNAL IS 3;... --uso Inputs<=nand3 number_of_inputs; ---retorna 3 Página 106

107 Sobrecarga de operadores Los operadores ya definidos se pueden utilizar para realizar diferentes operaciones sobre tipos de datos que no soportan a los predefinidos. Página 107

108 Ejemplo de sobrecarga de operadores --DECLARACION FUNCTION + (a: INTEGER, b: BIT)RETURN INTEGER IS IF(b= 1 )THEN RETURN a+1; ELSE RETURN a; END IF END + ; --AHORA EL SIMBOLO + SE PUEDE UTILIZAR PARA SUMAR ENTEROS CON DATOS TIPO BIT Página 108

109 GENERIC El uso del GENERIC permite la creación de programas que pueden ser adaptados para diferentes aplicaciones. Es declarado en la ENTITY. La sintaxis: GENERIC (parameter_name: parameter_type := parameter_value); Página 109

110 Ejemplo del uso de GENERIC ENTITY my_entity IS GENERIC(n : INTEGER := 8); PORT ( ); END my_entity; Página 110

111 Operadores definidos en Lógicos and or, nor xor, xnor Relacionales = igual /= distinto < menor <= menor o igual > mayor >= mayor o igual Misceláneos abs valor absoluto ** exponenciación not negación (unario) Adición + suma - resta & concatenación de vectores Multiplicativos * multiplicación / división rem resto mod módulo Signo Unarios) *, - Desplazamiento (bit_vector) sll, srl sla, sra rol, ror Página 111

112 Ejercicio Página 112

113 BIBLIOGRAFIA Petroni, Volnei A. CIRCUIT DESIGN WITH, MIT Press,, primera edición, 2004, Massachussetts, USA. Ashenden, Peter J. THE DESIGNER S GUIDE TO, Morgan Kaufmann Publishers, segunda edición, 2002, California, USA. Página 113

Tipos de datos en VHDL

Tipos de datos en VHDL Tipos de datos en VHDL Sistemas Digitales Avanzados Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero Oct. 2014 - Feb. 2015 Sistemas Digitales Avanzados (UTPL) IET Oct. 2014 - Feb. 2015

Más detalles

VHDL: Tipos de datos. Arquitectura del Computador 2017

VHDL: Tipos de datos. Arquitectura del Computador 2017 VHDL: Tipos de datos Arquitectura del Computador 2017 Paquetes y librerías Package standard de library std: Define BIT, BOOLEAN, INTEGER y REAL. Package std_logic_1164 de library ieee: Define STD_LOGIC

Más detalles

Operadores y atributos en VHDL [1]

Operadores y atributos en VHDL [1] Operadores y atributos en VHDL [1] Sistemas Digitales Avanzados Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero Oct. 2014 - Feb. 2015 Sistemas Digitales Avanzados (UTPL) IET Oct. 2014

Más detalles

VHDL. Lenguaje de descripción hardware Estructura Básica de diseño

VHDL. Lenguaje de descripción hardware Estructura Básica de diseño VHDL. Lenguaje de descripción hardware Estructura Básica de diseño 2007 A.G.O. All Rights Reserved Estructura de un diseño en VHDL LIBRARY declaraciones VHDL estructura básica ENTITY caja negra ARCHITECTURE

Más detalles

LENGUAJE VHDL. Ing. Wilmer Naranjo 1

LENGUAJE VHDL. Ing. Wilmer Naranjo 1 LENGUAJE VHDL Ing. Wilmer Naranjo 1 DESCRIPCIÓN EN VHDL Al inicio de los 80 s diversos grupos de investigadores empiezan a crear y desarrollar los llamados "lenguajes de descripción de hardware" cada uno

Más detalles

Tema 3 - Modelado con HDL a nivel RTL

Tema 3 - Modelado con HDL a nivel RTL - Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

Objetos de VHDL. Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato

Objetos de VHDL. Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos de VHDL Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos que se pueden manipular en VHDL y sus tipos -3 clases principales de objetos: SEÑALES: similares

Más detalles

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato Objetos de VHDL! Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos que se pueden manipular en VHDL y sus tipos -3 clases principales de objetos: SEÑALES: similares

Más detalles

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Tema 2. Funciones Lógicas Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Representación de Circuitos Digitales Representación esquemática. Representación

Más detalles

SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO

SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO ENTIDAD: ARQUITECTURA: ENTITY IS PORT : : END ; = IN / OUT / IN OUT ARCHITECTURE

Más detalles

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5 Planificaciones 8641 - Sistemas Digitales Docente responsable: ALVAREZ NICOLAS 1 de 5 OBJETIVOS El objetivo de la materia es aprender a diseñar arquitecturas digitales utilizando como herramienta los lenguajes

Más detalles

SISTEMAS DIGITALES VHDL

SISTEMAS DIGITALES VHDL SD SISTEMAS DIGITALES VHDL Fredy Hernán Riascos Campiño Practica 1a: Implementación de un incrementador: Se he de implementar un modulo incrementador (INC), Este modulo no es mas que un sumador y un registro

Más detalles

ELEMENTOS Y TIPOS DE DATOS

ELEMENTOS Y TIPOS DE DATOS 1 ELEMENTOS Y TIPOS DE DATOS ELEMENTOS Y TIPOS DE DATOS Elementos Tipos de datos Librerías Std_logic y Std_logic_vector 2 ELEMENTOS Y TIPOS DE DATOS ELEMENTOS Elementos del VHDL: Comentarios Palabras reservadas.

Más detalles

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL LABORATORIO DE CIRCUITOS DIGITALES (25-II) SEGUNDA CLASE DE VHDL TIPOS y MODOS DE DATOS DESCRIPCIÓN CONCURRENTE Sentencias de asignación: with select, when - else DESCRIPCIÓN COMPORTAMENTAL Procesos asíncronos

Más detalles

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL. Tema 2. Funciones Lógicas Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL. Introducción al VHDL Definición de las estructuras básicas. Entidades: genéricos y puertos. Tipos

Más detalles

PRÁCTICA: LENGUAJE VHDL

PRÁCTICA: LENGUAJE VHDL PRÁCTICA: LENGUAJE Introducción Los lenguajes permiten manejar mejor grandes tamaños Los lenguajes son más flexibles que las tablas Los lenguajes son légibles por las máquinas más fácilmente que los gráficos

Más detalles

Julio. [ Programación en VHDL ] Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / a s i g n a t u r a s / d s d.

Julio. [ Programación en VHDL ] Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / a s i g n a t u r a s / d s d. Julio 09 [ Programación en VHDL ] Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / a s i g n a t u r a s / d s d. h t m l ] Programación en VHDL Guia rapida [ INDICE ] I. Programación

Más detalles

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE LENGUAJES DE DESCRIPCIÓN DE HARDWARE METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos Lenguajes de

Más detalles

Introducción al VHDL. VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables

Introducción al VHDL. VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables Introducción al VHDL VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables Introducción Lenguaje de descripción de dispositivos Hardware. Diferencias con lenguajes de programación:

Más detalles

VHDL Y FPGA LENGUAJE VHDL

VHDL Y FPGA LENGUAJE VHDL VHDL Y FPGA LENGUAJE VHDL VHDL es un lenguaje de alto nivel que describe todas las características de circuitos electrónicos digitales de variada complejidad. El significado de las siglas VHDL es V de

Más detalles

VHDL. Lenguaje de descripción hardware Introducción e historia

VHDL. Lenguaje de descripción hardware Introducción e historia VHDL. Lenguaje de descripción hardware Introducción e historia 2007 A.G.O. All Rights Reserved s descriptivos y niveles de abstracción s descriptivos: Comportamiento Se realiza la función sin información

Más detalles

SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL.

SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL. SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL. 1 Proceso automático, realizado por una herramienta software, para la generación de una representación con puertas lógicas de una descripción VHDL. Las herramientas

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA NOMBRE DE LA ASIGNATURA: BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA PROGRAMA DE ESTUDIOS DE LA MAESTRÍA EN INGENIERÍA ELECTRÓNICA CON OPCIÓN EN INSTRUMENTACIÓN DIGITAL

Más detalles

EL LENGUAJE VHDL CONCEPTOS BÁSICOS

EL LENGUAJE VHDL CONCEPTOS BÁSICOS EL LENGUAJE VHDL CONCEPTOS BÁSICOS Introducción Entidades y arquitecturas Sentencias y procesos Objetos Tipos de datos y operadores Autores: Luis Entrena Arrontes, Celia López, Mario García, Enrique San

Más detalles

DESCRIPCIÓN DE CIRCUITOS DIGITALES

DESCRIPCIÓN DE CIRCUITOS DIGITALES DESCRIPCIÓN DE CIRCUITOS DIGITALES Circuitos combinacionales Circuitos secuenciales Organización del diseño. Diseño genérico Operaciones iterativas Autores: Celia López, Luis Entrena, Mario García, Enrique

Más detalles

3 - DISEÑO RTL. Existen dos tipos de descripciones a nivel de comportamiento en Verilog:

3 - DISEÑO RTL. Existen dos tipos de descripciones a nivel de comportamiento en Verilog: 3 - DISEÑO RTL Un diseño a nivel funcional o de comportamiento (behavioral description) permite describir circuitos digitales atendiendo únicamente a las relaciones existentes entre las entradas y salidas

Más detalles

Introducción a VHDL. Por: Carlos A. Fajardo UIS - Sistemas Digitales

Introducción a VHDL. Por: Carlos A. Fajardo UIS - Sistemas Digitales Introducción a VHDL Por: Carlos A. Fajardo cafajar@uis.edu.co Lenguajes de Descripción de Hardware Netlist: conjunto de instrucciones que indican el interconexionado entre los componentes de un diseño

Más detalles

VHDL. Lenguaje de descripción hardware Tipos de datos

VHDL. Lenguaje de descripción hardware Tipos de datos VHDL. Lenguaje de descripción hardware Tipos de datos 2007 A.G.O. All Rights Reserved Tipos de objetos y datos VHDL predefine un conjunto relativamente limitado de tipos de datos, pero dispone de gran

Más detalles

VHDL: Código Secuencial. Arquitectura del Computador 2017

VHDL: Código Secuencial. Arquitectura del Computador 2017 VHDL: Código Secuencial Arquitectura del Computador 2017 PROCESSES, FUNCTIONS y PROCEDURES Solo se ejecuta secuencialmente el código que se encuentra dentro de PROCESSES, FUNCTIONS o PROCEDURES. Cualquiera

Más detalles

Tema 4 - Bloques combinacionales

Tema 4 - Bloques combinacionales - Bloques combinacionales Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

Tema 2 Descripción de VHDL (1/2)

Tema 2 Descripción de VHDL (1/2) TECNOLOGÍA DE COMPUTADORES Tema 2 Descripción de VHDL (1/2) Agustín Álvarez Marquina Elementos básicos de VHDL Elementos básicos Palabras reservadas. Identificadores. Tipos de objetos y datos. Literales.

Más detalles

Teoría de Diseño lógico

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 funciones lógicas se pueden reprogramar, es decir, se puede modificar

Más detalles

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López. UNIVERSIDAD CARLOS III DE MADRID Ejercicios de VHDL Circuitos Integrados y Microelectrónica Luis Entrena Celia López Mario García Enrique San Millán Marta Portela Almudena Lindoso Problema 1 Se pretende

Más detalles

V. Elementos de la Arquitectura

V. Elementos de la Arquitectura V. Elementos de la Arquitectura 1 Tipos de Datos Todos los sistemas digitales manejan la información como bits o vectores de bits. Sin embargo no es posible ni conveniente usar sólo estos tipos para todos

Más detalles

Introducción a VHDL. Por: Carlos A. Fajardo

Introducción a VHDL. Por: Carlos A. Fajardo Introducción a VHDL Por: Carlos A. Fajardo cafajar@uis.edu.co Actualizado 11/11/2015 Lenguajes de Descripción de Hardware Netlist: conjunto de instrucciones que indican el interconexionado entre los componentes

Más detalles

DISEÑO DE CIRCUITOS SECUENCIALES

DISEÑO DE CIRCUITOS SECUENCIALES Sistemas Electrónicos y Automáticos PRÁCTICA 3 DISEÑO DE CIRCUITOS SECUENCIALES 1. OBJETIVO DE LA PRÁCTICA. El objetivo de la presente práctica consiste en modelar el comportamiento de un sistema secuencial

Más detalles

4.5. Procedimiento de síntesis

4.5. Procedimiento de síntesis 4.5. Procedimiento de síntesis En este apartado se resumen los pasos a seguir para completar la implementación de un sistema digital en un dispositivo programable: descripción del sistema mediante uno

Más detalles

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016) Sistemas Digitales - Examen temas, 2 y 3 - (6 de Abril 206) EXAMEN RESUELTO Problema-. Modelo-A (Calificación 0 puntos) Se quiere diseñar un circuito digital, tal que, dado un número en código octal de

Más detalles

VHDL. Carlos Andrés Luna Vázquez. Lección 10 Problemas

VHDL. Carlos Andrés Luna Vázquez. Lección 10 Problemas Carlos Andrés Luna Vázquez Lección 10 Problemas 1 Índice Introducción Niveles de abstracción del modelado con HDL Estilos descriptivos del modelado con HDL Ventajas y limitaciones de los HDLs El lenguaje

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 8

Sistemas Electrónicos Digitales. PRACTICA nº 8 PRACTICA nº 8 Diseño de subsistemas aritméticos. Síntesis sobre dispositivos FPGA. Síntesis estructural a partir de la descripción VHDL a nivel RTL de la estructura. Síntesis a partir de la descripción

Más detalles

Recursos y Metodologías. Función. Programas

Recursos y Metodologías. Función. Programas Recursos y Metodologías Sistema Digital Estructura { + Función Descripción Datos R. Cómputo R. Almacenamiento R. Conexionado { Comandos Implementación Full-custom Semi-custom Gate Arrays Programas Lenguaje

Más detalles

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General DISEÑO DE PROCESADORES DEDICADOS Instituto Politécnico Nacional Práctica 6 LCD de Propósito General Campo 1: Datos Personales. Centro de Innovación y Desarrollo Tecnológico en Cómputo CIDETEC Mayo 2015

Más detalles

CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES

CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES Oscar Ignacio Botero Henao. CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES MULTIPLEXOR (MUX) Un Multiplexor (MUX) es un circuito combinacional al que entran varios canales de datos, y sólo salen los datos del

Más detalles

5.1. Introducción a los sistemas digitales

5.1. Introducción a los sistemas digitales 5.. Introducción a los sistemas digitales 5... Sistemas digitales [ Wakerly.2 pág. 3] 5..2. Puertas y señales lógicas [ Wakerly.3 pág. 6] 5..3. Representación de la lógica digital [ Wakerly. pág. 9] 5..4.

Más detalles

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Sistemas Electrónicos Digitales Curso de adaptación al Grado Práctica Práctica 2 Sistemas Electrónicos Digitales Curso de adaptación al Grado Sistemas combinacionales con VHDL Universidad de Alicante Ángel Grediaga 2 Índice INTRODUCCIÓN... 3 2 CIRCUITOS COMBINACIONALES...

Más detalles

Sesión 1: Introducción al lenguaje VHDL. S1 1 Laboratorio de Estructura de Computadores Curso 04 / 05

Sesión 1: Introducción al lenguaje VHDL. S1 1 Laboratorio de Estructura de Computadores Curso 04 / 05 Sesión 1: Introducción al lenguaje VHDL S1 1 AREAS DE APLICACION DE VHDL Síntesis i1 suma Documentación Diagnosis de Fallos i1 i2 - Circuito semisumador Componentes: puerta AND puerta OR puerta XOR......

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

4. SUMADORES EN BINARIO PURO (I)

4. SUMADORES EN BINARIO PURO (I) TEMA 3: SISTEMAS ARITMÉTICOS Introducción y objetivos (3). Representación y codificación de la información (4-7) 2. Sistemas numéricos posicionales. Binario, hexadecimal, octal, y BCD. (8-33) 3. Números

Más detalles

Memorias ROM: FPGA-VHDL Cómo???

Memorias ROM: FPGA-VHDL Cómo??? Memorias ROM: FPGA-VHDL Cómo??? Nota Técnica 03 Cristian Sisterna Introducción Básicamente hay dos formas de que una memoria ROM sea implementada en un FPGA a partir del código VHDL: - Deduciendo la memoria

Más detalles

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial

Más detalles

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

MAQUINA DE ESTADO FINITO (FSM) Autómata finito MAQUINA DE ESTADO FINITO (FSM) Autómata finito Modelo de Mealy E Lógica del próximo estado Q t+1 M E M O R I A Q t Lógica de salida S Ck Q t+1 = f (E, Q t ) S = g (E, Q t ) Modelo de Moore E Lógica del

Más detalles

Capítulo 2: LENGUAJES DE DESCRIPCIÓN DE HARDWARE: VHDL

Capítulo 2: LENGUAJES DE DESCRIPCIÓN DE HARDWARE: VHDL Capítulo 2: LENGUAJES DE DESCRIPCIÓN DE HARDWARE: VHDL Generalidades Ventajas e inconvenientes de los HDL s Características generales del VHDL Modelo del Hw Introducción al lenguaje VHDL Lenguajes de descripción

Más detalles

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Justificación: Se pretende con éste contribuir a que el alumno se inicie y conozca el entorno del IDE en la creación de pequeños programas en java Objetivos:

Más detalles

Laboratorio de Arquitectura de Computadoras

Laboratorio de Arquitectura de Computadoras Laboratorio de Arquitectura de Computadoras Estándar IEEE 1164 de VHDL Oscar Alvarado Nava oan@azc.uam.mx Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana,

Más detalles

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS A.- ASPECTOS FUNDAMENTALES DEL CÓDIGO ORIENTADO A OBJETOS MÓDULOS DE CÓDIGO: El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario,

Más detalles

Lenguaje descripción de hardware: VHDL

Lenguaje descripción de hardware: VHDL Lenguaje descripción de hardware: VHDL Generalidades A partir del desarrollo de circuitos Integrados Digitales programables con una gran cantidad de componentes lógicos y la necesidad de sistema digitales

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

9. Dibujar el diagrama de tiempos de las siguientes asignaciones de señales.

9. Dibujar el diagrama de tiempos de las siguientes asignaciones de señales. Sistemas Digitales (66.17) Práctica 2 - VHDL 1. Crear un paquete de utilidades al cual se le vayan agregando todas las funciones, procedimientos y declaración de tipos, constantes, etc., que se creen en

Más detalles

Practica No. 5 Diseño de un Multiplicador

Practica No. 5 Diseño de un Multiplicador Practica No. 5 Diseño de un Multiplicador Objetivo: Diseñar un módulo de multiplicación utilizando diferentes métodos, entender las ventajas y desventajas de cada uno de ellos. Aprender a usar procesos

Más detalles

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos).

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos). ELECTRÓNICA DIGITAL 24-I-2014 PREGUNTAS TEÓRICO PRÁCTICAS: 1. Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos). 11111100-4 10101010-86 01010110 86 2. Determinar el

Más detalles

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Práctica I Modelado y simulación de una máquina expendedora de refrescos Práctica I Modelado y simulación de una máquina expendedora de refrescos Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 2 1.1. Objetivos. En esta práctica vamos a modelar

Más detalles

Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Facultad de Ciencias Exactas y Tecnología UNT.

Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Facultad de Ciencias Exactas y Tecnología UNT. Tema 1 Parte 1: Clasificación de circuitos digitales Parte 2: Lenguajes de descripción de Hardware Parte 1. Introducción Circuitos Integrados: Microelectrónica Área de la electrónica aplicada Estudio de

Más detalles

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER Electrónica Digital Departamento de Electrónica VHDL Bioingeniería Facultad de Ingeniería - UNER VHDL VHSIC Hardware Design Language VHSIC Very High Speed Integrated Circuits Verilog Handel C Celóxica

Más detalles

Sesión 3: Modelo temporal: VHDL concurrente. S3 1 Laboratorio de Estructura de Computadores Curso 04 / 05

Sesión 3: Modelo temporal: VHDL concurrente. S3 1 Laboratorio de Estructura de Computadores Curso 04 / 05 Sesión 3: Modelo temporal: VHDL concurrente S3 1 Dominios secuencial y concurrente en VHDL ENTITY dispositivo IS PORT(pe1,...:IN tipoe; ps1,...:out tipos; pes1,...:inout tipoes END dispositivo ARCHITECTURE

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 3

Sistemas Electrónicos Digitales. PRACTICA nº 3 PRACTICA nº 3 Diseño top-down estructural y síntesis de un procesador dedicado elemental para resolver el cálculo del máximo común divisor (MCD) de dos números sin signo Objetivos: Análisis, diseño y síntesis

Más detalles

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal www.emtech.com.ar Temario Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

IEE 2712 Sistemas Digitales

IEE 2712 Sistemas Digitales IEE 2712 Sistemas Digitales Clase 6 Objetivos educacionales: 1. Saber aplicar el método de mapas de Karnaugh para 5 o más variables y para situaciones no-importa. 2. Conocer la implementación práctica

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006.

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006. INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006. OBJETIVOS: Con este proyecto se pretende que el alumno practique y afiance los conocimientos

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

module MUX_4_1 (Z, S1, S0, A3, A2, A1, A0); input S1, S0, A3, A2, A1, A0; output Z; wire W3, W2, W1, W0, NS1, NS0;

module MUX_4_1 (Z, S1, S0, A3, A2, A1, A0); input S1, S0, A3, A2, A1, A0; output Z; wire W3, W2, W1, W0, NS1, NS0; 1 - INTRODUCCIÓN La creación de circuitos integrados utilizando herramientas CAD (Computer Aided Design) conlleva una serie secuencial de pasos, comenzando con el diseño de entrada y finalizando con la

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos Pablo Huerta Pellitero Luis Rincón Córcoles ÍNDICE Bibliografía

Más detalles

Índice. VHDL Lección 2.9 Máquinas de Estados Finitos (FSM) 1

Índice. VHDL Lección 2.9 Máquinas de Estados Finitos (FSM) 1 Índice Introducción Niveles de abstracción del modelado con HDL Estilos descriptivos del modelado con HDL Ventajas y limitaciones de los HDLs El lenguaje VHDL Objetos, tipos de datos y operadores Unidades

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS Introducción a VHDL Sistemas digitales UTM-2006 JJVS Surgimiento de VHDL Necesidad de nuevos métodos ya que los clásicos (esquemáticos), llegan a ser ineficientes en diseños de altas escalas de integración.

Más detalles

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

MAQUINA DE ESTADO FINITO (FSM) Autómata finito MAQUINA DE ESTADO FINITO (FSM) Autómata finito Modelo de Mealy E Lógica del próximo estado Q t+1 M E M O R I A Q t Lógica de salida S Ck Q t+1 = f (E, Q t ) S = g (E, Q t ) Modelo de Moore E Lógica del

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA 1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación

Más detalles

TEMA III: OPERACIONES CON LOS DATOS

TEMA III: OPERACIONES CON LOS DATOS CUESTIONES A TRATAR: Cual es la función de la unidad operativa? Es necesaria? Qué tipos de circuitos implementan la unidad operativa? Unidad operativa frente a ALU Qué es una operación de múltiple precisión?

Más detalles

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso. Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE 2007. Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE 2007. Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL Objetivos OBJETIVO GENERAL Laboratorio de Diseño o de Sistemas Digitales EL-3312 Diseñar, simular, sintetizar e implementar sistemas digitales usando lenguajes de alto nivel para la descripción de hardware

Más detalles

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y Introducción Circuitos Bloques Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

Síntesis arquitectónica y de alto nivel

Síntesis arquitectónica y de alto nivel Síntesis arquitectónica y de alto nivel Módulo 1. Concepto y fases de la Síntesis de Alto Nivel 1 Diseño de circuitos: la complejidad Tratamiento de problemas de complejidad creciente Rápido desarrollo

Más detalles

Sumadores. Tipos de sumadores: Half-adder. Full-Adder. Carry-Look-Ahead. Carry-select.

Sumadores. Tipos de sumadores: Half-adder. Full-Adder. Carry-Look-Ahead. Carry-select. Sumadores En electrónica un sumador es un circuito lógico que calcula la operación suma. En los computadores modernos se encuentra en lo que se denomina Unidad aritmético lógica (ALU). Generalmente realizan

Más detalles

Universidad Autónoma de Baja California

Universidad Autónoma de Baja California Universidad Autónoma de Baja California Facultad de Ingeniería, Arquitectura y Diseño Práctica de laboratorio Programa educativo Plan de estudio Clave asignatura Nombre de la asignatura Bioingeniería 2009-2

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Conocimientos previos

Conocimientos previos Ficha de aprendizaje Tema: Datos, variables y Operaciones n 6 Logro Reconoce las partes de un programa y comprende su estructura. Reconoce la diferencia entre los tipos de datos. Asigna datos a las variables

Más detalles

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE TEMA 3. Modelos de sistemas con VHDL Curso 05/06 1 TEMA 3. Modelos de sistemas digitales 3.1 Sistemas combinacionales

Más detalles

Tutorial de VHDL: Contadores y Simulación

Tutorial de VHDL: Contadores y Simulación Tutorial de VHDL: Contadores y Simulación Importante: -Verifique la instalación del Webpack 6.0 y el Modelsim XE 6.0 SE. Ambos programas se pueden bajar desde www.xilinx.com. -Verifique también la licencia

Más detalles

II. Unidades de Diseño en VHDL

II. Unidades de Diseño en VHDL II. Unidades de Diseño en VHDL 1 Representaciones en VHDL Cualquier sistema debe poder comunicarse con su ambiente... INTERFAZ CUERPO I / 0 Sistema 2 Un sistema sin interfaz es INÚTIL. La Interfaz INTERFAZ

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán.

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán. Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE Ing. Arturo J. Miguel de Priego Paz Soldán www.tourdigital.net Chincha, Perú 30 de octubre de 2008 Capítulo 4 DESCODIFICADORES

Más detalles

^6+1 2^5+1 2^2+1 2^1+1 2^ ^6+1 2^0-65.

^6+1 2^5+1 2^2+1 2^1+1 2^ ^6+1 2^0-65. ELECTRÓNICA DIGITAL 23-I-2014 PREGUNTAS TEÓRICO PRÁCTICAS: 1. Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos). 10011001 10011000 01100111 1 2^6+1 2^5+1 2^2+1 2^1+1

Más detalles

Introducción a los lenguajes de descripción de hardware

Introducción a los lenguajes de descripción de hardware Introducción a los lenguajes de descripción de hardware Noviembre 2009 Jorge Juan Chico Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir

Más detalles