Mostrando entradas con la etiqueta FPGA. Mostrar todas las entradas
Mostrando entradas con la etiqueta FPGA. Mostrar todas las entradas

lunes, 30 de abril de 2012

Lenguajes de descripción de hardware. VHDL

Hola a todos! bueno como os comenté en entradas anteriores, hace poco me llegó mi placa con una FPGA Cyclone 2.
Como ya dije, en este tipo de dispositivos, lo que estamos programando es el hardware, es por esto por lo que a partir de ahora no diremos programas, sino diseños. Estos diseños hardware se pueden hacer de diferentes maneras. La primera y más básica es, crear un esquema compuesto por diferentes elementos digitales como puertas, biestables, multiplicadores…, que se comuniquen con las entradas y salidas de nuestra FPGA.
Esta manera, a pesar de que pueda parecer muy visual y sencilla, para diseños que requieran una dificultad mayor es casi que imposible poder realizarlos. Para ello se recurre a los lenguajes de descripción de hardware (Hardware Description Languages, HDL).
Los HDL más utilizados hoy en día son Verilog, y VHDL. Dicen que si sabes VHDL, es muy fácil aprender Verilog, y la verdad es que tienen razón, ya que personalmente empecé a diseñar en VHDL, y si luego ves un programa escrito en verilog lo entiendes perfectamente. Además del lenguaje, necesitas también lo que en microcontroladores llamamos compiladores, que se encargan de pasar nuestro código a código máquina. En este caso, lo que necesitamos son sintetizadores, que lo que harán será transformar nuestro código en HDL, a un esquema hardware.

Este proceso es mucho más complicado que el de los compiladores, es por esto que una sintetización de un código en HDL mediano puede llevarnos varios minutos.
Como ocurre en microcontroladores, cada fabricante tiene su entorno de desarrollo de diseños, los cuales nos permiten diseñar en forma de esquemático, o cualquier HDL. El entorno que provee ALTERA para crear diseños para las FPGAs propias, tales como Cyclone I,II,III,IV,V se llama QUARTUS, y actualmente va por la versión 11.1.
La estructura de los lenguajes HDL no difiere mucho de cualquier lenguaje de programación, en concreto en VHDL podemos encontrar una primera área en donde declaramos las librerías que le van a hacer falta al sintetizador para poder entender nuestro código. A continuación, en una zona que llamaremos entidad (entity) , en la que declararemos las entradas y salidas de nuestro circuito. hay que recordar que se trata de un hardware lo que estamos diseñando, por lo que esta zona será muy importante. Seguido de la entidad, tenemos la arquitectura(architecture), en donde estará el cuerpo del diseño, y que pertenece a una entidad. Una vez dentro de la arquitectura, ya podemos declararnos variables (signals), que nos servirán de apoyo a nuestro diseño.
Poco a poco os iré adentrando un poco más en este mundo de las FPGA, ya que ahora no tengo tiempo de otra cosa debido a que estoy realizando un proyecto, cuyo cerebro principal es una FPGA. Por hoy es suficiente.

lunes, 23 de abril de 2012

Mini placa FPGA Cyclone II

Hola a todos!!! hoy me ha llegado a casa desde china una mini placa con una FPGA de ALTERA, en concreto es una Cyclone  EP2C5T144.

Hasta ahora nunca había hablado aquí sobre que son las FPGA, ya que este blog estaba dedicado a microcontroladores, pero me parece interesante ya que es otro dispositivo que podemos programar para que realice cualquier tipo de tarea. Una FPGA la podríamos considerar como un dispositivo “virgen”, una célula madre de la electrónica ya que con una dentro de ellas podemos programar el hardware de cualquier dispositivo que sea puramente digital, incluso un microcontrolador de los que utilizamos (quitando la parte del conversor analógico digital), de hecho, ALTERA provee los diseños de microcontroladores ARM, e incluso os ofrece su propia línea de microcontroladores embebidos llamados NIOS.

La placa en cuestión que me ha llegado hoy lleva una FPGA que cuenta con:

  • 4068 Células lógicas (LE).
  • 26 bloques de 4k e RAM (119898 bits)
  • 13 multiplicadores.
  • 2 PLLs
  • 89 E/S
  • Frecuencia máxima de reloj máxima de 300MHz.

¡¡¡¡¡¡¿300MHz?!!!!! sii 300MHz, habéis leído bien, pero esto no es todo, ya que nuestros “diseños”, al ser diseños hardware pueden ejecutar todas las tareas en paralelo que sean necesarias, incluso podríamos tener 2 micros ARM funcionando en paralelo con una FPGA.

Ya os iré contando poco a poco como avanzan las cosas y los “diseños” que vaya creando. Un saludo a todos!!