Detector de secuencia no solapada 1011 empleando PLA

47
Detector de Secuencia Circuitos Microelectrónicos Jesús Pardal Garcés Marc Tena Gil 28/09/2010 Diseñar mediante CADENCE con tecnología CMOS de 0.35μm y pozo-n de AMS las células básicas para el diseño de PLAs cuyos planos lógicos sean pseudo-nMOS estáticos. La PLA adoptará un esquema de temporización dinámico pseudo-2fases. Aplicarlo a un detector de la secuencia no solapada “1011” con reset asíncrono y latches D dinámicos

description

Detector de la secuencia no solapada “1011” con reset asíncrono y latches D dinámicos. Diseño completo a nivel microelectrónico (full-custom) empleando la herramienta de diseño CADENCE. Full-custom design. 1011 non-overlaping sequence detector with an asyncronous reset and dynamic D-latches using CADENCE tool

Transcript of Detector de secuencia no solapada 1011 empleando PLA

Page 1: Detector de secuencia no solapada 1011 empleando PLA

Detector de Secuencia Circuitos Microelectrónicos

Jesús Pardal Garcés

Marc Tena Gil

28/09/2010

Diseñar mediante CADENCE con tecnología CMOS de 0.35μm y pozo-n de AMS las células básicas para el diseño de PLAs cuyos planos lógicos sean pseudo-nMOS estáticos. La PLA adoptará un esquema de temporización dinámico pseudo-2fases. Aplicarlo a un detector de la secuencia no solapada “1011” con reset asíncrono y latches D dinámicos

Page 2: Detector de secuencia no solapada 1011 empleando PLA

2

Page 3: Detector de secuencia no solapada 1011 empleando PLA

3

Índice

1) Estudio teórico PLA: ...................................... 4

2) Metodología de diseño ................................. 8

3) Detector de secuencia .................................. 9

4) Etapa de entrada ........................................ 10

5) Etapa de salida ............................................ 18

6) Generador de reloj ..................................... 27

7) PLA .............................................................. 35

8) Estudio de potencia .................................... 42

9) Estudio de frecuencia ................................. 44

10)Bibliografía................................................. 47

Page 4: Detector de secuencia no solapada 1011 empleando PLA

4

1) Estudio teórico PLA:

Figura 1.1: Estructura PLA

Comentar inicialmente, que en nuestro caso las 2 fases las vamos a usar

únicamente para el control de los latches de entrada salida, y no para

controlar la evaluación de los planos and y or, en los que se utiliza lógica

pseudo-nmos, por lo tanto no se emplean las fases de reloj para el

conexionado en cascada de varias etapas como en la lógica dominó o para

crear elementos de memoria (los Planos PLA son estáticos).

El estudio a realizar es estático ya que las redes AND y OR son puramente

combinacionales, y el reloj sólo nos controla la entrada y salida de datos

para poder generar la secuenciación y la máquina de estados.

La estructura PLA (Programmable Logic Array) se basa en dos matrices o

planos (AND y OR) programables, que busca la facilidad de

implementación y programación gracias a su estructura replicable, que

nos facilita un sencillo escalado, aumentando el número de variables a

Page 5: Detector de secuencia no solapada 1011 empleando PLA

5

tantas como nos sean necesarias (tanto en variables de entrada o

realimentaciones como en forma de términos suma).

En un circuito del tipo PLA se consigue un gran aprovechamiento de los

recursos disponibles, de tal forma que se genera el mínimo número de

términos necesarios para implementar una función lógica, usando alguno

de los productos programados para otra de las salidas o empleando

alguna entrada para funciones que tengan factores en común, reutilizando

así productos y aumentando la capacidad de integración en un mismo

circuito programable. Aunque por su contra debido a la estructura

replicable también se desaprovecha cierto espacio.

Hay que tener en cuenta a la hora de diseñar usando una PLA que al tener

un inversor en la etapa de salida (latch de salida) tendremos que reescribir

las funciones lógicas utilizando la ley de De Morgan como la función

negada a la deseada:

Se va a comentar un poco más sobre la lógica pseudo-nmos empleada en

la PLA.

Figura 1.2: Lógica pseudo-nmos

Para este tipo de lógica se tuiliza en la red de pull-up transistores tipo pmos altamente resistivos con la base conectad a gnd.

