Como comenzar a trabajar con FPGA

Como comenzar a trabajar con FPGAEn este tutoriales en linea hablaremos sobre Field-programmable gate array (FPGA, del Inglés Field-programmable gate array - matriz de puertas programables) y como podemos hacer diseños con ellos, en este caso utilizaremos unos de los diferentes lenguaje HDL (HDL, del Inglés Hardware Description Language - Lenguaje de descripción de hardware), para ser mas preciso el lenguaje de descripción VHDL.

Que es FPGA


Una matriz de puertas programables o FPGA son unos dispositivos programables que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada en el momento, mediante un lenguaje de descripción especializado. Del mismo modo la herramienta
estándar a la hora de diseñar circuitos digitales complejos más comunes son VHDL, mas información en vhdl.es. Ademas que tras cargarlo en el integrado, es creado físicamente en el chip. Su nombre es un acrónimo inglés que significa matriz de puertas reprogramable o Field Programmable Gate Array.

Lenguaje HDL para realizar los diseños


Existen varios HDLs que pueden utilizarse para realizar la descripción de un diseño. Los más utilizados y populares son Verilog, VHDL y SystemC. Debido a que el VHDL es de uso común en muchas instituciones universitarias y proyectos de gran importancia (por ejemplo el procesador León) creemos que es la mejor alternativa para los objetivos planteados. Por este motivo el lenguaje de preferencia para el proyecto FPGA es el VHDL, sin embargo está abierto a cualquier contribución o avance futuro en otros lenguajes.
procesador LeónRepresentación en bloques del procesador LEON3

El lenguaje VHDL está definido en el estándar IEEE 1076 (Institute of Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993). Algunas herramientas propietarias muy utilizadas han implementado características que violan este estándar.
VHDL es un acrónimo que proveniente de la combinación de dos acrónimos: VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware Description Language).
Originalmente, el lenguaje VHDL fue desarrollado por el departamento de defensa de los Estados Unidos a inicios de los años 80 basado en el lenguaje de programación ADA (Ada es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++.) con el fin de simular circuitos eléctricos digitales. Posteriormente se desarrollaron herramientas de síntesis e implementación en hardware a partir de los archivos VHD.

Otros métodos para diseñar circuitos son la captura de esquemas (con herramientas CAD = El diseño asistido por computadoras, más conocido por sus siglas inglesas CAD (computer-aided design), es cuando se utilizan diferentes programadores gráficos para lograr crear una serie de imágenes que conjuntas crean una imagen más grande o más conocida como dibujo.) y los diagramas de bloques, pero estos no son prácticos en diseños complejos. Otros lenguajes para el mismo propósito, pero con un nivel de abstracción superior son Verilog y ABEL.
Es importante destacar que en la actualidad existe un flujo de desarrollo basado completamente en software libre.
El lenguaje VHDL, al igual que muchos otros, ofrece cierta libertad en cuanto al formateado del código, indentado, nombres de las variables, etc. Sin embargo cuando se pretende fomentar el trabajo en grupo, permitir que otras personas colaboren y aumentar la reusabilidad del código, es necesario definir pautas que complementen la sintaxis del lenguaje. Para abordar este tema se tomaron dos recomendaciones en cuanto a escritura de código VHDL: Recomendaciones de la Agencia Espacial Europea y recomendaciones para proyectos en OpenCores.

Para implementar el concepto se ha desarrollado un lint muy básico y rústico para VHDL llamado bakalint. Para mayor claridad sobre el concepto, se cita una definición de lint tomada de la web:

lint: "Un procesador de lenguaje Unix C que realiza verificaciones más exhaustivas del código de lo habitual con los compiladores C - A Unix C language processor which carries out more thorough checks on the code than is usual with C compilers."

En este caso la definición de lint no se refiere a C sino a VHDL. Es decir un verificador de código VHDL, que se fija en cosas que el compilador acepta o ignora.

El objetivo es tener una herramienta que ayuda a respetar los códigos para lograr uniformidad y coherencia entre distintos autores.


<a onclick=Tutoriales En Linea" class='avatar avatar-64 photo' height='64' width='64'>
  • Autor:
  • Editor:
      Tutoriales En Linea
  • Fecha:2019-05-25
  • Categorias: Lenguajes De Programacion Software hardware Noticias Tutorial



Información
Usuarios que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!