











































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: DSD, Profesor: Rafael Gazca, Carrera: Ingeniería Informática - Ingeniería de Computadores, Universidad: US
Tipo: Apuntes
1 / 51
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!












































Ingeniería de Computadores
Ingeniería de Computadores
Bloque I. Metodologías y Herramientas de diseño
Ingeniería de Computadores
Ingeniería de Computadores
Introducción. Clasificación de herramientas
Ingeniería de Computadores
Revisión de Verilog. Introducción
Ingeniería de Computadores
Revisión de Verilog. Introducción. Ejemplos
(tomado del material de Estructura de Computadores de 1º)
Describimos el circuito capturando su funcionalidad, usando para ello operadores de verilog,
Ingeniería de Computadores
Revisión de Verilog. Introducción. Ejemplos
(tomado del material de Estructura de Computadores de 1º)
Describimos el circuito capturando su funcionalidad, usando construcciones propias de un lenguaje de programación
Ingeniería de Computadores
Revisión de Verilog. Introducción. Ejemplos
Un HDL tiene implícita una semántica de tiempos asociada a sus objetos (señales) porque modela su evolución- Define unidad de tiempo y precisión
Describimos la evolución temporal de las señales a y b. Cada 10ns a y b cambian. Recorren todas las combinaciones posibles.
Estas señales a y b se usan como entradas del circuito que se simula (comp). Su descripción estaría en otro module
Control de la simulación. Simulamos hasta1000 ns
Ingeniería de Computadores
Revisión de Verilog. Estructura. Contenidos del module
module el_diseño (); Declaraciones de puertos Declaración de parámetros Declaración de tipos de datos Asignamientos continuos ( assign ) Instanciado de primitivas Instanciado de módulos Declaración de tareas y funciones Comportamientos (procedimientos, procesos) initial, always Asignamientos procedurales (blocking (=), non-blocking (<=), continuos) Bucles (for, repeat, while, forever) Control de flujo (if, condicional, case, wait, disable) Funciones y tareas del sistema Funciones y tareas del usuario endmodule
Ingeniería de Computadores
Revisión de Verilog. Modelado estructural
Los módulos se instancian dentro de otros módulos La excepción es el módulo del nivel más alto que es su propia instancia No se pueden instanciar modules en procedimientos Sintaxis
Ejemplo. Instanciado de componentes
module_name instance_name_1 (lista_conexiones_terminales), instance_name_2 (lista_conexiones_terminales);
wire [3:0] in1, in2; wire [3:0] o1, o2; // C1 es una instancia del module and // los términales de C1 referenciados por posición and4 C1(in1, in2, o1); // C2 es otra instancia del modulo and // los terminales de C2 referenciados por nombre and4 C2(.c(o2), .a(in1), .b(in2));
// Definición de and module and4(a, b, c); input [3:0] a, b; output [3:0] c; assign c=a&b; endmodule
Ingeniería de Computadores
Revisión de Verilog. Sintaxis básica
Verilog es sensible a minúsculas y mayúsculas. Las palabras claves (reservadas) son minúsculas Identificadores definidos por el usuario: pueden utilizar letras (mayúsculas y minúsculas), dígitos (no al principio), $ (no al principio), guion bajo Las directivas de compilación comienzan por ‘ Las funciones y tasks del sistema comienzan por $ Comentarios : // lo que sigue hasta el final de línea es un comentario / esto es un comentario / Valores lógicos Verilog tiene predefinido un conjunto de 4 valores lógicos : {1, 0, x, z}. Se usa x para valores desconocidos o no inicializados mientras que z define un estado de alta impedancia Parametros permiten que una constante se pueda utilizar simbólicamente module sumador(A, B, S); parameter Width = 32; input [Width -1: 0] A, B; output [Width:0] S; assign S = A + B; endmodule
Ingeniería de Computadores
Revisión de Verilog. Sintaxis básica
2’b10 2 binaria 2 10 3’d5 3 decimal 5 101 3’b5 no valido ‘ha - hexadecimal 10 depende de la máquina -45 - decimal -45 dep. máquina
Ingeniería de Computadores
Revisión de Verilog. Sintaxis básica. Tipos de datos
Análogo a un cable (nodo) en un circuito Pueden ser asignados implícitamente por módulos al instanciarlos (“se conectan a las salidas”) Puede ser asignado en un asignamiento continuo o un force...release Por defecto escalar, pueden definirse vectores y arrays Nets no explícitamente declarados son wire Sintaxis: tipo_net [msb:lsb] [#delay] identificador;
Ejemplos wire y1, z_5; // declara dos wires wire [7:0] data_bus; // declara un vector de 8 wires (bus) wire A= B + C; // se hace una asignación al declarar A wire #2 y; // asigna un retraso de 2 unidades
Ingeniería de Computadores
Revisión de Verilog. Sintaxis básica. Tipos de datos
Se asignan en sentencias procedurales (dentro de un initial o un always), funciones o tasks Conservan su valor hasta la siguiente asignación reg
Integer, real, time, realtime