dsch y microwind vlsi

116
ÍNDICE DE CONTENIDOS 1. TEMA.................................................. 4 2. PLANTEAMIENTO DEL PROBLEMA............................4 3. OBJETIVOS.............................................4 3.1. Objetivo General...................................4 3.2. Objetivos Específicos..............................4 4. MARCO TEÓRICO.........................................4 4.1 Familia MOS........................................4 4.2 El transistor nMOS.................................5 4.3 El Transistor pMOS.................................6 4.4 Puertas de paso: NMOS, PMOS........................6 4.5 Lógica combinacional cMOS..........................7 4.6 Inversor CMOS......................................8 4.7 Compuerta NAND CMOS................................8 4.8 Compuerta NOR CMOS.................................9 4.9 Multiplexor CMOS...................................9 4.10 Álgebra de boole. Lógica combinacional...........10 4.11 Estados lógicos y función lógica.................10 4.12 Teoremas booleanos...............................10 4.13 Simplificación de funciones utilizando mapas de Karnaugh...............................................11 4.14 Microwind........................................12 4.15 Dsch.............................................12 5. DESARROLLO DEL PROYECTO..............................12 5.1 DISPLAY DE 7 SEGMENTOS............................12 5.1.1. Tabla de verdad.....................................13 5.1.2. Mapas de K..........................................13 5.1.3. Funciones Simplificadas.............................15 5.2 DECODIFICADORES...................................15 5.2.1 Tabla de verdad.....................................15 5.2.2 Funciones Simplificadas.............................16 1

Upload: marco-gualotuna

Post on 17-Feb-2016

323 views

Category:

Documents


16 download

DESCRIPTION

DISEÑO VLSI Diseño con transistoresdsch microwindveriloj

TRANSCRIPT

Page 1: DSCH Y MICROWIND VLSI

ÍNDICE DE CONTENIDOS 1. TEMA........................................................................................................................4

2. PLANTEAMIENTO DEL PROBLEMA..................................................................4

3. OBJETIVOS..............................................................................................................4

3.1. Objetivo General.................................................................................................4

3.2. Objetivos Específicos.........................................................................................4

4. MARCO TEÓRICO...................................................................................................4

4.1 Familia MOS.......................................................................................................4

4.2 El transistor nMOS.............................................................................................5

4.3 El Transistor pMOS............................................................................................6

4.4 Puertas de paso: NMOS, PMOS.........................................................................6

4.5 Lógica combinacional cMOS.............................................................................7

4.6 Inversor CMOS...................................................................................................8

4.7 Compuerta NAND CMOS..................................................................................8

4.8 Compuerta NOR CMOS.....................................................................................9

4.9 Multiplexor CMOS.............................................................................................9

4.10 Álgebra de boole. Lógica combinacional......................................................10

4.11 Estados lógicos y función lógica...................................................................10

4.12 Teoremas booleanos......................................................................................10

4.13 Simplificación de funciones utilizando mapas de Karnaugh........................11

4.14 Microwind.....................................................................................................12

4.15 Dsch...............................................................................................................12

5. DESARROLLO DEL PROYECTO........................................................................12

5.1 DISPLAY DE 7 SEGMENTOS.......................................................................12

5.1.1. Tabla de verdad..................................................................................................13

5.1.2. Mapas de K.........................................................................................................13

5.1.3. Funciones Simplificadas......................................................................................15

5.2 DECODIFICADORES.....................................................................................15

5.2.1 Tabla de verdad..................................................................................................15

5.2.2 Funciones Simplificadas......................................................................................16

5.3 DETECTOR DE NÚMEROS PRIMOS EN BCD-XS-3.................................16

5.3.1. Tabla de verdad..................................................................................................16

5.3.2. Mapa K................................................................................................................17

5.3.3. Función Simplificada...........................................................................................17

5.4 COMPARADOR..............................................................................................17

1

Page 2: DSCH Y MICROWIND VLSI

5.4.1. Tabla de verdad..................................................................................................17

5.4.2. Mapa K................................................................................................................19

5.4.3. Función Simplificada...........................................................................................19

6. DIAGRAMAS..........................................................................................................20

6.1 Diagramas de bloques.......................................................................................20

6.1.1 Bcd 7 segmentos.................................................................................................20

6.1.2 Decodificadores..................................................................................................20

6.1.3 Detector de números primos en bcd-xs-3..........................................................20

6.1.4 Comparador........................................................................................................21

6.2 Diagramas UML de casos de uso.....................................................................21

6.2.1 Bcd 7 segmentos.................................................................................................21

6.2.2 Decodificadores..................................................................................................21

6.2.3 Detector de números primos en bcd-xs-3..........................................................22

6.2.4 Comparador........................................................................................................22

6.3 Diagramas eléctricos.........................................................................................22

6.3.1 Bcd 7 segmentos.................................................................................................22

6.3.2 Decodificadores..................................................................................................28

6.3.3 Detector de números primos en bcd-xs-3..........................................................33

6.3.4 Comparador........................................................................................................38

6.4 Diagramas UML de secuencias........................................................................43

6.4.1 Bcd 7 segmentos.................................................................................................43

6.4.2 Decodificadores..................................................................................................43

6.4.3 Detector de números primos en bcd-xs-3..........................................................44

6.4.4 Comparador........................................................................................................44

6.5 Diagramas esquemáticos...................................................................................45

6.5.1 Bcd 7 segmentos.................................................................................................45

6.5.2 Decodificadores..................................................................................................47

6.5.3 Detector de números en bcd-xs-3......................................................................48

6.5.4 Comparador........................................................................................................48

7. CÓDIGO VERILOG................................................................................................48

8. EXPLICACIÓN DEL CÓDIGO..............................................................................55

9. LISTA DE COMPONENTES..................................................................................55

10. MAPA DE VARIABLES.....................................................................................56

10.1 Bcd 7 segmentos...........................................................................................56

10.2 Decodificadores.............................................................................................56

2

Page 3: DSCH Y MICROWIND VLSI

10.3 Detector de números primos en bcd-xs-3......................................................57

10.4 Comparador...................................................................................................58

11. DESCRIPCIÓN DE PRERREQUISITOS Y CONFIGURACIÓN.....................58

12. APORTACIONES................................................................................................59

12.1 Tabla de verdad.............................................................................................59

12.2 Función simplificada.....................................................................................59

12.3 Diagrama de bloques.....................................................................................60

12.4 Diagrama UML (casos de uso).....................................................................60

12.5 Diagrama UML de secuencias......................................................................60

12.6 Diagramas eléctricos.....................................................................................60

12.7 Diagrama esquemático..................................................................................66

12.8 Mapa de variables.........................................................................................66

12.9 Código Verilog..............................................................................................66

13. CONCLUSIONES................................................................................................67

14. RECOMENDACIONES......................................................................................68

15. CRONOGRAMA.................................................................................................68

16. BIBLIOGRAFÍA..................................................................................................69

17. ANEXOS..............................................................................................................70

17.1 Manual de Usuario........................................................................................70

Tabla de verdad...........................................................................................................72

ÍNDICE DE FIGURASFigura. 1. Representación y símbolos de los transistores MOSFET...............................7Figura. 2. Transistor nMOS.............................................................................................7Figura. 3. Transistor pMOS..............................................................................................8Figura. 4. Puerta de paso nMOS.......................................................................................9Figura. 5. Puerta de paso pMOS.......................................................................................9Figura. 6. Lógica combinacional cMOS...........................................................................9Figura. 7. Inversor CMOS..............................................................................................10Figura. 8. Compuerta NAND CMOS.............................................................................10Figura. 9. Compuerta NOR CMOS................................................................................11Figura. 10. Multiplexor CMOS......................................................................................11Figura. 11. Circuito Binario............................................................................................12Figura. 12. Mapa K de dos entradas Figura. 13. Mapa K de tres entradas.............13Figura. 14. Mapa K de 4 entradas...................................................................................14Figura. 15. Enunciado problema 1.................................................................................15Figura. 16. Enunciado problema 2.................................................................................17Figura. 17. Enunciado problema 4.................................................................................19Figura. 18. Diagrama de bloques problema 1.................................................................22

3

Page 4: DSCH Y MICROWIND VLSI

Figura. 19. Diagrama de bloques problema 2.................................................................22Figura. 20. Diagrama de bloques problema 3.................................................................22Figura. 21. Diagrama de bloques problema 4.................................................................23Figura. 22. Diagrama UML de casos de uso problema 1...............................................23Figura. 23. Diagrama UML de casos de uso problema 2...............................................23Figura. 24. Diagrama UML de casos de uso problema 3...............................................24Figura. 25. Diagrama UML de casos de uso problema 4...............................................24Figura. 26 Simulación Microwind problema 1...............................................................25Figura. 27. Resultado de Microwind problema 1...........................................................26Figura. 28. Simulación Microwind con verilog problema 1..........................................27Figura. 29. Resultado de Microwind con verilog problema 1........................................28Figura. 30. Simulación DSCH problema 2.....................................................................29Figura. 31. Simulación Microwind problema 2..............................................................30Figura. 32. Resultado de Microwind problema 2...........................................................31Figura. 33. Simulación Microwind con verilog..............................................................32Figura. 34. Resultado de Microwind con verilog...........................................................33Figura. 35. Simulación DSCH problema 2....................................................................34Figura. 36. Simulación Microwind problema 3..............................................................35Figura. 37. Resultado de Microwind problema 3...........................................................36Figura. 38. Simulación Microwind con verilog..............................................................37Figura. 39. Resultado de Microwind con verilog problema 3........................................38Figura. 40. Simulación DSCH problema 3....................................................................39Figura. 41. Simulación Microwind problema 4..............................................................40Figura. 42. Resultado de Microwind problema 4...........................................................41Figura. 43. Simulación Microwind con verilog..............................................................42Figura. 44. Resultado de Microwind con verilog...........................................................43Figura. 45. Simulación DSCH problema 4.....................................................................44Figura. 46. Diagrama UML de secuencias problema 1..................................................45Figura. 47. Diagrama UML de casos de uso problema 2...............................................45Figura. 48. Diagrama UML de secuencias problema 4..................................................46Figura. 49. Diagrama esquemático de segmento a problema 1......................................47Figura. 50. Diagrama esquemático de segmento b problema 1......................................47Figura. 51. Diagrama esquemático de segmento c problema 1......................................47Figura. 52. Diagrama esquemático de segmento d problema 1......................................48Figura. 53. Diagrama esquemático de segmento e problema 1......................................48Figura. 54. Diagrama esquemático de segmento f problema 1.....................................48Figura. 55. Diagrama esquemático de segmento g problema 1......................................49Figura. 56. Diagrama esquemático problema 2..............................................................49Figura. 57. Diagrama esquemático problema 3..............................................................50Figura. 58. Diagrama esquemático problema 4..............................................................50Figura. 59. Diagrama de bloques problema extra...........................................................62Figura. 60. Diagrama UML de casos de uso problema extra.........................................62Figura. 61. Diagramas UML de secuencias problema extra..........................................62Figura. 62. Simulación de Microwind problema extra..................................................63Figura. 63. Resultado de Microwind problema extra.....................................................64Figura. 64.Simulación de Microwind con verilog..........................................................65Figura. 65. Resultado de Microwind con verilog...........................................................66

4

Page 5: DSCH Y MICROWIND VLSI

Figura. 66. Simulación en DSCH problema extra........................................................67Figura. 67. Diagrama esquemático problema extra........................................................68Figura. 68 Cronograma...................................................................................................70Figura. 69. Cronograma Diagrama de Gantt..................................................................71

