miércoles, 6 de junio de 2012

CPLD

MICROPROCESADORES CPLD


Los CPLD (del acronimo ingles Complex Programmable Logic Device) permite implementar sistemas mas eficaces , por que utilizan menos espacios, mejoran la fiabilidad del diseño, y reducen costos.

Un CPLD se forma con múltiples bloques lógicos,cada uno similar a un PLD. Los bloques lógicos se comunican entre si utilizando una matriz programable de interconexiones, lo cual hace mas eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo.

LAS SIGUIENTES PARTES DE ESTAS SERÁN EXPLICADAS BREVE MENTE


MATRIZ DE INTERCONEXIONES PROGRAMABLES



La matriz de interconexiones programables (PIM) permiten unir los pines de entrada /salida a las entradas del bloque logico, o salidas del bloque logico a las entradas de otro bloque logico o inclusive a las entradas del mismo. La mayoria de los CPLDs usan una de dos configuraciones para esta matriz: 1. Interconexiones mediante bloques 2. Interconexion mediante multiplexores.

El primero se basa en una matriz de filas y columnas con una celda programable de conexión en cada intersección. Sin embargo 

En la segunda interconexion mediante multiplexores existe un multiplexor por cada entrada al bloque lógico 

BLOQUES LÓGICOS


Un bloque lógico es similar a un PLD, cada uno posee bloques de compuertas AND y OR en forma de suma de productos, una configuracion para la distribución de estas sumas de productos, y macro celdas. El tamaño del bloque lógico es una medida de la capacidad del CPLD, ya que de esto depende el tamaño de la función booleana que puede ser implementada dentro del bloque. Los bloques lógicos usualmente tiene de  4 a 20 macro celdas.

MACRO CELDAS 


Estas también están provistas con registros, control de polaridad y buffers, para salidas en alta impedancia. Por lo general un CPLD tiene macro celdas de entrada/salida, macro celdas de entrada y macro celdas internas u ocultas (buried macrocelis), en tanto que un 22v tiene sola mente macro celdas de entrada/salida una macro celda interna es similar a una macro celda de entrada/salida, solo que esta no puede ser conectada directamente a un pin de salida. La salida de una macro celda interna va directamente a la matriz de interconexion programable. 


CELDAS ENTRADA/SALIDA  


La función de una celda de entrada/salida es permitir el paso de una señal hacia dentro o hacia el exterior del dispositivo. Dependiendo del fabricante y la arquitectura del CPLD estas celdas pueden o no ser consideradas partes del bloque lógico. 

ESTRUCTURAS DE UN MICROPROCESADOR CPLD 


Los CPLD son dispositivos lógicos programables con una complejidad entre los dispositivos PAL y FPGA. La característica principal común entre los CPLD y PAL, es la configuracion de memoria no-volátil, y con respecto al dispositivo FPGA, la característica común de este ultimo es que posee un desarrollo de compuertas de grandes densidades, con la diferencia que los FPGA, tienen mayor densidad que los CPLD. A un modo general los CPLD permite implementar ecuaciones lógicas o diseños mas complicados. La programación de estos dispositivos es generalmente en lenguajes de descripción de hardware, por ejemplo, VHDL o Verilog 
A partir de las PALs que son los dispositivos mas simples, se construyen las PLDs complejas  o CPLDs 




PAL: PROGRAMMABLE AND LOGIC 


Los dispositivos programables mas simples son las matrices lógicas programables, conocidas como PALs. La arquitectura de una PAL genéricamente se muestra a continuación 



Las salidas no son mas que una función OR de varias lineas AND cableadas. Las lineas horizontales cruzan completamente la PAL posibilitando una conexión con cada cruce con una linea vertical. Las salidas a su vez se recalientan para hacer posible funciones mas complejas.

PROGRAMACIÓN DE CPLD 


Anterior mente estos microprocesadores solo se podían programar una sola vez, hoy en día los microprocesadores CPLD vienen con un CD el cual sirve para armar al circuito como lo podríamos hacer en Multisim o programas similares y lo que hace es enviar esa información al microprocesador para crear las funciones deseadas actualmente estos microprocesadores pueden pueden ser programados varias veces gracias al avance que se ha tenido. 

martes, 5 de junio de 2012

Registros

Registros

son circuitols logicos y secuenciales que se construyen a partir de flip flops, se utilizan para convertir datos que entran en serie en paralelo y viceversa se utilizan como memorias temporales las cuales desplazan datos a la izquierda o a la derecha.

Aplicaciones


