viernes, 15 de mayo de 2015

Trabajo Final






INTRODUCCION

En este trabajo final el grupo ha desarrollado previamente los momento 1, 2 y 3 se continua con el proceso de desarrollo del momento 4 en el que se consolidan los diseños de la momentos antes mencionados y dan solución al caso de estudio.

En este trabajo final se pretende desarrollar los conceptos propios de la microelectrónica y la creación de circuitos integrados. Desarrollando el blog como parte de la interacción del grupo y solución a las propuestas de diseño junto con las normas APA y estructuras de informes.

Anexo los links de los momentos trabajos anteriores:

Trabajo uno : http://microelectronika.blogspot.ca/2015/03/momento-uno.html

Trabajo Dos : http://microelectronika.blogspot.ca/2015/03/trabajodos.html

Trabajo Tres:  http://microelectronika.blogspot.ca/2015/04/trabajo-colaborativo-3.html


Resumen de las actividades desarrolladas 








Objetivos 
Generales

Desarrollar las prácticas requeridas en la etapa 4 finales del curso de Micro electrónica, lo que incluye leer y analizar el caso de estudio planteado en la guía de actividades

Específicos

Ø  Utilizar como referencia  de materiales,
Ø  Participar activamente dentro del foro de trabajo colaborativo – fase 4
Ø  Plantear posibles alternativas de solución a las fases anteriores
Ø  Retroalimentar a los compañeros de grupo
Ø  Analizar las temáticas de la unidad de aplicación de dispositivos lógicos programables
Ø  Aplicación de dispositivos lógicos programables,
Ø  Análisis y posible solución a la segunda etapa del caso de estudio
Ø  Desarrollar video que dé solución a la segunda etapa del caso de estudio
Ø  Video donde muestren el diseño en DSCH 3 y layout en Microwind
Ø  Participación en el foro.
Ø  Verificación de los resultados con los integrantes del grupo.
Ø  El grupo de trabajo colaborativo analizará el caso de estudio planteado dentro de esta guía integradora de actividades y discutirán dentro del foro de trabajo colaborativo las posibles soluciones que puedan surgir mediante las lecturas de referencias complementarias y sugeridas como también utilizando la rúbrica TIGRE.

Ø  Cada estudiante hará mínimo tres intervenciones respecto a las conclusiones y aspectos más relevantes que encontró según las lecturas de la unidades, y usando la rúbrica TIGRE retroalimentara mínimo a dos compañeros junto con sus aportes.


MARCO TEORICO


DISEÑO CON LOGICA PROGRAMABLE
El procesamiento digital de señales o DSP (sigla en inglés de digital signal processing).  Es la manipulación matemática de una señal de información para modificarla o mejorarla en algún sentido. Este está caracterizado por la representación en el dominio del tiempo discreto, en el dominio frecuencia discreta, u otro dominio discreto de señales por medio de una secuencia de números o símbolos y el procesado de esas señales.

 Esto se puede conseguir mediante un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras (samples en inglés), normalmente provenientes de un conversor analógico/digital (ADC). Se puede trabajar con señales analógicas, pero es un sistema digital, por lo tanto necesitará un conversor analógico/digital a su entrada y digital/analógico en la salida.
Como todo sistema basado en procesador programable necesita una memoria donde almacenar los datos con los que trabajará y el programa que ejecuta.  Uno de los beneficios principales del DSP es que las transformaciones de señales son más sencillas de realizar. Una de las más importantes transformadas es la transformada de Fourier discreta (TFD). Esta transformada convierte la señal del dominio del tiempo al dominio de la frecuencia. La TDF permite un análisis más sencillo y eficaz sobre la frecuencia, sobre todo en aplicaciones de eliminación de ruido y en otros tipos de filtrado (filtros de paso bajo, de paso alto, de paso banda, de rechazo de banda, etc.).  Otra de las transformadas importantes es la transformada de coseno discreta, que es similar a la anterior en cuanto a los cálculos requeridos para obtenerla, pero esta convierte a las señales en componentes del coseno trigonométrico. Esta transformada es una de las bases del algoritmo de compresión de imágenes JPEG.  Un DSP está diseñado teniendo en cuenta las tareas más habituales del procesado digital: sumas, multiplicaciones y retrasos (almacenar en memoria).


