Diseño modular con Verilog.

Documentos relacionados
Apéndice 7 Uso de abc Un Sistema para síntesis secuencial y verificación

Diseño modular con Verilog.

La comprensión de las ideas en que está basado espresso implican familiarizarse con nuevos conceptos asociados a funciones booleanas.

6-Simplificación. 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación. 6: Simplificación 1

Unidad Aritmética. A2 A1 A0 + B2 B1 B0 Co S2 S1 S0

LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1)

Simplificación de funciones lógicas utilizando Karnaugh

EJERCICIOS TEMA 17: CIRCUITOS DIGITALES COMBINACIONALES

Álgebra de Boole. Valparaíso, 1 er Semestre Prof. Rodrigo Araya E.

Sistemas Digitales I

Plantel Aztahuacan 011 Módulo: operación de circuitos electrónicos digitales

Sistemas Digitales. Diseño lógico con Verilog. Sinopsis. Prólogo.

10.1. Determinación de ecuaciones lógicas para las condiciones o flags.

FUNDAMENTOS DE COMPUTADORES Ejercicios U2: Circuitos Combinacionales

EJERCICIOS TEMA 17: CIRCUITOS DIGITALES COMBINACIONALES

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

Axiomas Básicos. ...Axiomas Básicos. Arquitecturas de Computadores Prof. MAURICIO SOLAR 3 Algebra de Boole. Temario.

HOJA DE PROBLEMAS 6: MÓDULOS COMBINACIONALES BÁSICOS

Arquitectura de Computadoras 2015 Práctico 03. Práctico 3. Álgebra de Boole. Método de Karnaugh. Circuitos lógicos combinatorios.

Diseño de circuitos combinacionales

3.2. LA PUERTA o COMPUERTA AND

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

Tema 1: Circuitos Combinacionales

Electrónica Digital. Ing. Javier Soto Vargas Ph.D. ECI TDDA(M) - Javier Soto 1

PROBLEMAS TECNOLOGÍA INDUSTRIAL II. CONTROL DIGITAL

5-Mapas de Karnaugh. 5: Karnaugh 1

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

9-Sistemas Secuenciales

13-Bloques Básicos Secuenciales

3-Formas Canónicas. 3: Canónicas 1

Algebra de Boole. » a + a = 1» a a = 0

DEPARTAMENTO ACADEMICO ELECTROCIDAD Y ELETRONICA

Suma de productos Producto de sumas. Fundamentos de los Computadores Grado en Ingeniería Informática

Tabla 5.2 Compuertas básicas A B A B A B

Circuitos electrónicos digitales

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Circuitos combinacionales. Funciones integradas

1ª evaluación: 1: INTRODUCCIÓN A LOS SISTEMAS DIGITALES SISTEMAS DE NUMERACIÓN BINARIO OCTAL Y HEXADECIMAL CAMBIOS DE BASE

TEMA 1. Sistemas Combinacionales.

Álgebra de Boole. Diseño Lógico

Circuitos Electrónicos Digitales

Certamen 2 Sistemas Digitales 01/2003 Nombre Solución Rol

Integrantes del equipo: Revisión Teórica

Universidad Autónoma de Baja California

5.3. Álgebras de Boole y de conmutación. Funciones lógicas

TEMA 5.2 FUNCIONES LÓGICAS TEMA 5 SISTEMAS DIGITALES FUNDAMENTOS DE ELECTRÓNICA

Mapas de Karnaugh para 4 variables

Unidad 3: Circuitos digitales.

Conceptos previos. Revisión de Sistemas Lógicos Formatos Numéricos. Dpto. Ingeniería Electrónica y Comunicaciones

Elementos de Diseño de Sistemas Digitales

Operaciones Booleanas y Compuertas Básicas

CIRCUITOS ELECTRÓNICOS DIGITALES BOLETÍN DE PROBLEMAS 4

Operación de circuitos lógicos combinatorios.

Circuitos Lógicos Combinatorios. Ing. Jorge Manrique 2004 Sistemas Digitales 1

Arquitectura de Computadoras

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid. Circuitos combinacionales

PROBLEMAS DE ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES I

SUMADORES Y COMPARADORES

