Proyecto ICESTUDIO-DIGITAL. Circuitos y fundamentos

252 views
Skip to first unread message

Juan Gonzalez Gomez

unread,
Apr 21, 2025, 5:42:10 AMApr 21
to FPGA-WARS: explorando el lado libre
Hola,

He comenzado el proyecto ICESTUDIO-DIGITAL en el que estoy creando láminas con circuitos para icestudio, empezando desde sus fundamentos


icestudio-digital-1.png

La idea está tomada de las láminas que se usan para dibujo técnico para los estudiantes de Ingeniería mecánica. Hay muchos libros con láminas de diferentes piezas. Los estudiantes reproducen estos diseños en la herramienta CAD, para aprender su manejo así como también desarrollar sus habilidades: visión espacial, comprensión...

Voy a aprovechar para empezar con láminas de circuitos "hola mundo" extra-simplificados, y poco a poco ir haciendo circuitos más complejos, pero basados en estos principios iniciales. Así se puede ir viendo cómo van emergiendo los conceptos avanzados a partir de los simples

Esta idea está tomada del proyecto Metamath[1] en el que están reconstruyendo las matemáticas desde sus axiomas y definiciones fundamentales

Saludos, Obijuan


Alfredo

unread,
Apr 21, 2025, 6:00:28 AMApr 21
to fpga-wars-explora...@googlegroups.com

Como siempre, otra de tus genialidades, gracias Obijuan!


--
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/CABqu7xq47x5NjNUCe5tD1Lwn1oL8Vu%2B6Gy8PKdW3TnpxOXOD7A%40mail.gmail.com.

Democrito

unread,
Apr 21, 2025, 6:13:21 AMApr 21
to FPGAwars: explorando el lado libre
Pisando fuerte el acelerador en la educación técnica tomando todas las herramientas disponibles!

Juan Gonzalez Gomez

unread,
Apr 21, 2025, 6:32:57 AMApr 21
to FPGA-WARS: explorando el lado libre

* Lámina 000. Conceptos iniciales. Esta es la única lámina que NO incluye circuitos completos. Es un resumen de los conceptos básicos de partida


image.png

Todos los circuitos se van a construir a partir de los 4 elementos básicos:

* Bits constantes (0,1)
* Cables
* Puertas lógicas
* Biestables

Cada elemento básico tiene una función:

* Bits:  Generar los bits de partida
* Cables: Transportar los bits
* Puertas lógicas: Transformar y combinar bits
* Biestables: Almacenar un bit

Saludos, Obijuan


charli va

unread,
Apr 21, 2025, 8:13:30 AMApr 21
to fpga-wars-explora...@googlegroups.com
Muy buena idea! enhorabuena por la iniciativa!

--
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.

Juan Gonzalez Gomez

unread,
Apr 21, 2025, 12:45:02 PMApr 21
to FPGA-WARS: explorando el lado libre
* Lámina 001: Circuito ax-bit1: Encender un LED indefinidamente (Hola mundo)


ax-bit-1.png

En esta lámina se presenta el primer circuito: un hola mundo que enciende un LED. Se presenta el primer elemento fundamental: El bloque Bit-1, que representa un bit 1 constante

Al sintentizar el circuito y cargalo en una placa Alhambra-II, con la placa periférica LED AP-LED8 conectada, el resultado es que el LED de menor peso se enciende indefinidamente

Este es el circuito hola mundo usado para comprobar que Icestudio funciona correctamente, y que los circuitos se pueden cargar sin problemas

Saludos, Obijuan

Juan Gonzalez Gomez

unread,
Apr 21, 2025, 1:47:34 PMApr 21
to FPGA-WARS: explorando el lado libre
* Lámina: 002: Circuito ax-bit0: Apagar un LED indefinidamente


ax-bit-0.png

En esta lámina se introduce el elemento primitivo Bit-0

Saludos, Obijuan




El lun, 21 abr 2025 a las 11:41, Juan Gonzalez Gomez (<obijua...@gmail.com>) escribió:

Juan Gonzalez Gomez

unread,
Apr 22, 2025, 6:08:24 AMApr 22
to FPGA-WARS: explorando el lado libre
* Lámina 003. Circuito param-bitk: Establecer el estado de un LED según una constante


param-bitk.png

* Se introduce el bloque generic para representar bits genéricos
* Conceptos nuevos introducidos:
  * Metacircuito
  * Circuito real
  * Parámetro
 
Saludos, Obijuan


El lun, 21 abr 2025 a las 11:41, Juan Gonzalez Gomez (<obijua...@gmail.com>) escribió:

Jo mo

unread,
Apr 22, 2025, 7:05:17 AMApr 22
to FPGAwars: explorando el lado libre
Good idea Juan,

It reminds me the "Cuadernos technicos", but in a much more concise format and axed on learning icestudio.

As this can help Icestudio beginners, maybe we can add a link to these wiki pages on the help menu (see image below).!?
Labeling it something like "Quick start sheets " !?

quick start sheets.png

Have a nice day guys !

Alexander Lang

unread,
Apr 22, 2025, 7:09:02 AMApr 22
to fpga-wars-explora...@googlegroups.com
I think this is excellent.  If you like I can translate to English for you.

Cheers

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.

Ismael Pérez

unread,
Apr 28, 2025, 9:50:39 AMApr 28
to FPGAwars: explorando el lado libre
Hola a todos! Como podria adquirir una FPGA libre y comenzar a practicar todos los tutoriales? Muchas Gracias

Alexander Lang

unread,
Apr 28, 2025, 10:40:06 AMApr 28
to fpga-wars-explora...@googlegroups.com
Hola Ismael,

Para apoyar el proyecto y también porque es un hardware muy bien diseñado, compré un Alhambra II aquí:

https://alhambrabits.com/buy/

Lo he usado muchas veces y funciona perfectamente con Icestudio y con los ejercicios 

Saludos

Alex

----English Version - Because my first language is english and I'm hoping my translation was good enough  ;)

Hello Ismael,

To help support the project and also because it is some very well designed hardware - I bought an Alhambra II from here:

https://alhambrabits.com/buy/

I have used it many times and it works perfectly with Icestudio and with the exercises

Cheers

Alex

Obijuan

unread,
Jun 2, 2025, 5:14:41 AMJun 2
to FPGAwars: explorando el lado libre

* Lámina 004. Circuito input: Establecer el estado de un LED a partir de un pulsador que llega por el pin de entrada


input.png
Se introduce el bloque basic.input para representar pines de entrada
Se introducen los siguientes conceptos nuevos:
* Pin de entrada
* Pulsador digital

Saludos, Obijuan

charli va

unread,
Jun 2, 2025, 5:45:42 AMJun 2
to fpga-wars-explora...@googlegroups.com
Un gran trabajo obijuan mucha gente que comienza va a agradecer estas láminas , te sugiero que podrías hacer un script con pandoc o similar para que cada nueva lámina te fuera haciendo un pdf con todas una tras otra. 

Creo que así en cuanto suba el número de láminas será de una agradable lectura y fácil de actualizarse.

Acabarías teniendo un diccionario tipo los que suelen usar los arquitectos con multitud de detalles constructivos.

Buen día!

--
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.

Obijuan

unread,
Jun 2, 2025, 11:45:33 AMJun 2
to FPGAwars: explorando el lado libre
* Lámina 005. Etiquetas: Encendiendo un LED infinitamente mediante etiquetas  

label.png

Se introducen los bloques basic.input label y basic.output label, para representar etiquetas
Se introducen los siguientes conceptos nuevos:
* Etiquetas
* Etiqueta de entrada
* Etiqueta de salida

Saludos, Obijuan

Obijuan

unread,
Jun 3, 2025, 2:19:16 AMJun 3
to FPGAwars: explorando el lado libre
* Lámina 6: Principio de superposición (o paralelismo)

paralell.png
* Conceptos nuevos:
  * Paralelismo
  * Principio de superposición

Este principio nos permite construir circuitos más complejos a partir de otros más simples, colocándolos en paralelo (y siempre que sus salidas sean en pines diferentes)

Saludos, Obijuan


Obijuan

unread,
Jun 3, 2025, 4:30:53 PMJun 3
to FPGAwars: explorando el lado libre
* Lámina 007-dup: Principio de duplicación de bits

dup.png
Conceptos nuevos:
* Principio de duplicación de bits
* Buffer o Driver

Con este principio podemos extender los circuitos, para añadir más componentes

Saludos, Juan


Obijuan

unread,
Jun 4, 2025, 2:49:15 AMJun 4
to FPGAwars: explorando el lado libre
* Lámina 008: Etiqueta con duplicación de bits
label-dup.png

* Conceptos nuevos introducidos: 
  * Este es el primer circuito derivado, construido a partir de circuitos anteriores aplicando principios mencionados anteriormente
Para construir este circuito hay que partir del circuito label (lámina 004) y aplicar el principio de duplicación de bits en la etiqueta derecha. Este principio está definido en el circuito dup (lámina 007)

Saludos, Obijuan


Obijuan

unread,
Jun 4, 2025, 5:52:52 AMJun 4
to FPGAwars: explorando el lado libre

* Lámina 009: Etiqueta con dos conexiones

3labels.png
* Conceptos nuevos introducidos:
  * Regla de uso de las etiquetas: Con las etiquetas se pueden realizar conexiones múltiples, siempre y cuando tengan el mismo nombre y sólo haya una etiqueta en el extremo izquierdo. En el extremo derecho se pueden tener todas las que se quieran

Saludos, Obijuan

Jo mo

unread,
Jun 4, 2025, 6:01:41 AMJun 4
to FPGAwars: explorando el lado libre
Hola Juan,

Gracias for you work on the Laminas.
But what i fear, is that has every Lamina covers a "small part" of icestudio functionning, in the end the total number of "Laminas" needed could be quite big ?! 
And it will be more difficult for a new user to find the right "lamina" to reply to his own questioning at a certain time!   What do you think ?

Big hug my friend!

Juan Gonzalez Gomez

unread,
Jun 4, 2025, 6:32:48 AMJun 4
to fpga-wars-explora...@googlegroups.com
Hi Joaquin,

These sheets are not meant to be for documenting icestudio. Not at all.  I am working on the foundations of digital electronics, for my students, but from a practical perspective. I give them the sheets to practice. They draw the circuit in Icestudio and test it on real hardware. At the same time they are learning the foundations of the modern digital electronics

I agree that the sheets only cover a very very small part of the digital electronics. The idea is to introduce only one or two concepts in each sheet. The approach I am following is the same that is used in the metamath project[1], for setting and studying the foundations of mathematics (There are more than 2000 theorems before the formula 1 + 1 = 2 is introduced!)

Personally, I really like to study and see how these little pieces of knowledge glue together, one to each other, in order to build something bigger

Best regards, Juan


--
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.
Message has been deleted

Obijuan

unread,
Jun 5, 2025, 4:03:34 AMJun 5
to FPGAwars: explorando el lado libre
* Lámina 010: Elemento primitivo: Puerta NOT

ax-not.png

Este es el primer circuito que utiliza una puerta lógica. Hasta ahora, todos los circuitos precedentes lo único que hacían era transportar y generar bits, pero NO manipularlos  
La operación más básica de manipulación es la puerta NOT, que invierte un bit

Como es un circuito combinacional, queda totalmente representado por su tabla de verdad

Saludos, Juan



Jo mo

unread,
Jun 5, 2025, 7:07:47 AMJun 5
to FPGAwars: explorando el lado libre
Hola Juan,

Thanks for the details,
Yes, i was understanding it, as a tool to learn icestudio!

I just had a quick look at Metamath! and to me, today, it is looks "frightening" ;-) (means one more "language" to learn and get used to)!
Personally, most of the time, i like to stay "high-level" just reusing premaid formulas (eg: for trigonometry math, i just use this),  premaid pieces of code (libraries) and just dive in the "low-level" when i can not get a solution using "high-level" !  

But it is right that, during the learning process, it is important that students understand:
- for mathematics, where the formulas are coming from.
- for digital design: that logic doors are made of transistors which are themself made of p-n junctions or p and n channels (for j-fet) doped in silicium wafer! That electrons are traveling there under the effects of electric (and magnetic) fields. that electrons are made of quarks.....and so on, and you stop looking deeper (if you want) when you reach the limit of human knowledge ;-)

In the end, if your laminas are helping your students, to grab the concepts of digital design, it is great :-) !

Sorry for this little off-topic ;-)

Big hug my friend

Pablo Herranz Cid de Rivera

unread,
Jun 6, 2025, 12:38:06 AMJun 6
to fpga-wars-explora...@googlegroups.com
Muy buen trabajo, Obijuan, gracias