Los DSP abandonan la arquitectura clásica de Von Neumann, en la que datos y programas están en la misma zona de memoria, y apuestan por la denominada Arquitectura Harvard. En una arquitectura Harvard existen bloques de memoria físicamente separados para datos y programas. Cada uno de estos bloques de memoria se direcciona mediante buses separados (tanto de direcciones como de datos), e incluso es posible que la memoria de datos tenga distinta anchura de palabra que la memoria de programa (como ocurre en ciertos microcontroladores).  Los elementos básicos que componen un DSP son:   Conversores en las entradas y salidas. Memoria de datos, memoria de programa y DMA. MACs: multiplicadores y acumuladores. ALU: Unidad aritmético-lógica. Registros. PLL: Bucles enganchados en fase. PWM: Módulos de control de ancho de pulso.

Los dispositivos Field Programable Gate Arrays, en español Arreglos de Compuertas Programable en el Campo, tal como su nombre lo indica son un arreglo (arrays) matricial de bloques lógicos (gates) programables (programable) en cualquier espacio físico (Field).

ALTERNATIVAS DE DISEÑO DE CIRCUITOS INTEGRADOS
Full Custom Tradicionalmente, un diseño Full Custom (FC) se entiende que es aquel en el que el layout  e optimiza a mano. Por ejemplo: Utilizar lógicas no estándar, es posible que no haya librerías con los componentes adecuados, y se hace necesario diseñar específicamente los bloques a utilizar. Otra razón puede ser la modificación manual de algunos bloques para mejorar sus prestaciones, dimensionando específicamente los transistores que lo componen. El resultado es un circuito  normalmente de altas prestaciones y de área muy reducida, pero el inconveniente es un coste de diseño muy elevado (sobre todo en personas-tiempo).

Actualmente la alta complejidad de los sistemas que se diseñan hace impracticable la estrategia FC para el chip completo, pero muchos sistemas siguen teniendo partes críticas optimizadas manualmente, con lo que los diseños FC son en realidad en parte FC y en parte un diseño basado en librerías (Standard Cell).  Standard Cell Un diseño Standard Cell (SC) se basa en una librería de celdas (componentes funcionales), todas con la misma altura. Esto permite disponerlas de forma contigua formando un conjunto de las y espacios entre ellas. Es posible generar una librería SC o añadir elementos a una librería existente con bloques que sean necesarios para un diseño concreto. En este caso, los bloques deben diseñarse con la altura correcta para que se puedan usar en el entorno de diseño SC.
Gate Array Un circuito Gate Array (GA) o matriz de puertas, se basa en la interconexión de bloques pre-colocados consistentes en primitivas de diseño (por ejemplo, puertas NAND y biestables). Con las primitivas de diseño se puede realizar cualquier sistema digital mientras se interconecte adecuadamente.
El proceso de diseño consiste en definir las interconexiones, lo cual es sencillo desde el punto de vista de la automatización del proceso. Además, el proceso de fabricación es también más sencillo, ya que sólo las capas de metalización son diferentes para diferentes diseños. Por tanto, se parte de obleas prefabricadas, en donde ya se han fabricado los transistores que forman las primitivas y su interconexión local que define los bloques, y sólo se añaden las capas de interconexión entre primitivas.
Las ventajas de esta alternativa son su rapidez en el diseño, la reducción de costes de fabricación, ya que parte del proceso es común para cualquier diseño y por tanto se distribuyen los costes entre muchos diseños diferentes, y también un menor tiempo de fabricación. Por contra, el circuito resultante no está optimizado ni en área ni en prestaciones, por lo que es una alternativa de bajo coste usada sobre todo para prototipos o en aplicaciones poco exigentes.