Bloque 3 Guía para la realización de las prácticas

0. Repaso Electrónica Digital

Organización de Computadoras

Álgebra Booleana y Simplificación Lógica

TRABAJO PRÁCTICO Nº 3. Expresiones booleanas, tablas de verdad y compuertas lógicas

SIMPLIFICACION DE CIRCUITOS LOGICOS: DIAGRAMAS

8-Síntesis Multinivel

Subsistemas aritméticos y lógicos. Tema 10

Arquitecaura de Computadoras Tema 1 - Introducción a la Arquitectura de Computadoras

Circuitos Electrónicos Digitales. Tema II Parte II. Álgebra de Conmutación

HOJA DE PROBLEMAS 6: MÓDULOS COMBINACIONALES BÁSICOS

TRABAJO PRÁCTICO Nº 3. Expresiones booleanas, tablas de verdad y compuertas lógicas

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid

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

Codificación de la información y álgebra de conmutación EDIG

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

Tipos de datos y Operadores Básicos

Electrónica Digital: Sistemas Numéricos y Algebra de Boole

plicación de los circuitos SUMADOR DIBITAL S C

SISTEMAS DIGITALES CONTROL 1 (31/3/2014) APELLIDOS DNI: Firma NOMBRE MODELO DE EXAMEN A

2. CONTROL DE CIRCUITOS ELECTRÓNICOS COLEGIO MALVAR DPTO. CCNN Y TECNOLOGÍA 3º ESO

ABEL Para Síntesis. Dr. Juan C. Herrera Lozada

Circuitos Digitales Avanzados

CIRCUITOS ELECTRÓNICOS DIGITALES ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD AUTÓNOMA DE MADRID

5.1. Introducción a los sistemas digitales

EIE SISTEMAS DIGITALES Tema 5: Análisis de la lógica combinacional. Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

GUIA DE CIRCUITOS LOGICOS COMBINATORIOS

M. C. Felipe Santiago Espinosa

Problema Nº 1.a2.- Obtenga las siguientes conversiones numéricas. Problema Nº 1.a3.- Obtenga las siguientes conversiones numéricas. 9E36.

Arquitectura de Computadores. Resumen para Certamen 2 Por Franco Zuccar

ELECTRÓNICA DIGITAL. Ejercicios propuestos Tema 3

SOLUCIÓN TIPO TEST 1 Y 2 (CORRECTA 0,5 PUNTOS, ERRÓNEA, -0,25 PUNTOS) TIPO TEST 3 Y 4 (CORRECTA 1,0 PUNTO, ERRÓNEA, -0,5 PUNTOS)

Práctica 4. Sistemas Digitales. Objetivos particulares

Álgebra Booleana. Suma Booleana. El término suma es 1 si al menos uno de sus literales son 1. El término suma es 0 solamente si cada literal es 0.

ÍNDICE CAPÍTULO 1. CÓDIGOS DE NUMERACIÓN CAPÍTULO 2. ÁLGEBRA DE CONMUTACIÓN Y FUNCIONES LÓGICAS... 37

d)la primera función con un mux de 2 entradas de control, tomando como variables de control las dos más significativas

Representación de la información

Transcripción:

Diseño modular con Verilog.. Especificación. Se desea diseñar un sistema combinacional que tenga como entrada cuatro palabras de dos bits cada una, denominadas a, b, c y d; y que genere dos salidas. La salida f debe generar una señal alta cuando se tenga: a>b>c>d. La salida f2 debe colocarse en alto cuando a<=c o cuando a<d. a b c d 2 2 2 2 f f 2 Figura. Diagrama de sistema combinacional. 2. Diseño de abajo hacia arriba. (bottom-up). 2.. Empleando espresso. Desde un punto de vista combinacional se tienen que realizar 2 diseños, ya que hay dos funciones de salida, a partir de tablas de verdad que tienen 256 renglones cada una, ya que es un espacio de 8 variables de entrada. Con el apoyo de programas puede generarse la tabla de verdad en formato.pla. El que puede ser procesado por el minimizador espresso. El siguiente programa en C, genera las tablas de verdad. #include <stdio.h> #define INT_DIGITOS 63 static char buf[int_digitos + 2]; /* Buffer para INT_DIGITS dígitos, signo - y fin de string '\' */ char * prtint(int i, int largo) { int j; char *p = buf; for (j=int_digitos-; j>=; j--) if((<<j)&i) *p++=''; else *p++=''; return (buf+int_digitos-largo); }