La sencilla calculadora de bolsillo ilustra las características de un registro de desplazamiento para introducir el numero 1337 se pulsa y se libera la tecla numero 1 y se visualiza como el primer numero a continuación se pulsa y se libera la tecla 3 y se repite el proceso es entonces cuando finalmente pulsamos la tecla numero 7 y posteriormente la liberamos dando como resultado en pantalla el numero 1337.

En algunos productos de esta índole es común ver como en algunas calculadoras se visualizar el primer dígito en la izquierda de la pantalla produciendo así algo llamado como un registro de desplazamiento de izquierda 

































Vídeo Ilustrativo


Enlaces de Interes






FPGA

FPGA


Los Field Programmable GAte Arry son circuitos logicos programables directamente por el usuario, lo cual requiere de herramientas de costo relativamente bajo, como lo son el software de desarrollo y el dispositivo grabador. La grabacion  o programacion de uno de estos dispositivos se puede llevar a cabo en milisegundos.

Tambien los FPGAs se utilizan como prototipos, los cueles se pueden depurar y permitir refinar el diseño. Con el software de diseño se puede simular en hardware antes de mandar a fabrica el ASIC correspondiente.

en la mayoria de los FPGA la configuracion es volatil y debe ser recargada cuando es aplicada energia o cuando se requiere una funcionalidad diferente. La configuracion generalmente es almacenada en memorias PROM o EEPROM

ARQUITECTURA


Para poder hablar de las caracteristicas y las ventajas de un FPGA frente a otros dispositivos es necesario describir la arquitectura interna de un FPGA

Basicamente, una FPGS consiste en:


Una matriz de bloques de logica configurables (CLB): bloques logicos cuyos parametros se pueden modificar de forma que presente diferentes funcionalidades cada CLB consiste, de forma generica, en varias tablas de LUTs (look-up tables, o tablas de consulta) cuyas salidas estan multiplexadas y unos parametros de configuracion de dicho CLB. El diseño de un CLB varia de un fabricante a otro. En la figura puede verse un CLB de una XC4000 de Xilinx:

  • Una matriz de rutado encargada de conectar los CLBs entre ellos, y a su vez estos con las celdas de entrada y salida 
  • Celdas de entrada y salida (IOB): Su mision es comunicar la logica interna de la FPGA con el exterior 
No solo los bloques de lógica son configurables, sino que tanto la matriz de rutado como las celdas de entrada y salida son programables, otorgándole a las FPGAs de una gran flexibilidad a la hora de ajustarse a las especificación de cada diseño

MEMORIAS


  1. SRAM (StaticRAM): Estas guardan la configuracion del circuito. Esto quiere decir que las  StaticRAM son utilizadas como generadoras de funciones y ademas son usadas para controlar multiplexores ( que están incluidos en los FPGAs ) y la interconexion entre bloques. En estas el contenido se almacena mediante un proceso de configuracion en el momento de encendido del circuito que contiene el FPGA.
  2. FLASH:Son programables, aunque la velocidad de programación es bastante mas lenta que en el caso de una SRAM; y son no volátiles, por lo que no necesitan un dispositivo auxiliar para guardar la configuracion interna, como en el caso de una  SRAM.
  3. PROM: Son circuitos fabricados con tecnología bipolar CMOS y sola mente se puede programar una única vez 
  4. EPROM: Son circuitos realizados con transistores de puerta flotante, con estos se permite borrar y re programar las conexiones del circuito las veces que sean necesarios. 
PROGRAMACIÓN: Los FPGA tiene celdas que se configuran con una función especifica ya sea como memoria (FLIP-FLOP tipo D) , como miltiplexor o con una función lógica tipo AND, OR, XOR. La labor del "Programador" es describir el hardware que tendrá la FPGA. Por consiguiente, la tarea del "Programador" es definir la función lógica que realizara cada uno de los CLB,  seleccionar el modo de trabajo de cada IOB e interconectarlos. 

El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en una FPGA. Un diseño puede ser capturado ya sea como esquemático, o haciendo uso de un lenguaje de programación especial. Estos lenguajes de programación especiales son conocidos como HDL o Hardware descripción language . Los HDLs mas utilizados son:
  • VHDL
  • Verilog
  • ABEL
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje rápido, y para validar un diseño en HDL, existen varias propuestas y niveles de abstracción del diseño. Los de abstracción superior son los funcionales y los niveles de abstracción inferior son los de diseño al nivel de componentes de hardware básicos. Entre otras, National Instruments LabVIEW FPGA propone un acercamiento de programacion gráfica de alto nivel.