FPGA Las FPGA (del inglés Field Programmable Gate Array), también conocidas genéricamente como dispositivos programables, son una evolución del concepto de GA. Consisten a grandes rasgos en un chip completamente fabricado en el cual hay una matriz de bloques, cada uno conteniendo un conjunto de primitivas lógicas.
La interconexión entre bloques se realiza no en la etapa de fabricación como en las GA, sino a base de multiplexores que conectan un conjunto de bloques con otro. En función del valor de selección de los multiplexores de conexión, se define la conexión del sistema global y por tanto, su definición. El conjunto de valores de selección para todos los multiplexores de conexión se guarda en una memoria no volátil, y cambiando el contenido de la memoria se cambia la funcionalidad del chip (se personaliza). Dentro de la familia de dispositivos programables existen muchas subfamilias en función de su arquitectura (número y tipo de bloques lógicos) y del tipo de memoria (OTP o programable una sola vez, reprogramable, programable en campo). Las ventajas de esta alternativa son su gran flexibilidad y el hecho de que la personalización del chip es prácticamente inmediata.
Por otra parte, sus inconvenientes son, al igual que con las GA, la falta de optimización de prestaciones y área. Otro inconveniente a mencionar es que el proceso de personalización debe hacerse por cada dispositivo, por lo que es una opción para volúmenes de producción poco elevados.
Un FPGA es un dispositivo que un diseñador de sistemas digitales puede programar, después que está soldado en el circuito impreso, para que funcione de un modo determinado. Los FPGAs son fabricados con conexiones y lógica programables. El diseñador desarrolla su sistema digital usando herramientas tipo EDA (Electronics Design Automation), sean dibujos esquemáticos o lenguaje de descripción de hardware (como VHDL), para poder plasmar el sistema en lógica digital.  Luego de simular satisfactoriamente el sistema digital comprobando su funcionalidad se usan herramientas específicas del vendedor del FPGA para crear un archivo de configuración del FPGA, el cual describe todas las conexiones, interconexiones y lógica que necesita ser programada dentro del FPGA para poder implementar el sistema digital desarrollado.


Entonces, a través de un cable USB se conecta el FPGA o el circuito impreso en cual está soldado el FPGA, a una PC y usando el software de configuración del FPGA se descarga el archivo de configuración. Una vez comprobado el correcto funcionamiento del sistema en el FPGA se graba el archivo de configuración en una memoria no volátil que el FPGA leerá y usará para auto-configurarse cada vez que se aplica la tensión de alimentación al FPGA o cada vez que se desee re-configurar el FPGA.


Desarrollo de la actividad de la fase 4 
(Complementado con las fases 1, 2 y 3) 



CIRCUITO INTEGRADO CON LAS TRES ETAPAS
ETAPA 1: 
Para la primera etapa se diseñara el sistema de apertura y cierre de las puertas de acceso del laboratorio, teniendo en cuenta que son dos salones, estos estarán interconectados por una puerta de acceso y otra puerta estará definida como ingreso al laboratorio, en cuyo caso serán dos puertas en total, una de interconexión y otra de acceso general; según el historial de participación e ingreso a recinto de los estudiantes se deben automatizar las puertas tal que el ingreso de los estudiantes sea coordinado con las clases y con las prácticas de investigación según sea el caso, en la siguiente tabla se muestra el esquema de apertura y cierre de las puertas y encendido y apagado de un led según las condiciones dadas anteriormente:


Un monitor de laboratorio solo tiene la manipulación de la puerta principal, las demás condiciones dadas en la tabla anterior se deben generar según sea el caso, si por ejemplo la puerta de acceso principal se abre la puerta de interconexión entre los salones también se abre y el led de indicación de puerta de interconexión se enciende y el led de puerta de acceso principal se apaga, para ello de sebe diseñar y desarrollar el circuito integrado que permita la realización de esta etapa.