Page 6: Detector de secuencia no solapada 1011 empleando PLA

6

La estructura general del detector de secuencia será, como se ha comentado, con latches a la entrada y salida:

Figura 1.3: Esquema de bloques

Presentamos a continuación el camino que recorre una función lógica a través de la estructura PLA, y un stick diagram del circuito completo a falta del generador de reloj.

Figura 1.4: Camino de una variable en la PLA

Page 7: Detector de secuencia no solapada 1011 empleando PLA

7

Figura 1.5: Stick diagram del detector de secuencia

Page 8: Detector de secuencia no solapada 1011 empleando PLA

8

2) Metodología de diseño

Conforme se ha ido diseñando cada etapa por separado (latch entrada,

plano and, plano or, etcétera) se han realizado sobre papel muchos stick

diagrams para ubicar todo intentar y conseguir simetría en las células

individuales, que éstas a su vez tuvieran una simetría en las estructuras

globales de las que forman parte e intentar compactarlas todo lo que se

ha podido. También se ha intentado reducir al máximo el área ocupada

intentando aprovechar una misma difusión para varios transistores

(además la lógica pseudo-nmos emplea menos TRT que la CMOS,

reduciéndose el área necesaria). Asimismo cuando se han necesitado

transistores más anchos, se han colocado TRT más estrechos en paralelo

para conseguir ahorrar espacio.

Se ha intentado también situar de la mejor manera los puertos de acceso

para facilitar el diseño, aunque habría que ver si se tiene que integrar el

sistema diseñado en otros mayores, tanto para poder hacer una mejor

distribución de las señales como para estudiar dónde sería la mejor

ubicación de los puertos de entrada.

En particular, la estructura PLA lo que busca es facilidad de

implementación y programación gracias a su estructura replicable, que

nos facilita un sencillo escalado, aunque esto influye negativamente en la

minimización del espacio ocupado por la célula.

Finalmente comentar el estilo que se ha empleado:

Alimentación MET2

GND MET1, MET2 (compartida en el

plano AND)

Interconexiones verticales MET1 (Acceso a las puertas)

Interconexiones horizontales MET2

Se ha intentado trabajar siempre el metal1 y el polisilicio en la misma

dirección y las difusiones perpendiculares a éstos.

Page 9: Detector de secuencia no solapada 1011 empleando PLA

9

3) Detector de secuencia

El circuito a diseñar ha de ser capaz de detectar la secuencia 1011 sin solape a su entrada. Un diagrama de tiempos de la evolución de la entrada en función del reloj se muestra en la figura 3.1,en la que se puede observar que la señal que hay que analizar para detectar la secuencia correcta está muestreada en el flanco de subida del reloj. Notar que el circuito dispone de una entrada de reset asíncrono activo a nivel alto.

Figura 3.2: Diagrama de burbujas de la máquina de estados

E Qt Qt+1

S

Q0 Q1 Q0 Q1

An Bn

0 0 0 0 0 0 R1 1 0 0 0 1 0 R2

0 0 1 1 0 0 R3 1 0 1 0 1 0 R4

0 1 0 0 0 0 R5

1 1 0 1 1 0 R6 0 1 1 1 0 0 R7

1 1 1 0 0 1 R8 Figura 3.3: Tabla de excitaciones

Page 10: Detector de secuencia no solapada 1011 empleando PLA

10

ECUACIONES DE DISEÑO

4) Etapa de entrada

La etapa de entrada consistirá en un latch controlado por la señal de reloj

y a continuación dos inversores para obtener la señal de entrada negada y

afirmada (estructura parecida a los pad cells de entrada de los circuitos

para “bufferear” las entradas).

El latch consistirá simplemente en un transistor cmos tipo n, ya que el

enunciado pide que los planos lógicos sean pseudo-nmos. En su base

conectaremos la señal de reloj, dependiendo si hay un cero o un uno en la

base, el transistor estará en corte (un cero) o activo (un uno) por lo que

impedirá o permitirá el paso de señal a su entrada.

Después de dicho latch colocaremos un inversor para obtener la señal de

entrada negada y a continuación de éste, otro inversor para obtener la

señal afirmada. Este procedimiento se utiliza para restaurar el nivel de

tensión ya que los latch están formados por transistores nmos y no

