Analizador Lógico

91 views
Skip to first unread message

Jesus Arias

unread,
Feb 15, 2024, 4:03:24 AMFeb 15
to FPGAwars: explorando el lado libre
Hola
He estado dando un repaso a un diseño de analizador lógico que fue un trabajo de fin de grado que propuse hace unos años y que creo que podría resultar útil para depurar nuestro hardware, ya que se podría sintetizar junto con cualquier otro diseño de Icestudio.
Necesitaría dos pines para un puerto serie y memoria interna, cuanto más mejor, aunque con unos pocos kilobytes ya le vale.
Adjunto documentación, el código fuente todavía necesita un poco más de limpieza y de traducción de comentarios ;)
Y también una captura visualizada con GTKwave.
gtkw1.gif

Saludos

LogicAnalyzer.pdf

charli va

unread,
Feb 15, 2024, 4:09:37 AMFeb 15
to fpga-wars-explora...@googlegroups.com
Hola Jesús!! yo hice algo similar hace unos años y es algo que estoy trabajando justo para la siguiente release!!! vaya conexión mental! 

de hecho lo he usado para depurar parte del ADC

El repositorio del trabajo en su momento fue este https://github.com/FPGAwars/iceRok

pero ahora lo estoy cambiando bastante e incorporando lo último que mejoré en la uart para el volcado del ADC

Voy a leerme tu pdf porque me ha encantado la sinergia y la sincronía (justo ahora mismo estaba con ello!)

Voy a intentar documentarlo estos días y os paso la última versión .

Estoy aprovechando para ir planteando un modo de trabajo que creo que puede ser muy interesante para trabajar con ficheros verilog en disco con nuestra estructura de directorios que queramos y poder usarlos en icestudio cómodamente, de forma que se pueda trabajar o en icestudio o sólo con verilog o con las dos cosas cómodamente.

Un gran abrazo y gracias por compartir y plantear todas estas cosas!


--
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 esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/fdc0d67f-0d47-43a3-bac8-b55be3ba20d0n%40googlegroups.com.

charli va

unread,
Feb 15, 2024, 5:27:54 AMFeb 15
to fpga-wars-explora...@googlegroups.com
El repositorio que he pasado está obsoleto ahora lo estoy integrando dentro del terminal serie que simplifica mucho la operativa.

Esta tarde voy a intentar haceros un documento con el planteamiento que tengo q iré es muy similar al de jesus y así discutimos las posibles mejoras de arquitecturas o implementaciones.

Súper interesante!

Jesus Arias

unread,
Feb 15, 2024, 9:14:00 AMFeb 15
to FPGAwars: explorando el lado libre
No pensé que ya tuvieras una solución hecha, qué coincidencia ;)
De todos modos adjunto el módulo por si pudiera servir como referencia.
Saludos
lanal.v

charli va

unread,
Feb 15, 2024, 9:23:34 AMFeb 15
to fpga-wars-explora...@googlegroups.com
Seguro que viene fenomenal! Esta tarde las veo y os preparo un docu creo que puede ser muy interesante y seguro que cada una aporta algo diferente que se puede sumar.

El tema es que hice un prototipo pero con el resto de cosas quedó en barbecho, he ido dándole forma a la idea inicial y con el adc me valió como ejercicio para depurar.

Ando preparando todo el tema del adc para pasároslo organizado y que pueda ser reutilizable y de paso pensaba lanzaros este tema ya depurado 😂 

Estos días lo vamos comentando que seguro que lo pasamos bien y salen cosas súper interesantes



charli va

unread,
Feb 15, 2024, 12:54:55 PMFeb 15
to fpga-wars-explora...@googlegroups.com
He estado viendo lo que has mandado y está muy bien la verdad, yo inicialmente sólo lo plantee para 8 y 16 bits de señales, ampliarlo a 32 me parece fantástico la verdad, en mi caso la memoria la monté como una fifo circular, de modo que si da ancho de banda suficiente el terminal serie puede estar enviando muchísimos samples.

Tengo que ver en detalle como habéis planteado la máquina de estados pero creo que puede salir algo muy interesante de las dos cosas, quiero verlo bien y os preparo un docu en condiciones para discutirlo y que hagamos comparativas de velocidad , luts y veamos como fusionar ideas.

Imagino que luego tenéis algún programa para tomar los datos y volcarlos a disco y que puedan ser leídos por gtkwave, yo en este punto inicialmente volcaba en raw (los bits tal cual) que pueden ser leídos por pulseview, lo hice así inicialmente porque la gente suele estar acostumbrada a pulseview que es muy usado por analizadores económicos y era un plugin exento de icestudio, que lo hacía muy engorroso a la hora de trabajar. Además no me gustaba mucho porque pulseview falla bastante, al menos es mi experiencia y cuando estás muchas horas trabajando con ellos puede llegar a ser desesperante.

Ahora mismo lo estoy integrando en el terminal serie, mi idea es que este terminal de Icestudio se vuelva una herramienta potente, en breve os lo voy a lanzar con las herramientas que he estado desarrollando durante el ADC y entre ellas este analizador integrado.