SOLUCION: Lógica de control
R= (A&B) + (~A&B)  ==>    R = B (A +~A)  ==>  R = B. 1   ==> R = B

S = (~A & ~B) + (A & ~B)  ==>  S = (~A +A) & (~B) ==>   1 & ~B ==>  S = ~B









ETAPA 2:

Para la etapa 2, los diseñadores deberán crear un circuito integrado capaz de controlar la temperatura del laboratorio, para ello tendrán un sensor de grados de ocho estados en los que se destacan mayormente las temperaturas más alcanzadas, también contaran con un techo movedizo de apertura y cierre y dos ventiladores para la ayuda de refrigeración del laboratorio, y dos led de indicación de estados caliente o frio según la temperatura del laboratorio, para poder comenzar con el diseño del circuito integrado se ha diseñado la siguiente tabla con las condiciones predefinidas:


Si por ejemplo la temperatura alcanza los 10º C, el panel de techo se cierra, el ventilador 1 se apaga y el ventilador 2 se apaga, pero el led de indicación de temperatura promedio estará apagado, indicando la temperatura más baja, para ello se deberá diseñar el circuito integrado que satisfaga estas condiciones.
SOLUCION LOGICO DE CONTROL
ENTRADAS
TEMP = TEMPERATURE = CELSIUS = ESCALA 10 – 60  - ANALOGA
SALIDAS
PT =         ABRIR PANEL TECHO
VENT1=   VENTILADOR 1 ON
VENT2 = VENTILADOR 2 ON
LED =       LED TEMPERATURA PROMEDIO ON
LOGICA DE CONTROL
PT =                 (TEMP >= 40 & TEMP <= 60).
VENT1 =          (TEMP >=25  & TEMP <=40)  + ( TEMP>=52  & TEMP <= 60)
VENT2 =          (TEMP>=18  & TEMP <= 25) + (TEMP >=32  & TEMP <= 40) +(TEMP >= 48 & TEMP <= 52) + (TEMP >=60)

LED =               (TEMP>=25 & TEMP <= 52)











SIMULACIÓN DE LA ETAPA 3:
ETAPA 3:

En la etapa 3, los diseñadores deberán crear el último integrado capaz de controlar las cámaras de vigilancia, dado que solo se tienen cuatro cámaras, se deberán mover en un rango de derecha a izquierda según un tiempo dado, para  ello se ha establecido un led de indicación de vigilancia en el salón 1 y el salón 2, para ello de a creado la siguiente tabla con las condiciones que se deberán diseñar para obtener el circuito integrado:


LOGICA  DE CONTROL
 C1= Cámara 1

  C2= Cámara 2

 C3= Cámara 3

 C4= Cámara 4

 L1= Led Vigilancia Salón 1
  L2= Led Vigilancia Salón 2


  

C1= T1 + T3 + T4 + T5
      C1 = (A&~B&~C) + (A&B+~C) + (~A~B&C) + (A&~B&C)
      C1= (A & ~C) (~B + B) + (~B & C) (~A + A)
      C1= (A& ~C) + (~B& C)
C2 = T2 + T3 + T5
      C2 = (~A&B&~C) + (A&B&~C) + (A&~B&C)
      C2= (B&~C) (~A+A) + (A&~B&C)
      C2= (B&~C) + (A&~B&C)
C3= T4 + T5 + T6
     C3= (~A&~B&C) + (A&~B&C) + (~A&B&C)
     C3= ~BC (~A+A) + (~A&B&C)
     C3= ~BC + (~A&B&C)
     C3= C (~B + ~AB)
C4 = T4 + T5 +T6 + T7
        C4 = (~A~BC) + (A~BC) + (~ABC) + (ABC)
        C4 = C

L1= T1 + T2 + T3 + T4
     L1 = (A~B~C) + (~AB~C) + (AB~C) + (~A~BC)
     L1 = ~C (A~B + ~AB + AB) + (~A~BC)
     L1 = ~C +  (~A~BC)
