Me presento, soy nuevo y necesito consejos.

53 views
Skip to first unread message

Julian Maidana

unread,
Dec 22, 2025, 1:45:27 AM12/22/25
to FPGAwars: explorando el lado libre
Buenas, mi nombre es Julian y soy nuevo en el mundo de las FPGA. Se la teoria que vimos en la universidad y quiero pasar a la practica. Me compre una Edu Ciaa FPGA para trabajar.

Se que es similar a la alhambra ii y que deberian ser analogas a la hora de comenzar y arrancar.

Mi problema es que la Edu Ciaa tiene poca documentacion y no hay nada por donde "comenzar" para alguien que nunca trabajo antes con FPGA. Por ejemplo, para instalar el entorno de desarrollo es bastante complejo y no se si funciona o no ya que no puedo probarlo. Luego de eso no se si tengo que crear una nueva carpeta, como llamar a los archivos con el codigo en verilog o vhdl, como se sintetiza, etc.

Agradeceria enormemente si me pueden orientar un poco, mostrar algun tutorial o similar para poder usar esta placa y su entorno de desarrollo, o en su defecto, si hay algun tutorial que me lleve de la mano en los primeros pasos con icestudio o similar. A fines practicos, para entender mi situacion, tengo una placa y no se que mas hacer ni como comenzar.

Desde ya, agradecerles por el excelente grupo y saludos desde Salta, Argentina.

Jo mo

unread,
Dec 22, 2025, 4:19:30 AM12/22/25
to FPGAwars: explorando el lado libre
hello Julian,

Welcome in the community,

There may be even better tutorials to start with icestudio , but i just found this one
Just follow it (but with the selection of your board instead of the icestick one)
icestudio_bTUYnvcPAb.png

And if you encounter a problem at any stage, just let us know and we will help you !

have a nice day!

Jesus Arias

unread,
Dec 22, 2025, 7:26:54 AM12/22/25
to FPGAwars: explorando el lado libre
Hola Julian,
La placa Ciaa es muy similar a la Alhambra-ii, las principales diferencias son la asignación de los pines, en especial la entrada de reloj en el pin 94 en lugar del 49, y el tamaño de la Flash de configuración, de 512kBytes en lugar de los 4MBytes de la Alhambra. 
Lo que también quería destacar es que algunos datos de 
no son del todo correctos. En particular la FPGA tiene 
7680 celdas lógicas  (no 3500) y
32 bloques BRAM (no 20)
Aunque esto no es un error por parte de la Univ. Es que en realidad Lattice está metiendo una ICE40-8k en un encapsulado de 144 pines pero nos la venden como un producto inferior.
 Saludos

charli va

unread,
Dec 22, 2025, 12:38:02 PM12/22/25
to fpga-wars-explora...@googlegroups.com
Hola Julián! mira ahora mismo no hay un manual oficial como tal y como muchas veces hemos hablado la información está super desperdigada pero te recomiendo echar un ojo a los tutoriales de Obijuan, podrías empezar por este:


Luego tiene cuadernos técnicos de cosas concretas, te recomendaría así en este orden una vez hayas dado una vuelta a lo anterior:



Como te digo hay bastantes cosas pero todo muy disperso, espero que pronto lo podamos ir organizando, pero de momento con esto creo que podrías arrancar y cualquier cosa aquí nos tienes.

Saludos!

Maximiliano Simonazzi

unread,
Dec 22, 2025, 8:05:14 PM12/22/25
to FPGAwars: explorando el lado libre
Yo estoy en una situacion similar, la info esta bastante desperdigada por todos lados asi que para comenzar estoy tratando de entender como  es el ecosistema. La verdad que con windows no pude hacer andar la edu cia, asi que intentare con icestudio.

Solo instalo icestudio y ya funciona? o tengo que instalar algo mas? no entiendo todavia que es apio.

Alexander Lang

unread,
Dec 23, 2025, 4:21:02 AM12/23/25
to fpga-wars-explora...@googlegroups.com
Buenos días

Intentaré ayudar, ya que me encontré en una situación similar cuando empecé. Técnicamente, todavía estoy aprendiendo.

Comencemos con los fundamentos de los dispositivos FPGA: FPGA significa Matriz de Puertas Programables en Campo. Para configurar el dispositivo para una función específica, se crea un campo eléctrico dentro del dispositivo que permite establecer y romper conexiones internas según sea necesario. Las conexiones se convierten en bloques lógicos, como los circuitos integrados, como un 74LS00 (una puerta NAND). Si combinamos puertas NAND, podemos crear funciones muy complejas que pueden ejecutarse a velocidades muy altas.

Para programar dispositivos FPGA, utilizamos lenguajes de descripción de hardware: VHDL, Verilog, System Verilog. Estos lenguajes se utilizan para describir el comportamiento o la estructura de la función lógica que deseamos lograr.

Para lograr esto, necesitamos un software que acepte nuestro código, lo convierta en puertas lógicas y luego lo envíe a la FPGA, donde se aplica el campo eléctrico y el dispositivo se convierte en la función lógica que describimos en nuestro lenguaje de programación. Existen muchos proveedores de dispositivos FPGA y todos utilizan software de programación propietario. Las licencias para las herramientas de desarrollo de software propietario son muy caras. El dispositivo FPGA en la PCB que compró está fabricado por Lattice Semiconductor y su software propietario se llama Diamond.