Pablo Herranz
Informática
Ibertabaco

AVISO LEGAL
Este mensaje, su contenido y cualquier fichero transmitido con él está
dirigido únicamente a su destinatario y es confidencial. Por ello, se
informa a quien lo reciba por error o tenga conocimiento del mismo sin ser
su destinatario, que la información contenida en él es reservada y su uso no
autorizado, por lo que en tal caso le rogamos nos lo comunique por la misma
vía o por teléfono ( + 34 927667004), así como que se abstenga de reproducir
el mensaje mediante cualquier medio o remitirlo o entregarlo a otra
persona,procediendo a su borrado de manera inmediata.
IBERTABACO SOCIEDAD COOPERATIVA se reserva las acciones legales que le
correspondan contra todo tercero que acceda de forma ilegítima al contenido
de cualquier mensaje externo procedente del mismo.



--
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.

Obijuan

unread,
Jun 6, 2025, 4:51:09 AMJun 6
to FPGAwars: explorando el lado libre
* Lámina 014: Elemento primitivo AND


Conceptos nuevos
  * Introducción de la puerta lógica AND
 * Primer circuito con 2 entradas
* Operación booleana de multiplicación

ax-and.png


Obijuan

unread,
Jun 18, 2025, 2:41:33 AMJun 18
to FPGAwars: explorando el lado libre
* Lámina 020: Elemento primitivo OR


Conceptos nuevos
  * Introducción de la puerta lógica OR
  * Operación booleana de suma

ax-or.png

Obijuan

unread,
Jun 30, 2025, 4:08:34 PMJun 30
to FPGAwars: explorando el lado libre
* Lámina 29: Biestable D del sistema


- Primer elemento secuencial

ax-sysdff.png

Obijuan

unread,
Jul 7, 2025, 8:43:10 AMJul 7
to FPGAwars: explorando el lado libre
* Lámina 38: Contador unario de 2 marcas

* Mediante la conexión serie de dos biestables D del sistema ya tenemos nuestro primer contador primitivo: uno que cuenta ciclos en unario, hasta 2 (ii)
* Esta propiedad de contar emerge de la capacidad para mover bits por el circuito, que aparece al conectar biestables

unary-ii.png


Jo mo

unread,
Jul 7, 2025, 9:35:24 AMJul 7
to fpga-wars-explora...@googlegroups.com
Thanks for sharing Juan,
I hope you are not boiling too much in Madrid Furnace ;-)

Big hug

Joaquim

--
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.

Obijuan

unread,
Aug 23, 2025, 3:36:40 PM (12 days ago) Aug 23
to FPGAwars: explorando el lado libre
* Lámina 46: Contador unario de 3 marcas con reset

* Contador que cuenta en unario hasta 3 (III), a la velocidad del reloj del sistema
* Tiene la capacidad de volver al estado inicial (0, ninguna marca) al apretar el pulsador de reset. Las puertas AND de habilitación son las que permiten que la cuenta "avance" cuando no hay reset, y que vuelva a 0 cuando se apriete el reset (rst=1 --> ena=0)

unary-iii-rst.png

Obijuan

unread,
Aug 26, 2025, 3:37:00 AM (10 days ago) Aug 26
to FPGAwars: explorando el lado libre
* Lámina 47: Contador unario módulo 3

* Contador que cuenta en unario hasta 2 (II), y comienza de nuevo desde 0
* Es el primer circuito que nunca para, realizando periódicamente la cuenta de 0 a 2 (en unario) a la velocidad del reloj del sistema
* Es el primer circuito que nos permite generar señales periódicas. Esto es gracias a la utilización de una señal de feedback, que hace que el circuito vuelva automáticamente al estado inicial una vez alcanzado su valor máximo
* Este circuito tiene un diagrama de estados cíclico


unary-mod3.png

Obijuan

unread,
Aug 27, 2025, 7:03:27 AM (9 days ago) Aug 27
to FPGAwars: explorando el lado libre
* Lámina 49: Divisor del reloj del sistema entre 2

* Generacion de una señal periodica de frecuencia Fsys/2
* En el caso de la Alhambra-II la frecuencia de la señal de salida es de 6Mhz
* Se utiliza un contador unario módulo 2
* El ciclo de trabajo es del 50%
sysdiv-2.png




Reply all
Reply to author
Forward
0 new messages