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