-
Implementando un SOC con Litex
Existen muchos casos en los que vamos a necesitar un procesador en nuestor diseño en FPGA. En mi caso, los soft-cores son muy útiles cuando tengo que implementar en la FPGA ciertos protocolos de alto nivel como Ethernet o Modbus. Para utilizar estos interfaces se pueden encontrar en la red muchos ejemplos escritos en C. Además. la cantidad de lógica que utlizariamos en el caso de implementarlos directamente en RTL sería mayor a la lógica requerida por un soft-core que haga la misma labor. Para los dispositivos de Xilinx, ya vimos que podemos utilizar Microblaze. Mi-V es una excelente opción si en cambio estamos utilizando una FPGA de Microchip, el cual es un procesador basado en Risc-V. EN ambos casos, el procesador es configurable para adaptarlo a nuesras necesidades, y de esta forma poder optimizar la cantidad de lógica utilizada, pero en ocasiones, necesitamos algo incluso más personalizado ya que estos procesadores, aunque se puedne uitlizar sin pagar ninguna licencia, son cerrados, por lo que no podemos ver y modificar su código. Para los casos en los que necesitamos algo más personalizado, necesitaremos recurrir a otras opciones.
-
Diseñando un sistema con Microblaze para la tarjeta Arty A7
Algo que nos aportan las FPGA en nuestros diseños es la flexibilidad. Esta flexibilidad no viene solo en forma de poder redireccionar los pines del dispositivos de la forma que más nos convenga, sino que nos permite implementar dentro de estas casi cualquier diseño digital que se nos ocurra, siempre que (1) dispongamos del espacio suficiente y (2) siempre que se cumplan los requisitos de tiempos que nuestro diseño requiere.
Uno de los elementos que podemos implementar en las FPGA son procesadores o microcontroladores. En la actualidad existen muchos (muchos, muchos) procesadores que podemos implementar en FPGA. Estos procesadores se conocen como soft-cores o procesadores softare(?), y tenemos procesadores con arquitecturas RISC, x86, MIPS… además de procesadores con uno o varios núcleos. Los fabricantes de FPGA saben de esto, y en sus entornos de desarrollo vienen incluidos algunos procesadores para incluirlos en sus FPGA. Tenemos el caso de Mi-V en FPGAs de Microchip, los cuales son softcores configurables basados en RISCV, o Microblaze en el caso de Xilinx, los cuales son procesadores RISC. En este artículo vamos a ver como crear el diseño hardware con procesador Microblaze en la tarjeta Arty de Digilent.
-
Capturando la banda ISM con RTL SDR
Cuando empecé a utilizar dispositivos SDR no era consciente de la cantidad de señales que se pueden capturar con estos dispositivos. Estamos rodeados de señales de radio frecuencia, eso es algo que todos sabemos, WIFI, Bluetooth, 4G… son señales que, aunque puede que no sepamos muy bien como funcionan, estamos acostumbrados a ellas, pero en cuanto conectas un receptor de radio, y empiezas a ver todas las señales que se empiezan a detectar en muchas bandas diferentes, te das cuenta de que la muchos de los dispositivos que utilizamos utilizan radiofrecuencia, y quizás no nos habiamos parado a pensarlo.
-
Creando tu propio diseño con PolarFire SoC
Los fabricantes de FPGA estan convencidos de enseñarnos como sus dispositivos pueden hacer cosas realmente complicadas como procesar vide, detectar en vivo quien lleva mascarilla y quien no, detectar si la gente es feliz o no… todo ello mientras hacen parpadear un LED. Esto hace que la información que podemos encontrar esté siempre relacionada con este tipo de proyectos. Hoy en dia es difícil es dificil encontrar proyectos distribuidos por los fabricantes en los que se muestre como poner en marcha su dispositivo por primera vez. me temo incluso que es más fácil hoy encontrar como procesar video, que un tutorial completo de como hacer parpadear un simple LED. Incluso los proyectos más básicos que comparten están llenos de código que, a priori, es innecesario para un proyecto sencillo y en general, siempre se dejan algunos pasos que, por casualidad, son los que harán que tu pequeño proyecto no funcione… Durante mis años de estudiante en la universidad, cuando empecé a programar en C, mi profesor siempre decía que la parte más complicada de cualquier programa, es enfrentarse a la hoja en blanco. En este blog intento mostrarte como, desde una hoja en blanco, podemos crear algunos proyectos interesantes o, al menos, como crear proyectos que hagan que el dispositivo haga algo. Esto es exactamente lo que vamos a hacer en este artículo, arrancar una PolarFire SoC de Microchip, y el Icicle Kit desde una hoja en blanco.
- •
- 1
- •