Además he visto que la comunidad ha empezado a desarrollar en JavaScript visualizadores del rutado de las FPGAs (https://knielsen.github.io/ice40_viewer/ice40_viewer.html), compresores de bajo nivel, generador de diagramas de señales (https://github.com/drom/wavedrom), ...
Como véis hay muchas cosas interesantes por hacer. Lo bueno de la orientación modular es que se simplifica el desarrollo ya que se pueden generar componentes independientes en paralelo y posteriormente combinarlos en una aplicación de usuario.
Si os interesa alguno de estos campos os animo a investigarlo y compartir el conocimiento aprendido en forma de Aprendizaje colectivo.
Un saludo.
¿Estoy diciendo que Icestudio es una mala herramienta? ¡¡¡PARA NADA!!! Es un IDE que creo que tiene un nicho muy claro, que es el de aprendizaje y la iniciación. Tiene otro punto buenísimo a su favor: si se quiere hacer una versión web, ya tiene prácticamente todo el desarrollo hecho, evitando instalaciones y la pérdida de tiempo que eso conlleva por ejemplo para un taller (que no así en rendimiento).
Resumiendo, creo que en mi modesta opinión icestudio mola 1000, pero no podemos verlo como una herramienta profesional ni creo que sus creadores se lo hayan planteado así.
Espero que nadie se ofenda por mi comentario y en especial Jesus. Creo que el trabajo que estáis haciendo es brutal y encima desinteresadamente. Es muy fácil criticar sin pringarse las manos, y para nada es una crítica o al menos no destructiva.
Saludos
--
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-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/a43d43ae-0325-4bb9-bd60-b86985025857%40googlegroups.com.
Con respecto a lo que dices de icestudio, sinceramente es que creo que hay que verlo como un IDE de aprendizaje, "de juguete", o como se quiera decir. Es similar al IDE de Arduino, una herramienta educativa. Pero como herramienta "seria" / profesional, yo no la veo ni creo que sea el enfoque de los desarrolladores (que me corrija Jesus si me equivoco).
Me explico:
- Uno de los mayores problemas de las herramientas profesionales es lo sumamente lentas que son.
- Otro de los problemas que tienen las herramientas profesionales es lo pesadas que son (el webpack de Vivado una vez instalado creo que se quedan en +10Gb).
- Icestudio está basado en tecnologías web para escritorio, que si por algo se caracterizan es por el mal rendimiento que dan (veo que tu eres otro de los que lo han sufrido con Atom).
- En cuanto tienes un equipo escaso (pongamos un ordenador de colegio, o viejo, o una Raspberry Pi), todas estas herramientas son un dolor.
- Si le añades que en cuanto lo exprimas con diseños gordos el rendimiento va a caer en picado, no lo hacen quizás una de las mejores elecciones para el IDE como tal crezca.
¿Estoy diciendo que Icestudio es una mala herramienta? ¡¡¡PARA NADA!!! Es un IDE que creo que tiene un nicho muy claro, que es el de aprendizaje y la iniciación.
Tiene otro punto buenísimo a su favor: si se quiere hacer una versión web, ya tiene prácticamente todo el desarrollo hecho, evitando instalaciones y la pérdida de tiempo que eso conlleva por ejemplo para un taller (que no así en rendimiento).
Resumiendo, creo que en mi modesta opinión icestudio mola 1000, pero no podemos verlo como una herramienta profesional ni creo que sus creadores se lo hayan planteado así.
Lo primero, dar las gracias a Unai por compartir!
He encontrado muchisima informacion en tu correo que me ha resultado super interesante. Gracias!
Despues, he hecho una prueba de estress en icestudio muy sencilla que creo puede ser interesante. Basicamente lo que he hecho es meter 1000 puertas AND en un diagrama. No las he conectado por que me he hecho un script super rapido en 5 minutos para generar un fichero .ice con esta informacion y meter cables me complicaba el tema... Os adjunto el fichero por si quereis probar vosotros mismos.
Las pruebas las he hecho en un Windows 7 64bits, el ordenador es un portatil i5 normalito del curro.
Sinceramente no creo que haga falta tener tantos elementos jamas dentro de un diagrama, ya que icestudio te permite diseñar modulos independientes y luego añadirlos como bloque (incluso anidados uno dentro de otro!) con lo que no creo que visualmente tengas necesidas de tener de golpe todos los elementos en pantalla...
Siento no explarme más pero el tiempo apremia.
Un saludo.
- Actualmente el formato ice es el único que maneja Icestudio. El motivo de su existencia es principalmente la simplicidad. Aunque se podrían añadir nuevos formatos más complejos, como el que planteas, (https://github.com/FPGAwars/icestudio/blob/develop/app/scripts/services/project.js), el enfoque que quiero darle al desarrollo a partir de ahora es que sea todavía más modular, es decir, desarrollar módulos o funciones independientes que realicen funciones concretas y en un futuro integrarlo todo en un mismo IDE.
- Por ejemplo, en el formato que planteas se podría implementar ya un "compilador" o "traductor" a Verilog y PCF para integrarlo con Icestorm
- o por ejemplo un generador de dot para visualizarlo con graphviz, etc (Os recomendaría probar con JavaScript, o C/C++). Este formato tiene conceptos interesantes,
- un comentario que haría es que en JSON generalmente se suelen utilizar objetos en vez de listas u objetos con "." por varios motivos, uno de ellos es la claridad y simplicidad en la descripción e implementación, por ejemplo queda más claro acceder al elemento "size.width" que al elemento "size[0]".
2017-03-03, 9:31, Jesús Arroyo:
- ¿Qué aporta? Icestudio es una herramienta experimental y aporta por lo tanto resultados de experimentos. Concretamente hemos visto que permite que la gente que está empezando pierda el miedo al hardware y sea capaz de crear electrónica digital real de forma intuitiva. Los perfiles de usuarios son muy variados, pero todos son capaces de realizar diseños y entenderlos, por lo tanto el enfoque del IDE gráfico es muy positivo.
- También permite crear bloques todo lo complejos que quieras (puedes incluir ficheros .v completos) por lo que resulta sencillo encapsular funcionalidad como el bloque ServoBit, Click, etc.
- También ha resultado muy útil para presentar todo el stack de herramientas de FPGAs libres, por ejemplo con charlas, ya que se ve más claramente el potencial que simplemente ejecutando comandos de consola, pero el que sabe más entiende que puede acceder a cualquier herramienta del stack.
- Conclusión, estamos viendo cómo un modesto proyecto ha conseguido unificar y motivar a usuarios, educadores, etc en el desarrollo de diseños digitales libres, pero como siempre digo, aún queda mucho por hacer :)
- ¿Integración con la comunidad? Icestudio ha nacido en la comunidad libre, y de hecho no sería lo que es ahora sin muchas aportaciones y contribuciones, tanto de ideas y conceptos como código, incluso traducciones de la propia comunidad.
- ¿Decisiones de diseño? como comento, quiero que la nueva funcionalidad se realice de forma modular, es decir, animar a la gente a que proponga e implemente y experimente con cuestiones concretas que posteriormente podrán ser maduradas e integradas y por lo tanto que se tomen decisiones de forma descentralizada.
- ¿Simulación? es importante pero, en mi opinión, hay que replantear la interfaz y experimentar formas gráficas más intuitivas que posteriormente generen testbenches compatibles con Icestorm. Hay que reinventar el enfoque, pero el concepto sería el mismo: un editor gráfico que genere ficheros *_tb.v.