conducen bien los unos. También habría que tener en cuenta que en las

redes nmos de los planos AND-OR se obtiene un cero débil que proviene

del divisor resistivo formado por el pmos y los nmos de la función lógica.

Page 11: Detector de secuencia no solapada 1011 empleando PLA

11

En el circuito habrá tres entradas, una de ellas será por donde se

introducirá la secuencia serie a detectar y las otras son realimentación de

las salidas para así poder realizar la máquina de estados.

A continuación se presenta el esquemático de la célula de entrada básica:

Figura 4.1: Esquema eléctrico de una célula de entrada

Después de hacer el esquemático, se crea el símbolo. Estando en el

esquemático, buscar Desing/Create cellview /from cellview donde

aparecerá una subpantalla en la que hay que elegir la opción from

schematic → to symbol. A continuación aparece un esquemático por

defecto, éste se puede modificar gráficamente a placer.

Figura 4.2: Símbolo de una célula de entrada

Page 12: Detector de secuencia no solapada 1011 empleando PLA

12

Tras realizar el símbolo, hay que implementar el diseño del layout e

intentar optimizar al máximo (compartiendo y solapando contactos y

vias…) para que el diseño ocupe el mínimo espacio posible. El layout de

una entrada quedará:

Figura 4.3: Layout de una célula de entrada

Siguiendo los pasos,chequeamos el DRC (incluyendo la opción

no_coverage para evitar que aparezcan los mensajes de los porcentajes de

densidades) sin que de errores, se realiza la vista extraída del layout.

Buscar en Verify → Extract.

Para comprobar si el layout diseñado y el esquemático no tienen

diferencias entre ellos se va utilizar la herramienta LVS. En caso de

aparecer alguna discrepancia, se puede emplear la opción Error Display

para localizar qué es diferente en el diseño original y el propio en las vistas

schematic y extracted.

Page 13: Detector de secuencia no solapada 1011 empleando PLA

13

Figura 4.4: Extracción del layout de una célula de entrada

Para finalizar se debe crear un testbench para poder simular las dos vistas,

la extraída y el esquemático original. El procedimiento a seguir es el

siguiente:

-Creamos un esquemático introduciendo el símbolo y conectando lo

que toca a cada entrada.

-Luego replicamos en el mismo esquemático el mismo circuito una

vista de tipo config empleando el Hierarchy Editor.

Page 14: Detector de secuencia no solapada 1011 empleando PLA

14

- Abrir la vista config y crear una nueva configuración (ventana New

Configuration) empleando la plantilla Spectre en la opción Use

Template.

- Abrir la vista en árbol desplegable. Si ahora se abre la rama de la

célula testbench, se puede ver la vista que se escogen por defecto

para cada una de las instancias del símbolo; por lo tanto basta con

escoger una de la instancia como extraída y la otra como

esquemático.

- Por último se salvará la vista config.

- Desde la vista config seleccionamos Analog Design Environment

para poder llevar a cabo la simulación con la configuración adecuada

de las células.

Figura 4.5: Testbench combinando la célula extraída y del esquemático una célula de entrada

Page 15: Detector de secuencia no solapada 1011 empleando PLA

15

Después de realizar la simulación con los estímulos adecuados, teniendo

en cuenta que cuando el reloj esté a nivel alto no haya cambios en la señal

de entrada, y seleccionando en el Virtuoso Analog Environment los

puertos que se quiere que salgan en la simulación, aparece el siguiente

resultado:

Figura 4.6: Simulación la célula de entrada

Como puede observarse, mientras fi ( primera fase del reloj) está a nivel

alto se muestrean los datos de entrada, variando éstos mientras el reloj se

encuentra a nivel bajo.

Page 16: Detector de secuencia no solapada 1011 empleando PLA

16

Figura 4.7: Detalle 1 entrada

Figura 4.8: Detalle 2 entrada

Page 17: Detector de secuencia no solapada 1011 empleando PLA

17

De las simulaciones se puede sacar como conclusión que la célula extraída

es un poco más lenta que el esquemático original, esto es debido a todas

las capacidades y resistencias parásitas que hay en los componentes

reales.

También podemos observar que la transición de 0 a 1 es más lenta que la

de 1 a 0.

A continuación se replica la célula base tres veces, creando la célula final