2 Sistemas Digitales //La siguiente función debe modificarse para generar otras tablas de verdad. void prtinfile(file * stream) { unsigned int i, j,k,m; //encabezado archivo pla fprintf(stream, "%s\n", "#Comparador multiple sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a)"); fprintf(stream, "%s\n", ".i 8"); //2 cada operando fprintf(stream, "%s\n", ".o 2"); fprintf(stream, "%s\n", ".ilb a a b b c c d d"); fprintf(stream, "%s\n", ".ob f f2"); for(i=; i<4; i++) //2^2=4 { for(j=; j<4; j++) { for(k=; k<4; k++) for(m=; m<4; m++) { fprintf(stream, "%s", prtint(i, 2)); fprintf(stream, "%s", prtint(j, 2)); //se separa con tab la entrada de la salida fprintf(stream, "%s", prtint(k, 2)); fprintf(stream, "%s\t", prtint(m, 2)); if ((i>j)&(j>k)&(k>m)) fprintf(stream, "%s", prtint(,)); else fprintf(stream, "%s", prtint(,)); if ((i<=k) (m>i)) fprintf(stream, "%s\n", prtint(,)); else fprintf(stream, "%s\n", prtint(,)); } } printf("%d \n",i); //comenta avance } fprintf(stream, "%s\n", ".e"); //fin de archivo formato pla } int escribe_archivo(void) { FILE *stream; /* Abre stream para escritura, en modo texto. */ if ((stream = fopen("modcomp2.txt", "w")) == NULL) { fprintf(stderr, "No pudo abrir archivo de salida.\n"); return ; } prtinfile(stream); fclose(stream); /* close stream */ return ; } int main(void) { escribe_archivo(); return ;} El archivo de datos generado tiene un peso de 4 KB. Se da un listado de los 256 renglones de la tabla de verdad.

Diseño Modular. 3 #Comparador múltiple sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a).i 8.o 2.ilb a a b b c c d d.ob f f2

2 Sistemas Digitales.e Si el archivo anterior se procesa con espresso, con el siguiente comando: espresso Dexact modcomp2.txt > modcomp.pla Se obtienen los implicantes primos que cubren las funciones. En la matriz de cobertura, los ceros de la salida consideran que los implicantes no pertenecen a la función. Es una pla de tipo fd. #Comparador multiple sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a).i 8.o 2.ilb a a b b c c d d.ob f f2.p 8 ------ ------ ------ ------ ------ ------ -----.e El comando: Espresso Dexact oeqntott modcomp2.txt > modcomp.eqn Obtiene un listado de las ecuaciones minimizadas de diseño, en dos niveles, en formato eqn.

2 Sistemas Digitales #Comparador múltiple sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a) # exact Time was. sec, cost is c=8(8) in=23 out=8 tot=3 f = (a&a&b&!b&!c&c&!d&!d); f2 = (!a&!a) (!a&c) (!a&c) (!a&c) (c&c) (!a&d) (!a&d&d); El formato eqn, es fácilmente traducido a un diseño estructural en verilog, basta encabezar y terminar el módulo; además de preceder con assign a las ecuaciones de salida. En caso de ocurrir señales negadas, éstas son precedidas con el símbolo!, en el formato eqn; el cual debe reemplazarse globalmente con el símbolo de la negación de verilog: ~. #Comparador especial con operados a, b, c, d sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a) module mayor(a, a, b, b, c, c, d, d, f, f2); input a, a, b, b, c, c, d, d; output f, f2; assign f = (a&a&b&~b&~c&c&~d&~d); assign f2 = (~a&d&d) (c&c) (~a&c) (~a&d) (~a&c) (~a&~a) (~a&c); Endmodule El commando: espresso -Dexact -s -epos modcomptv.pla Produce el diseño en producto de sumas. #Comparador multiple sin signo de 2 bits. f=a>b>c>d ; f2=(a<=c) (d>a) # exact Time was. sec, cost is c=() in=23 out=3 tot=36.i 8.o 2.ilb a a b b c c d d.ob f f2 #.phase.p ------- ------- ----- ----- ---- ---- ---- ------- ------- -------.e El commando: espresso -Dexact -s -epos -oeqntott modcomptv.pla Produce las ecuaciones, donde las salidas deben considerarse que son el complemento de las buscadas: # exact Time was. sec, cost is c=() in=23 out=3 tot=36 f = (b) (!b) (a&!c&!d&d) (a&!c&!c&!d) (a&a&!c&d) ( c) (!a) (!a); f2 = (a&!c&!d) (a&a&!c) (a&!c&!d&d) (a&!c&!c&!d)