ÍNDICE DE TABLASTabla. 1. Tabla de verdad de una compuerta NAND.....................................................10Tabla. 2. Tabla de verdad de una compuerta NOR........................................................11Tabla. 3. Tabla de verdad de un Multiplexor de 2 a 1....................................................11Tabla. 4. Tabla de Verdad..............................................................................................12Tabla. 5. Teoremas booleanos........................................................................................13Tabla. 6. Tabla de Verdad..............................................................................................13Tabla. 7. Tabla de verdad problema 1............................................................................15Tabla. 8. Mapa K de led a problema 1...........................................................................15Tabla. 9. Mapa K de led b problema 1...........................................................................16Tabla. 10. Mapa K de led c problema 1.........................................................................16Tabla. 11. Mapa K de led d problema 1.........................................................................16Tabla. 12. Mapa K de led e problema 1.........................................................................16Tabla. 13. Mapa K de led f problema 1..........................................................................17Tabla. 14. Mapa K led g problema 1..............................................................................17Tabla. 15. Tabla de verdad problema 2..........................................................................18Tabla. 16. Tabla de verdad problema 3..........................................................................19Tabla. 17. Mapa K problema 3.......................................................................................19Tabla. 18. Tabla de verdad 1 problema 4.......................................................................20Tabla. 19. Tabla de verdad 2 problema 4.......................................................................21Tabla. 20. Mapa K 1 problema 4....................................................................................21Tabla. 21. Mapa K 2 problema 4....................................................................................21Tabla. 22. Lista de componentes....................................................................................58Tabla. 23. Variable de entrada problema 1.....................................................................58Tabla. 24-. Variables de salida problema 1....................................................................58Tabla. 25. Variables de entrada problema 2...................................................................59Tabla. 26. Variables de salida problema 2.....................................................................59Tabla. 27. Variables de entrada problema 3...................................................................60Tabla. 28. Variables de salida problema 3.....................................................................60Tabla. 29. Variables de entrada problema 4...................................................................60Tabla. 30. Variables de salida problema 4.....................................................................60Tabla. 31. Tabla de verdad problema extra....................................................................61Tabla. 32. Variables de entrada problema extra.............................................................68Tabla. 33. Variables de salida problema extra...............................................................68

5

Page 6: DSCH Y MICROWIND VLSI

1. TEMA.Producto de Unidad No 1.

2. PLANTEAMIENTO DEL PROBLEMA.

La tecnología CMOS (Complementary Metal Oxide Semiconductor, "Metal Óxido Semiconductor Complementario") es utilizada para la fabricación de circuitos integrados, se caracteriza por manipular conjuntamente transistores de tipo PMOS (polaridad positiva) y tipo NMOS (polaridad negativa), configurados de tal forma que, en estado de reposo, el consumo de energía es debido a las corrientes parásitas.(Noriega, 2006)

En la actualidad, la mayoría de los circuitos integrados que se fabrican utilizan la tecnología CMOS, esto incluye microprocesadores, memorias, DSPs y muchos otros tipos de chips digitales.

En el presente trabajo se vio la necesidad de implementar y dar solución a problemas de electrónica digital, empleando transistores de efecto de campo tipo PMOS y NMOS, para de este modo comprender de mejor manera el diseño de compuertas lógicas, además de la utilización de herramientas de software como MICROWIND y DSCH para facilitar el diseño y simulación de los circuitos.

3. OBJETIVOS.

3.1. Objetivo General. Diseñar e implementar el circuito solución a los problemas propuestos de

electrónica digital, con la ayuda de software para realizar las simulaciones como Microwind y DSCH.

3.2. Objetivos Específicos. Aplicar los conocimientos adquiridos en Sistemas Digitales para realizar

el diseño del circuito solución de los problemas propuestos. Realizar la tabla de verdad correspondiente para cada problema y utilizar

métodos de reducción de funciones lógicas. Simular el diseño de cada uno de los ejercicios y verificar el

funcionamiento lógico de los mismos. Generar el código Verilog para cada uno de los problemas propuestos.

4. MARCO TEÓRICO

4.1 Familia MOS.Las familias MOS son aquellas que basan su funcionamiento en los transistores de efecto campo o MOSFET. Estos transistores se pueden clasificar en dos tipos, según el canal utilizado: NMOS y PMOS. (Cuadros, 2010)

6

Page 7: DSCH Y MICROWIND VLSI

Figura. 1. Representación y símbolos de los transistores MOSFET.

4.2 El transistor nMOSUn transistor MOS (Metal-Oxide-Silicon) de canal n (nMOS), es una estructura física creada mediante la superposición de diferentes materiales:

o Un sustrato tipo p ligeramente.o Dos regiones tipo n fuertemente dopadas, fuente y drenador, separadas

por una región de sustrato llamada canal.o Una fina capa de aislante sobre el canal.o Una capa de polisilicio sobre el aislante.

Figura. 2. Transistor nMOS

Eléctricamente, un transistor nMOS es un dispositivo de 4 terminales que permite controlar por voltaje la intensidad que circula por el canal.

o Sustrato: típicamente no se tiene en cuenta porque suele estar conectado a GND.

o Puerta: es un terminal de control que regula la intensidad que circula por el canal.

o Fuente y drenador: son los terminales origen y destino de los portadores de carga (electrones), físicamente son equivalentes, nombre depende del sentido de la intensidad

Fuente: origen del flujo de electrones, destino de intensidad. Drenador: destino del flujo de electrones, origen de intensidad.

(Cuadros, 2010)

7

Page 8: DSCH Y MICROWIND VLSI

4.3 El Transistor pMOSUn transistor PMOS es un dispositivo con una construcción y comportamiento duales a las del transistor nMOS. Este transistor está formada por:

o Un sustrato tipo n ligeramente dopado.o Dos regiones tipo p fuertemente dopadas, fuente y drenador, separadas

por una región de sustrato llamada canal.o Una fina capa de aislante sobre el canal.o Una capa de polisilicio sobre el aislante. (Mecha López & Mendias

Cuadros)

Figura. 3. Transistor pMOS

De manera eléctrica, un transistor pMOS es un dispositivo de 4 terminales que por medio de voltaje controla la intensidad que circula por el canal.

o Sustrato: típicamente no se tiene en cuenta porque suele estar conectado a PWR.

o Puerta: es un terminal de control que regula la intensidad que circula por el canal.

o Fuente y drenador: son los terminales origen y destino de los portadores de carga (huecos), físicamente son equivalentes, su nombre depende del sentido de la intensidad. (Cuadros, 2010)

4.4 Puertas de paso: NMOS, PMOSComportamiento de un transistor nMOS:

Si G='0' fuente y drenador se aíslan, en transistor no conduce. Si G='l ' fuente y drenador se unen mediante el canal, el transistor

conduce o transmitiendo sin distorsionar los '0' s. o transmitiendo distorsionados los ' 1 's.

8

Page 9: DSCH Y MICROWIND VLSI

Figura. 4. Puerta de paso nMOS

Comportamiento de un transistor pMOS: Si G='1' fuente y drenador se aíslan, en transistor no conduce. Si G='0' fuente y drenador se unen mediante el canal, el transistor

conduce o transmitiendo sin distorsionar los '1 's. o transmitiendo distorsionados los '0' s. (Cuadros, 2010)

Figura. 5. Puerta de paso pMOS

4.5 Lógica combinacional cMOSTodo circuito combinacional CMOS estático se basa en la conexión de dos árboles duales con entradas comunes y salida común, que en estado estacionario no conducen simultáneamente

o Árbol de pull-up, formado únicamente por transistores pMOS, que conectan condicionalmente (en función de las entradas) la salida a Vdd.

o Árbol de pull-down, formado únicamente por transistores nMOS, que conectan condicionalmente (en función de las entradas) la salida a Vss.(Cuadros, 2010)

Figura. 6. Lógica combinacional cMOS

Reglas de diseño:o Los transistores se usan como interruptores (controlados por puerta).o Los árboles se construyen conectando en serie o en paralelo grupos de

transistores del mismo tipo.

9

Page 10: DSCH Y MICROWIND VLSI

o Es condición suficiente aunque no necesaria que las estructuras de transistores de los árboles sean duales (ej. Si en el árbol de pull-up los transistores están en serie, en el de pull-down estarán en paralelo).

o Implementa lógica inversora, es decir, funciones inversas se implementan directamente, funciones directas requieren de un inversor adicional. (Cuadros, 2010)

4.6 Inversor CMOSUn inversor CMOS (Complementary MOS) estático está formado por un transistor pMOS en serie con un transistor nMOS con sus puertas unidas:

o La entrada del inversor es la puerta común y la salida, el punto de unión de los transistores.

o El transistor pMOS se llama transistor de pull-up, tiene un terminal conectado a Vdd y es el encargado de poner la salida a ‘1’ cuando conduce (cuando la entrada vale ‘0’).

El transistor nMOS se llama transistor de pull-down, tiene un terminal conectado a Vss y es el encargado de poner la salida a ‘0’ cuando conduce (cuando la entrada vale ‘1’). (Cuadros, 2010)

Figura. 7. Inversor CMOS

4.7 Compuerta NAND CMOSÁrbol de pull up:

o Proporciona el uno.o Transistores P en paralelo conectados a Vdd y a la salida.

Árbol de pull down:o Proporciona el cero.o Transistores N en serie conectados a GND y a la salida.

Y=A .BA B VOUT

0 0 10 1 11 0 11 1 0

Tabla. 1. Tabla de verdad de una compuerta NAND

Figura. 8. Compuerta NAND CMOS

10

Page 11: DSCH Y MICROWIND VLSI

4.8 Compuerta NOR CMOSÁrbol de pull up:

o Transistores P en serie conectados a Vdd y a la salida.Árbol de pull down:

o Transistores N en serie conectados a Gnd y a la salida.

Y=A+BA B VOUT

0 0 10 1 01 0 01 1 0

Tabla. 2. Tabla de verdad de una compuerta NOR

Figura. 9. Compuerta NOR CMOS

4.9 Multiplexor CMOSEl multiplexor está conformado por dos compuertas de paso y un inversor, es decir que en total se trata de seis transistores (tres PMOS y tres NMOS). El caso del multiplexor de dos entradas, posee tres entradas y una salida. Dos de las entradas se conectan respectivamente a la entrada de cada compuerta de paso, mientras que las salidas de las mismas son conectadas entre sí conformando el nodo de salida de la compuerta. La entrada restante denominada select (S) se utiliza para habilitar una compuerta de paso a la vez. De esta manera, y de acuerdo al esquema mostrado a continuación, cuando la señal S corresponda a un nivel lógico bajo la compuerta de paso de la entrada A estará habilitada mientras que la de la entrada B estará deshabilitada. La salida entonces corresponderá al nivel lógico de la entrada A, en caso de que S sea un nivel alto sucederá lo opuesto y la salida corresponderá al nivel de la entrada B (Oroz DeGaetano Ariel)

A B S Y

0 0 0 B0 1 0 B1 0 1 A1 1 1 A

Tabla. 3. Tabla de verdad de un Multiplexor de 2 a 1

11

Page 12: DSCH Y MICROWIND VLSI

Figura. 10. Multiplexor CMOS

4.10 Álgebra de boole. Lógica combinacional. El control digital, y en particular el binario, está presente en todos los campos de la vida, desde los sistemas de refrigeración hasta los complejos sistemas de control de vuelo. Aunque los circuitos electrónicos de estos sistemas pueden tener niveles de complejidad muy diferentes, todos se basan en combinaciones de elementos más pequeños llamados puertas lógicas, las cuales se construyen a partir de transistores y elementos pasivos.

El álgebra de conmutación que se utiliza para manipular las magnitudes binarias y algunas aplicaciones se la llama algebra de boole.