de entrada en un nuevo layout.

Figura 4.9: Layout bloque de entrada

Page 18: Detector de secuencia no solapada 1011 empleando PLA

18

5) Etapa de salida

La etapa de salida contará con un latch que dejará pasar o no la señal de

salida, seguido de un inversor.

El latch consistirá simplemente en un transistor cmos tipo n, ya que se

especifica que los planos lógicos deben de ser pseudo-nmos. En su base

conectaremos la señal de reloj, dependiendo si hay un cero o un uno en

ella, el transistor estará en corte (un cero) o activo (un uno) por lo que

impedirá o permitirá pasar la señal de salida. Es el mismo circuito que en

la entrada.

Estas dos señales de reloj son distintas y tiene que estar desfasadas y

nunca solaparse en el mismo nivel (alto o bajo), para que cuando f1 esté

activa, pase la señal de entrada y le dé tiempo a los planos AND y OR a

evaluar la señal y así tener a la salida la señal deseada. Luego éste será el

tiempo que tienen que estar desfasadas las señales f1 y f2 como mínimo

para que cuando f2 esté a nivel alto, tengamos a la salida el valor

adecuado (hablaremos más adelante en el apartado del reloj).

Después colocamos un inversor al igual que en la etapa de entrada,

además tendremos que tener cuidado en el diseño de la máquina de

estados debido a este inversor negará nuestra señal, obligándonos a

trabajar en productos de términos suma en vez de con sumas de términos

producto.

En nuestro circuito tendremos dos salidas que serán realimentadas hasta

las entradas, más otra que será nuestra salida real del circuito, la cual se

pondrá a nivel alto cuando se detecte la secuencia 1011 sin solape.

Page 19: Detector de secuencia no solapada 1011 empleando PLA

19

A continuación mostramos el esquemático de la célula de la etapa de

salida básica:

Figura 5.1: Esquema eléctrico célula individual de salida

Después de hacer el esquemático, se crea el símbolo. Estando en el

esquemático, buscar Desing/Create cellview /from cellview donde

aparecerá una subpantalla en la que hay que elegir la opción from

schematic → to symbol. A continuación aparece un esquemático por

defecto, éste se puede modificar gráficamente a placer.

Figura 5.2: Símbolo célula individual de salida

Page 20: Detector de secuencia no solapada 1011 empleando PLA

20

Después de realizar el símbolo, realizaremos el diseño del layout e

intentaremos optimizar al máximo(compartiendo y solapando contactos ,

vías…)para que ocupe el mínimo espacio posible.

Layout de una célula individual de salida:

Figura 5.3: Layout célula individual de salida

Ahora,tras realizar el layout y pasar el DRC (incluyendo la opción

no_coverage para evitar que aparezcan los mensajes de los porcentajes de

densidades) sin que de errores, se realiza la vista extraída del layout.

Buscar en Verify → Extract.

Page 21: Detector de secuencia no solapada 1011 empleando PLA

21

Para comprobar si el layout diseñado y el esquemático no tienen

diferencias entre ellos se va utilizar la herramienta LVS. En caso de

aparecer alguna discrepancia, se puede emplear la opción Error Display

para localizar qué es diferente en el diseño original y el propio en las vistas

schematic y extracted.

Figura 5.4: Extracción del layout célula individual de salida

Page 22: Detector de secuencia no solapada 1011 empleando PLA

22

Después de realizar la extracción debemos crear un testbench para poder

simular las dos vistas, la extraída y el esquemático original. El

procedimiento a seguir es el siguiente:

-Creamos un esquemático introduciendo el símbolo y conectando lo

que toca a cada entrada.

-Luego replicamos en el mismo esquemático el mismo circuito.

-Creamos una vista de tipo config empleando el Hierarchy Editor.

-Abrir la vista config y crear una nueva configuración (ventana New

Configuration) empleando la plantilla Spectre en la opción Use

Template.

-Abrir la vista en árbol desplegable. Si ahora se abre la rama de la

célula testbench, se puede ver la vista que se escogen por defecto

para cada una de las instancias del símbolo. Por lo tanto basta con

escoger una de la instancia como extraída y la otra como

esquemático.

-Por último se salvará la vista config.

Desde la vista config seleccionamos Analog Design Environment para

poder llevar a cabo la simulación con la configuración adecuada de las

