viernes, 4 de septiembre de 2009

Lenguaje de descripción de hardware FPGA


Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad se puede programar. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta logica o un sistema combinacional hasta complejos sistemas en un chip (w:en:System-on-a-chip).

Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.

Ciertos fabricantes cuentan con FPGAs que sólo se pueden programar una vez, por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs reprogramables.

Históricamente las FPGAs surgen como una evolución de los conceptos desarrollados en las PLAs y los CPLDs

Programación

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:

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. Entre otras, National Instruments LabVIEW FPGA propone un acercamiento de programación gráfica de alto nivel.






martes, 1 de septiembre de 2009

Sistema Numérico Octal y Hexadecimal

El sistema de numeración octal es también muy usado en la computación por tener una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple. El sistema octal usa 8 dígitos (0,1,2,3,4,5,6,7) y tienen el mismo valor que en el sistema de numeración decimal. Como el sistema de numeración octal usa la notación posicional entonces para el número 3452.32q tenemos:

2*(80) + 5*(81) + 4*(82) + 3*(83) + 3*(8-1) + 2*(8-2) = 2 + 40 + 4*64 + 64 + 3*512 + 3*0.125 + 2*0.015625 = 2 + 40 + 256 + 1536 + 0.375 + 0.03125 = 1834 + 40625dentonces, 3452.32q = 1834.40625d

El subindice q indica número octal, se usa la letra q para evitar confusión entre la letra o y el número 0.

Binario               Octal

000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Sistema Hexadecimal

Un gran problema con el sistema binario es la verbosidad. Para representar el valor 20210 se requieren ocho dígitos binarios, la versión decimal sólo requiere de tres dígitos y por lo tanto los números se representan en forma mucho más compacta con respecto al sistema numérico binario. Desafortunadamente las computadoras trabajan en sistema binario y aunque es posible hacer la conversión entre decimal y binario, ya vimos que no es precisamente una tarea cómoda. El sistema de numeración hexadecimal, o sea de base 16, resuelve este problema (es común abreviar hexadecimal como hex aunque hex significa base seis y no base dieciseis). El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de conversión hacia el formato binario, debido a ésto, la mayoría del equipo de cómputo actual utiliza el sistema numérico hexadecimal. Como la base del sistema hexadecimal es 16, cada dígito a la izquierda del punto hexadecimal representa tantas veces un valor sucesivo potencia de 16, por ejemplo, el número 123416 es igual a:

1*163 + 2*162 + 3*161 + 4*160

lo que da como resultado:

4096 + 512 + 48 + 4 = 466010

Cada dígito hexadecimal puede representar uno de dieciseis valores entre 0 y 1510. Como sólo tenemos diez dígitos decimales, necesitamos inventar seis dígitos adicionales para representar los valores entre 1010 y 1510. En lugar de crear nuevos simbolos para estos dígitos, utilizamos las letras A a la F. La conversión entre hexadecimal y binario es sencilla, considere la siguiente tabla:

Binario             Hexadecimal

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Esta tabla contiene toda la información necesaria para convertir de binario a hexadecimal y visceversa. Para convertir un número hexadecimal en binario, simplemente sustituya los correspondientes cuatro bits para cada dígito hexadecimal, por ejemplo, para convertir 0ABCDh en un valor binario:

0 A B C D (Hexadecimal)
0000 1010 1011 1100 1101 (Binario)

LA MEMORIA RAM

(Random Access Memory = Memoria de Acceso Aleatorio)
La memoria ram es un tipo de memoria volátil, es decir, que al cortarse el suministro eléctrico se borran los datos que halla en ese momento, al contrario que de por ej. La memoria de disco duro, en el que los datos permanecen aun cuando no se este suministrando electricidad. La memoria ram es una de las más rápida de las memorias que se encuentran en un ordenador (la más rápida es la memoria cache), por ello su misión esta encaminada a agilizar el trabajo del ordenador ayudando a los componentes que la necesiten en un determinado momento para almacenar una tarea, un calculo o un dato.

En el campo práctico se les llama módulos de memoria ram, por el modo en el que van ensamblados los chips de memoria sobre una placa rectangular (PCB), a eso se le denomina modulo DIMM de memoria (en el caso de ordenadores portátiles que dicha pastilla es mas pequeña se llama SODIMM).

DIFERENCICAS ENTRE LENGUJES DE ALTO NIVEL Y BAJO NIVEL

Lenguajes de alto nivel Lenguajes de bajo nivel
Ventajas Inconvenientes
  • Son comprensibles directamente por la máquina (aunque el ensamblador necesita una pequeña traducción)
  • Los programas se ejecutan muy rápidamente (si están bien escritos, claro)
  • Ocupan menos espacio en memoria
  • Permiten controlar directamente el hardware, por lo que son apropiados para la programación de sistemas
  • Necesitan ser traducidos por medio de complicados programas (compiladores e intérpretes)
  • La traducción automática del código de alto nivel al código máquina siempre genera programas menos eficientes que si se escribieran directamente en binario
  • Ocupan más espacio en memoria
  • En general, solo pueden acceder al hardware utilizando al sistema operativo como intermediario. Pero, entonces, ¿cómo programar el sistema operativo, que necesita controlar directamente el hardware?
Inconvenientes Ventajas
  • Son completamente dependientes del hardware. Un programa escrito para determinado tipo de máquina no funcionará en un ordenador con diferente arquitectura.
  • Incluso los programas más sencillos son largos y farragosos
  • Los programas son difíciles de escribir, depurar y mantener
  • Es imposible resolver problemas muy complejos
  • Son portables, es decir, independientes del hardware. Un programa escrito en una máquina puede funcionar en otra con hardware distinto, siempre que se vuelva a traducir a binario en la máquina nueva.
  • Los programas son más sencillos, ya que una sola instrucción puede equivaler a varias instrucciones binarias.
  • Los programas son más fáciles de escribir, depurar y mantener
  • Es posible, aunque difícil, enfrentarse a problemas muy complejos

Procesador AMD Sempron 3000+ Socket 754 Box


Descripción del producto

Los procesadores AMD Sempron para los productos de sobremesa y portátiles, ofrecen el mejor rendimiento de su categoría, compatibilidad con todas las aplicaciones que necesites y la fiabilidad de los procesadores de AMD.

Especificaciones
General
Tipo de producto Procesador
Procesador
Tipo / factor de forma AMD Sempron - de 64 bits
Cantidad de procesadores 1
Índice de rendimiento 3000+
Velocidad reloj 1.8 GHz
Socket del procesador Socket 754
Tamaño Nivel 1 Caché 128 KB
Características arquitectura 3DNow! Professional technology, Streaming SIMD Extensions 2, tecnología HyperTransport, controlador de memoria integrado
Memoria caché
Tamaño instalado L2 - 128 KB
Expansión / Conectividad
Ranuras compatibles 1 x procesador - Socket 754
Comparación de procesadores AMD Sempron
fuente: http://www.amd.com/la-es/Processors/ProductInformation/0,,30_118_11599_11604,00.html

CARACTERISTICAS GENERALES DE UN PROCESADOR



Celeron 430 1.8 Ghz S-775 C/512K B800 Mhz (Ipi)
INTEL

Especificaciones

  • # Parte: BX80557430
  • Nombre del Producto: INTEL CELERON 430 PROCESSOR 1.8GHZ 512K FSB 800 MHZ LGA775
  • Fabricante: Intel
  • Alto: 0.10 Mts
  • Ancho: 0.17 Mts
  • Profundidad: 0.16 Mts
  • Peso: 0.42 Kg

Informacion Tecnica
clase de procesador: intel celeron socket de procesador: intel socket t (lga775) procesador dual corre: 1 velocidad de procesador: 1800 processor speed + class velocidad de bus: 800 mhz processor speed: 1.8 ghz processor class: intel celeron physical + memory specifications l2 cache size: 512 kb number of processor cores: 1 processor socket: intel socket t (lga775)

LAS PARTES MÁS IMPORTANTES DE UNA COMPUTADORA


Si explicara las portes más importantes de la computadora y las explicara lo mas sencillo serian:

  • Microprocesador (vendría a ser como el cerebro de la maquina):

  • Fuente (el corazón que bombea energía a toda la computadora):

  • Memoria (vendría a ser la mesa o escritorio donde tenemos el material para elaborar un trabajo )

  • Motherboard o placa madre (vendría a ser el espacio físico donde todos estos elementos se unen e indudablemente es la parte mas importante del PC)


  • Entradas y salidas de datos (ejemplo mouse y de teclado donde realizamos un trabajo físico y se transforma en dados y final mente lo observamos en nuestro monitor el trabajo asignado ya sea un texto o la selección de una herramienta )