Diseño Modular. 3 ( a&a&!c&d); El diseño en forma de producto de sumas: f = (!b) (b) (!a+c+d+!d)(!a+c+c+d)(!a+!a+c+!d)(!c)(a)(a); f2 = (!a+c+d)(!a+!a+c)(!a+c+d+!d)(!a+c+c+d)(!a+!a+c+!d); 2.2. Empleando métodos para papel y lápiz. Puede notarse que la expresión lógica para la función f, podría haberse deducido considerando que la tabla de verdad sólo tiene un mintérmino. Ya que a>b>c>d sólo puede cumplirse para la combinación a=3, b=2, c= y d=, en decimal. Lo que permite escribir directamente: f =aabb c cd d Para f2, puede considerarse la siguiente descomposición en subsistemas: a c d a a<=c d>a f 2 Figura 2. Descomposición de f2. Ahora los mapas de los subsistemas involucran a 4 variables, y pueden escribirse directamente: a a c c 4 5 2 8 3 9 d d a a 4 5 2 8 3 9 3 7 5 3 7 5 2 6 4 2 6 4 a<=c d>a Figura 3. Mapas de los subsistemas de la descomposición de f2.

4 Sistemas Digitales Minimizando como suma de productos. (a<=c) = a a + cc + a c + a c + a c literales, 5 entradas (d >a ) = a a d + a dd + a d 8 literales, entradas. Entonces resulta: f2 = a a + cc + a c + a c + a c + a dd + a d 5 literales, 22 entradas, 2 niveles. Considerando que en la suma: a a +a a d se absorbe d. Debido a que la descomposición efectuada en la Figura 2, existe un or en la salida, esta forma del diseño resulta en dos niveles. Minimizando como producto de sumas. (a<=c) = ac c + ac c + ac (a<=c) = (a +c+c)(a +c+c )( a +c) 8 literales, entradas. (d>a) = d d + aa + d a + d a + d a (d>a) = (d+d)( a +a )(d+a )( d+a )(d+a ) literales, 5 entradas. Resultando: f2=(a +c+c)(a +c+c )( a +c) + (d+d)( a +a )(d+a )( d+a )(d+a ) Con 8 literales y 28 entradas en tres niveles. Puede compararse con el resultado obtenido con espresso, con la opción epos, en la cual f2 se obtiene en 2 niveles con 8 literales, 23 entradas. 3. Diseño abstracto. De arriba hacia abajo. Top-down. La siguiente descripción Verilog, mediante el empleo de buses de dos bits cada uno, representa las funciones buscadas. Nótese que la especificación: a>b>c>d se reemplaza por la lógicamente equivalente, mediante operadores and. Como el resultado de una comparación entre dos operandos binarios da como resultado un valor de un bit, pueden emplearse operadores al bit. En este caso, la descripción también puede efectuarse empleando operadores lógicos (&& y, para el and y para el or de expresiones lógicas). module compa2b (f, f2, a, b, c, d); output f, f2; input [:] a, b, c, d; // 4 entradas de dos bits cada una assign f= (a>b) & (b>c) & (c>d), f2= (a<=c) (a<d ); endmodule Si la herramienta de síntesis, puede descomponer el módulo en bloques disponibles en su biblioteca, se puede proceder al diseño. En caso que la descripción no fuera sintetizable, el diseñador debe descomponer en bloques su arquitectura inicial.