L2= T4 + T5 + T6 + T7
       L2 = (~A~BC) + (A~BC) + (~ABC) + (ABC)
       L2 = C




















Simulacion en Microwind software













Programa en Verilog:

module trabajo_finalV3( in1,clk1,in2,T0s10,T1s18,T2s25,T3s32,T4s40,
 T5s48,T6s52,T7s60,Puerta_interconexion,digit2,digit3,digit4,Cam1,
 Cam3,Cam4,Led_salon1,Led_Salon2,Cam2,Led_temperatura,Vent_uno,Panel_techo,
 Vent_dos,Puerta_interconexionLed,Puerta_PrincipalLed);
 input in1,clk1,in2,T0s10,T1s18,T2s25,T3s32,T4s40;
 input T5s48,T6s52,T7s60,Puerta_interconexion;
 output digit2,digit3,digit4,Cam1,Cam3,Cam4,Led_salon1,Led_Salon2;
 output Cam2,Led_temperatura,Vent_uno,Panel_techo,Vent_dos,Puerta_interconexionLed,Puerta_PrincipalLed;
 wire w3,w5,w6,w20,w21,w22,w23,w24;
 wire w26,w27,w28,w30,w32,w33,w43,w44;
 wire w45,w46,w47,w48,w49,w50,w51,w52;
 wire w53,w54,w55,w56,w57,w58,w59,w60;
 wire w61,w62,w63;
 or #(37) or2_1(w3,w6,in2);
 assign Cam1=((~digit2)&digit4)|((~digit3)&digit2);
 assign Cam2=(digit3&(~digit2))|(digit4&(~digit3)&digit2);
 assign Cam3=(digit2&(~digit3|((~digit4)&digit3)));
 assign Cam4=digit2;
 assign Led_salon1=~digit2 | ((~digit4)&(~digit3)&digit2);
 assign Led_Salon2=digit2;
 assign Panel_techo=(w20|w21|w22|w23);
 assign Vent_uno=((w26|w27)&(~w20))|w22;
 assign Vent_dos=(w30|(w27&(~w20))|(w21&(~w22)));
 assign w30=((w32&(~w26))|w23);
 assign Led_temperatura=(w26&(~w22));
 and #(44) and2_2(w32,T1s18,T0s10);
 and #(72) and2_3(w26,T2s25,w32);
 and #(58) and2_4(w27,T3s32,w26);
 and #(72) and2_5(w20,T4s40,w27);
 and #(58) and2_6(w21,T5s48,w20);
 and #(86) and2_7(w22,T6s52,w21);
 and #(44) and2_8(w23,T7s60,w22);
 not #(10) inv_9(Puerta_PrincipalLed,Puerta_interconexionLed);
 mux #(24) mux2x4_1_10(w50,w5,w43,w44,w45,w46,vss,vss,vss,vss,w47,w48,w49);
 mux #(20) mux_1_2_11(w49,w43,vss,w5);
 mux #(20) mux_2_3_12(w48,w44,vss,w5);
 mux #(20) mux_3_4_13(w47,w45,vss,w5);
 mux #(20) mux_4_5_14(w50,w46,vss,w5);
 dreg #(3) dreg_1_6_15(w6,w52,w49,w3,w51);
 dreg #(3) dreg_2_7_16(digit2,w53,w48,w3,w51);
 dreg #(3) dreg_3_8_17(digit3,w54,w47,w3,w51);
 dreg #(3) dreg_4_9_18(digit4,w55,w50,w3,w51);
 not #(50) inv_5_10_19(w51,clk1);
 xor #(21) xor2_1_11_20(w44,digit2,w56);
 and #(27) and2_2_12_21(w57,w56,digit2);
 xor #(21) xor2_3_13_22(w43,w6,w57);
 and #(2) and2_4_14_23(w58,w57,w6);
 xor #(21) xor2_5_15_24(w45,digit3,w59);
 and #(27) and2_6_16_25(w56,w59,digit3);
 xor #(21) xor2_7_17_26(w46,digit4,in1);
 and #(27) and2_8_18_27(w59,in1,digit4);
 and #(15) and2_1_19_28(w61,w60,w6);
 and #(15) and2_2_20_29(w63,digit4,w62);
 not #(13) inv_3_21_30(w60,digit2);
 not #(13) inv_4_22_31(w62,digit3);
 and #(57) and2_5_23_32(w5,w63,w61);
