miércoles, 22 de abril de 2015

TRABAJO COLABORATIVO 3




Instructor : Nestor Javier Rodriguez





Introducción

El Incremento de popularidad y de utilización de los dispositivos lógicos programables o PLDs está siguiendo un proceso solamente comparable al que hace algunos años acompañó a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos electrónicos de control, industriales, de consumo, de oficina, de comunicaciones, etc.

Desde finales de la década de los sesenta, los equipos electrónicos digitales se han construido utilizando circuitos integrados de función lógica fija, realizados en pequeña o mediana escala de integración. Para las realizaciones muy complejas que exigirían un número elevado de circuitos integrados (CI) de función fija, se utilizan circuitos diseñados a medida que sólo sirven para una aplicación. Son los llamados CI específicos a una aplicación o ASIC (Application Specific Integrated Circuit). Por regla general, los ASICs los producen los fabricantes de CI con las especificaciones proporcionadas por el usuario. Los equipos realizados con ASICs ocupan menos espacio, son más fiables, consumen menos energía y en grandes series resultan más baratos que los equipos equivalentes realizados con CI de función fija. Por otro lado, estos circuitos son muy difíciles de copiar.  Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices de Puertas (Gate Arrays), las Células Normalizadas (Standard Cell) y los FPICs (Field Programmable Integrated Circuits); estos últimos son circuitos programables por el usuario final.
El siguiente grafico representa la arquitectura general del FPGA.




Objetivos


Principal
  • ·   Leer y analizar el caso de estudio ejercicio planteado en la guía de actividades y desarrollar  Análisis y posible solución a la segunda etapa del caso de estudio


Secundarios
  • ·         Utilizar como referencia  de materiales,
  • ·         Participar activamente dentro del foro de trabajo colaborativo – fase 3
  • ·         Plantear posibles alternativas de solución a la segunda etapa del caso
  • ·         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,
  • ·         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



MARCO TEORICO

Clases de Dispositivos Lógicos Programables.

Circuitos integrados a medida. Los Circuitos Integrados a Medida (Full Custom), se diseñan a petición de un cliente para que resuelvan una determinada aplicación. Conllevan un alto coste de desarrollo y su empleo sólo se justifica para volúmenes de producción muy elevados. El tiempo necesario para la construcción de un CI a medida es considerable ya que puede oscilar de unos meses a unos años.

Matrices de puertas. Las Matrices de puertas (Gate Arrays) son pequeños trozos de silicio pendientes de algún proceso de metalización que defina las conexiones entre un importante número de puertas o transistores que poseen en su interior. Las matrices de puertas proporcionan densidades superiores a las 100.000 puertas, con un aprovechamiento del 80 al 90 por 100 para los dispositivos pequeños y del 40 por 100 para los grandes. Los fabricantes de silicio ponen a disposición de sus potenciales clientes abundante documentación sobre estos Gate Arrays, con una serie de macros que pueden utilizar de forma inmediata y otras que pueden construirse ellos mismos.

Los macros son agrupaciones de un número de células básicas que realizan funciones comunes como; sumadores; puertas NOT, AND, NAND, NOR XOR, etc.; latches y flip-flops S-R, J-K, D; buffer; osciladores; registros, decodificadores, multiplexores, etc. Junto a esta documentación, los fabricantes aportan un software que contabiliza el número de células básicas utilizadas por todas las macros, sugiere el Gate Array adecuado para la aplicación, calcula la potencia disipada por el Gate Array que alojará el diseño del cliente, proporciona información sobre los tiempos de propagación de las señales y permite verificar el funcionamiento del circuito.

Una vez superadas todas las etapas previas, el cliente envía la documentación generada al fabricante para que éste ultime los procesos de metalización y fabrique un primer prototipo. El diseño con Gate Arrays puede durar semanas o meses. Requiere un volumen alto de circuitos para justificar sus costes. 


Células normalizadas. Las células normalizadas (Standard Cell) son, en cierta forma, similares a las matrices de puertas. Su principal ventaja sobre ellas es que en lugar de trabajar con simples puertas o transistores, se dispone de colecciones de diferentes partes de circuitos que han sido depurados (puertas lógicas, circuitos MSI, RAM estáticas, ficheros de registro, etcétera).

El usuario tiene que ensamblar estos circuitos, verificarlos y finalmente enviar documentación al fabricante de silicio para el desarrollo del primer prototipo. A pesar del concepto de célula normalizada, los períodos y los costes de desarrollo son superiores a los de las matrices de puertas.