Diseño Modular. 5 3.. Mapeo a compuertas. Descripción RTL. En el caso del ejemplo, se reconocen 5 bloques comparadores de dos bits. Las Figuras 4 y 5 muestran un diagrama en bloques de las entradas y salidas, y la descomposición en bloques de comparación. Figura 4. Diagrama en bloques. c>d b>c a>b a<d a<=c Figura 5. Arquitectura RTL del módulo, en base a comparadores. Los bloques comparadores pueden ser descritos por compuertas lógicas básicas. Determinando de este modo expresiones booleanas de las funciones. Al descenso de la descripción abstracta a expresiones boolenas, mediante compuertas y registros, en el caso de sistemas secuenciales, se lo denomina nivel de transferencia de registros o RTL (register transfer level). Los distintos bloques comparadores de dos bits, pueden descomponerse en subsistemas menores. Un esquema general se muestra en la Figura 6.

6 Sistemas Digitales El primer bloque es una red booleana en base a compuertas que implementa la función xor, de los bits más significativos de los comparadores. El segundo bloque, implementa la función especial del comparador: mayor, menor o menor o igual, en el caso del ejemplo que se analiza. xor Figura 6. Subsistemas de los comparadores. Nótese que el xor se implementa en tres niveles. Esto se debe a que las compuertas de biblioteca disponibles son compuertas and, or e inversores. La Figura 7, describe la expresión booleana: Result = DD + D D, empleando tres niveles. Figura 7. Mapeo a compuertas de función xor. Si los bits más significativos son iguales, la señal _n2 luego del inversor estará en alto, en la Figura 8. En este caso se comparan los dos bits menos significativos. Si no son iguales se comparan los bits más significativos, generando la señal inferior del or de salida. Figura 8. Expresiones para la función A mayor que B. La descripción de la función mayor que, en términos de compuertas, resulta en tres niveles:

Diseño Modular. 7 AGB= ab + ab (a==b). El descenso a nivel de compuertas, es una forma de representar las funciones por expresiones. La Figura 8, muestra el esquemático para la función A menor que B. Que es representada por la expresión: ALB= a b + a b (a==b). Figura 9. Expresiones para la función A menor que B. La Figura, muestra la implementación, en base a compuertas, de la función de comparación A menor o igual que B. ALEB= (a + ((a==b)+b) ) (a +b) Figura. Expresiones para la función A menor o igual que B. 3.2. Mapeo a LUT. Implementación con FPGA. Una vez descrita la red booleana por expresiones, se las minimiza, pero considerando que el bloque mínimo de implementación física es una Tabla de búsqueda (LUT look-up table), de 4 bits de entrada y un bit de salida. Estas tablas permiten almacenar una tabla de verdad de una función de cuatro variables. Por supuesto que este bloque también permite representar funciones boolenas de dos y tres variables, pero en estos casos se estará perdiendo parte de la superficie del chip. La síntesis en base a LUT4 se muestra en la Figura.

8 Sistemas Digitales Cada LUT se representa en forma resumida por el patrón hexadecimal almacenado en ella. Por ejemplo la LUT 2 almacena, en binario:. El primer bit está asociado a la combinación de las entradas y el último bit a la combinación de las entradas. Representa la ecuación: ii i2 i3. Donde i3 es la entrada dibujada en la posición superior en el esquemático. La Figura 2 muestra la tabla de verdad, y la Figura 3 el mapa de Karnaugh. c d f f2 b a Figura. Esquemático en base a LUTs de las funciones f y f2.

Diseño Modular. 9 Figura 2. Contenido LUT4 2. Figura 3. Mapa de Karnaugh de LUT4 2. Inspeccionando las entradas de la LUT2, se obtiene que, en términos de las entradas, representa la ecuación: cd d c De modo similar, la LUT4_8, representa la ecuación: iii2i3, que en términos de las variables de entrada puede escribirse: aabb. La LUT2_8 es simplemente un and. Por lo cual la implementación de la función f, resulta: f= (cd d c )( aabb ), la cual puede escribirse según: f=aabb c cd d Que es igual al resultado obtenido antes, empleando espresso o métodos manuales.