En este camino estuve investigando porque el volcar a disco y luego abrir con otra aplicación externa es  farragoso (aunque esa opción siempre estará) y he estado probando varias alternativas para tener un visualizador integrado de forma que sea muy cómodo trabajar teniendo todo en el mismo interfaz.

Os cuento a ver si veis alguno más interesante que otro, los tengo ya funcionales pero aun no son muy estables, pero mi idea es liberarlo en breve y que podáis jugar con ello:

https://wavedrom.com/tutorial.html no sé si lo conocéis pero es una aplicación muy interesante (a mi me recuerda a latex y las matemáticas) permite con texto renderizar cronogramas muy interesantes.  Aquí estoy probando a ver si consigo que puedas navegar en el cronograma, con cambios de escala, hacer mediciones, etc porque inicialmente está planteado para renderizados estáticos.

- https://github.com/wavedrom/vcdrom.  este es un framework para interpretar el formato vcd, esto es interesante porque al poder exportar a vcd lo podemos abrir en gtkwave o en lo que sea que lo soporte y con esto integrado lo podemos visualizar en tiempo real sin salir de icestudio que para un flujo de trabajo continuo es más que interesante , aquí tenéis un ejemplo con datos de demo https://vc.drom.io/?github=dpretet/vcd/master/test1.vcd

Lo que no me gusta mucho de esto es que el proyecto parece medio abandonado y al usarlo es algo tosco (y mi equipo se sobrecarga bastante cosa que no me gusta porque es potente).

- Y esta es la última opción que estoy evaluando https://gitlab.com/surfer-project/surfer aquí lo podéis usar con algún vcd que tengáis https://app.surfer-project.org/ es la misma filosofía que el anterior pero por contra se les ve bastante activos y por cierto tienen clientes nativos (para linux creo que tiene repositorio apt). y la verdad va bastante bien (al abrir la última url en medio hay un enlace para cargar un testbench de prueba si no tenéis un vcd a mano).

Ya me diréis cómo lo veis.

¡Un abrazo!


Jesus Arias

unread,
Feb 15, 2024, 5:57:17 PMFeb 15
to FPGAwars: explorando el lado libre
Hola,
Para visualizar las capturas uso una aplicación para Linux/SDL hecha a medida y bastante chapucera. Lo de convertir los datos a VCD ha sido un añadido reciente.
lanal2.gif
Inicialmente las capturas las hacía con un micro ARM7TDMI LPC2103 y no lograba pasar de los 3.9MS/s. Luego en el TFG pasamos a la FPGA y multiplicamos la frecuencia de muestreo por 20. En la imagen tenemos los pines D+ y D- de un bus USB de 12Mbit/s capturados con una ICESTICK y 96MHz de reloj.  
El buffer circular puede ser útil si las señales a capturar son lentas. Lo cierto es que no me lo planteé porque en el micro era prohibitivo comprobar los límites del buffer, y en la FPGA simplemente replicamos el comportamiento del ARM.
La aplicación del PC deja mucho que desear, así que sería interesante tener una interfaz con GTKwave, o mejor aún Pulseview.

charli va

unread,
Feb 16, 2024, 1:47:02 AMFeb 16
to fpga-wars-explora...@googlegroups.com

Buenas Jesús!!

La verdad que me ha parecido un grandisimo trabajo, la interfaz que hicisteis tiene un gran mérito.

Un enorme punto de partida gracias por toda la info del proyecto vamos a ver a dónde nos lleva esto… se viene analizador lógico!


Democrito

unread,
Feb 18, 2024, 12:04:10 PMFeb 18
to FPGAwars: explorando el lado libre
Tengo por aquí alguna FPGA de esas pequeñas y que nunca uso (sólo para hacer primeras pruebas de funcionamiento y poco más). Si este proyecto sigue adelante usaría una de ellas como analizador lógico exclusivo. Sé que la propia FPGA de trabajo se podría analizar a ella misma, pero estoy acostumbrado a trabajar en este sentido por separado.

Me encanta Pulseview, quizás es porque es lo que mejor conozco. Sobre el analizador chino ultra-barato lo cierto es que para lo que vale va estupendo, pero cuando se trabaja con frecuencias relativamente altas.... ahí he de usar trucos para que pueda pillar las señales correctamente, como por ejemplo usar un reloj-temporizador a frecuencias más bajas, y claro, si existe algo que resuelva ese "pequeño problema", pues está genial, y encima, se puede estudiar su funcionamiento porque es libre.

Os sigo de cerca y me encanta todo lo que va sacando Jesús. Siempre son proyectos muy interesantes e inspiradores (y documentados!).

Os ruego mil disculpas si "aparento" inactivo o alejado, pero llevo un tiempo con una situación personal externa muy absorbente y promete durar un tiempo más.

Un fuerte abrazo a todos!

charli va

unread,
Feb 18, 2024, 12:55:52 PMFeb 18
to fpga-wars-explora...@googlegroups.com
No te preocupes Demócrito! lo primero las cosas realmente importantes y luego lo demás.

Esta semana promete ser divertida en cuanto empecemos a lanzar el analizador. Antes os quiero dejar publicado todo el tema del ADC que lo estoy "empaquetando y poniéndole el lazo rojo" y os lo dejaré lanzado en los próximos días

Un abrazo!

--
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.
Reply all
Reply to author
Forward
0 new messages