En las matrices de puertas sólo hay que realizar la máscara final que define las conexiones entre las puertas, mientras que en las células normalizadas, hay que realizar máscaras para todos los procesos de producción de los CI. Una vez más, el volumen de fabricación deberá ser los suficientemente alto como para amortizar la inversión económica realizada en el desarrollo.




FPICs.
Los FPICs (Field Programmable Integrated Circuits): son chips programables por el usuario mediante programadores comerciales. El término FPIC también incluye a los CI no destinados a las aplicaciones lógicas. Son las memorias, los microcontroladores, los PLD (Programmable Logic Device), las FPGA (Field  Programmable  Gate Array) y los ASPLD (Aplication Specific Programmable Logic Devices). 

Los FPIC ofrecen soluciones de bajo coste, de tiempo de desarrollo corto y con menor riesgo que los circuitos a medida, las matrices de puertas y las células normalizadas.



PLDs. Los PLDs (Programmable Logic Devices) son pequeñas ASICs configurables por el usuario capaces de realizar una determinada función lógica. La mayoría de los PLD consisten en una matriz de puertas AND seguida de otra matriz de puertas OR.

Mediante esta estructura, puede realizarse cualquier función como suma de términos productos. Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye de esta denominación debido a que su contenido se define utilizando elementos de desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y lenguajes de programación de alto nivel.

Otras veces, cuando estas memorias se usan para realizar una función lógica y no para guardar un programa de un microprocesador, se las incluye dentro del término PLD.



ASPLDs. 
Los ASPLDs (Application Specific Programmable Logic Devices) son PLDs diseñados para realizar funciones específicas como, decodificadores de alta velocidad, secuenciadores, interfaces para buses particulares, periféricos programables para microprocesadores, etc.

Partes del ASPLD son programables permitiendo la adaptación del circuito a una aplicación determinada, pero manteniendo su función básica; así, por ejemplo, un decodificador lo personaliza el usuario, pero sigue siendo un decodificador. 


FPGAs. Las FPGAs (Field Programmable Gate Arrays) contienen bloques lógicos relativamente independientes entre sí, con una complejidad similar a un PLD de tamaño medio. Estos bloques lógicos pueden interconectarse, mediante conexiones programables, para formar circuitos mayores.


Existen FPGAs que utilizan pocos bloques grandes (Pluslogic, Altera y AMD) y otras que utilizan muchos bloques pequeños (Xilinx, AT&T, Plessey, Actel). A diferencia de los plds, no utilizan arquitectura de matriz de puertas AND seguida de la matriz de puertas OR y necesitan un proceso adicional de ruteado del que se encarga un software especializado. La primera FPGA la introdujo Xilinx en el año 1985.

La programación de las FPGAs de Xilinx basadas en RAM estática es diferente a la programación de los PLDs. Cada vez que se aplica la tensión de alimentación, se reprograma con la información que lee desde una PROM de configuración externa a la FPGA. Una FPGA basada en SRAM (RAM estática) admite un número ilimitado de reprogramaciones sin necesidad de borrados previos. 


En general la complejidad de una FPGA es muy superior a la de un PLD. Los PLD tienen entre 100 y 2000 puertas, las FPGAs tienen desde 1200 a 20.000 puertas y la tendencia es hacia un rápido incremento en la densidad de puertas. El número de flip-flops de las FPGA generalmente supera al de los PLD. Sin embargo, la capacidad de la FPGA para realizar lógica con las entradas suele ser inferior a la de los PLD.

Por ello: "los diseños que precisan lógica realizada con muchas patillas de entrada y con pocos flip-flops, pueden realizarse fácilmente en unos pocos PLDs, mientras que en los diseños en los que intervienen muchos registros y no se necesita generar combinaciones con un elevado número de entradas, las FPGAs pueden ser la solución óptima".





DESARROLLO DEL TRABAJO 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= Camara 1
C2= Camara 2
C3= Camara 3
C4= Camara 4
L1= Led Vigilancia Salon 1
L2= Led Vigilancia Salon 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














Video link : https://plus.google.com/u/0/110228555657568794897/posts/Ca44iGhjZ41?pid=6140728534

Video v1==> https://www.youtube.com/watch?v=VI0iEd6UvMc&edit=vd

Video V2==> https://www.youtube.com/watch?t=16&v=xW54MJJZFtg

Video p2==>  https://youtu.be/VF8PmOq1xlg


Programa Modulo de conteo

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
(30 lines)

492364226&oid=110228555657568794897




ELABORACION CON MICROWIND DEL FPGA









Aspectos importantes y relevantes de las lecturas unidad 3