4.11 Estados lógicos y función lógica. Los elementos que constituyen los circuitos digitales se caracterizan por admitir sólo dos estados. Es el caso por ejemplo de un conmutador que sólo puede estar ENCENDIDO o APAGADO.

Para representar estos dos estados se usan los símbolos ‘0’ y ‘1’. Generalmente, el ‘1’ se asociará al estado de conmutador ENCENDIDO, VERDADERO, y el ‘0’ se asocia al estado de conmutador APAGADO o FALSO.

En el circuito de la siguiente figura se representa el estado del conmutador con la variable S y el de la lámpara con la variable binaria L. En la tabla se observa la relación entre ambas.

Tabla. 4. Tabla de Verdad

Figura. 11. Circuito Binario

4.12 Teoremas booleanos. El álgebra de Boole define varios teoremas para simplificar algunas expresiones.

12

Page 13: DSCH Y MICROWIND VLSI

Ley conmutativa AB=BAA+B=B+ A

Ley distributiva A ( B+C )=AB+BCA+BC=( A+B)( A+C)

Ley asociativa A ( BC )=( AB ) CA+(B+C)=(A+B)+C

Ley de la absorción A+ AB=AA(A+B)=A

Ley de DeMorgan A+B=A ∙ BA ∙ B=A+B

A+ A B=A+BA( A+B)=AB

Operación suma lógica (OR) El resultado es “1” si alguno de los sumandos es “1”1+ A=10+ A=A A+ A=A A+ A=1

Operación producto lógico (AND) El resultado es “0” si alguno de los elementos es “0”1 · A=A

0 · A=0 A·A=A A ∙ A=0

Operación negación (NOT) 0=11=0A=A

Tabla. 5. Teoremas booleanos

4.13 Simplificación de funciones utilizando mapas de Karnaugh. Es un método gráfico de representación de la información que se encuentra en la tabla de verdad. Permite simplificar una función booleana de manera sencilla. En un mapa de Karnaugh cada combinación posible de entradas está representada por una caja dentro de una rejilla, y el valor correspondiente de la salida se escribe dentro de la caja. Las cajas están escritas de forma que al cambiar de una a otra sólo varía una de las entradas. La secuencia corresponde al código Gray.

A B C0 0 00 1 01 0 11 1 0

Tabla. 6. Tabla de Verdad

Figura. 12. Mapa K de dos entradas Figura. 13. Mapa K de tres entradas

13

Page 14: DSCH Y MICROWIND VLSI

Figura. 14. Mapa K de 4 entradas

Se pueden agrupar dos términos adyacentes porque por características del mapa de Karnaugh sabemos que sólo difieren en el estado de una entrada. Por tanto, cualquier par de elementos adyacentes que contenga un ‘1’ se pueden representar mediante una expresión simplificada.

Se puede simplificar también agrupando cuatro términos adyacentes. Se pueden combinar cuatro ‘1’ siempre que representen todas las combinaciones de dos variables. (Sánchez, 2010)

4.14 MicrowindMicrowind es un programa de diseño y simulación de circuitos integrados a nivel físico. Permite diseñar el circuito desde el punto de vista de la fabricación en Silicio (Si), sin ningún tipo de abstracción. En todo momento estaremos trabajando las máscaras que se pueden utilizar en el Layout.

Este programa nos permite utilizar la tecnología CMOS, donde podemos diseñar transistores MOS, NMOS, PMOS, condensadores, resistencias, bobinas y contactos. A todos estos componentes les podemos especificar tanto sus dimensiones como su longitud de canal, además con la herramienta de simulación nos permite comparar el comportamiento estático y dinámico del componente diseñado.

También decir que es un editor de máscaras, que permite el chequeo de las reglas de diseño y también la extracción de la netlist del circuito en formato SPICE. (License, 2015)

4.15 DschEl Programa DSCH es un editor lógico y simulador, es usado para validar la arquitectura del circuito lógico antes de empezar con el diseño microelectrónico. DSCH provee al usuario de un entorno cómodo, lo diseños lógicos (Puertas lógicas) están ordenadas de forma jerárquica. También tiene una rápida herramienta de simulación con análisis de retardos. Cuenta con modelos ensamblados para soportar al 8051 y al Pic16f84. También incorpora un interface para WinSpice. (License, 2015)

5. DESARROLLO DEL PROYECTO

5.1 DISPLAY DE 7 SEGMENTOSDiseñe un decodificador de BCD a 7 SEGMENTOS. Para mostrar información en el display es necesario diseñar un sistema combinacional que convierta un código BCD a 7 salidas que enciendan o apaguen cada segmento a fin de desplegar el carácter apropiado.

14

Page 15: DSCH Y MICROWIND VLSI

Figura. 15. Enunciado problema 1

5.1.1. Tabla de verdadA B C D a b c d e f g0 0 0 0 1 1 1 1 1 1 00 0 0 1 0 1 1 0 0 0 00 0 1 0 1 1 0 1 1 0 10 0 1 1 1 1 1 1 0 0 10 1 0 0 0 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 10 1 1 0 1 0 1 1 1 1 10 1 1 1 1 1 1 0 0 0 01 0 0 0 1 1 1 1 1 1 11 0 0 1 1 1 1 1 0 1 11 0 1 0 x x x x x x x1 0 1 1 x x x x x x x1 1 0 0 x x x x x x x1 1 0 1 x x x x x x x1 1 1 0 x x x x x x x1 1 1 1 x x x x x x xTabla. 7. Tabla de verdad problema 1

5.1.2. Mapas de K Led a

Tabla. 8. Mapa K de led a problema 1

Led b

15

Page 16: DSCH Y MICROWIND VLSI

Tabla. 9. Mapa K de led b problema 1

Led c

Tabla. 10. Mapa K de led c problema 1

Led d

Tabla. 11. Mapa K de led d problema 1

Led e

Tabla. 12. Mapa K de led e problema 1

Led f

16

Page 17: DSCH Y MICROWIND VLSI

Tabla. 13. Mapa K de led f problema 1

Led g

Tabla. 14. Mapa K led g problema 1

5.1.3. Funciones Simplificadasa=A+C+B D

b=B+C D+CDc=B+D+C

d=A+B C D+C D+C B+B De=B D+D C

f =C D+B C+ A+B Dg=A+B C+B C+C D

5.2 DECODIFICADORESDiseñe un decodificador de 4 a 10 líneas. Un decodificador de BCD a Decimal tiene un código de entrada de 4 bits y 10 salidas. Las cuales tienen valores solo para las combinaciones de entrada del 0 al 9

Figura. 16. Enunciado problema 2

5.2.1 Tabla de verdad

A B C D 0 1 2 3 4 5 6 7 8 90 0 0 0 1 0 0 0 0 0 0 0 0 0

17

Page 18: DSCH Y MICROWIND VLSI

0 0 0 1 0 1 0 0 0 0 0 0 0 00 0 1 0 0 0 1 0 0 0 0 0 0 00 0 1 1 0 0 0 1 0 0 0 0 0 00 1 0 0 0 0 0 0 1 0 0 0 0 00 1 0 1 0 0 0 0 0 1 0 0 0 00 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 1 0 0 0 0 0 0 0 1 0 01 0 0 0 0 0 0 0 0 0 0 0 1 01 0 0 1 0 0 0 0 0 0 0 0 0 11 0 1 0 X X X X X X X X X X1 0 1 1 X X X X X X X X X X1 1 0 0 X X X X X X X X X X1 1 0 1 X X X X X X X X X X1 1 1 0 X X X X X X X X X X1 1 1 1 X X X X X X X X X X

Tabla. 15. Tabla de verdad problema 2

5.2.2 Funciones Simplificadas

0=A+B+C+D1=A+B+C+D2=A+B+C+D3=A+B+C+D4=A+B+C+D

5=A+B+C+D6=A+B+C+D7=A+B+C+D8=A+B+C+D

5.3 9=A+B+C+DDETECTOR DE NÚMEROS PRIMOS EN BCD-XS-3Se quiere realizar un circuito que reciba un número BCD-XS3 (4 bits) y devuelva '1' si el número recibido es primo, y devuelva '0' si no lo es. Se considerará el número 1 como número primo. El cero no es un número primo. En ningún caso el circuito recibirá números que no estén codificados en BCD-XS3. NOTA: Se debe investigar el código BCD-XS-3

5.3.1. Tabla de verdadA B C D P0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 01 0 0 0 11 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 01 1 0 1 01 1 1 0 1

18

Page 19: DSCH Y MICROWIND VLSI

1 1 1 1 0Tabla. 16. Tabla de verdad problema 3

5.3.2. Mapa Kp A B A B AB A B

C D 0 1 0 1

C D 0 1 0 0

CD 0 0 0 0

C D 0 1 1 1

Tabla. 17. Mapa K problema 3

5.3.3. Función Simplificada P=A B C+ A B D+BC DP=A B C+ A B D+BC D

P=( A+B+C)(A+B+ D)(B+C+D)5.4 COMPARADOR

Realizar un circuito que recibe dos números binarios puros (sin signo): A[3,0], B[3,0] e indica por la salida S si A es mayor que B, dado bajo las siguientes condiciones: La salida S='1' cuando A>B, en otro caso S='0'. El bit más significativo es el bit 3. Debe obtenerse la función mínima mediante mapas de Karnaugh, pero

debido a que el circuito tiene 8 entradas y resulta difícil de hacer el mapa de Karnaugh con tantas variables, el circuito se implementará en dos módulos.

Primero se deberá realizar un circuito que compare los dos bits menos significativos de A y B, y devuelva '1' si el número (A1A0) es mayor que el número (B1B0). Esta salida (N) será la entrada del segundo comparador.

Después de haber hecho el primer comparador (de 4 entradas) se realizará el segundo comparador (de 5 entradas). Este comparador recibe los dos bits más significativos de A y B, y la señal N que indica si (A1A0)>(B1B0).

El segundo comparador es muy similar al primero, únicamente cuando (A3A2)= (B3B2) será necesario utilizar la señal N.

Para el mapa de Karnaugh del segundo comparador se recomienda tomar la señal N como la 5ª variable.

Figura. 17. Enunciado problema 4

5.4.1. Tabla de verdad Primer módulo

A A B B N

19

Page 20: DSCH Y MICROWIND VLSI

1 0 1 00 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 10 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 11 0 0 1 11 0 1 0 01 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 11 1 1 1 0

Tabla. 18. Tabla de verdad 1 problema 4

Segundo módulo

N A3 A2 B3 B2 S0 0 0 0 0 00 0 0 0 1 00 0 0 1 0 00 0 0 1 1 00 0 1 0 0 10 0 1 0 1 00 0 1 1 0 00 0 1 1 1 00 1 0 0 0 10 1 0 0 1 10 1 0 1 0 00 1 0 1 1 00 1 1 0 0 10 1 1 0 1 10 1 1 1 0 10 1 1 1 1 01 0 0 0 0 11 0 0 0 1 01 0 0 1 0 01 0 0 1 1 0

20

Page 21: DSCH Y MICROWIND VLSI

1 0 1 0 0 11 0 1 0 1 11 0 1 1 0 01 0 1 1 1 01 1 0 0 0 11 1 0 0 1 11 1 0 1 0 11 1 0 1 1 01 1 1 0 0 11 1 1 0 1 11 1 1 1 0 11 1 1 1 1 1

Tabla. 19. Tabla de verdad 2 problema 4

5.4.2. Mapa K Módulo 1 salida N

Tabla. 20. Mapa K 1 problema 4

Módulo 1 salida S

Tabla. 21. Mapa K 2 problema 4

5.4.3. Función Simplificada N=A0 B1 B0+ A1 A0 B1+ A1 A0 B0