endmodule


module counter10( enable,rst,clk,equal9,q3,q2,q1,q0);
 input enable,rst,clk;
 output equal9,q3,q2,q1,q0;
 wire w3,w4,w5,w6,w7,w8,w9,w10;
 wire w18,w19,w20,w21,w22,w23,w24,w25;
 wire w26,w27,w28,w29,w30;
 mux #(20) mux2x4_1(w10,equal9,w3,w4,w5,w6,vss,vss,vss,vss,w7,w8,w9);
 mux #(12) mux_1_2(w9,w3,vss,equal9);
 mux #(12) mux_2_3(w8,w4,vss,equal9);
 mux #(12) mux_3_4(w7,w5,vss,equal9);
 mux #(12) mux_4_5(w10,w6,vss,equal9);
 dreg #(6) dreg_1_6(q3,w19,w9,rst,w18);
 dreg #(6) dreg_2_7(q2,w20,w8,rst,w18);
 dreg #(6) dreg_3_8(q1,w21,w7,rst,w18);
 dreg #(6) dreg_4_9(q0,w22,w10,rst,w18);
 not #(44) inv_5_10(w18,clk);
 xor #(14) xor2_1_11(w4,q2,w23);
 and #(25) and2_2_12(w24,w23,q2);
 xor #(14) xor2_3_13(w3,q3,w24);
 and #(4) and2_4_14(w25,w24,q3);
 xor #(14) xor2_5_15(w5,q1,w26);
 and #(25) and2_6_16(w23,w26,q1);
 xor #(14) xor2_7_17(w6,q0,enable);
 and #(25) and2_8_18(w26,enable,q0);
 and #(15) and2_1_19(w28,w27,q3);
 and #(15) and2_2_20(w30,q0,w29);
 not #(12) inv_3_21(w27,q2);
 not #(12) inv_4_22(w29,q1);
 and #(43) and2_5_23(equal9,w30,w28);
endmodule


Video link :  https://plus.google.com/u/0/photos?pids=6149129313194392786&oid=110228555657568794897&pid=6149129313194392786



Anexo los links de los momentos trabajos anteriores:



Conclusiones 

  • Facilidad de diseño y programación con los FPGA, estas nuevas herramientas permiten expresar la lógica de los circuitos utilizando formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para máquinas de estados, esquemas, etc. La simulación digital posibilita la depuración de los diseños antes de la programación de los dispositivos.  Todo el equipo de diseño se reduce a un software de bajo coste que corre en un PC, y a un programador.
  • Los PLDs TTL tienen tiempos de conmutación tan rápidos como los circuitos integrados de función fija más veloces. Los PLDs ECL son todavía más rápidos. El incremento de velocidad obtenido con los dispositivos CMOS, que ya han igualado o superado en prestaciones a los dispositivos TTL, está provocando el abandono de la tecnología bipolar por parte de los fabricantes. 
  • En cuanto al consumo de potencia, los PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.
  • v  Para los FPGAs sus características se tiene: Field Programable Gate Arrays (Matrices de puertas programables en campo), Superan las limitaciones en tamaño de las CPLDs, mediante arquitecturas avanzadas, ofrecen mayor variedad de recursos lógicos: Lógica combinacional, Lógica secuencial, Memoria RAM, Conformadores de reloj, Señales globales, Multiplicadores,
  • v  Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria.
  • v  La reducción del área de las placas de circuito impreso obtenida gracias a que cada PLD sustituye a varios circuitos integrados de función fija. Muchas veces se consigue reducir el número de placas de circuito impreso economizándose en conectores.
  • v  Las memorias ROM resultan de menor coste que las EPROM, las HAL (Hard Array Logic) o PLDs programados por el fabricante proporcionan ahorros adicionales en grandes cantidades.
  • v  En términos de Seguridad. Los PLDs tienen fusibles de seguridad que impiden la lectura de los dispositivos programados, protegiendo los diseños frente a copias.
  • v  Además de los puntos mencionados, podemos añadir que los PLDs facilitan el ruteado de las placas de circuito impreso debido a la libertad de asignación de patillas que proporcionan. Permiten realizar modificaciones posteriores del diseño y en ocasiones hacen posible la reutilización de circuitos impresos con algunos fallos, mediante una reasignación de los PLDs.
  •  
  • v  Muchos FPGA modernos soportan la reconfiguración parcial del sistema, permitiendo que una parte del diseño sea reprogramada, mientras las demás partes siguen funcionando. Este es el principio de la idea de la «computación reconfigurable», o los «sistemas reconfigurables».
  • v  Un PLA es un bloque funcional que se utiliza para implementar multifunciones booleanas. Existe una gran relación entre su estructura interna y el conjunto de funciones que realiza. Un PLA está constituido básicamente por dos submatrices o planos denominados plano AND y OR, respectivamente. La realización física de un PLA se lleva a cabo mediante la conexión de cada una de las celdas que pertenecen a las regiones anteriores (buffers de entrada, plano AND, transistores de pull-up del plano AND, conexión AND-OR, plano OR, transistores de pull-up del plano OR y buffers de salida). De todas estas celdas, sólo las de los planos AND y OR están relacionadas con las funciones lógicas que definen el circuito. El resto hace referencia a otros factores externos ajenos a la lógica propiamente dicha.
  • v  La Programación de FPGA tiene celdas que se configuran con una función específica ya sea como memoria (FLIP-FLOP tipo D), como multiplexor o con una función lógica tipo AND, OR, XOR. La labor del "programador" es describir el hardware que tendrá la FPGA. La tarea del "programador" es definir la función lógica que realizará cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e interconectarlos.
  • v  El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en un 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 Description Language (lenguajes de descripción de hardware). Los HDLs más utilizados son: VHDL, Verilog, ABEL.
  • v  El ciclo de diseño con PLDs es mucho más rápido que los de las matrices de puertas o las células normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos hasta unas decenas de CI de función fija, mientras que los grandes ASICs pueden sustituir a cientos e incluso miles de CI.
  • v  Los PLD se utilizan para realizar prototipos que posteriormente se llevarán a un ASIC más complejo. El trabajo con PLDs proporciona: facilidad de diseño, prestaciones, fiabilidad, economía y seguridad.
  • v  Tanto los CPLDs como las FPGAs contienen un gran número de elementos lógicos programables. Si medimos la densidad de los elementos lógicos programables en puertas lógicas equivalentes (número de puertas NAND equivalentes que podríamos programar en un dispositivo) podríamos decir que en un CPLD hallaríamos del orden de decenas de miles de puertas lógicas equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas.
  • v  Las diferencias en densidad entre ambos tipos de dispositivos, la diferencia fundamental entre las FPGAs y los CPLDs es su arquitectura. La arquitectura de los CPLDs es más rígida y consiste en una o más sumas de productos programables cuyos resultados van a parar a un número reducido de biestables síncronos (también denominados flip-flops).
  •  v  La arquitectura de las FPGAs, por otro lado, se basa en un gran número de pequeños bloques utilizados para reproducir sencillas operaciones lógicas, que cuentan a su vez con biestables síncronos. La enorme libertad disponible en la interconexión de dichos bloques confiere a las FPGAs una gran flexibilidad.
  • v  Otra diferencia importante entre FPGAs y CPLDs es que en la mayoría de las FPGAs se pueden encontrar funciones de altos niveles (como sumadores y multiplicadores) embebidas en la propia matriz de interconexiones, así como bloques de memoria.
  • v  El conocimiento previo de lógica digital y control de circuitos ayuda considerablemente a la reducción de circuitos lógicos, y poder realizarlos en el software Dsch.
  • v  La participación con los miembros del grupo permite la interacción y clarificación de conceptos.
  • v  El software Dsch y el Microwind son herramientas muy amigables para su uso.