Debido a la creciente evolución que experimentan continuamente los circuitos lógicos programables, el estudio completo de estos circuitos abarcaría la totalidad de los créditos de la asignatura, sobre todo si se abordan los más recientes, que son a su vez los más evolucionados tanto en complejidad como en nivel de integración.
Por ello, se hace un repaso de la evolución de los mismos partiendo de las estructuras básicas tales como PLA, introduciendo paulatinamente, a medida que aumentamos en complejidad, conceptos y arquitecturas más complejas y evolucionadas.
Los nuevos circuitos lógicos programables permiten lógica discreta, circuitos integrados a medida (ASIC, Application Specific Integrated Circuits), circuitos programables (PLD, Programmable Logic Devices) tal clasificación como  simples tenemos:

  • PROM: Programmable Read Only Memory          PLA: Programmable Logic Array
  • PAL: Programmable Array Logic                          GAL: Generic Array Logic

Y del tipo complejos como:

  • CPLD: Complex Programmable Logic Device
  •  FPGA: Field Programmable Gate Array

Las tecnologías más usadas tenemos:

  •  Transistor MOS de puerta flotante (EPROM-FLASH):  • Transistores que, al aplicarles sobretensión, pueden mantener su tensión de puerta (conexiones programables)
  • Memoria RAM estática (SRAM): La memoria permite implementar funciones lógicas, • Se usan LUTs (Look-Up Tables) de 4 o 5 entradas.
  • Anti fusibles: Al fundirse un anti fusible se produce un cortocircuito. Los cortocircuitos tienen menor resistencia que los diodos fusibles, proporcionando mayores prestaciones.




METODOLOGÍA DE DISEÑO. 

La metodología de diseño el método top-down, haciendo énfasis en la relación entre los diferentes niveles de abstracción existentes en el diseño lógico, jerarquía y modularidad del lenguaje. Habitualmente todos estos conceptos derivados de este método son nuevos como ejemplos un semisumador, un sumador completo y una unidad aritmético-lógica.




En los lenguajes de descripción hardware, concretamente en el VHDL  y la relación de éste con los niveles de abstracción.  Los conceptos y conocimientos de sintaxis adquiridos son los suficientes para realizar los diseños propuestos en prácticas. 



Aplicaciones.

Técnicamente hablando, un FPGA puede ser utilizado para solucionar cualquier problema que es computable. Esto se trivialmente probado por el hecho FPGA se puede utilizar para poner en práctica un microprocesador Soft.

Su ventaja reside en que a veces son significativamente más rápido para algunas aplicaciones debido a su naturaleza paralelo y optimalidad en términos del número de puertas utilizado durante un determinado proceso.  

Aplicaciones específicas de FPGAs incluyen el procesamiento de señal digital, radio definida por software, ASIC prototipos, imágenes médicas, visión artificial, reconocimiento de voz, la criptografía, la bioinformática, la emulación de hardware de la computadora, la radioastronomía, detección de metales y una gama cada vez mayor de otras áreas.

FPGAs comenzó originalmente como competidores a CPLDs y compitió en un espacio similar, el de cola lógica para los PCB. A medida que su tamaño, capacidades, y aumento de la velocidad, comenzaron a hacerse cargo de las funciones más y más grandes en el estado en que algunos están ahora comercializan como sistemas completos en chips (SoC).

En particular, con la introducción de los multiplicadores dedicados en arquitecturas FPGA a finales de 1990, las solicitudes que habían sido tradicionalmente la única reserva de DSP comenzaron a incorporar FPGAs lugar. [26] [27]

Tradicionalmente, las FPGAs se han reservado para aplicaciones verticales específicas en que el volumen de la producción es pequeño. Para estas aplicaciones de bajo volumen, la prima que las empresas pagan en costos de hardware por unidad para un chip programable es más asequible que los recursos de desarrollo invertidos en la creación de un ASIC para una aplicación de bajo volumen.
Hoy, nuevo costo y la dinámica de rendimiento se han ampliado la gama de aplicaciones viables.Aplicaciones FPGA comunes: Aeroespacial y Defensa, Aviónica / DO-254, Comunicaciones, Misiles y Municiones, Secure Solutions, Espacio, Electrónica Médica, Prototipos ASIC, Audio, Soluciones de Conectividad, Electrónica Portátil, Radio, Procesamiento de Señal Digital (DSP). Automotor, Vídeo de alta resolución, Procesamiento De Imágenes, Redes de Vehículos y Conectividad, Broadcast, Real-Time Video Engine, EdgeQAM, Codificadores, Switches y Routers, Electrónica de Consumo, Pantallas digitales, Cámaras Digitales, Impresoras multifunción, Electrónica Portátil, Set-top boxes, Centro De Datos, Servidores, Seguridad, Routers, Interruptores, Gateways, Balanceo De Carga, Computación de Alto Rendimiento