S=A3 B3+B3 N A2+B3 B2 N+N A3 A2+N A3 B2+B3 B2 A2+A3 A2 B2

21

Page 22: DSCH Y MICROWIND VLSI

6. DIAGRAMAS

6.1 Diagramas de bloques6.1.1 Bcd 7 segmentos

Figura. 18. Diagrama de bloques problema 1

6.1.2 Decodificadores

Figura. 19. Diagrama de bloques problema 2

6.1.3 Detector de números primos en bcd-xs-3

Figura. 20. Diagrama de bloques problema 3

22

Page 23: DSCH Y MICROWIND VLSI

6.1.4 Comparador

Figura. 21. Diagrama de bloques problema 4

6.2 Diagramas UML de casos de uso6.2.1 Bcd 7 segmentos

Figura. 22. Diagrama UML de casos de uso problema 1

6.2.2 Decodificadores

Figura. 23. Diagrama UML de casos de uso problema 2

23

Page 24: DSCH Y MICROWIND VLSI

6.2.3 Detector de números primos en bcd-xs-3

Figura. 24. Diagrama UML de casos de uso problema 3

6.2.4 Comparador

Figura. 25. Diagrama UML de casos de uso problema 4

6.3 Diagramas eléctricos6.3.1 Bcd 7 segmentos

24

Page 25: DSCH Y MICROWIND VLSI

Microwind

25

Figura. 26 Simulación Microwind problema 1

Page 26: DSCH Y MICROWIND VLSI

Resultado

Figura. 27. Resultado de Microwind problema 1

26

Page 27: DSCH Y MICROWIND VLSI

Microwind con verilog

Figura. 28. Simulación Microwind con verilog problema 1

27

Page 28: DSCH Y MICROWIND VLSI

Resultado

Figura. 29. Resultado de Microwind con verilog problema 1

28

Page 29: DSCH Y MICROWIND VLSI

DSCH

29

Figura. 30. Simulación DSCH problema 2

Page 30: DSCH Y MICROWIND VLSI

6.3.2 Decodificadores Microwind

Figura. 31. Simulación Microwind problema 2

30

Page 31: DSCH Y MICROWIND VLSI

Resultado

Figura. 32. Resultado de Microwind problema 2

31

Page 32: DSCH Y MICROWIND VLSI

Microwind con verilog

Figura. 33. Simulación Microwind con verilog

32

Page 33: DSCH Y MICROWIND VLSI

Resultado

Figura. 34. Resultado de Microwind con verilog

33

Page 34: DSCH Y MICROWIND VLSI

DSCH

Figura. 35. Simulación DSCH problema 2

34

Page 35: DSCH Y MICROWIND VLSI

6.3.3 Detector de números primos en bcd-xs-3 Microwind

Figura. 36. Simulación Microwind problema 3

35

Page 36: DSCH Y MICROWIND VLSI

Resultado

Figura. 37. Resultado de Microwind problema 3

36

Page 37: DSCH Y MICROWIND VLSI

Microwind con verilog

Figura. 38. Simulación Microwind con verilog

37

Page 38: DSCH Y MICROWIND VLSI

Resultado

Figura. 39. Resultado de Microwind con verilog problema 3

38

Page 39: DSCH Y MICROWIND VLSI

DSCH

39

Figura. 40. Simulación DSCH problema 3

Page 40: DSCH Y MICROWIND VLSI

6.3.4 Comparador Microwind

40

Figura. 41. Simulación Microwind problema 4

Page 41: DSCH Y MICROWIND VLSI

Resultado

Figura. 42. Resultado de Microwind problema 4

41

Page 42: DSCH Y MICROWIND VLSI

Microwind con verilog

Figura. 43. Simulación Microwind con verilog

42

Page 43: DSCH Y MICROWIND VLSI

Resultado

Figura. 44. Resultado de Microwind con verilog

43

Page 44: DSCH Y MICROWIND VLSI

DSCH

Figura. 45. Simulación DSCH problema 4

44

Page 45: DSCH Y MICROWIND VLSI

6.4 Diagramas UML de secuencias6.4.1 Bcd 7 segmentos

Figura. 46. Diagrama UML de secuencias problema 1

6.4.2 Decodificadores

Figura. 47. Diagrama UML de casos de uso problema 2

45

Page 46: DSCH Y MICROWIND VLSI

6.4.3 Detector de números primos en bcd-xs-3

6.4.4 Comparador

Figura. 48. Diagrama UML de secuencias problema 4

46

Page 47: DSCH Y MICROWIND VLSI

6.5 Diagramas esquemáticos

6.5.1 Bcd 7 segmentos Segmento a

Figura. 49. Diagrama esquemático de segmento a problema 1

Segmento b

Figura. 50. Diagrama esquemático de segmento b problema 1

Segmento c

Figura. 51. Diagrama esquemático de segmento c problema 1

47

Page 48: DSCH Y MICROWIND VLSI

Segmento d

Figura. 52. Diagrama esquemático de segmento d problema 1

Segmento e

Figura. 53. Diagrama esquemático de segmento e problema 1

Segmento f

Figura. 54. Diagrama esquemático de segmento f problema 1

48

Page 49: DSCH Y MICROWIND VLSI

Segmento g

Figura. 55. Diagrama esquemático de segmento g problema 1

6.5.2 Decodificadores

Figura. 56. Diagrama esquemático problema 2

49

Page 50: DSCH Y MICROWIND VLSI

6.5.3 Detector de números en bcd-xs-3

Figura. 57. Diagrama esquemático problema 3

6.5.4 Comparador

Figura. 58. Diagrama esquemático problema 4

7. CÓDIGO VERILOG

7.1 Problema 1

// DSCH 2.7a// 24-May-15 02:01:35// C:\Users\Cris\Documents\ESPE\Nivel VII\VLSI\Primer Parcial\ProyectoUnidad\Display\display2.sch

module display2( D,A,B,C,e,a,g,d, b,c,f); input D,A,B,C; output e,a,g,d,b,c,f; pmos #(108) pmos(w2,vdd,D); // 00u 0u nmos #(108) nmos(w2,vss,D); // 1.0u 0.12u nmos #(66) nmos(w4,vss,A); // 0u 0u pmos #(66) pmos(w4,vdd,A); // 2.0u 0.12u pmos #(66) pmos(w6,vdd,B); // 2.0u 0.12u nmos #(66) nmos(w6,vss,B); // 1.0u 0.12u pmos #(80) pmos(w8,vdd,C); // 0u 0u pmos #(38) pmos(f,vdd,w4); // 2.0u 0.12u nmos #(10) nmos(w12,w10,w11); // 1.0u 0.12u nmos #(10) nmos(w14,vss,w13); // 1.0u 0.12u nmos #(10) nmos(w10,w14,w15); // 1.0u 0.12u

50

Page 51: DSCH Y MICROWIND VLSI

nmos #(38) nmos(g,w12,w4); // 1.0u 0.12u nmos #(45) nmos(w18,w17,w6); // 1.0u 0.12u pmos #(31) pmos(b,vdd,B); // 2.0u 0.12u nmos #(10) nmos(w22,w21,B); // 1.0u 0.12u pmos #(31) pmos(b,vdd,w23); // 2.0u 0.12u nmos #(45) nmos(w11,w24,w8); // 1.0u 0.12u pmos #(45) pmos(w11,vdd,B); // 2.0u 0.12u nmos #(10) nmos(w24,vss,B); // 1.0u 0.12u pmos #(45) pmos(w11,vdd,w8); // 2.0u 0.12u pmos #(45) pmos(w15,vdd,w6); // 2.0u 0.12u nmos #(10) nmos(w25,vss,C); // 1.0u 0.12u pmos #(45) pmos(w15,vdd,C); // 2.0u 0.12u nmos #(45) nmos(w15,w25,w6); // 1.0u 0.12u pmos #(38) pmos(a,vdd,w26); // 2.0u 0.12u pmos #(38) pmos(a,vdd,w4); // 2.0u 0.12u pmos #(38) pmos(a,vdd,w28); // 2.0u 0.12u pmos #(31) pmos(w28,vdd,D); // 2.0u 0.12u nmos #(10) nmos(w29,vss,D); // 1.0u 0.12u pmos #(31) pmos(w28,vdd,B); // 2.0u 0.12u nmos #(80) nmos(w8,vss,C); // 1.0u 0.12u nmos #(59) nmos(w13,w30,w2); // 1.0u 0.12u pmos #(59) pmos(w13,vdd,C); // 2.0u 0.12u nmos #(10) nmos(w30,vss,C); // 1.0u 0.12u pmos #(59) pmos(w13,vdd,w2); // 2.0u 0.12u pmos #(31) pmos(w31,vdd,w2); // 2.0u 0.12u nmos #(10) nmos(w32,vss,B); // 1.0u 0.12u pmos #(31) pmos(w31,vdd,B); // 2.0u 0.12u nmos #(31) nmos(w31,w32,w2); // 1.0u 0.12u pmos #(38) pmos(g,vdd,w13); // 2.0u 0.12u pmos #(38) pmos(g,vdd,w11); // 2.0u 0.12u pmos #(38) pmos(g,vdd,w15); // 2.0u 0.12u pmos #(38) pmos(g,vdd,w4); // 2.0u 0.12u nmos #(31) nmos(w28,w29,B); // 1.0u 0.12u pmos #(31) pmos(b,vdd,w33); // 2.0u 0.12u nmos #(31) nmos(w35,w34,w2); // 1.0u 0.12u pmos #(31) pmos(w35,vdd,w2); // 2.0u 0.12u nmos #(10) nmos(w34,vss,w8); // 1.0u 0.12u pmos #(31) pmos(w35,vdd,w8); // 2.0u 0.12u pmos #(45) pmos(w18,vdd,w2); // 2.0u 0.12u nmos #(10) nmos(w17,vss,w2); // 1.0u 0.12u pmos #(45) pmos(w18,vdd,w6); // 2.0u 0.12u nmos #(31) nmos(b,w22,w23); // 1.0u 0.12u pmos #(31) pmos(c,vdd,w6); // 2.0u 0.12u nmos #(10) nmos(w38,w37,w6); // 1.0u 0.12u pmos #(31) pmos(c,vdd,w2); // 2.0u 0.12u pmos #(31) pmos(c,vdd,C); // 2.0u 0.12u nmos #(31) nmos(c,w38,w2); // 1.0u 0.12u nmos #(10) nmos(w21,vss,w33); // 1.0u 0.12u pmos #(24) pmos(e,vdd,w18); // 2.0u 0.12u nmos #(10) nmos(w39,vss,w18); // 1.0u 0.12u pmos #(24) pmos(e,vdd,w13); // 2.0u 0.12u nmos #(24) nmos(e,w39,w13); // 1.0u 0.12u nmos #(10) nmos(w42,w41,w4); // 1.0u 0.12u nmos #(10) nmos(w41,w43,w15); // 1.0u 0.12u pmos #(45) pmos(d,vdd,w4); // 2.0u 0.12u

51

Page 52: DSCH Y MICROWIND VLSI

pmos #(45) pmos(d,vdd,w15); // 2.0u 0.12u pmos #(45) pmos(d,vdd,w13); // 2.0u 0.12u pmos #(45) pmos(d,vdd,w18); // 2.0u 0.12u pmos #(45) pmos(d,vdd,w44); // 2.0u 0.12u nmos #(10) nmos(w43,w45,w13); // 1.0u 0.12u nmos #(10) nmos(w45,vss,w18); // 1.0u 0.12u nmos #(45) nmos(d,w42,w44); // 1.0u 0.12u nmos #(10) nmos(w46,vss,B); // 1.0u 0.12u nmos #(38) nmos(w44,w47,D); // 1.0u 0.12u pmos #(38) pmos(w44,vdd,B); // 2.0u 0.12u pmos #(38) pmos(w44,vdd,D); // 2.0u 0.12u nmos #(10) nmos(w47,w46,w8); // 1.0u 0.12u pmos #(38) pmos(w44,vdd,w8); // 2.0u 0.12u pmos #(38) pmos(a,vdd,w8); // 2.0u 0.12u nmos #(38) nmos(a,w48,w26); // 1.0u 0.12u nmos #(10) nmos(w48,w49,w28); // 1.0u 0.12u nmos #(10) nmos(w49,w50,w4); // 1.0u 0.12u nmos #(10) nmos(w50,vss,w8); // 1.0u 0.12u pmos #(31) pmos(w23,vdd,C); // 2.0u 0.12u nmos #(10) nmos(w51,vss,C); // 1.0u 0.12u pmos #(31) pmos(w23,vdd,D); // 2.0u 0.12u nmos #(31) nmos(w23,w51,D); // 1.0u 0.12u nmos #(10) nmos(w37,vss,C); // 1.0u 0.12u pmos #(31) pmos(w33,vdd,w8); // 2.0u 0.12u nmos #(10) nmos(w52,vss,w8); // 1.0u 0.12u pmos #(31) pmos(w33,vdd,w2); // 2.0u 0.12u nmos #(31) nmos(w33,w52,w2); // 1.0u 0.12u nmos #(31) nmos(w26,w53,w6); // 1.0u 0.12u pmos #(31) pmos(w26,vdd,w6); // 2.0u 0.12u nmos #(10) nmos(w53,vss,w2); // 1.0u 0.12u pmos #(31) pmos(w26,vdd,w2); // 2.0u 0.12u nmos #(10) nmos(w54,vss,w35); // 1.0u 0.12u nmos #(10) nmos(w55,w54,w11); // 1.0u 0.12u nmos #(10) nmos(w56,w55,w31); // 1.0u 0.12u nmos #(38) nmos(f,w56,w4); // 1.0u 0.12u pmos #(38) pmos(f,vdd,w35); // 2.0u 0.12u pmos #(38) pmos(f,vdd,w31); // 2.0u 0.12u pmos #(38) pmos(f,vdd,w11); // 2.0u 0.12uendmodule

// Simulation parameters in Verilog Formatalways#1000 D=~D;#2000 A=~A;#4000 B=~B;#8000 C=~C;// Simulation parameters// D CLK 10 10// A CLK 20 20// B CLK 40 40// C CLK 80 80

7.2 Problema 2

// DSCH 2.7a

52

Page 53: DSCH Y MICROWIND VLSI

// 22-May-15 22:39:48// C:\Users\Cris\Documents\ESPE\Nivel VII\VLSI\Primer Parcial\ProyectoUnidad\DSCH\dsch2.1.sch

module dsch2.1( A,B,C,D,8,6,9,5, 3,7,2,0,4,1); input A,B,C,D; output 8,6,9,5,3,7,2,0; output 4,1; nmos #(38) nmos(8,vss,C); // 1.0u 0.12u nmos #(38) nmos(8,vss,D); // nmos #(38) nmos(8,vss,B); // nmos #(38) nmos(8,vss,w5); // pmos #(10) pmos(w7,vdd,C); // 2.0u 0.12u pmos #(10) pmos(w8,w7,w5); // 2.0u 0.12u pmos #(38) pmos(8,w9,B); // 2.0u 0.12u pmos #(10) pmos(w9,w8,D); // 2.0u 0.12u nmos #(38) nmos(6,vss,D); // nmos #(38) nmos(6,vss,w11); // nmos #(38) nmos(6,vss,A); // pmos #(10) pmos(w13,vdd,w12); // 2.0u 0.12u pmos #(10) pmos(w14,w13,A); // 2.0u 0.12u pmos #(38) pmos(6,w15,w11); // 2.0u 0.12u pmos #(10) pmos(w15,w14,D); // 2.0u 0.12u nmos #(38) nmos(6,vss,w12); // 1.0u 0.12u pmos #(10) pmos(w18,w17,C); // 2.0u 0.12u pmos #(38) pmos(9,w18,B); // 2.0u 0.12u pmos #(10) pmos(w17,w19,w5); // 2.0u 0.12u pmos #(10) pmos(w19,vdd,w20); // 2.0u 0.12u nmos #(38) nmos(9,vss,w5); // nmos #(38) nmos(9,vss,B); // nmos #(38) nmos(9,vss,C); // pmos #(10) pmos(w23,w22,w20); // 2.0u 0.12u pmos #(38) pmos(5,w23,w11); // 2.0u 0.12u pmos #(10) pmos(w22,w24,A); // 2.0u 0.12u pmos #(10) pmos(w24,vdd,C); // 2.0u 0.12u nmos #(38) nmos(5,vss,A); // nmos #(38) nmos(5,vss,w11); // nmos #(38) nmos(5,vss,w20); // nmos #(38) nmos(5,vss,C); // 1.0u 0.12u nmos #(38) nmos(3,vss,w20); // 1.0u 0.12u nmos #(38) nmos(3,vss,w12); // nmos #(38) nmos(3,vss,B); // nmos #(38) nmos(3,vss,A); // pmos #(10) pmos(w26,vdd,w20); // 2.0u 0.12u pmos #(10) pmos(w27,w26,A); // 2.0u 0.12u pmos #(38) pmos(3,w28,B); // 2.0u 0.12u pmos #(10) pmos(w28,w27,w12); // 2.0u 0.12u pmos #(10) pmos(w29,vdd,w20); // 2.0u 0.12u nmos #(38) nmos(1,vss,C); // nmos #(38) nmos(1,vss,B); // nmos #(38) nmos(1,vss,A); // nmos #(38) nmos(9,vss,w20); // 1.0u 0.12u pmos #(10) pmos(w33,w32,w20); // 2.0u 0.12u pmos #(38) pmos(7,w33,w11); // 2.0u 0.12u

53

Page 54: DSCH Y MICROWIND VLSI

pmos #(10) pmos(w32,w34,A); // 2.0u 0.12u pmos #(10) pmos(w34,vdd,w12); // 2.0u 0.12u nmos #(38) nmos(7,vss,A); // nmos #(38) nmos(7,vss,w11); // nmos #(38) nmos(7,vss,w20); // nmos #(38) nmos(7,vss,w12); // 1.0u 0.12u nmos #(38) nmos(2,vss,w12); // 1.0u 0.12u nmos #(38) nmos(2,vss,D); // nmos #(38) nmos(2,vss,B); // nmos #(38) nmos(2,vss,A); // pmos #(10) pmos(w36,vdd,w12); // 2.0u 0.12u pmos #(10) pmos(w37,w36,A); // 2.0u 0.12u pmos #(38) pmos(2,w38,B); // 2.0u 0.12u pmos #(10) pmos(w38,w37,D); // 2.0u 0.12u nmos #(38) nmos(4,vss,D); // 1.0u 0.12u nmos #(80) nmos(w20,vss,D); // 1.0u 0.12u pmos #(80) pmos(w20,vdd,D); // 2.0u 0.12u pmos #(66) pmos(w12,vdd,C); // 2.0u 0.12u nmos #(66) nmos(w12,vss,C); // 1.0u 0.12u nmos #(38) nmos(w5,vss,A); // 1.0u 0.12u pmos #(38) pmos(w5,vdd,A); // 2.0u 0.12u pmos #(66) pmos(w11,vdd,B); // 2.0u 0.12u nmos #(66) nmos(w11,vss,B); // 1.0u 0.12u nmos #(38) nmos(0,vss,C); // 1.0u 0.12u nmos #(38) nmos(0,vss,D); // nmos #(38) nmos(0,vss,B); // nmos #(38) nmos(0,vss,A); // pmos #(10) pmos(w41,vdd,C); // 2.0u 0.12u pmos #(10) pmos(w42,w41,A); // 2.0u 0.12u pmos #(38) pmos(0,w43,B); // 2.0u 0.12u pmos #(10) pmos(w43,w42,D); // 2.0u 0.12u nmos #(38) nmos(4,vss,w44); // nmos #(38) nmos(4,vss,w11); // nmos #(38) nmos(4,vss,A); // pmos #(10) pmos(w45,vdd,C); // 2.0u 0.12u pmos #(10) pmos(w46,w45,A); // 2.0u 0.12u pmos #(38) pmos(4,w47,w11); // 2.0u 0.12u pmos #(10) pmos(w47,w46,D); // 2.0u 0.12u nmos #(38) nmos(1,vss,w20); // 1.0u 0.12u pmos #(10) pmos(w49,w48,C); // 2.0u 0.12u pmos #(38) pmos(1,w49,B); // 2.0u 0.12u pmos #(10) pmos(w48,w29,A); // 2.0u 0.12uendmodule

// Simulation parameters in Verilog Formatalways#1000 A=~A;#2000 B=~B;#4000 C=~C;#8000 D=~D;

// Simulation parameters// A CLK 10 10// B CLK 20 20// C CLK 40 40

54

Page 55: DSCH Y MICROWIND VLSI

// D CLK 80 80

7.3 Problema 3

// DSCH 2.7a// 23/05/2015 1:11:42// C:\Users\Nadia\Desktop\SEXTO\VLSI\Unidad\primotrans.sch

module primotrans( D,A,B,C,out1); input D,A,B,C; output out1; nmos #(38) nmos(w2,vss,D); // 1.0u 0.12u pmos #(38) pmos(w2,vdd,D); // 2.0u 0.12u pmos #(24) pmos(w4,vdd,A); // 2.0u 0.12u nmos #(24) nmos(w4,vss,A); // 1.0u 0.12u nmos #(24) nmos(w6,vss,B); // 1.0u 0.12u pmos #(24) pmos(w6,vdd,B); // 2.0u 0.12u pmos #(24) pmos(w8,vdd,C); // 2.0u 0.12u nmos #(24) nmos(w8,vss,C); // 1.0u 0.12u nmos #(52) nmos(w10,w9,A); // 1.0u 0.12u nmos #(10) nmos(w11,vss,w2); // 1.0u 0.12u nmos #(10) nmos(w12,vss,w8); // 1.0u 0.12u nmos #(52) nmos(w10,w13,w4); // 1.0u 0.12u nmos #(10) nmos(w13,w12,B); // 1.0u 0.12u nmos #(10) nmos(w14,vss,w2); // 1.0u 0.12u nmos #(52) nmos(w10,w15,B); // 1.0u 0.12u nmos #(10) nmos(w15,w14,C); // 1.0u 0.12u nmos #(10) nmos(w9,w11,w6); // 1.0u 0.12u pmos #(52) pmos(w10,w16,B); // 2.0u 0.12u pmos #(52) pmos(w10,w16,w2); // 2.0u 0.12u pmos #(52) pmos(w10,w16,C); // 2.0u 0.12u pmos #(38) pmos(w17,vdd,w4); // 2.0u 0.12u pmos #(38) pmos(w17,vdd,w8); // 2.0u 0.12u pmos #(38) pmos(w17,vdd,B); // 2.0u 0.12u pmos #(38) pmos(w16,w17,w6); // 2.0u 0.12u pmos #(38) pmos(w16,w17,w2); // 2.0u 0.12u pmos #(38) pmos(w16,w17,A); // 2.0u 0.12u nmos #(17) nmos(out1,vss,w10); // 1.0u 0.12u pmos #(17) pmos(out1,vdd,w10); // 2.0u 0.12uendmodule

7.4 Problema 4

// DSCH 2.7a// 23/05/2015 11:44:32// C:\Users\Jhonatan\Desktop\COMPARADOR\DSCH\transistores.sch

module transistores( B3,B2,A3,A2,N,A1,A0,B1, B0,out3); input B3,B2,A3,A2,N,A1,A0,B1; input B0; output out3; pmos #(38) pmos(w3,vdd,A3); // 2.0u 0.12u nmos #(10) nmos(w5,vss,w4); // 1.0u 0.12u nmos #(66) nmos(w7,vss,B2); // 1.0u 0.12u

55

Page 56: DSCH Y MICROWIND VLSI

pmos #(66) pmos(w7,vdd,B2); // 2.0u 0.12u pmos #(66) pmos(w4,vdd,w8); // 2.0u 0.12u nmos #(66) nmos(w4,vss,w8); // 1.0u 0.12u nmos #(73) nmos(w11,w10,A2); // 1.0u 0.12u nmos #(10) nmos(w10,w12,w7); // 1.0u 0.12u nmos #(10) nmos(w12,vss,A3); // 1.0u 0.12u nmos #(10) nmos(w13,vss,A2); // 1.0u 0.12u pmos #(38) pmos(w15,vdd,w14); // 2.0u 0.12u pmos #(38) pmos(w15,vdd,A0); // 2.0u 0.12u pmos #(31) pmos(w18,w17,w4); // 2.0u 0.12u pmos #(52) pmos(w8,w20,w21); // 2.0u 0.12u nmos #(52) nmos(w8,w22,A1); // 1.0u 0.12u nmos #(10) nmos(w22,w24,w21); // 1.0u 0.12u nmos #(10) nmos(w25,vss,A0); // 1.0u 0.12u nmos #(10) nmos(w24,vss,w26); // 1.0u 0.12u nmos #(10) nmos(w27,w25,w14); // 1.0u 0.12u pmos #(52) pmos(w8,w20,A0); // 2.0u 0.12u pmos #(38) pmos(w20,w15,A1); // 2.0u 0.12u pmos #(38) pmos(w20,w15,w21); // 2.0u 0.12u pmos #(38) pmos(w20,w15,w26); // 2.0u 0.12u pmos #(38) pmos(w29,w28,A3); // 2.0u 0.12u nmos #(10) nmos(w30,w5,w7); // 1.0u 0.12u pmos #(38) pmos(w29,w28,w4); // 2.0u 0.12u pmos #(38) pmos(w15,vdd,A1); // 2.0u 0.12u pmos #(38) pmos(w28,w3,A2); // 2.0u 0.12u nmos #(73) nmos(w11,w30,A3); // 1.0u 0.12u nmos #(10) nmos(w31,w13,w7); // 1.0u 0.12u nmos #(10) nmos(w32,vss,A1); // 1.0u 0.12u pmos #(73) pmos(w11,w18,w33); // 2.0u 0.12u pmos #(73) pmos(w11,w18,A3); // 2.0u 0.12u nmos #(10) nmos(w34,w32,w14); // 1.0u 0.12u pmos #(38) pmos(w28,w3,w7); // 2.0u 0.12u pmos #(38) pmos(w29,w28,w7); // 2.0u 0.12u pmos #(38) pmos(w28,w3,w33); // 2.0u 0.12u pmos #(38) pmos(w3,vdd,w7); // 2.0u 0.12u nmos #(52) nmos(w8,w27,w21); // 1.0u 0.12u nmos #(10) nmos(w35,vss,A3); // 1.0u 0.12u nmos #(73) nmos(w11,w35,w33); // 1.0u 0.12u nmos #(73) nmos(w11,w31,w33); // 1.0u 0.12u nmos #(52) nmos(w8,w34,A0); // 1.0u 0.12u pmos #(38) pmos(w3,vdd,A2); // 2.0u 0.12u pmos #(38) pmos(w39,w29,w4); // 2.0u 0.12u pmos #(38) pmos(w39,w29,A3); // 2.0u 0.12u pmos #(31) pmos(w18,w17,w33); // 2.0u 0.12u nmos #(73) nmos(w11,w40,w33); // 1.0u 0.12u nmos #(10) nmos(w40,w41,w7); // 1.0u 0.12u nmos #(10) nmos(w42,vss,w4); // 1.0u 0.12u nmos #(10) nmos(w41,vss,w4); // 1.0u 0.12u nmos #(10) nmos(w43,w42,w33); // 1.0u 0.12u pmos #(31) pmos(w18,w17,A2); // 2.0u 0.12u pmos #(38) pmos(w17,w39,w33); // 2.0u 0.12u pmos #(38) pmos(w17,w39,w7); // 2.0u 0.12u pmos #(38) pmos(w17,w39,w4); // 2.0u 0.12u pmos #(38) pmos(w39,w29,A2); // 2.0u 0.12u nmos #(10) nmos(w44,vss,w4); // 1.0u 0.12u

56

Page 57: DSCH Y MICROWIND VLSI

nmos #(10) nmos(w45,w44,A2); // 1.0u 0.12u nmos #(73) nmos(w11,w43,A2); // 1.0u 0.12u nmos #(73) nmos(w11,w45,A3); // 1.0u 0.12u nmos #(24) nmos(w26,vss,A0); // 1.0u 0.12u pmos #(24) pmos(w26,vdd,A0); // 2.0u 0.12u pmos #(66) pmos(w33,vdd,B3); // 2.0u 0.12u nmos #(66) nmos(w33,vss,B3); // 1.0u 0.12u pmos #(38) pmos(w14,vdd,B0); // 2.0u 0.12u nmos #(38) nmos(w14,vss,B0); // 1.0u 0.12u pmos #(38) pmos(w21,vdd,B1); // 2.0u 0.12u nmos #(38) nmos(w21,vss,B1); // 1.0u 0.12u pmos #(52) pmos(w8,w20,w14); // 2.0u 0.12u nmos #(17) nmos(out3,vss,w11); // 1.0u 0.12u pmos #(17) pmos(out3,vdd,w11); // 2.0u 0.12uendmodule

// Simulation parameters in Verilog Formatalways#1000 B3=~B3;#2000 B2=~B2;#4000 A3=~A3;#8000 A2=~A2;#16000 N=~N;#32000 A1=~A1;#64000 A0=~A0;#128000 B1=~B1;#256000 B0=~B0;

// Simulation parameters// B3 CLK 10 10// B2 CLK 20 20// A3 CLK 40 40// A2 CLK 80 80// N CLK 160 160// A1 CLK 320 320// A0 CLK 640 640// B1 CLK 1280 1280// B0 CLK 2560 2560

8. EXPLICACIÓN DEL CÓDIGO

Para empezar la generación del código en Verilog se siguió los siguientes pasos:

Creación de variables tanto de entrada como de salida. Definición de variables de entrada y variables de salida. Se procedió a realizar el circuito solución de cada problema propuesto, se tomó

en cuenta si los transistores están conectados en serie o en paralelo; dependiendo si tenemos compuertas AND, OR e INVERSOR.

Para la polarización de los transistores se escribió VDD cuando se alimentó positivamente y VSS cuando se alimentó negativamente.

Una vez terminado el circuito se procedió a guardar en formato .txt. En el software Microwind se compiló cada uno de los códigos.

57

Page 58: DSCH Y MICROWIND VLSI

9. LISTA DE COMPONENTES

COMPONENTES UTILIDAD

Camtasia Studio Capturar videos directamente mientras se trabaja en pantalla.

Microwind Herramienta para el diseño y simulación de circuitos microelectrónicos

DSCH Software complementario para el diseño de la lógica

Microsoft Project Herramienta para elaborar el cronograma.

Visio 2013 Cree diagramas profesionales para simplificar la información compleja con formas actualizadas, herramientas de colaboración y diagramas vinculados a datos.

Tabla. 22. Lista de componentes

10. MAPA DE VARIABLES

10.1 Bcd 7 segmentosEntradas

Nombre Descripción ValoresA Bit 3 del número en

BCDA=1A=0

B Bit 2 del número en BCD

B=1B=0

C Bit 1 del número en BCD

C=1C=0

D Bit 0 del número en BCD

D=1D=0

Tabla. 23. Variable de entrada problema 1

SalidasNombre Descripción Valores

a Segmento a del Display a=1: Led encendido a=0: Led apagado

b Segmento b del Display a=1: Led encendido a=0: Led apagado

c Segmento c del Display a=1: Led encendido a=0: Led apagado

d Segmento d del Display a=1: Led encendido a=0: Led apagado

e Segmento e del Display a=1: Led encendido a=0: Led apagado

f Segmento f del Display a=1: Led encendido a=0: Led apagado

g Segmento g del Display a=1: Led encendido a=0: Led apagado

Tabla. 24-. Variables de salida problema 1

58

Page 59: DSCH Y MICROWIND VLSI

10.2 DecodificadoresEntradas

Nombre Descripción Valores

A Bit 3 del número en BCD A=1 : 2^3

B Bit 2 del número en BCD B=1 : 2^2

C Bit 1 del número en BCD C=1 : 2^1

D Bit 0 del número en BCD D=1 : 2^0

Tabla. 25. Variables de entrada problema 2

SalidasNombre Descripción Valores

0 Indicador del número 0

0=1: Indicador 0 encendido / 0=0: Indicador 0 apagado

1 Indicador del número 1

1=1: Indicador 1 encendido / 1=0: Indicador 1 apagado

2 Indicador del número 2

2=1: Indicador 2 encendido / 2=0: Indicador 2 apagado

3 Indicador del número 3

3=1: Indicador 3 encendido / 3=0: Indicador 3 apagado

4 Indicador del número 4

4=1: Indicador 4 encendido / 4=0: Indicador 4 apagado

5 Indicador del número 5

5=1: Indicador 5 encendido / 5=0: Indicador 5 apagado

6 Indicador del número 6

6=1: Indicador 6 encendido / 6=0: Indicador 6 apagado

7 Indicador del número 7

7=1: Indicador 7 encendido / 7=0: Indicador 7 apagado

8 Indicador del número 8

8=1: Indicador 8 encendido / 8=0: Indicador 8 apagado

9 Indicador del número 9

9=1: Indicador 9 encendido / 9=0: Indicador 9 apagado

Tabla. 26. Variables de salida problema 2

10.3 Detector de números primos en bcd-xs-3Entradas

Variables Descripción Valores

A Bit 3 del número en BCD A=1 : 2^3XS-3

B Bit 2 del número en BCD B=1 : 2^2XS-3

C Bit 1 del número en BCD C=1 : 2^1XS-3

D Bit 0 del número en BCD D=1 : 2^0XS-3

Tabla. 27. Variables de entrada problema 3

59

Page 60: DSCH Y MICROWIND VLSI

SalidaVariables Descripción Valores

P Variable que indica si elnúmero es primo o no

P=1 : 2^0

Tabla. 28. Variables de salida problema 3

10.4 Comparador

EntradasVariables Descripción Valores

A0 Bit A0 del número A A0=1 : 2^0

A1 Bit A1 del número A A1=1 : 2^1

A2 Bit A2 del número A A2=1 : 2^2

A3 Bit A3 del número A A3=1 : 2^3

B0 Bit B0 del número B B0=1 : 2^0

B1 Bit B1 del número B B1=1 : 2^1

B2 Bit B2 del número B B2=1 : 2^2

B3 Bit B3 del número B B3=1 : 2^3

Tabla. 29. Variables de entrada problema 4

SalidaVariables Descripción Valores

N Salida del comparador A1A0 > B1B0 N=1 : 2^0

S Salida del comparador A>B S=1 : 2^0

Tabla. 30. Variables de salida problema 4

11. DESCRIPCIÓN DE PRERREQUISITOS Y CONFIGURACIÓN

Tener un conocimiento de circuitos digitales. Tener un conocimiento sobre transistores CMOS. Computador con sistema operativo de 32 o 64 bits. Windows 7 o Windows 8 instalado en el computador. Tener instalado Microwind 3.1 y DSCH