Una persona muy inteligente llamada Claire Wolf, anteriormente Clifford Wolf, realizó ingeniería inversa del archivo de programación de Lattice Semiconductor y creó herramientas de programación de código abierto para dispositivos FPGA de Lattice llamadas Yosys y NextPNR. Yosys sintetiza el código y NextPNR lo coloca y enruta dentro del dispositivo FPGA. La herramienta de software final se llama Iceprog, que toma la salida de nextPNR (un archivo de bits) y programa el dispositivo FPGA con ella.

https://clifford.at/

Para estas herramientas de software se creó un programa de gestión de proyectos en Python llamado APIO. Básicamente, APIO es una herramienta de línea de comandos que combina la verificación y la síntesis del código, la colocación, el enrutamiento y la programación en un solo lugar, en lugar de tener que llamar a cada programa por separado. No tiene nada que ver con la verdura :)

Entonces... ¿dónde entra Icestudio? Icestudio es una interfaz gráfica para APIO. En lugar de escribir el código requerido en Verilog en un editor de texto, es posible dibujar diagramas que describen lo necesario. Icestudio permite hacer esto con bloques de código prediseñados. Icestudio muestra el diagrama, lo que facilita la comprensión del ingeniero de FPGA. Luego, crea el código Verilog en segundo plano, lo pasa a APIO, que lo verifica y sintetiza, realiza la función de ubicación y ruta, crea un archivo de bits y finalmente programa el dispositivo FPGA.

Por lo tanto, si se desea crear código para el dispositivo FPGA en la placa que ambos tienen, se podría usar un editor de texto y escribir Verilog que describa lo necesario. A continuación, el archivo de texto debería pasarse a Yosys, que verificaría que el código sea correcto y sintetizaría la lógica necesaria. Después, el código sintetizado debe pasarse a NextPNR para que la lógica se enrute al dispositivo FPGA específico. Finalmente, con el archivo de bits creado, se programa el dispositivo FPGA. Esto se vuelve muy complicado a menos que se tenga mucha experiencia en el uso de herramientas de software complejas. Con APIO, el proceso se simplifica, y con IceStudio, aún más.

Espero que esto ayude. Si alguien quiere un tutorial completo paso a paso para APIO o IceStudio, por favor, avíseme. Escribí algo similar en mi blog hace unos años, pero fue escrito para un dispositivo FPGA diferente.

Alex

--- In English for me mostly! ---

Good Morning

I will try and assist here as I was in a similar situation when I first started.  I technically am still learning.

So lets start with the basics FPGA devices: An FPGA stands for Field Programmable Gate Array.  To configure the device for a specific function an electric field is created within the device to allow internal connections to be made and broken as necessary.  The connections are turned into logical blocks like the integrated circuits such as a 74LS00 - a Nand gate. If we combine nand gates together we can create very complex functions which can run at very high speeds.

To program FPGA devices we have hardware description languages - VHDL, Verilog, System Verilog - These are hardware description languages used to describe the behaviour or structure of the logic function we wish to achieve.

In order to achieve this we need some software to accept our code, turn it into logic gates and then send it to the FPGA where the electric field is applied and the device becomes the logic function we described in our programming language.  There are many different vendors of FPGA devices and they all use different programming software which is proprietary.  The license fees for the proprietary software development tools are very very expensive. The FPGA device on the PCB you have bought is made by Lattice Semiconductor and their proprietary software is called Diamond.  

A very very clever person named Claire Wolf - formerly Clifford Wolf, reverse engineered Lattice Semiconductor's programming file and created open source programming tools for Lattice FPGA devices called Yosys and NextPNR. Yosys synthesizes the code and NextPNR places and routes the synthesized code within the FPGA device.  The final software tool is called Iceprog which takes the output of nextPNR (a bitfile) and programs the FPGA device with it.


For these software tools a python project management program was created called APIO - basically APIO is a command line tool which combines verifying and synthesizing the code, placing and routing and programming into one place instead of having to call each program separately.  It has nothing to do with the vegetable :)

So...where does Icestudio come in: Icestudio is a graphical front end for APIO.  Instead of typing out the code required in verilog in a text editor it is possible to draw diagrams describing what is required.  Icestudio allows one to do this with prebuilt code blocks.  Icestudio displays the diagram which makes it easier for the FPGA engineer to understand, it then creates the verilog code in the background, passes this code to APIO which then verifies and synthesizes the code, performs the place and route function and then creates a bitfile and then finally programs the FPGA device for you.

So if one wished to create code for the FPGA device on the board you both have one could use a text editor and write verilog describing what is needed.  Next the text file would need to be passed to Yosys which would verify the code is correct and synthesize the logic needed.  After that the synthesized code would need to be passed to NextPNR so that the logic can be routed to the specific FPGA device, then finally with the bitfile created the FPGA device is programmed.  This gets very complicated unless one is very adept at using complicated software tools.  By using APIO the process is simplified and by using IceStudio the process is even more simplified.

I hope this helps.  If anyone wants a complete step by step tutorial for APIO or IceStudio please let me know.  I did write something similar on my blog a few years back but it was written for a different FPGA device.

Alex 

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/c91e85f9-93b8-4c54-8a71-b76d7789303an%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages