FPGA Programming

Hi thank you for having this site and forum, I really appreciate it.
I wanted to make a suggestion if I may that I think will be super for this site using infrastructure you already have.
Programming FPGA boards (chips) in the same way you do now with microcontrollers. There is the “tiny fpga” and others that are quite powerful.
Thank you for you time . I would love to know what you think.

1 Like

It’s a great idea.
It may be hard work, but possible.
It would be good to make a team to do an experimental test.
I join. And you?

To add to this post…

At Biomaker (https://www.biomaker.org) we’ve been looking at some of the interesting FPGA devices that slot into the Arduino ecosystem. These seem to offer new prospects for working with high bandwidth signals, analysis, video, etc. - and could be called from the Arduino. XOD would provide a very interesting way of merging the technical areas and respective communities.

I’m thinking of devices like the Seeed Spartan Edge Accelerator board (Spartan Edge Accelerator Board - Seeed Wiki) and the Arduino MKR Vidor 4000 (https://docs.arduino.cc/hardware/mkr-vidor-4000). Each allows custom configuration of fast and dedicated electronic circuits, camera inputs and HDMI output, with direct access from the Arduino side. It allows the prospect of high-powered custom devices with video inputs, ML, etc. but configurable and controllable from XOD by non-programmers. FPGA programming is a different matter, but one could build 'black box’ functions with a relevant XOD library to suit. This is not so different from the existing situation with many very sophisticated hardware sensors - where their outputs are called from XOD, with a lot of calibration and data processing done on the device. This is a quite interesting direction, and it would be great to connect with anyone interested in exploring…

…of course FPGA programming is a different challenge.

![Spartan-Edge-Accelerater-Board-v1.0-wiki|666x500]
(upload://i8svmawXNBFgVTH2M6M0o6D0kuO.jpeg)

611637_1

1 Like

El modelo de Caja negra y de crear nuevos módulos de caja negra a partir de primitivas o anidar módulos da un potencial donde el único limite es la Imaginación.
En FPGA tenemos cuatro primitivas fundamentales de donde se puede crear todo, que son las compuertas lógicas And, Or, Not y por lo general se incluye el Flip-Flop a pesar de no ser primitiva.
Si lo quisiéramos, XOD tiene estas primitivas, aunque la filosofía estructural de XOD nos permite hacer parches para lograrlo con un FPGA, Siempre y cuando le aportáramos muchas horas de experimentación y es necesario tener conocimientos medios o avanzados para lograrlo.
Esto no sería lo mas práctico ni lo mas adecuado porque existen recursos que lo hacen más ágil y directo.
Supongo que lo más adecuado que emparchar sería reformular por completo la nueva versión y evolución de XOD que aumente sus prestaciones y posibilidades en vista para los próximos 5 años venideros.
Hay tecnologías que están llegando como más accesibles al mundo maker, que antes estaban solo reservadas a ámbitos de ingeniería de I+D.
Tiempo atrás estuvimos analizando con @wayland las posibilidades que dan los FPAA, FPGA, El mundo Arduino y otros Microcontroladores desde el punto de vista de XOD. En particular el desarrollo de módulos de Inteligencia Artificial Embebida que puedan operar relativamente veloces a pesar de trabajar con microcontroladores de la gama baja.

Tal como lo analizábamos con @wayland , esto es posible gracias al computo analógico, que era muy popular en 1990 para lograr velocidad de procesamiento de inteligencia Artificial y el procesamiento en paralelo. Algo hizo que estas charlas se enfríen y no las continuamos. Pero tiene un campo de aplicación muy poco explorado por el mundo maker. y con proyección al campo Biomaker.

Desde mi punto de vista es necesario hacer foco en la reformulación y arquitecturas posibles en vista al futuro próximo en la tecnología, y ver como XOD Lidera parte de la transformación, dando agilidad y confiabilidad para obtener resultados a nivel profesional si fuera necesario, sin que esto quite posibilidades de poder acceder con mínimos conocimientos.
Este es el momento y la oportunidad de empezar la nueva versión de XOD!

De mi punto de vista, habría que pensarlo a XOD de Adentro para Afuera. Creo que el Shell no necesita por el momento de grandes cambios funcionales, aunque puede mejorar un poco la interface grafica de usuario.
Donde veo mayor restricciones es en la arquitectura y filosofía de Base de XOD y desde donde se puede lograr mayor impacto y escalabilidad exponencial en el corto plazo optimizando los recursos de desarrollo .

Thanks for the contribution eqs-aruy. I’m and English-speaker, and put your post through Google translate - I hope that it gives a true account. It triggered a few thoughts.

"The Black Box model and creating new black box modules from primitives or nesting modules gives a potential where the only limit is the Imagination.
In FPGA we have four fundamental primitives from which everything can be created, which are the And, Or, Not logic gates and the Flip-Flop is usually included despite not being a primitive.
If we wanted it, XOD has these primitives, although the structural philosophy of XOD allows us to make patches to achieve it with an FPGA, as long as we give it many hours of experimentation and it is necessary to have intermediate or advanced knowledge to achieve it.
This would not be the most practical or the most appropriate because there are resources that make it more agile and direct.
I suppose that the most appropriate thing to do would be to completely reformulate the new version and evolution of XOD that increases its benefits and possibilities in view for the next 5 years to come.
There are technologies that are becoming more accessible to the maker world, which were previously only reserved for R&D engineering fields.
Some time ago we were analyzing with @wayland the possibilities offered by FPAA, FPGA, the Arduino world and other Microcontrollers from the point of view of XOD. In particular, the development of Embedded Artificial Intelligence modules that can operate relatively fast despite working with low-end microcontrollers.

As we discussed with @wayland , this is possible thanks to analog computing, which was very popular in 1990 to achieve AI processing speed and parallel processing. Something made these talks go cold and we didn’t continue them. But it has a field of application that has been little explored by the maker world. and with projection to the Biomaker field.

From my point of view, it is necessary to focus on reformulation and possible architectures in view of the near future in technology, and see how XOD leads part of the transformation, providing agility and reliability to obtain results at a professional level if necessary, without this removes possibilities of being able to access with minimal knowledge.
This is the moment and the opportunity to start the new version of XOD!

From my point of view, we should think about XOD from the Inside Out. I think that the Shell does not need major functional changes at the moment, although it can improve the graphical user interface a bit.
Where I see greater restrictions is in the architecture and philosophy of the XOD Base and from where greater impact and exponential scalability can be achieved in the short term by optimizing development resources."

1 Like

I was thinking that the rise of new Arduino-compatible FPGA hardware also allows the prospect of calls from XOD for FPGA-encoded functions - where, rather than try to re-configure XOD massively. For example, one might take advantage of visual programming tools for FPGA - like Ice Studio (https://icestudio.io, see below) - to build modular, standalone FPGA encoded functions - with a complementary set of XOD nodes that allow these to be called - similar to the way we would call other hardware functions.

I think that there is a very strong benefit in keeping XOD simple and intuitive to use - which might be sacrificed if FPGA programming was added directly to XOD. Also - there might be a market for custom-built high-performance FPGA modules that would complement the existing open source model. Arguably some kind of mechanism like this will be required to support continued developemnt of the XOD environment, which is under threat.

Some interesting links:

Mi Ingles es muy malo, resulta más fácil para mí leer e interpretar Ingles , pero escribiendo soy un terrible desastre.
A lo que entiendo la traducción de Google representa con fidelidad y calidad lo que quise decir.
Es tan inteligente este traductor que creo que mejoró la estructura de algunos de mis párrafos entendiendo lo que quise decir…
Mis primeros pasos de la Inteligencia Artificial fueron en 1990. En aquellos años era impensable los resultados que hoy tiene este traductor y en el estado del arte que está toda la AI actual.

De mi punto de vista aquí es donde hay mucho por resolver, y con que modelos de negocios se puede proyectar para lograr escalabilidad rentable.

Google translate quotes you as: “My English is very bad, it is easier for me to read and interpret English, but writing I am a terrible disaster. From what I understand, the Google translation represents with fidelity and quality what I wanted to say. This translator is so intelligent that I think it improved the structure of some of my paragraphs by understanding what I meant…
My first steps in Artificial Intelligence were in 1990. In those years, the results that this translator has today and the state of the art of all current AI were unthinkable.” I think that you are probably being very modest - but it is cool how easy it is to keep up a conversation to two parallel languages - especially with my monolingualism!!!

1 Like

“From my point of view, this is where there is much to be resolved, and with what business models can be projected to achieve profitable scalability.”

Yes, I agree - I think that the possibility of building a levels of FPGA-based hardware development that is accessible from the existing XOD-Arduino-sensors-wireless comms environment would be very cool. It would open up a development space that wouyld require a different level of hardware skills, and add a high level of capacity for fast analytics, video handling and machine learning - that could be called directly from hand-rolled XOD systems. It would be analagous to availability of new, advanced hardware devices - but with marketable FPGA software. One could easily see the development of an add-on market for new functions. XOD would be and essential part of fashioning a custom embedded system.

Personally, I’d love to see the development of FPGA video-handling code, to allow processing and display of timelapse (scientific) data on some of the cheap HDMI displays (letter-box format) that are becoming available, and being used for cyberdeck-like lashups of custom hardware…
The same goes for analysis of video input data - using simple 3D printed microscope hardware, like the open flexure microscope.

Esto es muy posible hacerse y un buen punto por donde empezar. Entendiendo la estructura lógica que lo ase posible y de mi punto de vista creo que sería fácil de aprender por alguien con poca experiencia.
Las operaciones lógicas con matrices de video es muy intuitiva.
Tiene usted @jh295 algún proyecto simple en mente como para empezar?
Pensemos algo que comience muy simple, pero que sea escalable a complejidades mayores

“This is very possible to do and a good place to start. Understanding the logical structure that makes it possible and from my point of view I think it would be easy to learn by someone with little experience. The logical operations with video matrices is very intuitive.
Do you have @jh295 any simple projects in mind to start with? Let’s think of something that starts out very simple, but is scalable to greater complexities.”

(i) Use a set of Arduino, µSD card and sensor components for making environmental measurements (and beyond), see Stage 2 — Biomaker.org

(ii) Interface the microcontroller to an HDMI screen, e.g. 8.8 inch IPS screen 1920x480 60Hz (8.8 inch IPS 1920x480 60Hz 40 pins LCD screen display with micro USB port controller board for automotive display raspberry|Tablet LCDs & Panels| - AliExpress). It would be good to have a buffer and the ability to draw text and graphics - there are some graphics libraries that might provide a guide for Arduino-screen interactions (e.g. https://lvgl.io and the way 4D Systems use serial communication to drive LCD screens)

(iii) Include a USB interface for keyboard and mouse

The FPGA might be a Seeed Spartan Edge Accelerator board with Xilinx processor
(https://www.seeedstudio.com/Spartan-Edge-Accelerator-Board-p-4261.html)
This is an Arduino shield with ESP32, mini HDMI connector and CSI camera connector - so there’s bare hardware compatibility but needs software to glue it together…

The ability to write to a higher resolution screen allows the possibility of building sophisticated monitors and recording devices - with keyboard-screen interaction.

1 Like

Here’s a couple of projects that provide some relevant details about using the Seeed Spartan Edge Accelerator board:

Your idea is still great!