12. APORTACIONES

EJERCICIO EXTRA

60

Page 61: DSCH Y MICROWIND VLSI

Se tiene una intersección de dos calles como se muestra a continuación:

D3 es un switch de una intersección de bomberos; D1 y D2 representan sensores de automóviles; el paso de los automóviles al igual que la operación de D3 determina un cambio de luz en los semáforos (F1 y F2). Si la luz es verde hay paso libre y puede ser representado como un 1L en una función digital.

Elaborar una tabla de verdad para la función F1 (respecto de D1, en el sentido AA´) cuando sólo en éste sentido puede haber circulación de acuerdo a las combinaciones de D1, D2 y D3. Si:

o D1 tiene prioridad sobre D2, y si D3 tiene prioridad sobre D2 y D1.o Si no hay presencia de automóviles ni D3 es activado, considere

como posibilidad de circulación en sentido AA´.

12.1 Tabla de verdadD1 D2 D3 F1 F20 0 0 1 00 0 1 0 00 1 0 0 10 1 1 0 01 0 0 1 01 0 1 0 01 1 0 1 01 1 1 0 0Tabla. 31. Tabla de verdad problema extra

12.2 Función simplificada Función SOP

F 1= (D 1∗D2∗D 3 )+ ( D1∗D 2∗D 3 )+( D 1∗D 2∗D 3 ) F 1=D 2∗D3 ( D 1+D1 )+ (D 1∗D2∗D3 )F 1=D3 ( D 2+D1∗D 2 )F 1=D3 ( D 2+D1 )

F 2=D1∗D2∗D 3

61

Page 62: DSCH Y MICROWIND VLSI

12.3 Diagrama de bloques

Figura. 59. Diagrama de bloques problema extra

12.4 Diagrama UML (casos de uso)

Figura. 60. Diagrama UML de casos de uso problema extra

12.5 Diagrama UML de secuencias

Figura. 61. Diagramas UML de secuencias problema extra

12.6 Diagramas eléctricos

62

Page 63: DSCH Y MICROWIND VLSI

Microwind

Figura. 62. Simulación de Microwind problema extra

63

Page 64: DSCH Y MICROWIND VLSI

Respuesta en Microwind

Figura. 63. Resultado de Microwind problema extra

64

Page 65: DSCH Y MICROWIND VLSI

Microwind con Verilog

Figura. 64.Simulación de Microwind con verilog

65

Page 66: DSCH Y MICROWIND VLSI

Respuesta de Microwind con Verilog

Figura. 65. Resultado de Microwind con verilog

66

Page 67: DSCH Y MICROWIND VLSI

DSCH

Figura. 66. Simulación en DSCH problema extra

67

Page 68: DSCH Y MICROWIND VLSI

12.7 Diagrama esquemático

Figura. 67. Diagrama esquemático problema extra

12.8 Mapa de variables

EntradasVariables Descripción Valores

D1 Sensor de automóvil D1=1 : 2^3

D2 Sensor de automóvil D2=1 : 2^2

D3 Switch de una intersección de bomberos

D3=1 : 2^1

Tabla. 32. Variables de entrada problema extra

SalidaVariables Descripción Valores

F1Función que representa al

semáforo en F1 (sentido AA´)F1=1 : 2^0

F2Función que representa al

semáforo F2F2=1 : 2^0

Tabla. 33. Variables de salida problema extra

12.9 Código Verilog// DSCH 2.7a// 23/05/2015 16:36:34// C:\Users\Nadia\Desktop\SEXTO\VLSI\Unidad\Ejercicio extra\DSCH\extratans.sch

68

Page 69: DSCH Y MICROWIND VLSI

module extratans( D1,D2,D3,F2,F1); input D1,D2,D3; output F2,F1; pmos #(17) pmos(F2,vdd,w2); // 2.0u 0.12u pmos #(24) pmos(w4,vdd,D1); // 2.0u 0.12u nmos #(24) nmos(w4,vss,D1); // 1.0u 0.12u nmos #(24) nmos(w6,vss,D2); // 1.0u 0.12u pmos #(24) pmos(w6,vdd,D2); // 2.0u 0.12u pmos #(38) pmos(w8,vdd,D3); // 2.0u 0.12u nmos #(38) nmos(w8,vss,D3); // 1.0u 0.12u pmos #(38) pmos(w9,vdd,w8); // 2.0u 0.12u pmos #(10) pmos(w10,vdd,w6); // 2.0u 0.12u pmos #(38) pmos(w9,w10,D1); // 2.0u 0.12u nmos #(38) nmos(w9,w11,w6); // 1.0u 0.12u nmos #(38) nmos(w9,w11,D1); // 1.0u 0.12u nmos #(17) nmos(w11,vss,w8); // 1.0u 0.12u pmos #(38) pmos(w2,vdd,D2); // 2.0u 0.12u pmos #(38) pmos(w2,vdd,w4); // 2.0u 0.12u pmos #(38) pmos(w2,vdd,w8); // 2.0u 0.12u nmos #(38) nmos(w2,w12,w4); // 1.0u 0.12u nmos #(10) nmos(w12,w13,D2); // 1.0u 0.12u nmos #(17) nmos(F2,vss,w2); // 1.0u 0.12u nmos #(10) nmos(w13,vss,w8); // 1.0u 0.12u nmos #(17) nmos(F1,vss,w9); // 1.0u 0.12u pmos #(17) pmos(F1,vdd,w9); // 2.0u 0.12uendmodule// Simulation parameters in Verilog Formatalways#1000 D1=~D1;#2000 D2=~D2;#4000 D3=~D3;// Simulation parameters// D1 CLK 10 10// D2 CLK 20 20// D3 CLK 40 40

13. CONCLUSIONES

El manejo del algebra booleana junto con los diferentes tipos de simplificación de funciones lógicas, como mapas de Karnaugh fueron primordiales para el desarrollo del circuito integrado en tecnología CMOS.

Al realizar las simulaciones en el software Microwind se observó que el diseño del circuito creado con código verilog es más eficiente, sin embargo el uso de transistores es mucho mayor.

Al realizar la simplificación de las tablas de verdad para cada uno de los problemas propuestos se debe tomar en cuenta la lógica combinacional CMOS, ya que tiene un mayor uso de transistores que la lógica AOI.

69

Page 70: DSCH Y MICROWIND VLSI

Para realizar la implementación de los circuitos solución en cada uno de los problemas propuestos, se debe iniciar simulando el mismo en DSCH, el cual nos permite generar el código verilog y de esta manera facilitar el diseño en Microwind.

14. RECOMENDACIONES

Se recomienda utilizar los mapas de Karnaugh para obtener la solución más óptima y evitar el uso excesivo de transistores.

Para la implementación del circuito solución con transistores CMOS se recomienda el uso de lógica AOI, ya que se reduce el número de transistores a utilizar.

Se recomienda tener en cuenta que en el simulador Microwind se trabaja sobre una única oblea de silicio, donde las propiedades eléctricas, térmicas, etc. No varían de punto a punto.

Para implementar el circuito solución en Microwind se recomienda utilizar un esquema de diseño, para que la detección de errores en el mismo sea más sencilla de identificar.

15. CRONOGRAMA

Figura. 68 Cronograma.

70

Page 71: DSCH Y MICROWIND VLSI

Figura. 69. Cronograma Diagrama de Gantt

16.BIBLIOGRAFÍA

Cuadros, J. M. (23 de 11 de 2010). dacya. Obtenido de http://www.dacya.ucm.es/horten/dci/tema1_2.pdf

License, C. C.-A. (16 de Mayo de 2015). microwindumh. Obtenido de http://microwindumh.wikispaces.com/Introducci%C3%B3n

Mecha Lopez, H., & Mendias Cuadros, J. M. (s.f.). Diseño Digital CMOS. Madris: Universidad Complutense de Madrid.

Noriega, S. (2006). Familia Lógica CMOS. Saavedra: UNDP.

Oroz De Gaetano Ariel, A. P. (s.f.). Diseno de una Librer ˜ ´ıa de Compuertas Estandares ´. Buenos Aires: DIEC, Universidad Nacional del Sur.

Sánchez, J. J. (10 de Febrero de 2010). Departamento de Informática de la Universidad de Valladolid. Obtenido de http://www.infor.uva.es/~jjalvarez/asignaturas/fundamentos/lectures/digital/Tema2_combinacionales.pdf

Sicard, E. (2007). Basics of CMOS Cell Design. New York: McGraw-Hill.

71

Page 72: DSCH Y MICROWIND VLSI

17.ANEXOS

17.1 Manual de Usuario.

72

Page 73: DSCH Y MICROWIND VLSI

73

PRODUCTO DE UNIDADMANUAL DE USUARIO

DISEÑO VLSI

Page 74: DSCH Y MICROWIND VLSI

Es para nosotros un honor que tenga en su poder la presente solución e implementación para los diferentes enunciados; los cuales se ha generado a través de una investigación minuciosa, para tenerla ya en funcionamiento.

En este anexo se realiza el manual de usuario en referencia a 5 enunciados tanto en Microwind, Dsch como también en en código Verilog.

Enunciado 1 (DISPLAY DE 7 SEGEMENTOS)

Diseñe un decodificador de BCD a 7 segmentos. Para mostrar información en el display es necesario diseñar un sistema combinacional que convierta BCD A 7 salidas que enciendan o apaguen cada segmento a fin de desplegar el carácter apropiado.

Tabla de verdadA B C D a b c d e f g0 0 0 0 1 1 1 1 1 1 00 0 0 1 0 1 1 0 0 0 00 0 1 0 1 1 0 1 1 0 10 0 1 1 1 1 1 1 0 0 10 1 0 0 0 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 10 1 1 0 1 0 1 1 1 1 10 1 1 1 1 1 1 0 0 0 01 0 0 0 1 1 1 1 1 1 11 0 0 1 1 1 1 1 0 1 11 0 1 0 x x x x x x x1 0 1 1 x x x x x x x1 1 0 0 x x x x x x x1 1 0 1 x x x x x x x1 1 1 0 x x x x x x x1 1 1 1 x x x x x x x

En Microwind, la implementación funciona de la siguiente manera:

74

Page 75: DSCH Y MICROWIND VLSI

Para verificar el funcionamiento del enunciado se debe dirigir a la barra de herramientas se presiona correr la simulación

Se selecciona Polarize Nwell to VDD para la polarización del transistor PMOS.

Se presenta una ventana con un diagrama de tiempos con las entradas (A, B, C, D) y las salidas (a, b, c, d, e, f, g,).

75

Page 76: DSCH Y MICROWIND VLSI

La implementación en Dsch funciona de la siguiente manera:

Para verificar el funcionamiento se debe presionar Run Simulation para iniciar la simulación.

76

Page 77: DSCH Y MICROWIND VLSI

Dar clic en cada botón para activar las entradas del circuito, si las condiciones de la tabla de verdad del enunciado se cumplen se activará la salida correspondiente.

Para generar el código Verilog se debe dirigir a la barra de menú y presionar en File en el cual se debe dar clic en Make Verilog File.

Luego aparecerá una ventana en la cual se debe presionar OK y se generara el código Verilog; el archivo se guardar en la carpeta en donde esta creado el archivo.

Para implementar el microwind con Verilog se debe abrir Microwind y dirigirse a la pestaña Compile y presionar en Compile Verilog File y se debe seleccionar el archivo Verilog generado anteriormente y en la ventana que aparece se deberá presionar en Compile.

77

Page 78: DSCH Y MICROWIND VLSI

Con ese se genera el diagrama de Microwind siguiente:

Con el cual se verá las siguientes respuestas que se verificara con la tabla de verdad.

