Revista Argentina de Trabajos Estudiantiles Diseño de un Circuito Integrado Contador de Pulsos R. J. Giraudo, J. A. Allievi, M. Di Federico, P. Julian†, P. S. Mandolesi† Dto. Ing. Eléctrica y Computadoras, Universidad Nacional del Sur, Av. Alem 1253, Bahía Blanca Resumen—En este trabajo se presenta el diseño de un contador sincrónico de 8 bits implementado en una tecnología CMOS estándar de 1,5μm. Se abarca la arquitectura, tablas lógicas e implementación mediante FlipFlops D (DFF). Se comentan además el diseño esquemático y la generación de las máscaras necesarias para la implementación del chip. Abstract—In this paper, the design of a synchronous 8-bit counter implemented using standard 1,5μm CMOS technology is presented. Its architecture, truth tables and implementation using D FlipFlops (DFF) is covered. Finally, the schematic design and the layout needed to implement the chip are explained. E I. INTRODUCCIÓN l contador que se presenta a continuación fue diseñado bajo el marco de la materia Análisis y Diseño de Circuitos Digitales dictada en la Universidad Nacional del Sur. En innumerables aplicaciones es necesario conocer la cantidad de pulsos recibidos, por lo que circuitos de este tipo son de gran utilidad. El contador aquí presentado es de 8 bits de salida paralelo, sincrónico al flanco ascendente del reloj, y con cuenta ascendente o descendente según el valor del pin de entrada UP/DOWN. El circuito posee una entrada de RESET sincrónica -para poner la cuenta a cero- y una señal de ENABLE, que permite inhibir la cuenta de pulsos [1]. A lo largo del trabajo se describen las distintas etapas de diseño del circuito. Se presenta su arquitectura, tablas lógicas, e implementación mediante DFF. Además se comentan el diseño esquemático y la generación de las máscaras necesarias para construir el chip. II. TECNOLOGÍA El CI se diseñó en un proceso n-well CMOS estándar de 1,5μm (λ=0,8 μm), con 2 capas de metal, 2 capas de polisilicio, opción a transistores NPN y condensadores Pip (polisilicio sobre polisilicio) de 600 af/μm² [2]. Todos los transistores implementados son de tamaño mínimo, siendo los PMOS de 8 μm x 1,6μm (W=10 λ, L= 2 λ) y los NMOS de 4,8 μm x1,6 μm (W =6 λ, L=2 λ). III. ARQUITECTURA El circuito consta de dos grandes bloques. Ambos funcionan con un reloj de simple fase, y evolucionan con el flanco ascendente del mismo. El bloque principal es un contador de pulsos de reloj. † Docentes. P. Julián está afiliado con CONICET; P. S. Mandolesi está afiliado con CIC Pcia. Bs. As. TRATE05-006 Cuando su entrada HABILITACIÓN está en nivel alto, en cada pulso de reloj recibido el contador incrementa en uno su cuenta. El signo del incremento depende del valor lógico presente en el pin de entrada UP/DOWN. El segundo bloque lo constituye una máquina secuencial. Su función es controlar la señal HABILITACIÓN del bloque Contador, habilitándolo solo durante el primer período de reloj donde haya un pulso presente en la entrada PULSO. De esta forma se asegura que cada pulso sea contado solo una vez, independientemente de su duración, siempre y cuando éste permanezca en la entrada durante al menos un período de reloj. La separación entre dos pulsos consecutivos también debe cumplir esta condición para que el bloque los reconozca como tales. IV. TABLAS LÓGICAS A. Bloque Contador Por simplicidad se ilustra el diseño para un contador de 4 bits. Contadores con un número arbitrario de bits pueden lograrse poniendo en cascada bloques de 1 bit como los aquí mostrados, o con mayor esfuerzo, realizando las tablas lógicas para todos los bits de salida. En la tabla 1 se presenta la tabla de estados para un contador ascendente, junto con los diagramas de Karnaugh correspondientes a cada salida. TABLA I TABLA DE ESTADOS PARA UN CONTADOR ASCENDENTE DE 4 BITS, Y MAPAS DE KARNAUGH DE LAS SALIDAS. ESTADO τ ESTADO τ+1 Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Vol. I - Nº 1 - Febrero 2006 Q1 Q0 Q3 Q2 00 01 11 10 Q0 00 1 1 1 1 01 0 0 0 0 Q1 Q1 Q0 Q3 Q2 00 01 11 10 00 0 0 0 0 01 1 1 1 1 Q2 Q1 Q0 Q3 Q2 00 01 11 10 00 0 1 1 0 01 0 1 1 0 Q3 Q1 Q0 Q3 Q2 00 01 11 10 00 0 0 1 1 01 0 0 1 1 τ +1 11 0 0 0 0 10 1 1 1 1 τ +1 11 0 0 0 0 10 1 1 1 1 τ +1 11 1 0 0 1 10 0 1 1 0 τ +1 11 0 1 0 1 10 0 0 1 1 27 Revista Argentina de Trabajos Estudiantiles B. Bloque Máquina de estados El diagrama de estados de la máquina secuencial que controla la señal HABILITACIÓN del contador puede verse en la Fig. 1, donde el estado A corresponde a la ausencia de un pulso en la entrada, y el estado B a su presencia. ENABLE que permite suspender la cuenta de pulsos. Esta señal inhibe la evolución de las salidas mediante el control de las compuertas negadoras (NOT y XOR). Nótese, comparando con la Fig. 2, el reemplazo de la compuerta NOT por una XOR (negador controlado), y la consideración de la señal de ENABLE en las demás compuertas XOR del bloque. Fig. 1. Diagrama de estados de la máquina secuencial. Las entradas corresponden a ENABLE y PULSO respectivamente. Fig. 3. Lógica para una cuenta ascendente/descendente con habilitación. En linea punteada se delimita el bloque contador de 1 bit a replicar. V. FUNCIONES LÓGICAS E IMPLEMENTACIÓN Las reducciones de los mapas de Karnaugh presentados en la tabla 1 resultan en las siguientes funciones lógicas: Q0 τ+1 = QO Q1 τ+1 = Q1 + Q0 Q2 τ+1 = Q2 + (Q0.Q1) Q3 τ+1 = Q3 + (Q0.Q1.Q2) (1) (2) (3) (4) En la Fig. 2 se muestra la implementación de estas funciones mediante DFF con clear (DFFC). La máquina de estados de la Fig. 1 se reduce a la función lógica HABILITACIÓN = ENABLE . PULSO . ESTADO τ+1 (9) donde ESTADO τ+1 = ENABLE . PULSO (10) Su implementación con DFFC se muestra en la Fig. 4. Fig. 4. Implementación de la máquina de estados mediante DFFC. VI. DISEÑO EN ESQUEMÁTICO Fig. 2. Implementación de un contador de pulsos de reloj con cuenta ascendente usando DFFC. Para una cuenta descendente, las funciones lógicas de cada salida se obtienen al invertir los estados τ con τ+1 en la Tabla 1. Q0 τ+1 = Q0 (5) Q1 τ+1 = Q1 + Q0 (6) Q2 τ+1 = Q2 + Q0.Q1 (7) Q3 τ+1 = Q3 + Q0.Q1.Q2 (8) Las compararaciones de (1), (2), (3) y (4) con (5), (6), (7) y (8) respectivamente muestran que, para cada salida, la lógica para una cuenta descendente y una ascendente es bastante similar. De hecho, sería idéntica de no ser por la inversión del segundo operando de la función XOR. En la Fig. 3 se muestra la igualación entre ambas funciones de cada salida mediante el uso de un multiplexor. Además se incluye una señal de TRATE05-006 Todas las compuertas usan lógica complementaria. El FlipFlop D contiene un reset sincrónico, y buffer interno para el reloj [3]. El diseño es modular, donde la máxima jerarquía la constituye el bloque contador de 1 bit. La conexión en cascada de este bloque permite la creación de un contador de un número arbitrario de bits. VII. DISEÑO EN LAYOUT El bloque contador de 1 bit tiene el layout necesario para que al ser replicado y cascadeado haga conexión directa con su réplica. Además, su ancho no excede los 194 λ (155,2 μm). Ambas propiedades permiten colocar en el chip 8 bloques contiguos en sentido horizontal, minimizando el área usada. En la fig. 5 se identifican, sobre su layout, los distintos componentes que constituyen el bloque contador de 1 bit. Igual ilustración se da para la máquina de estados en la fig. 6. En el caso del bloque contador, se rotulan además las señales para que se aprecie la inmediata conexión entre éstas al momento de replicar los bloques hacia los costados. Vol. I - Nº 1 - Febrero 2006 28 Revista Argentina de Trabajos Estudiantiles VIII. PROTOTIPO FABRICADO El chip se mandó a fabricar en un encapsulado DIP 40. Sobre el mismo chip también se fabricaron un conversor paralelo/serie serie/paralelo y un generador de números aleatorios, con el cual se comparten algunas señales. Además, se logró una importante reducción en el número de pines utilizados mediante el multiplexado de las salidas de ambos circuitos habiendo agregado, para tal fin, un multiplexor de 16:8 y un pin de entrada CONT/GEN que lo comanda. IX. CONCLUSIONES Fig 5. Layout de un bloque contador de 1 bit y sus componentes. En este trabajo se presentaron los pasos involucrados en el diseño e implementación de un contador sincrónico de 8 bits, usando tecnología CMOS estándar de 1,5μm. El proyecto fue desarrollado en la Universidad Nacional del Sur como parte de la materia Análisis y Diseño de Circuitos Digitales. Circuitos de este tipo encuentran utilidad en innumerables aplicaciones, entre ellas división de frecuencias, cálculo de velocidad y direccionamiento de memoria. REFERENCIAS Fig 6. Layout de la máquina de estados y sus componentes. El layout completo del circuito, donde se ven las réplicas del bloque contador de 1 bit, y la conexión de la máquina de estados para controlar su habilitación, se muestra en la Fig. 7. El número de transistores y las dimensiones de cada bloque del layout se muestran en la Tabla II. [1] Jan M. Rabaey, Anantha Chandrakasan, Borivoje Nikolic, “Digital Integrated Circuits”, Second Edition, ISBN: 0-13-090996-3, Prentice Hall (1996). [2] Koyanagi, M. Kurino, H. Kang Wook, Lee Sakuma, K. Miyakawa, N. Itani, H. Tohoku, Sendai, “Future system-on-silicon LSI chips” Micro, IEEE, Jul/Aug 1998 Volume: 18, Issue 4. [3] Neil H. E. Weste and Kamran Eshraghian, “Principles of CMOS VLSI design”, Addison-Wesley EEUU (1993). TABLA II NÚMERO DE TRANSISTORES Y DIMENSIONES PARA LOS BLOQUES DEL CIRCUITO. BLOQUE Not And (2 inputs) And (3 inputs) Xor Llave Mux FF D con CLR FF D sin CLR Contador 1 bit Máq. estados Completo Trans. 2 6 8 10 2 6 25 20 47 54 430 W λ 17 47 63 67 17 65 194 175 194 175 1570 μm 13,6 37,6 50,4 53,6 13,6 52 155,2 140 155,2 140 1256 H λ 63 60 60 60 63 60 79 79 178 243 455 μm 50,4 48 48 48 50,4 48 63,2 63,2 142,4 194,4 364 Área μm2 685 1805 2419 2573 685 2496 9808 8848 22100 27216 457184 Fig 7. Layout final del circuito. TRATE05-006 Vol. I - Nº 1 - Febrero 2006 29