células.

Page 23: Detector de secuencia no solapada 1011 empleando PLA

23

Figura 5.5: Testbench combinado esquemático/extracción

Después de realizar la simulación con los estímulos adecuados, teniendo

en cuenta que cuando el reloj esté a uno no haya cambios en la señal de

entrada, y seleccionando en el Virtuoso Analog Environment las señales

que queremos que salga en la simulación obtenemos el siguiente

resultado:

Page 24: Detector de secuencia no solapada 1011 empleando PLA

24

Podemos ver como se muestrea el dato cuando fi cambia a nivel alto.

Figura 5.6: Resultado testbench

Figura 5.7: Muestreo de un nivel alto

Page 25: Detector de secuencia no solapada 1011 empleando PLA

25

Figura 5.8: Muestreo de un nivel bajo

De las simulaciones sacamos una conclusión clara, que la célula extraída es

un poco más lenta que el esquemático original. Esto es debido a todas las

capacidades y resistencias parásitas que hay debido a los transistores,

cruces de metales… y que funciona como cabía esperar.

A continuación se han juntado todas las salidas en un mismo layout

replicando simplemente la célula base.

Page 26: Detector de secuencia no solapada 1011 empleando PLA

26

Figura 5.9: Layout célula de salida completa

Page 27: Detector de secuencia no solapada 1011 empleando PLA

27

6) Generador de reloj

El generador de reloj de un sistema digital es un bloque básico para su

buen funcionamiento, ya que de la estabilidad de la frecuencia de reloj

depende que el sistema funcione de forma fiable.

De todas las configuraciones posibles elegiremos la dinámica pseudo-2

fases ya que es la que nos indica el enunciado del trabajo.

Con esta configuración para realizar los relojes no sólo han de ser

lógicamente complementarios, sino que no han de solaparse, y con un

cierto margen de tolerancia. Esto quiere decir que durante el tiempo en

que la primera fase (fi1) está a nivel alto se leen los datos de la entrada y

se evalúan en los planos lógicos AND y OR.

El margen de tiempo del que dispone este bloque para el procesado de

los datos viene dado por el periodo de reloj, ya que no vuelve a capturar

nuevos datos hasta la siguiente fase activa de fi1. Sin embargo, la salida se

activa a nivel alto de la segunda fase (fi2), por lo tanto el cálculo de los

datos tiene que haber acabado antes que llegue éste para obtener unas

salidas correctas. Ello es debido a que unos relojes complementarios

ideales, aunque no se solaparan en absoluto, podrían verse afectados por

diferente retardo (clock skew), con lo que a la entrada de la puerta se

podrían solapar, cosa que provocaría que el dato de entrada empiece a

evaluarse y que el de salida sea realimentado antes de lo previsto,

llevando al caos al sistema. Resumiendo, la lógica combinacional que hay

entre el latch de entrada y el de salida tiene como mucho para evaluarse,

la diferencia entre fases del reloj, dando lugar a un periodo de reloj que

sea como mínimo el tiempo combinacional, junto con los tiempos de set-

up y las fases del reloj.

En un sistema mayor que el propuesto sería necesario hacer un estudio de

la técnica a seguir para distribuir la señal de reloj por el sistema, realizar

un buen árbol de distribución para minimizar el clock skew producido por

la diferencia de camino del reloj a las diferentes partes del C.I. Utilizar si

fuera necesario PLL, etc. No se va a profundizar más porque la magnitud

del proyecto tampoco lo requiere.

Page 28: Detector de secuencia no solapada 1011 empleando PLA

28

En la figura se muestra un generador de reloj no solapado y su salida

teórica:

Figura 6.1: Circuito generador de las 2 fases

Figura 6.2: Diagrama temporal de las fases

Figura 6.3: Esquema eléctrico del reloj 2 fases

Page 29: Detector de secuencia no solapada 1011 empleando PLA

29

Después de hacer el esquemático, se crea el símbolo. Estando en el

esquemático, buscar Desing/Create cellview /from cellview donde

aparecerá una subpantalla en la que hay que elegir la opción from

schematic → to symbol. A continuación aparece un esquemático por

defecto, éste se puede modificar gráficamente a placer.

Figura 6.4: Símbolo del reloj de dos fases