Sistemas Digitales Para f2 se tiene un mux que bajo el control de la señal a deja pasar la salida de la LUT4_EAFF, con a=; o la de la LUT4_D5D4, con a=. La LUT EAFF representa a: i+ii2+i3, que en términos de las entradas resulta: c+dd+a. La LUT D5D4 representa a: i i2+ii2+i i3+i i que en términos de las entradas resulta: a c+cc+a d+a c. Entonces f2, puede escribirse: f2 = a(a c+cc+a d+a c) + a (c+dd+a ) Que es equivalente al diseño mínimo de espresso obtenido antes, en 2.: f2 = (a a ) + (a c) + (a c) + (a c) + (cc) + (a d) + (a dd); 3.3. Mapeo a CPLD. Implementación suma de productos. En este tipo de síntesis se obtienen las ecuaciones de la red booleana en la forma suma de productos. Puede escogerse que se desplieguen las ecuaciones minimizadas en Verilog. assign f = (b[] &&!d[] &&!d[] &&!b[] && c[] && a[] &&!c[] && a[]); assign f2 =!((!d[] &&!c[] && a[]) (!d[] &&!c[] && a[]) (!c[] && a[] && a[]) (a[] &&!c[] && a[]) (!d[] &&!c[] && a[] &&!c[])); La síntesis RTL genera en este caso comparadores sin emplear las funciones xor. También puede obtenerse el esquemático con síntesis multinivel. Figura 4. Mapeo a tecnología CPLD.

Diseño Modular. 4. Diseño estructural en Verilog. Cuando se han obtenido las ecuaciones booleanas del sistema digital, desde las tablas de verdad o mapas de Karnaugh, pueden representarse el sistema mediante un módulo estructural basado en compuertas. A continuación se describe en Verilog estructural el módulo que representa al sistema combinacional que se desea diseñar. module compa2b (f, f2, a, b, c, d); output f, f2; // mux outputs de 8 bits input [:] a, b, c, d; // mux inputs de 8 bits cada una assign f = (b[] & ~d[] & ~d[] & ~b[] & c[] & a[] & ~c[] & a[]); assign f2 = ~( (~d[] & ~c[] & a[]) (!d[] & ~c[] & a[]) (~c[] & a[] & a[]) (a[] & ~c[] & a[]) (~d[] & ~c[] & a[] & ~c[]) ); endmodule 4.. Diseño basado en FPGA. En este caso el mapeo tecnológico a FPGA, resulta igual al anterior. Pero el descenso a nivel de compuertas es diferente, ya que no emplea los comparadores que sintetiza la descripción abstracta. Ahora la descripción no es abstracta, ya que se da la arquitectura interna. La Figura 5 muestra los dos bloques que generan las funciones de salida. Figura 5. Descripción RTL de la representación estructural en Verilog.

2 Sistemas Digitales El bloque superior, de la Figura 5, implementa a f. Cuyo diagrama interno se muestra en la Figura 6. El subsistema inferior, implementa a f2, nótese que sólo ingresan 6 señales. Su diagrama se ilustra en la Figura 7. Figura 6. Diseño RTL de f, mediante Verilog estructural. Figura 7. Diseño RTL de f2, mediante Verilog estructural.

Diseño Modular. 3 4.2. Diseño basado en CPLD. En este caso se obtiene una minimización basada en suma de productos. Generando un esquema RTL basado en una red booleana con nodos que implementan los productos o cubos que cubren a las funciones. Cada producto se implementa en dos niveles, considerando la obtención de las señales complementadas mediante inversores, dentro de los nodos. Figura 8. RTL basado en CPLD. Nodos con los implicantes. Se tiene para el nodo 4, la ecuación: n4= (c+c) ad. Figura 9. Producto del nodo 4. Se tiene para el nodo 3, la ecuación: n3= c aa.

4 Sistemas Digitales Figura 2. Producto del nodo 3. Se tiene para el nodo 2, la ecuación: n2= c aa. Figura 2. Producto del nodo 2. Se tiene para el nodo, la ecuación: n= d ac. Figura 22. Producto del nodo. Se tiene para el nodo, la ecuación: n= d ac. Entonces para f2, se tiene: f2= (n4+n3+n2+n+n) =((c+c) ad + c aa+c aa+d ac +d ac )