3. Análisis y aportes de aplicaciones de los circuito lógicos programables


CARACTERÍSTICAS DEL DISEÑO CON PLDs .

v  Los PLDs están situados en una zona intermedia entre los dispositivos a medida y la lógica de catálogo formada por los CI de función fija.
v  Tienen casi todas las ventajas de los ASICs sin estar penalizados por un costo elevado para pequeñas series. Además 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.
v  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  En ocasiones, los PLD se utilizan para realizar prototipos que posteriormente se llevarán a un ASIC más complejo.
v  El trabajo con PLDs proporciona: facilidad de diseño, prestaciones, fiabilidad, economía y seguridad.



Facilidad de diseño.
v  Las herramientas de soporte al diseño con PLDs facilitan enormemente este proceso.
v  Las hojas de codificación que se utilizaban en 1975 han dejado paso a los ensambladores y compiladores de lógica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD, etc.).
v  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.
v  La simulación digital posibilita la depuración de los diseños antes de la programación de los dispositivos.
v  Todo el equipo de diseño se reduce a un software de bajo coste que corre en un PC, y a un programador.

Prestaciones.

v  Los PLDs TTL que hay en el mercado tienen tiempos de conmutación tan rápidos como los circuitos integrados de función fija más veloces.
v  Los PLDs ECL son todavía más rápidos.
v  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.
v  En cuanto al consumo de potencia, los PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.

Fiabilidad.

v  Cuanto más complejo es un circuito, más probabilidades hay que alguna de sus partes falle.
v  Puesto que los PLDs reducen el número de chips en los sistemas, la probabilidad de un fallo disminuye.
v  Los circuitos impresos con menor densidad de CI son más fáciles de construir y más fiables.
v  Las fuentes de ruido también se reducen.

Economía.

v  En este apartado, hay aspectos que resultan difíciles de cuantificar. Por ejemplo, los costes de pérdida de mercado por una introducción tardía de un producto.
v  Otros son más claros, por ejemplo, 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.
v  Muchas veces se consigue reducir el número de placas de circuito impreso economizándose en conectores.
v  La reducción de artículos en almacén también aporta ventajas económicas.
v  De la misma manera que para altos volúmenes de producción 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.

Seguridad.
v  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.
v  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.


Estructura básica de un PLA.

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.

Ambos planos están separados entre sí por una pequeña zona divisoria denominada zona de conexión.
Tanto el plano AND como el plano OR disponen, a su vez, de dos zonas externas denominadas buffers o separadores de entrada y de salida. Las señales de entrada del PLA (Dispositivos lógicos programables) llegan a los buffers de entrada del plano AND y producen las señales invertidas (Dispositivos lógicos programables).

Ambos tipos de señales (Dispositivos lógicos programables) penetran verticalmente en el plano AND y generan los términos producto pi.

Estos últimos discurren horizontalmente por ambos planos, atravesando previamente la zona de conexión, y producen finalmente las salidas del PLA mediante la realización de sumas lógicas entre los términos productos anteriores.

Además de las zonas mencionadas, existen otras dos regiones especiales. Una de ellas está situada a la izquierda del plano AND y la otra en la parte superior del plano OR.
Estas regiones están constituidas por transistores del "pull-up", que actúan como resistencia de carga, a través de los cuales se alimentan las líneas de los términos producto y las líneas de salida del PLA 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.

En algunos casos, estos factores han de ser tenidos en cuenta si se quiere hacer una estimación realista del área final ocupada por el PLA. Esto ocurre, por ejemplo, cuando se aplican técnicas de optimización en las que se modifica el número de entradas y/o salidas (técnicas de partición).

Representación matricial. Los PLA's sirven para representar multifunciones booleanas expresadas mediante dos niveles de puertas. Sea, pues, una multifunción F formada por s funciones simples fi cada una de ellas dependiente de m variables distintas Dispositivos lógicos programables.

Supongamos también que es necesario desarrollar n productos lógicos distintos con las variables dependientes xi para expresar todas y cada una de las funciones fi mediante sumas de productos.

Entonces, el PLA asociado a la multifunción F, puede representarse por una matriz, C, formada por n filas y m+s columnas. Cada una de estas filas Ci se define del modo siguiente:

·         j : 1..m (plano AND).
·         Cij = 0 si xj está complementada en el término producto Ci.
·         Cij = 1 si xj no está complementada en el término producto Ci.
·         Cij = 2 si xj no aparece en el término producto Ci.
·         "j : m + 1... m + s (plano OR).
·         Cij = 3 si Ci no forma parte de la función Fj· m
·         Cij = 4 si Ci forma parte de la función Fj· m

De la definición anterior se deduce que todos los 2's de la matriz C representan elementos vacíos en las m primeras columnas pertenecientes al plano AND o su matriz de entradas.

 Igualmente ocurre con los 3's en las columnas restantes del plano OR o su matriz de salidas. Por elemento vacío se entiende aquella posición del PLA en la que no existen conexiones.


Programación.

En la FPGA no se realiza programación tal cual como se realiza en otros dispositivos como DSP, CPLD o microcontroladores. La 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.

Por consiguiente, 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.

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.

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 niveles de abstracción superior son los funcionales y los niveles de abstracción inferior son los de diseño al nivel de componentes hardware básicos.

Entre otras, National Instruments LabVIEW FPGA propone un acercamiento de programación gráfica de alto nivel.





Conclusiones

v  Circuitos programables complejos tenemos: CPLD: Complex Programmable Logic Devices, FPGA: Field Programmable Gate Array, Diferencias con los PLDs simples.

v  La ventaja de estos son la Arquitectura,  y la cantidad de recursos lógicos y el gran número de fabricantes  de CPLDs/FPGAs tales como  Xilinx, Altera,  Actel,  Atmel,  Lattice y  Cypress.

v  Para el PLD: resumen de características tenemos: Estructura de PAL con registros y lógica de interconexión, Capacidad media (hasta 25000 puertas), Velocidad media/alta, Consumo alto, Tecnología EPROM (reprogramable, no volátil), Precio bajo, La matriz de interconexión global limita el tamaño, ISP (In-System Programming). JTAG.

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, Fabricantes:  Xilinx,  Altera, Actel,  Atmel.

v  La jerarquía de interconexiones programables permite a los bloques lógicos de un FPGA ser interconectados según la necesidad del diseñador del sistema, algo parecido a un breadboard (es una placa de uso genérico reutilizable o semi permanente) programable. 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  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  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.


·          
Referencias Bibliográficas


  • 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: ttp://datateca.unad.edu.co/contenidos/299008/299008_AVA/Entorno_de_Conocimie
  • nto/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
  • Vallejo, M. L., & Rodrigo, J. A. (2004). Nociones básicas e implementación. Laboratorio de Diseño Microelectrónico. Consultado en 10, 18, 2014 en http://www.lsi.die.upm.es/~marisa/docencia/ fpga_a2_2004.pdf.
  • Caicedo Grueso, R., & Velasco Medina, J (2003). Diseño de Circuitos Análogos Usando FPAAs. In IX Workshop Iberchip.. Consultado en 10, 25, 2014 en http://www.iberchip.net/IX/Articles/PAP-073.pdf.
  • Webs de fabricantes: • Xilinx: www.xilinx.com • Altera: www.altera.com • Actel: www.actel.com • Lattice: www.latticesemi.com
  • “Fundamentos de Sistemas Digitales”. Thomas L. Floyd. Pearson Prentice Hall
  • “Sistemas digitales: principios y aplicaciones”, Tocci, Ronald J. Pearson Prentice Hall
  • “Dispositivos lógicos programables (PLD): diseño práctico de aplicaciones”. García Iglesias, José Manuel. RaMa
  • Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 http://es.wikipedia.org/wiki/Field_Programmable_Gate_Array

4 comentarios:

  1. CONCLUSIONES

    En este trabajo colaborativo 3 aprendimos a analizar casos de la vida real en donde surgen problemas que dándole aplicabilidad por medio de la microelectrónica se solucionan brindando en este caso un correcto movimiento de unas cámaras para mejorar la seguridad del entorno.
    De igual forma mediante los FPGAs podemos programar y diseñar integrados que no se encuentren en el mercado y que puedan adaptarse a los circuitos que necesitemos. Se recordó conceptos de cursos anteriores en mi caso sistemas digitales secuenciales en donde por medio de la implementación de compuertas lógicas se dieron soluciones a problemas que surgen en nuestro entorno desarrollando las soluciones mediante la implementación de circuitos electrónicos.


    ResponderBorrar
  2. link libro calameo: http://en.calameo.com/read/0043312431507b273b2fe

    ResponderBorrar