APLICACIONES


Cualquier de aplicación especifica puede ser implementado en un FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones mas comúnmente se utilizan los FPGA incluyen a los DSP ( Procesamiento digital de señales), radio definido por software, sistemas aeroespaciales y de defensa prototipos de ASICs, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bio-informática, emulación de hardware de computadora, entre otras. Cabe notar que su uso entre otras áreas es cada vez mayor, sobre todo en aquellas aplicaciones que requieran un alto grado de paralelismo    

Vídeo Ilustrativo

Enlaces de Interes

Contadores

CONTADORES



Los flip-flops pueden conectarse entre sí para realizar funciones de recuento. A esta combinación de flip-flops se la denomina contador. El numero de flip-flops que se utilizan y la forma en que se conectan determinan el numero de estados (que recibe el nombre de modulo) y también la secuencia especifica de estados los que pasa el contador durante un ciclo completo.
Dependiendo del modo en que se aplique la señal de reloj, los contadores se clasifican en dos amplias categorías: asíncronos y síncronos.
En los contadores asíncronos, normalmente denominados contadores con propagación (ripple counters), se aplica una señal de reloj externa a la entrada de reloj del primer flip-flop anterior.
En los contadores síncronos, la entrada de reloj se conecta a todos los flip-flops, de forma que se les aplica la señal de reloj simultáneamente.

FUNCIONAMIENTO DEL CONTADOR ASINCRONO


El término asíncrono se refiere a sucesos que no poseen una relación temporal fija entre ellos y generalmente, no ocurren al mismo tiempo. Un contador asíncrono es aquel en el que los flip-flops (FF) del contador no cambian de estado exactamente al mismo tiempo, dado que no comparten el mismo impulso de reloj, el primer FF recibe la señal directamente del reloj y los demás estarán sujetos a la salida del FF anterior; los FF nunca se dispararan de manera simultánea. Y el primer FF tendrá el digito de menor peso y el último el de mayor peso al momento de observar el número del cual se lleve la cuenta.

CONTADOR ASINCRONO DE DECADA

Consiste en truncar la combinación correspondiente al número 10 (1010), después de haber llegado a 9 (1001), se conecta una puerta NAND entre la salida del último FF y la del segundo que son las que se encuentran en nivel alto (aportan los dos uno) del número 10 en binario, la salida de esta compuerta se manda a las entradas de borrado de los FF, con eso cuando se llegue a 10, todos los FF pasan asincrónicamente a 0, y se reinicia el ciclo. La metodología implícita de este proceso puede usarse para limitar un contador al modulo que se desee.

FUNCIONAMIENTO DEL CONTADOR SINCRONO

El termino síncrono se refiere a los eventos que tienen una relación temporal fija entre sí. Un contador síncrono es aquel en el que todos los flip-flops (FF) del contador reciben en el mismo instante la señal del reloj. Además, en estos contadores, las entradas J y K del primer FF se encuentran en alto, mientras que las de los siguientes estarán dependiendo de la variación del pulso de los FF anteriores.

CONTADOR SINCRONO DE DECADA


Load: En un valor bajo permite establecer un numero punto de partida desde el cual comenzar el conteo, bien sea ascendente o descendente, el numero se define a través de los pines (15,1,10,9)
En un valor alto, precarga el valor de 0000 para un conteo ascendente y 1001 para un conteo descendente.                                                 Debe conectarse para que se lleve a cabo el conteo.

Down/Up: En un valor bajo establece un conteo ascendente; En un valor alto establece un conteo descendente.

Max/Min: Produce un impulso a nivel ALTO cuando se alcanza el valor de fin de cuenta (según el modo en que se encuentre).
·         La Salida Max/Min, Propagación de Reloj (RCO)  y habilitación de cuenta (Enable G) se usa para conectar contadores en cascada.


Vídeo Ilustrativo:




Enlaces de Interés


http://www.hispavila.com/3ds/lecciones/lecc6.htm:
http://diec.unizar.es/~tpollan/libro/Apuntes/dig17.pdf

domingo, 3 de junio de 2012

Memorias

MEMORIAS 


Son dispositivos capaces de almacenar datos en unidades que tienen 1 a 8 bits

Opciones con memorias:


  • Operación de escritura: Introduce el dato en una posición especifica
  • Operación de lectura: Extrae el dato en una posición especifica 
  • Operación de direccionamiento: Selecciona la coordenada especifica del dato 

Tipos de memoria: 


  • R.A.M. : Memoria de acceso aleatorio.
  • R.O.M. : Memoria de lectura 





Salidas tri-estado y buses:

Sirven para establecer interfaz entre el bus de datos y los dispositivos digitales

R.O.M programables:

  • PROMs: El proceso de gravado de la información es irreversible 
EPROMs: Es una memoria que se puede reprogramar hay dos tipos de estas memorias 1. UV EPROMs    2. EEPROMs

Memorias R.A.M. 



Memorias SRAM:

  • Operación de lectura (Read): Se habilitan las entradas CS y OE 
  • Operacion de lectura (Write): Se habilitan las entradas CS y WE
Cada bit de la memoria SRAM llamado celda SRAM tiene el mismo comportamiento funcional que el siguiente circuito



  • Cada celda basica tiene un "Latch" que es un Flip-Flop tipo D de disparo por nivel "no por flanco"
Memorias FLASH: 

  • Memoria de escritura y de lectura de lata densidad 
  • Formado por un transistor y una compuerta flotante 
  • Se almacena como una carga ó una ausencia de carga

Vídeo Instructivo



Enlaces de Interés




Circuito Integrado 555

Circuito Integrado 555 

Hans Camenzind, ingeniero nacido en Suiza, luego de terminar su estudio en la secundaria, empezó a escribir un libro donde uso los principios del oscilador controlado por voltaje (VCO) en el que desarrolló un circuito integrado temporizador, en los primeros diseños no se utilizó redes RC para la temporización, y constaba de 14 pines para su funcionamiento; Camenzind luego de unos meses, terminó el diseño final.


El dispositivo 555 es un circuito integrado cuya función primordial es producir pulsos de temporización, además, puede funcionar como oscilador.
El CI 555 está constituido por una combinación de comparadores lineales: flip-flops, transistor y excitador de salida.

Pines del Integrado 555
Vista interior del integrado 555










































Cada pin tiene su función específica:

o   GND pin 1: es el pin directo a tierra.

o   TRIGGER pin 2 (disparo): en éste pin ocurre el proceso de disparo o de iniciación, éste pulso debe ser de corta duración.

o   OUTPUt pin 3 (salida): Aquí se observa el resultado de la operación del circuito, ya sea que esté conectado como monoestable o astable.

o   RESET pin 4 (restablecer): Si el CI se pone a un voltaje por debajo de 0.7 Voltios, pone el pin de salida a nivel bajo.

o   CONTROL pin 5 (control de voltaje): Cuando el temporizador se utiliza en el modo de controlador de voltaje, el voltaje en esta patilla puede variar casi desde Vcc hasta casi 0 V. Si el pin no se utiliza, se recomienda ponerle un condensador de aprox. 0.01μF para evitar las interferencias.

o   THRESHOLD pin 6 (umbral): Es una entrada a un comparador interno que tiene el 555 y se utiliza para poner la salida a nivel bajo.

o   DISCHARGE pin 7 (descarga): Utilizado para descargar con efectividad el condensador externo.

o   Vcc pin 8: También llamado V+, es el pin donde se conecta el voltaje de alimentación que puede variar desde 4.5 voltios hasta 18 voltios.

Los voltajes de referencia de los comparadores se establecen en: VTH = 2/3 V para comparador AO conectado a CONTROL y VTL = 1/3V para el comparador AO conectado a TRIGGER, por medio del divisor de tensión compuesto por 3 resistencias de igual valor R.
El 555 se puede conectar dependiendo del funcionamiento deseado: multivibrador monoestable y multivibrador astable.

MULTIVIBRADOR MONOESTABLE


La configuración monoestable se caracteriza por permanecer estable en un solo estado: el nivel bajo.


Multivibrador Monoestable



T=C*R
Vc=Vcc(1-exp(-t/cr)) 
T=C*R*Ln(3)=C*R*1.1

                                                            

MULTIVIBRADOR ASTABLE


En esta configuración la salida no permanece fija sino que varía en un tiempo T. En la configuración astable el pin OUTPUT genera una onda cuadrada con amplitud igual a la tensión de alimentación Vcc.
 

                                                                                                                          





Multivibrador Astable






















T=C(R1+R2)
Vc=Vcc-(Vcc-VTL)*exp(-t/c(R1+R2))
TH=C(R1+R2)Ln2
TL=CR2Ln2
T=TH +TL=0.69(R +2*R2)

 Vídeo Instructivo










Enlaces de Interés

SEDRA, Adele S., SMITH, Kenneth C., Circuitos Microeléctricos. 5ta. Ed. Oxford University Press.

FLOYD, Thomas. Fundamentos Digitales. 6ta. ed. Prentice Hall. 2005


Imagen1:  http://www.ucontrol.com.ar/wiki/index.php/NE555

















sábado, 26 de mayo de 2012

Flip Flop

Flip Flop

También recibe el nombre de biestable, es un multivibrador capaz de permanecer en uno de los dos estados posibles durante un tiempo indefinido en ausencia de perturbaciones. dependiendo el tipo de dichas entradas se divide en:

Asincronos:

Solo tienen entradas de control, el mas utilizado es el RS

Sincronos:

Al igual que los asincronos tienen entradas de control pero ademas poseen una entrada de sincronismo o de reloj.


La entrada de sincronismo puede ser activada por nivel o por flanco. Dentro de los síncronos activados por nivel están los RS y D y dentro de los activos por flancos los tipos JKT y D El biestable R5 es un dispositivo de almacenamiento temporal de 2 estados ya sea alto o bajo, cuyas entradas principales permiten al ser activadas R: reset o borrado puesta a 0 ó nivel bajo de la salida. S: set o grabado puesta a 1 ó nivel alto de la salida; Al no ser activada ninguna entrada, el biestable permanece en el estado que tenia al terminar la última operación de grabado o de borrado, lo que nunca debe pasar es activarse ambas entradas a la vez, puesto que provocara que la salida directa y la salida negada queden con el mismo valor; si el biestable está construido con puertas NOR o a alto si está construido con puertas NAND. EL problema de que las dos salidas queden al mismo estadoes que al desactivar ambas entradas no se podrá determinar el estado en el que quedará la salida, es por estoeque en las tablas de verdad se escribe que es un caso no deseado (N.D.) El biestable RS se puede encontrar asíncrono o síncrono, El RS asíncrono solo posee entradas R y S Y se compone de dos compuertas NAND o NOR; El R5 síncrono además detener las entradas R y S tiene una entrada C la cual permite o no el cambio de estado del biestable. El biestable D es muy útil al momento de almacenar un único bit de datos (1 o 0), al añadir un inversor a un flip flop S«R se obtiene un flip flop básico; recordando que Q sigue a D en cada flanco del impulso del reloj, podemos decir que el funcionamiento de un dispositivo activado por el flanco negativo es idéntico, excepto que el disparo tiene un lugar en el flanco de bajada del impulso del reloj. Para que esto suceda, el dispositivo de almacenamiento temporal es de dos estados Alto y Bajo, y su salida adquiere el valor de la entrada D cuando se activa la entrada de sincronismo C; en función del modo de activación de dicha entrada de sincronismo, existen dos tipo: Activo por nivel alto o flanco, también denominado registro o cerrojo; otro tipo es el activo por flanco ya sea de subida o de bajada. y EL biestable T es un dispositivo de almacenamiento temporal de 2 estados, ya sea alto o bajo; este biestable cambia de estado cada vez que la entrada de sincronismo o de reloj se dispara mientras la entrada T está a nivel alto, y si la entrada T está a nivel bajo, el biestable retiene el nivel previo, puede obtenerse al unir las entradas de control de un biestable JK, unión que corresponde a la entrada T.

El biestable JK es versátil y es uno de los tipos deflip flop más utilizados, funciona al igual que el flip flop S R en cuanto a SET, RESET y de permanencia de estado. La diferencia está en que el flip flop JK no tiene condiciones no validas como en el S R; este dispositivo es temporal que se encuentra en dos estados ya sea el alto 0 el bajo, cuyas entradas principales} y K permiten al ser activadas: J SET que se encarga del grabado, puesta a 1 ó nivel alto de la salida. Y K RESET encargada del borrado, puesta a O ó nivel bajo dela salida. Si no se activa ninguna de las entradas el bieslable permanece en el estado que poseía tras la
última operación de borrado o de grabado, pero a diferencia del flip flop RS, en el caso de activarse ambas entradas a la vez, la salida adquirirá el estado contrario al que tenía; para realizar la tabla de verdad de esta es Q representa el estado siguiente de la salida en el próximo flanco de reloj y q el estado actual. ’ l
Estos biestables pueden utilizarse para almacenar un bit, la información contenida en muchos biestables puede representar el estado de un secuenciador, el valor de un contador, un carácter ASCII en la memoria de un ordenador o cualquier otra clase de información.





Video Explicativo