Tras realizar el símbolo, se pasa a diseñar el layout, optimizando como

siempre el máximo que podamos para que ocupe el mínimo espacio

posible.

Page 30: Detector de secuencia no solapada 1011 empleando PLA

30

El layout del generador de reloj quedará:

Figura 6.5: Layout del reloj

A continuación de realizar el layout y pasar el DRC (incluyendo la opción

no_coverage para evitar que aparezcan los mensajes de los porcentajes de

densidades) sin que de errores, se realiza la vista extraída del layout.

Buscar en Verify → Extract.

Para comprobar si el layout diseñado y el esquemático no tienen

diferencias entre ellos se va utilizar la herramienta LVS. En caso de

aparecer alguna discrepancia, se puede emplear la opción Error Display

para localizar qué es diferente en el diseño original y el propio en las vistas

chematic y extracted.

Page 31: Detector de secuencia no solapada 1011 empleando PLA

31

Figura 6.6: Extracción del layout

Después de realizar la extracción debemos crear un testbench para poder

simular las dos vistas, la extraída y el esquemático original. El

procedimiento a seguir es el siguiente:

-Creamos un esquemático introduciendo el símbolo y conectando lo

que toca a cada entrada.

-Luego replicamos en el mismo esquemático el mismo circuito.

-Creamos una vista de tipo config empleando Hierarchy Editor.

-Abrir la vista config y crear una nueva configuración (ventana New

Configuration) empleando la plantilla Spectre en la opción Use

Template.

Page 32: Detector de secuencia no solapada 1011 empleando PLA

32

-Abrir la vista en árbol desplegable. Si ahora se abre la rama de la

célula testbench, se puede ver la vista que se escogen por defecto

para cada una de las instancias del símbolo. Por lo tanto basta con

escoger una de la instancia como extraída y la otra como

esquemático.

- Por último se salvará la vista config.

Desde la vista config seleccionamos Analog Design Environment para

poder llevar a cabo la simulación con la configuración adecuada de las

células.

Figura 6.7: Testbench combinado esquemático-extracción

Page 33: Detector de secuencia no solapada 1011 empleando PLA

33

Después de realizar la simulación con los estímulos adecuados, que

cuando el reloj esté a uno no haya cambios en la señal de entrada, y

seleccionando en el Virtuoso Analog Environment los puertos que

queremos que salga en nuestra simulación nos da lo siguiente:

Figura 6.8: Resultados testbench

De las simulaciones obtenidas sacamos otra vez la misma conclusión, la

célula extraída es un poco más lenta que el esquemático original, esto es

debido a todas las capacidades y resistencias parásitas que aparecen.

Como se ve observando la figura anterior y las dos siguientes no existe

solape entre fi1 y f2 por lo tanto funciona como queríamos.

Page 34: Detector de secuencia no solapada 1011 empleando PLA

34

Figura 6.9: Detalle 1 de simulación de reloj

Figura 6.10: Detalle 2 de simulación de reloj

Page 35: Detector de secuencia no solapada 1011 empleando PLA

35

7) PLA

A continuación presentaremos diferentes capturas de la PLA, las cuales

prescindirán de explicaciones debido a la repetitividad del proceso.

Figura 7.1: Esquema eléctrico de la PLA

Page 36: Detector de secuencia no solapada 1011 empleando PLA

36

Figura 7.2: Detalle plano AND

Figura 7.3: Fichero estímulos de entrada

Page 37: Detector de secuencia no solapada 1011 empleando PLA

37

Figura 7.4: Detalle plano OR

**Comentar que ha sido posible simplificar algunas de las ecuaciones de diseño, simplificando el plano OR, con su consecuente ahorro de espacio y consumo.

Figura 7.5: Símbolo de la PLA

Page 38: Detector de secuencia no solapada 1011 empleando PLA

38

Presentamos finalmente el testbench definitivo en el que se han juntado

el generador de las dos fases y la PLA, tanto los esquemáticos como las

versiones extraídas de los layouts.

Figura 7.6: Testbench final

Page 39: Detector de secuencia no solapada 1011 empleando PLA

39

Figura 7.7: Layout PLA

La suma de las áreas del layout de la PLA y del generador de las dos fases

del reloj nos da como resultado:

Área = 41 x 32,1 + 16,75 x 14,4