78

Page 79: DSCH Y MICROWIND VLSI

Enunciado 2 (DECODIFICAR BDC A DECIMAL)

Diseñe un decodificador de 4 a 10 líneas. Un decodificador de BCD a Decimal tiene un código de entrada de 4 bits y 10 salidas. Las cuales tienen valores solo para las combinaciones de entrada del 0 al 9.

Tabla de verdad

A B C D 0 1 2 3 4 5 6 7 8 90 0 0 0 1 0 0 0 0 0 0 0 0 00 0 0 1 0 1 0 0 0 0 0 0 0 00 0 1 0 0 0 1 0 0 0 0 0 0 00 0 1 1 0 0 0 1 0 0 0 0 0 00 1 0 0 0 0 0 0 1 0 0 0 0 00 1 0 1 0 0 0 0 0 1 0 0 0 00 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 1 0 0 0 0 0 0 0 1 0 01 0 0 0 0 0 0 0 0 0 0 0 1 01 0 0 1 0 0 0 0 0 0 0 0 0 11 0 1 0 X X X X X X X X X X1 0 1 1 X X X X X X X X X X1 1 0 0 X X X X X X X X X X1 1 0 1 X X X X X X X X X X1 1 1 0 X X X X X X X X X X1 1 1 1 X X X X X X X X X X

En Microwind, la implementación funciona de la siguiente manera:

79

Page 80: DSCH Y MICROWIND VLSI

Para verificar el funcionamiento del enunciado se debe dirigir a la barra de herramientas se presiona correr la simulación

Se selecciona Polarize Nwell to VDD para la polarización del transistor PMOS.

Se presenta una ventana con un diagrama de tiempos con las entradas (A, B, C, D) y las salidas (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0).

La implementación en Dsch funciona de la siguiente manera:

80

Page 81: DSCH Y MICROWIND VLSI

Para verificar el funcionamiento se debe presionar Run Simulation para iniciar la simulación.

Dar clic en cada botón para activar las entradas del circuito, si las condiciones de la tabla de verdad del enunciado se cumplen se activará la salida correspondiente.

Para generar el código Verilog se debe dirigir a la barra de menú y presionar en File en el cual se debe dar clic en Make Verilog File.

Luego aparecerá una ventana en la cual se debe presionar OK y se generara el código Verilog; el archivo se guardar en la carpeta en donde esta creado el archivo.

Para implementar el microwind con Verilog se debe abrir Microwind y dirigirse a la pestaña Compile y presionar en Compile Verilog File y se debe seleccionar el archivo

81

Page 82: DSCH Y MICROWIND VLSI

Verilog generado anteriormente y en la ventana que aparece se deberá presionar en Compile.

Con ese se genera el diagrama de Microwind siguiente:

Con el cual se verá las siguientes respuestas que se verificara con la tabla de verdad.

Enunciado 3 (DETECTOR DE NÚMEROS PRIMOS EN BCD-XS-3)

Se quiere realizar un circuito que reciba un número BCD-XS3 (4 bits) y devuelva '1' si el número recibido es primo, y devuelva '0' si no lo es. Se considerará el número 1 como número primo. El cero no es un número primo. En ningún caso el circuito recibirá

82

Page 83: DSCH Y MICROWIND VLSI

números que no estén codificados en BCD-XS3. NOTA: Se debe investigar el código BCD-XS-3

Tabla de verdad

A B C D P0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 01 0 0 0 11 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 01 1 0 1 01 1 1 0 11 1 1 1 0

En Microwind, la implementación funciona de la siguiente manera:

Para verificar el funcionamiento del enunciado se debe dirigir a la barra de herramientas se presiona correr la simulación

Se selecciona Polarize Nwell to VDD para la polarización del transistor PMOS.

83

Page 84: DSCH Y MICROWIND VLSI

Se presenta una ventana con un diagrama de tiempos con las entradas (A, B, C, D) y la salida (P).

La implementación en Dsch funciona de la siguiente manera:

Para verificar el funcionamiento se debe presionar Run Simulation para iniciar la simulación.

84

Page 85: DSCH Y MICROWIND VLSI

Dar clic en cada botón para activar las entradas del circuito, si las condiciones de la tabla de verdad del enunciado se cumplen se activará la salida correspondiente.

Para generar el código Verilog se debe dirigir a la barra de menú y presionar en File en el cual se debe dar clic en Make Verilog File.

Luego aparecerá una ventana en la cual se debe presionar OK y se generara el código Verilog; el archivo se guardar en la carpeta en donde esta creado el archivo.

Para implementar el microwind con Verilog se debe abrir Microwind y dirigirse a la pestaña Compile y presionar en Compile Verilog File y se debe seleccionar el archivo Verilog generado anteriormente y en la ventana que aparece se deberá presionar en Compile.

85

Page 86: DSCH Y MICROWIND VLSI

Con ese se genera el diagrama de Microwind siguiente:

Con el cual se verá las siguientes respuestas que se verificara con la tabla de verdad.

86

Page 87: DSCH Y MICROWIND VLSI

Enunciado 3 (COMPARADOR)

Realizar un circuito que recibe dos números binarios puros (sin signo): A [3,0], B [3,0] e indica por la salida S si A es mayor que B, dado bajo las siguientes condiciones:

La salida S='1' cuando A>B, en otro caso S='0'. El bit más significativo es el bit 3. Debe obtenerse la función mínima mediante mapas de Karnaugh, pero debido a

que el circuito tiene 8 entradas y resulta difícil de hacer el mapa de Karnaugh con tantas variables, el circuito se implementará en dos módulos.

Primero se deberá realizar un circuito que compare los dos bits menos significativos de A y B, y devuelva '1' si el número (A1A0) es mayor que el número (B1B0). Esta salida (N) será la entrada del segundo comparador.

Después de haber hecho el primer comparador (de 4 entradas) se realizará el segundo comparador (de 5 entradas). Este comparador recibe los dos bits más significativos de A y B, y la señal N que indica si (A1A0)>(B1B0).

El segundo comparador es muy similar al primero, únicamente cuando (A3A2)= (B3B2) será necesario utilizar la señal N.

Para el mapa de Karnaugh del segundo comparador se recomienda tomar la señal N como la 5ª variable.

Tabla de verdad.

Primer Módulo

A1

A0

B1

B0

N

0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 10 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 11 0 0 1 11 0 1 0 01 0 1 1 0

87

Page 88: DSCH Y MICROWIND VLSI

1 1 0 0 11 1 0 1 11 1 1 0 11 1 1 1 0

Segundo Módulo

N A3

A2

B3

B2

S

0 0 0 0 0 00 0 0 0 1 00 0 0 1 0 00 0 0 1 1 00 0 1 0 0 10 0 1 0 1 00 0 1 1 0 00 0 1 1 1 00 1 0 0 0 10 1 0 0 1 10 1 0 1 0 00 1 0 1 1 00 1 1 0 0 10 1 1 0 1 10 1 1 1 0 10 1 1 1 1 01 0 0 0 0 11 0 0 0 1 01 0 0 1 0 01 0 0 1 1 01 0 1 0 0 11 0 1 0 1 11 0 1 1 0 01 0 1 1 1 01 1 0 0 0 11 1 0 0 1 11 1 0 1 0 11 1 0 1 1 01 1 1 0 0 11 1 1 0 1 11 1 1 1 0 11 1 1 1 1 1

88

Page 89: DSCH Y MICROWIND VLSI

En Microwind, la implementación funciona de la siguiente manera:

Para verificar el funcionamiento del enunciado se debe dirigir a la barra de herramientas se presiona correr la simulación

Se selecciona Polarize Nwell to VDD para la polarización del transistor PMOS.

Se presenta una ventana con un diagrama de tiempos con las entradas (A3, A2, A1, A0, B1, B2, B3, B4) y la salida (S).

89

Page 90: DSCH Y MICROWIND VLSI

La implementación en Dsch funciona de la siguiente manera:

Para verificar el funcionamiento se debe presionar Run Simulation para iniciar la simulación.

Dar clic en cada botón para activar las entradas del circuito, si las condiciones de la tabla de verdad del enunciado se cumplen se activará la salida correspondiente.

90

Page 91: DSCH Y MICROWIND VLSI

Para generar el código Verilog se debe dirigir a la barra de menú y presionar en File en el cual se debe dar clic en Make Verilog File.

Luego aparecerá una ventana en la cual se debe presionar OK y se generara el código Verilog; el archivo se guardar en la carpeta en donde esta creado el archivo.

Para implementar el microwind con Verilog se debe abrir Microwind y dirigirse a la pestaña Compile y presionar en Compile Verilog File y se debe seleccionar el archivo Verilog generado anteriormente y en la ventana que aparece se deberá presionar en Compile.

91

Page 92: DSCH Y MICROWIND VLSI

Con ese se genera el diagrama de Microwind siguiente:

Con el cual se verá las siguientes respuestas que se verificara con la tabla de verdad.

92

Page 93: DSCH Y MICROWIND VLSI

EJERCICIO EXTRA

Se tiene una intersección de dos calles como se muestra a continuación:

D3 es un switch de una intersección de bomberos; D1 y D2 representan sensores de automóviles; el paso de los automóviles al igual que la operación de D3 determina un cambio de luz en los semáforos (F1 y F2). Si la luz es verde hay paso libre y puede ser representado como un 1L en una función digital.

Elaborar una tabla de verdad para la función F1 (respecto de D1, en el sentido AA´) cuando sólo en éste sentido puede haber circulación de acuerdo a las combinaciones de D1, D2 y D3. Si:

- D1 tiene prioridad sobre D2, y si D3 tiene prioridad sobre D2 y D1.- Si no hay presencia de automóviles ni D3 es activado, considere como

posibilidad de circulación en sentido AA´.

Tabla de verdad

D1 D2 D3 F1 F20 0 0 1 00 0 1 0 00 1 0 0 10 1 1 0 01 0 0 1 01 0 1 0 01 1 0 1 01 1 1 0 0

En Microwind, la implementación funciona de la siguiente manera:

93

Page 94: DSCH Y MICROWIND VLSI

Para verificar el funcionamiento del enunciado se debe dirigir a la barra de herramientas se presiona correr la simulación

Se selecciona Polarize Nwell to VDD para la polarización del transistor PMOS.

Se presenta una ventana con un diagrama de tiempos con las entradas (D1, D2, D3) y las salidas (F1, F2).

La implementación en Dsch funciona de la siguiente manera:

94

Page 95: DSCH Y MICROWIND VLSI

Para verificar el funcionamiento se debe presionar Run Simulation para iniciar la simulación.

Dar clic en cada botón para activar las entradas del circuito, si las condiciones de la tabla de verdad del enunciado se cumplen se activará la salida correspondiente.

Para generar el código Verilog se debe dirigir a la barra de menú y presionar en File en el cual se debe dar clic en Make Verilog File.

Luego aparecerá una ventana en la cual se debe presionar OK y se generara el código Verilog; el archivo se guardar en la carpeta en donde esta creado el archivo.

Para implementar el microwind con Verilog se debe abrir Microwind y dirigirse a la pestaña Compile y presionar en Compile Verilog File y se debe seleccionar el archivo Verilog generado anteriormente y en la ventana que aparece se deberá presionar en Compile.

95

Page 96: DSCH Y MICROWIND VLSI

Con ese se genera el diagrama de Microwind siguiente:

Con el cual se verá las siguientes respuestas que se verificara con la tabla de verdad.

96

Page 97: DSCH Y MICROWIND VLSI

Una vez implementados individualmente cada uno de los enunciados anteriores se procederá a multiplexar en Microwind y DSCH.

Implementación en Microwind:

Implementación en DSCH:

97