Referencias Bibliográficas


·         Robayo, F. (2009). Introducción a la Microelectrónica y Procesos de Fabricación. Bogotá D.C.: Universidad Nacional Abierta y/a Distancia. Disponible en:  http://datateca.unad.edu.co/contenidos/299008/299008_AVA/Entorno_de_Conocimiento/Unidad_1/Introduccion_a_la_Electronica_y_procesos_de_fabricacion_.pdf
·         Robayo, F. (2009). Repaso de Electrónica Digital y Circuitos Combinacionales. Bogotá D.C.: Universidad Nacional Abierta y/a Distancia. Disponible en:  http://datateca.unad.edu.co/contenidos/299008/299008_AVA/Entorno_de_Conocimieto/Unidad_1/Repaso_de_Electronica_Digital_y_Circuitos_Combinacionales.pdf
·         Sola, J. A. R. (2003). Diseño de circuitos y sistemas integrados. Consultado en 10, 18, 2014 en http://books.google.es/books?hl=es&lr=&id=4AtUxr5u6JMC&oi=fnd&pg=PT16&dq=Procesos+de+fabricaci%C3%B3n+de+circuitos+integrados&ots=spJDCPZPo9&sig=Y8FgZlHm ZBAKGn8-
·         3GNnbxjqy8E#v=onepage&q=Procesos%20de%20fabricaci%C3%B3n%20de%20circuitos%20integrados&f=false.
·         Tocci, R. J., &Widmer, N. S. (2003). Sistemas Digitales Principios y Aplicaciones.
·         Robayo, F. (2009). Diseño con Lógica Programables y Estructura de los FPGAs. Bogotá D.C.: Universidad Nacional Abierta y/a Distancia. Disponible en:http://datateca.unad.edu.co/contenidos/299008/299008_AVA/Entorno_de_Conocimiento/Unidad_3/Diseno_con_logica_programable_y_estructura_de_los_FPGAs.pdf
·          Robayo, F. (2009). Otros Dispositivos Programables y Familias FPAAs. Bogotá D.C.:Universidad Nacional Abierta y/a Distancia. Disponible en:http://datateca.unad.edu.co/contenidos/299008/299008_AVA/Entorno_de_Conocimiento/Unidad_3/Otros_dispositivos_programables_y_familias_FPAAs.pdf
·          Robayo, F. (2009). Otras Aplicaciones. Bogotá D.C.: Universidad Nacional Abierta y/a Distancia. Disponible en: http://datateca.unad.edu.co/ contenidos/299008/299008_AVA/Entorno_de_Conocimiento/Unidad_3/Otras_Apliaciones.pdf
·          Magdaleno, E., Rodríguez, M., Ayala, A., Mendoza, B., & Rodríguez, S. (2004). Metodología para el Aprendizaje de Sistemas Electrónicos Digitales y su Diseño. Consultado en 10, 18, 2014 en http://espacio.uned.es/fez/eserv.php?pid=taee:congreso-2004-1133&dsID=SP102.pdf.
·          Pérez, E. M., Acevedo, J. M., & Silva, C. F. (2009). Autómatas programables y sistemas de automatización. Consultado en 10, 18, 2014 en http://books.google.es/books?hl=es&lr=&id=5jp3bforBB8C&oi=fnd&pg=PA1&dq=

·         Dispositivos+l%C3%B3gicos+Programables&ots=g0Bv8_5kYa&sig=C96Lo0qnl7 1HSeAXhQgDpm_5DUE#v=onepage&q=Dispositivos%20l%C3%B3gicos%20Pr