Diseño Modular. 5 Figura 23. Producto del nodo. El único producto asociado a f, se sintetiza mediante: f= (c+b+d+d) aacb. Figura 24. Producto de función f. El mapeo tecnológico de los nodos anteriores a una CPLD, se muestra en la Figura 25.

6 Sistemas Digitales Ejercicios propuestos. Figura 25. Mapeo tecnológico de los nodos a una CPLD. Modificar el diseño para emplear buses de datos de entrada de 3 bits. Modificar el diseño para emplear buses de datos de entrada de 6 bits. Modificar el diseño pero ahora con f= a>b>c>d>7, con buses de entrada de 4 bits.

Diseño Modular. 7 Índice general. DISEÑO MODULAR CON VERILOG..... ESPECIFICACIÓN.... 2. DISEÑO DE ABAJO HACIA ARRIBA. (BOTTOM-UP).... 2.. Empleando espresso.... 2.2. Empleando métodos para papel y lápiz.... 3 Minimizando como suma de productos.... 4 Minimizando como producto de sumas.... 4 3. DISEÑO ABSTRACTO. DE ARRIBA HACIA ABAJO. TOP-DOWN.... 4 3.. Mapeo a compuertas. Descripción RTL.... 5 3.2. Mapeo a LUT. Implementación con FPGA.... 7 3.3. Mapeo a CPLD. Implementación suma de productos.... 4. DISEÑO ESTRUCTURAL EN VERILOG.... 4.. Diseño basado en FPGA.... 4.2. Diseño basado en CPLD.... 3 EJERCICIOS PROPUESTOS.... 6 ÍNDICE GENERAL.... 7 ÍNDICE DE FIGURAS.... 7 Índice de Figuras. FIGURA. DIAGRAMA DE SISTEMA COMBINACIONAL.... FIGURA 2. DESCOMPOSICIÓN DE F2.... 3 FIGURA 3. MAPAS DE LOS SUBSISTEMAS DE LA DESCOMPOSICIÓN DE F2... 3 FIGURA 4. DIAGRAMA EN BLOQUES.... 5 FIGURA 5. ARQUITECTURA RTL DEL MÓDULO, EN BASE A COMPARADORES.... 5 FIGURA 6. SUBSISTEMAS DE LOS COMPARADORES.... 6 FIGURA 7. MAPEO A COMPUERTAS DE FUNCIÓN XOR.... 6 FIGURA 8. EXPRESIONES PARA LA FUNCIÓN A MAYOR QUE B.... 6 FIGURA 9. EXPRESIONES PARA LA FUNCIÓN A MENOR QUE B.... 7 FIGURA. EXPRESIONES PARA LA FUNCIÓN A MENOR O IGUAL QUE B.... 7 FIGURA. ESQUEMÁTICO EN BASE A LUTS DE LAS FUNCIONES F Y F2.... 8 FIGURA 2. CONTENIDO LUT4 2.... 9 FIGURA 3. MAPA DE KARNAUGH DE LUT4 2.... 9 FIGURA 4. MAPEO A TECNOLOGÍA CPLD.... FIGURA 5. DESCRIPCIÓN RTL DE LA REPRESENTACIÓN ESTRUCTURAL EN VERILOG.... FIGURA 6. DISEÑO RTL DE F, MEDIANTE VERILOG ESTRUCTURAL.... 2 FIGURA 7. DISEÑO RTL DE F2, MEDIANTE VERILOG ESTRUCTURAL.... 2 FIGURA 8. RTL BASADO EN CPLD. NODOS CON LOS IMPLICANTES.... 3 FIGURA 9. PRODUCTO DEL NODO 4.... 3 FIGURA 2. PRODUCTO DEL NODO 3.... 4 FIGURA 2. PRODUCTO DEL NODO 2.... 4 FIGURA 22. PRODUCTO DEL NODO.... 4 FIGURA 23. PRODUCTO DEL NODO.... 5 FIGURA 24. PRODUCTO DE FUNCIÓN F.... 5

8 Sistemas Digitales FIGURA 25. MAPEO TECNOLÓGICO DE LOS NODOS A UNA CPLD.... 6