= 1557,3 µm2

Page 40: Detector de secuencia no solapada 1011 empleando PLA

40

Figura 7.8: Extracción PLA

Page 41: Detector de secuencia no solapada 1011 empleando PLA

41

Figura 7.9: Simulación de los estados

Figura 7.10: Simulación final

Page 42: Detector de secuencia no solapada 1011 empleando PLA

42

8) Estudio de potencia

Para hacer el estudio de potencia incluimos un amperímetro de corriente

(iprobe) en nuestro diseño que colocaremos en la fuente de alimentación

para ver qué corriente está suministrando al sistema y colocaremos el

reloj a la máxima frecuencia de funcionamiento.

Se crea un nuevo testbench para nuestro sistema y en la alimentación

conectamos dicho amperímetro. A la hora de realizar la simulación lo que

nos interesa son las corrientes que pasan por dicho medidor, por eso

seleccionaremos los nodos de corriente como salidas a visualizar en la

simulación.

Figura 8.1: Testbench medida potencia consumida

Figura 8.2: Testbench medida potencia consumida

Page 43: Detector de secuencia no solapada 1011 empleando PLA

43

Podemos observar que hay potencia disipada durante todo el intervalo de

tiempo, que es debido a los 11 transistores pmos que siempre estarán

funcionando independientemente de lo que ocurra en el resto del circuito.

También podemos ver picotazos de corriente que son debidos a los

cambios de estados de nuestra máquina que hace que se activen o

desactiven transistores debido a las entradas.

Para obtener la potencia que disipa el circuito elegimos una de las

gráficas de corriente y abrimos la calculadora. A continuación pulsamos

rms para obtener la corriente eficaz y la multiplicamos por la tensión de

alimentación, que en nuestra tecnología es de 3.3V, pulsamos eval para

obtener la potencia estática que consume la PLA.

Como se aprecia, el circuito consume aproximadamente 1,67 mW.

Figura 8.3: Testbench medida potencia consumida durante la detección de una secuencia

Page 44: Detector de secuencia no solapada 1011 empleando PLA

44

9) Estudio de frecuencia

Para el estudio de frecuencia lo que se ha hecho ha sido coger el

testbench del sistema completo y crear una nueva simulación donde se ha

ido cambiando el periodo de reloj de referencia (teniendo en cuenta que

el rise time y fall time se han tomado aproximadamente del 10% del

periodo) hasta ver en la simulación que la señal se deteriora hasta el

punto que el diseño deja de funcionar correctamente. Siendo pues dicha

frecuencia la máxima. Como se puede apreciar en las distintas graficas se

consigue un periodo mínimo de 3ns que corresponde con una frecuencia

máxima sobre los 333 MHz.

Para éste cálculo se ha tenido en cuenta que el generador de reloj no

fuera el sistema limitante a la hora de calcular la frecuencia máxima (ya

que inicialmente al subir en frecuencia fallaba la fase 2 del reloj debido al

tamaño mínimo escogido desde un principio para los transistores del

generador). Para evitar el problema se ha cambiado el dimensionamiento

de los transistores a tres veces su ancho mínimo, aunque puede que con

que fueran el doble bastaría.

Figura 9.1: Testbench fmáx

Page 45: Detector de secuencia no solapada 1011 empleando PLA

45

Figura 9.2: Simulación fmáx

Figura 9.3: tpHL = 2,57 ns

Page 46: Detector de secuencia no solapada 1011 empleando PLA

46

Figura 9.4: tpLH = 1,77 ns

Los tiempos los hemos calculado desde el 50% del flanco de subida de fi1

que es la señal que indica cuando se capturan los datos de entrada hasta

el 50% del flanco de subida/bajada de la señal de salida de la PLA.

Page 47: Detector de secuencia no solapada 1011 empleando PLA

47

10) Bibliografía

Apuntes de Circuitos Microeletrónicos.

Kamran Eshraghian .Basic VLSI Design: Systems and Circuits Prentice Hall,

Sidney, 1994.

Jan M. Rabaey. Circuitos Integrados Digitales: Una perspectiva de diseño.

Prentice Hall, España, 2004

Antonio Rubio. Diseño de circuitos y sistemas integrados. Edicions UPC,

Barcelona, 2003

Wikipedia: http://es.wikipedia.org/