Nombre de "FPGAs libres"

508 views
Skip to first unread message

comp...@gmail.com

unread,
Aug 23, 2017, 9:57:42 AM8/23/17
to FPGAwars: explorando el lado libre
Hola a todos

En primer lugar felicitar a todos por esta estupenda iniciativa. Las FPGAs son un recurso tecnológico con un gran potencial, y poder acceder a su programación de forma sencilla, mediante un toolchain de software libre me parece absolutamente genial.

Mi reflexión viene de la sobre la propia expresión "FPGAs libres". Esto igual es un aspecto menor, pero poner el nombre preciso de las cosas y proyectos que hacemos se me antoja realmente importante.

En realidad creo que "FPGAs libres" es una expresión que lleva al error, principalmente por que las FPGAs, los propios chips, no son libres (por ahora), son dispositivos electrónicos propietarios y protegidos.

Yo creo que una forma más precisa de reflejar la realidad de este magnífico proyecto podría ser "Software libre para FPGAs" o algo parecido.

Insisto que igual puede parecer algo menor esta puntualización, y seguro que "FPGAs libres" suena más vistoso, llamativo o convincente. Pero la experiencia me demuestra que a la larga, estas imprecisiones pueden producir más inconvenientes, que ventajas.

Pero vamos, es solo una opinión :)

Un saludo

Eduardo

Juan Gonzalez Gomez

unread,
Aug 23, 2017, 11:00:29 AM8/23/17
to FPGA-WARS: explorando el lado libre
Efectivamente el término libre aquí no se refiere a que el chip sea libre, si no más bien a una característica que tienen las FPGAs que llamamos libres: Todos los detalles de su información interna, a nivel de electrónica digital, está documentada y disponible. Usando esa información, se pueden, por primera vez en 30 años, crear toolchains libres: El formato del bitstream y el significdo de todos sus bits de configuración están disponibles

Esta información no la ha proporcionado el fabricante. Era algo que desde se venía piediendo desde el principio, pero que el fabricante nunca dió. Hemos tenido que esperar 30 años hasta que se ha conseguido esta documentación, gracias a Clifford wolf con el proyecto Icestorm. Es un hito histórico

Para diferenciar las FPGAs tradicionales de las nuevas cuya información está disponible, usamos el término FPGAs libres.

El software libre que existe (hay muchas capas y muchos niveles) no se puede migrar a nuevas FPGAs si el fabricante no da la información. Es imposible. O si alguien hace ingeniería inversa, que es lo que se está haciendo. Por eso, el disponer de algunas FPGAs que sí tienen estas información disponible, creo conveniente seguir llamándolas FPGAs libres, porque son muy diferentes a las que no lo tienen publicado.

¿Qué pasará cuando haya FPGAs con el chip libre? Bien, ojalá que esto ocurra. En ese caso buscaremos nombres para bautizarlas

En cualquier caso, el salto entre FPGAs sin información (las tradicionales), a FPGAs con toda la información disponible es tan brutal que en mi opinión sí son merecedoras del término libre. Y a nivel práctico nos permiten diferenciar rápidamente entre unas FPGAs y otras

No considero que sea un termino que lleve al error. Cuando hablamos de que arduino es hardware libre, nos quedamos a nivel de información. Ninguno de los chips que lo constituyen son libres, pero tenemos disponible toda la información del esquema, el PCB, software, etc... para entenderlo, mejorarlo compartirlo... Igual con las FPGAs libres. Pero no con las FPGAs tradicionales

Saludos, 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-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/3b55649c-6f1b-4835-8e4a-6fbe5b9809fa%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Juan José Luna Espinosa

unread,
Aug 24, 2017, 5:57:18 AM8/24/17
to fpga-wars-explora...@googlegroups.com
Plas plas plas!

También se las podría llamar "liberadas" pero no queda tan bien.

Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-lib...@googlegroups.com.

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

Salvador Eduardo Tropea

unread,
Aug 24, 2017, 7:26:44 AM8/24/17
to fpga-wars-explora...@googlegroups.com
¡Hola!

Entiendo que el sentido del término es el mismo que en el caso del
Software Libre. Richard M. Stallman siempre dice que el S.L. no es
software que sea libre en si mismo, al fin y al cabo es un objeto, sino
que es software que le da libertades al que lo usa (ver
https://www.gnu.org/philosophy/free-sw.es.html )
En este sentido las "FPGAs Libres" se pueden entender como FPGAs que le
otorgan libertades al que las usa. Quizás no tantas libertades como el
S.L. pero al fin de cuentas el hardware es tangible, no simples bits de
información.
En 2005 yo elegí el término "FPGA Libre" para el proyecto:
http://fpgalibre.sf.net/
Esto fue 10 años antes que apareciera un toolchain libre. Pero la idea
era la misma: que la gente pudiera adquirir libertades, entre ellas la
de migrar fácilmente sus desarrollos a las partes de otros fabricantes.
De todas maneras mis charlas suelen aclarar "Software Libre para el
desarrollo con FPGAs" ;-)

Saludos, Salvador

El 23/08/17 a las 10:57, comp...@gmail.com escribió:
> --
> 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
> <mailto:fpga-wars-explorando-el...@googlegroups.com>.
> Para publicar en este grupo, envía un correo electrónico a
> fpga-wars-explora...@googlegroups.com
> <mailto:fpga-wars-explora...@googlegroups.com>.
> <https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/3b55649c-6f1b-4835-8e4a-6fbe5b9809fa%40googlegroups.com?utm_medium=email&utm_source=footer>.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.


--
Ing. Salvador Eduardo Tropea http://utic.inti.gob.ar/
INTI - Micro y Nanoelectrónica (CMNB) http://www.inti.gob.ar/
Unidad Técnica Sistemas Inteligentes Av. General Paz 5445
Tel: (+54 11) 4724 6300 ext. 6919 San Martín - B1650KNA
FAX: (+54 11) 4754 5194 Buenos Aires * Argentina




Joan Martinez

unread,
Aug 27, 2017, 10:40:25 AM8/27/17
to FPGAwars: explorando el lado libre
Hola buenas tardes. Me ha dado curiosidad en leer este hilo, pero todavía no entiendo, el significado de fpga's libres. Entiendo lo de "libre" porque el propio usuario puede llegar hacer soft nuevo para una fpga en concreto? O porque ahora se pueden "programar" sin restricciones, como se podía tener antes? Y lo de "libre" solo de da por el chip LATTICE que lleva la Izezum Alhambra?

Juan Gonzalez Gomez

unread,
Aug 27, 2017, 11:24:48 AM8/27/17
to FPGA-WARS: explorando el lado libre
Hola Joan,

Son libres porque está disponible toda la información de sus detalles internos. A nivel práctico, esto permite que aparezcan nuevas herramientas para usar la FPGA con usos no previstos por el fabricante. Con las tradicionales sólo se puede hacer lo que el software del fabricante te permite. Con las libres cualquier cosa que se le ocurra a cualquier desarrollador. Por ejemplo, ahora se puede sintetizar hardware en FPGAs libres desde una raspberry pi. Con ninguna de las tradicionales se puede hacer, porque no daban soporte para arm.

Actualmente las únicas FPGAs libres que hay son la familia Ice40 de lattice, y las greenpack de Silego (soporte parcial todavía). La comunidad está haciendo ingenieria inversa de más modelos de FPGAs, para que cada vez haya más FPGAs libres, pero es un proceso lento.

Saludos, Obijuan


El 27 de agosto de 2017, 16:40, Joan Martinez <joanmc...@gmail.com> escribió:
Hola buenas tardes. Me ha dado curiosidad en leer este hilo, pero todavía no entiendo, el significado de fpga's libres. Entiendo lo de "libre" porque el propio usuario puede llegar hacer soft nuevo para una fpga en concreto? O porque ahora se pueden "programar" sin restricciones, como se podía tener antes? Y lo de "libre" solo de da por el chip LATTICE que lleva la Izezum Alhambra?
--
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 una entrada en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.

1138-4EB

unread,
Dec 30, 2017, 8:03:16 PM12/30/17
to FPGAwars: explorando el lado libre
El domingo, 27 de agosto de 2017, 16:40:25 (UTC+2), Joan Martinez escribió:
Hola buenas tardes. Me ha dado curiosidad en leer este hilo, pero todavía no entiendo, el significado de fpga's libres. Entiendo lo de "libre" porque el propio usuario puede llegar hacer soft nuevo para una fpga en concreto? O porque ahora se pueden "programar" sin restricciones, como se podía tener antes? Y lo de "libre" solo de da por el chip LATTICE que lleva la Izezum Alhambra?

Hola Joan,

La elección de 'FPGAs libres', en el sentido utilizado en los diferentes espacios del proyecto FPGAwars, es conflictiva. Por ello, quisiera aprovechar esta réplica para exponer qué era el hardware libre y cuáles eran los problemas a los que se enfrentaba la comunidad antes del boom de Arduino. Hago referencia a Arduino, pues es evidente que FPGAwars y la Alhambra imitan el patrón.

Para entender el contexto es necesario conocer qué es el software libre. No el que me encuentro en un pendrive en la puerta de una gran empresa de software y, como veo que es código fuente, digo que tengo software libre. Me refiero a lo que la comunidad internacional entiende por software libre:

https://es.wikipedia.org/wiki/Software_libre
El término software libre refiere el conjunto de software (programa informático) que por elección manifiesta de su autor, puede ser copiado, estudiado, modificado, utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras.

https://www.gnu.org/philosophy/free-sw.es.html
https://help.github.com/articles/licensing-a-repository/
http://hispalinux.es/softwarelibre
https://www.fsf.org/es/recursos/que-es-el-software-libre

El software libre, como movimiento, empezó treinta años antes que el hardware libre por un motivo muy sencillo: copiar y distribuir software es gratis. Siempre ha sido extremadamente barato en comparación con duplicar cualquier hardware (desde un PC hasta un tomate). El software es información, que se almacena eléctricamente; y los electrones son más fáciles de obtener en ingentes cantidades que el silicio. De hecho, cuando el software libre empezó era difícilmente imaginable que "mucha" gente "fabricara" ordenadores. Asumiendo que era un producto a obtener de un agente externo tanto al programador como al usuario, tenía poco sentido incluirlo en un contrato entre dos partes.

Porque, no olvidemos que el 'software libre' no es más que la particularización de un contrato legal entre dos entes: el autor de un producto y el usuario del mismo. De hecho, el software libre hoy en día sólo se entiende como el titular del copyright (https://es.wikipedia.org/wiki/Derecho_de_autor) de una obra ofreciendo por defecto unas condiciones no restrictivas. Es muy importante entender esto, porque quiere decir que el movimiento del software libre lo impulsaron desarrolladores (titulares de derechos de copyright) que decidieron "ceder" sin requerir pregunta previa. Es importante entender también que el coste económico para el desarrollador es cero. Más importante aún, que un desarrollador puede decidir distribuir como software libre una alternativa a un producto comercial, mejorándolo en prestaciones. No menos reseñable resulta que de la mayoría de grandes proyectos de software libre lo relevante es que son grandes proyectos, siendo la característica de ser libres una más, pero no la principal.

Como fabricar un chip son muchos años de trabajo y una inversión millonaria, tradicionalmente a ningún fabricante de hardware le ha parecido conveniente "ceder" la posibilidad de que cualquiera pueda copiar el diseño, estudiarlo, modificarlo y utilizarlo libremente con cualquier fin. Además, cuando otro fabricante ha desarrollado un producto con mejores características, tampoco ha visto conveniente liberarlo. Cuestiones económicas que tampoco entiendo muy bien.

---

Por otro lado, el software libre fue muy minoritario durante muchos años. Pero durante los noventa y primeros de los 2000, con la web 2.0 y todo aquello, tuvo un chute importante. Tanto es así, que en algún buen departamento de marketing se sacaron 'Open Source' de la manga. En lengua cervantina significa 'se mira, pero no se toca'. Total, en una sociedad donde al anti-copyright está a la orden del día, qué más da. Pues tuvo su efecto. Y tanto que lo tuvo: https://trends.google.es/trends/explore?date=all&q=software%20libre,free%20software,open%20source (open source es ascendente hasta ene 2006 aprox y software libre claramente descendente).

Nótese que Richard Stallman, el "padre" del software libre, ya avisó en 1998: https://www.gnu.org/philosophy/free-software-for-freedom.es.html De hecho, sugiero leer el original https://www.gnu.org/philosophy/open-source-misses-the-point.html Nótese también que el "open source" ha sufrido una evolución hasta lo que hoy entendemos como tal: https://es.wikipedia.org/wiki/Software_libre_y_de_c%C3%B3digo_abierto Ver también https://es.wikipedia.org/wiki/Copyleft

---

Relacionado con lo anterior, otro problema que ha afectado al desarrollo de una comunidad de hardware libre es la definición de 'hardware'. No es extraño encontrar que en las aulas se explica que el software son una serie de instrucciones/órdenes/operaciones que se realizan típicamente de forma secuencial... El 'hardware' es lo que no es software. Claro, en una carrera de informática o electrónica se sobreentiende que todo lo demás son ordenadores, osciloscopios, sensores, automatismos... todo lo que lleve al menos un circuito impreso. Pero a mediados de los 2000, con el maremagnum del software free, libre, open, etc. surgieron las RepRap. Y claro, el diseño de las impresoras en sí, a excepción de los chips y motores, se podía copiar, distribuir, estudiar, modificar, utilizar libremente. Los motores no lo eran, pero los esquemas de un motor son primarios (para que sea funcional). Por lo tanto, como sucediera con el software libre, desde el punto de vista de un mecánico "todo" el hardware era libre en la impresora. Debería haberse considerado "hardware con documentación libre". Pero era razonable.

Y ahí explotó. Con los "makers" y las impresoras 3D, empezaron a surgir todo tipo de prototipos y productos, algunos sin ningún PCB ni componente electrónico, que se llamaban hardware libre porque eran "productos creados dentro del movimiento libre". Si llamamos 'hardware' a todo lo que no es 'software', pues vale, qué decir.

Llega Arduino, que pese a ser un producto electrónico con componentes no libres (porque no puede ser copiado, estudiado ni modificado), tiene documentación para entender los esquemas del PCB. Esquemas que lo eran todo para el diseño hardware durante el siglo pasado. El secreto mejor guardado de muchas empresas eran esos esquemas listos para fabricar, porque todos los componentes estaban estandarizados. Además, visualmente es lo que más ocupa, luego es "mucho" desde el punto de vista de quien no entiende que sólo son conexiones, y que la "magia" está en las cucarachas. Ya tenemos el cóctel preparado. Decimos que Arduino es hardware libre, y si cuela, cuela. 'Total, nadie va a tener dinero para hacer hardware libre de verdad', debieron pensar. Más detalles en https://groups.google.com/d/msg/fpga-wars-explorando-el-lado-libre/wNpm4r7efHI/97QVTbA_AQAJ

De ahí que incluso en la wikipedia se indique:

https://es.wikipedia.org/wiki/Hardware_libre
Se llama hardware libre, hardware de código abierto, electrónica libre o máquinas libres a aquellos dispositivos de hardware cuyas especificaciones y diagramas esquemáticos son de acceso público, ya sea bajo algún tipo de pago, o de forma gratuita. La filosofía del software libre es aplicable a la del hardware libre, y por eso forma parte de la cultura libre. Un ejemplo de hardware libre es la arquitectura UltraSparc cuyas especificaciones están disponibles bajo una licencia libre.
Debido a que la naturaleza del hardware es diferente a la del software, y que el concepto de hardware libre es relativamente nuevo, aún no ha surgido una definición exacta del término.
Dado que el hardware tiene asociados a él costos variables directos, ninguna definición de software libre se puede aplicar directamente sin modificación. En cambio, el término hardware libre se ha usado principalmente para reflejar el uso del software libre con el hardware y el lanzamiento libre de la información con respecto al hardware, a menudo incluyendo el lanzamiento de los diagramas esquemáticos, diseños, tamaños y otra información acerca del hardware. De todos modos, incluye el diseño del hardware y la distribución de los elementos en la tarjeta madre.

Nótese que existe el equivalente al software libre en hardware: descripciones completas de chips que cualquiera puede copiar, estudiar y modificar. De hecho, existía cuando empezó Arduino. Pero entraban en la categoría que denominamos IP core:

https://es.wikipedia.org/wiki/Hardware_libre
Con el auge de los dispositivos de lógica programable reconfigurables, el compartir los diseños lógicos es también una práctica de hardware libre. En vez de compartir los diagramas esquemáticos, el código HDL es compartido. Esto difiere del software libre. Las descripciones HDL son usadas comúnmente para instalar sistemas SoC en FPGA o directamente en diseños ASIC. Los módulos HDL, cuando se distribuyen, son llamados semiconductor intellectual property cores, o núcleos IP.

No es casual que el estándar para compartir diseños hardware hoy en día se denomine 'intellectual property (IP) cores'. Por suerte, estamos avanzando en este sentido, y en no mucho tiempo puede que estemos hablando de variantes/evoluciones de Arduino un poco más libres: https://riscv.org

---

Hecha la exposición anterior, FPGAwars es software libre (Icestudio + apio + toolchain), es hardware libre (Alhambra, según la interpretación laxa), tiene documentación libre. También, es un proyecto pretendidamente libre, como sinónimo de abierto y colaborativo. Podríamos decir que entra dentro del movimiento de la cultura libre.

El conflicto está en el uso del término 'FPGA' asociado a 'libre'. No se comercializa ninguna FPGA libre, sea cual sea la interpretación de 'libre' de todas las referidas anteriormente; que son las que la comunidad internacional entiende en relación a las licencias de uso entre el titular del copyright y el usuario. Por lo tanto, al utilizar 'FPGA libre' se está imitando de forma aparentemente tendenciosa la estrategia de Arduino: se presenta algo conocido y trillado en nichos, pero ignorado por el público en general, como una novedad revolucionaria. Se hace, además, añadiendo múltiples capas relativamente complejas de software, para ocultar al usuario detalles críticos del sistema. Finalmente, se aplica un reduccionismo voraz, ignorando cualquier referencia a contenido que no concuerde con el discurso creado.

Todo lo anterior es legítimo. No quiero poner en duda en ningún momento el aporte de FPGAwars a la comunidad de habla hispana. Naturalmente, tengo mis reservas con respecto a consideraciones puramente técnicas. Mas, en lo que respecta al esfuerzo por la divulgación del uso de las FPGAs, todas mis alabanzas.

Sin embargo, viniendo de un entorno universitario, y apoyándose en centros universitarios y estudiantes para dar a conocer unos productos concretos, chirría sobremanera el poco rigor de algunas afirmaciones, y la omisión de referencias notablemente más relevantes en el contexto de las "FPGAs libres". Concretamente, antes de icestorm y de FPGAwars, existían IP cores en lenguajes HDL que permitirían a alguien con presupuesto suficiente fabricar una FPGA. No es casualidad que nadie hubiera utilizado el término 'free FPGA', 'libre FPGA' u 'open FPGA' antes, sin añadir 'tool(chain)', 'flow', 'board', 'source'... a modo de especificación:

- *a fully open source Verilog-to-Bitstream flow for iCE40 FPGAs* www.clifford.at/icestorm/
- *Papilio is an open-source hardware and software project that puts the awesome power of an FPGA into your creative arsenal.* papilio.cc
- *Open-Source tools for FPGA development* events.linuxfoundation.org/sites/events/files/slides/lcj-2016.pdf
- wiki.debian.org/FPGA/
- *open FPGA bitstream documentation*  element14.com/community/thread/43876/l/project-icestorm-fully-open-source-fpga-tools-for-lattice-ice40?displayFullThread=true
- *completely Open Source development tool chain for FPGAs* hackaday.com/2017/08/28/retrocomputing-with-open-source-fpgas/
- *iCE40 is the first FPGA family with completely Free and Open source software tools* https://olimex.wordpress.com/2016/06/30/getting-started-with-fpga-with-only-free-and-open-source-software-and-hardware-tools-tutorial/

Sí que hay un proyecto que utiliza el término "Open Source FPGA" y es debido a que el producto concuerda con lo que la comunidad entiende por hardware abierto/libre:

- Archipelago - An Open Source FPGA with Toolflow Support: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-43.html
- https://github.com/haojunliu/OpenFPGA/blob/master/thesis/thesis.pdf
- https://github.com/haojunliu/OpenFPGA
- https://www.reddit.com/r/FPGA/comments/5ssn4k/yes_there_is_an_open_source_fpga_call_it/ (donde se menciona explicitamente la icezum)

Es cierto que no hay ningún dispositivo disponible comercialmente. Pero existe el proyecto, no ha lugar a ambigüedad, y es anterior a la acepción que FPGAwars intenta justificar.

De hecho, no es ninguna casualidad que el autor estudiara en Toronto, ya que Verilog-to-Routing (VTR) es un proyecto de reconocimiento internacional para la investigación sobre arquitecturas FPGA:

- https://github.com/verilog-to-routing/vtr-verilog-to-routing
- https://verilogtorouting.org/
- https://people.kth.se/~frobino/foss/presentation.pdf

---
 
Obijuan:
Efectivamente el término libre aquí no se refiere a que el chip sea libre, si no más bien a una característica que tienen las FPGAs que llamamos libres: Todos los detalles de su información interna, a nivel de electrónica digital, está documentada y disponible.
Actualmente las únicas FPGAs libres que hay son la familia Ice40 de lattice

No todos los detalles de su información interna están disponibles. Se ha conseguido, mediante ingeniería inversa, obtener información suficiente sobre algunos de los detalles internos, como para permitir usar las funcionalidades más generales. Así, la documentación también es parcial.

Concretamente, a día de hoy, los autores (http://www.clifford.at/icestorm) indican que *We are pretty confident that we have the 1K and 8K devices completely reverse engineered*. Sobre los modelos UltraPlus: *Currently icestorm and arachne-pnr support the DSPs (except for cascading), SPRAM , internal oscillators and constant current LED drivers. Work to support the remaining features is underway*.

Al mismo tiempo se especifica que *Current work focuses on further improving our timing analysis flow*. No es casualidad. Los modelos temporales precisos son recursos muy valiosos para las empresas, ya que es la información que necesita una herramienta de síntesis para hacer bien su tarea (https://www.reddit.com/r/ReverseEngineering/comments/3uzixp/why_fpga_manufacturers_keep_their_bitstream/cxjq6x8/ y https://www.reddit.com/r/FPGA/comments/32ex67/why_is_fpga_development_so_bad_a_rant/cqc2b9y/). En otras palabras, el flujo de síntesis de icestorm es sabidamente no óptimo. Pero es lo mejor y lo único que hay disponible actualmente de principio a fin.

Obijuan:

Usando esa información, se pueden, por primera vez en 30 años, crear toolchains libres:

Toolchains libres se habían creado antes:

- La tesis de Hao Jun Liu es de 2013.
- http://ieeexplore.ieee.org/document/6339165/
- Presentación de 2011 *How to Build an Open Source FPGA Toolchain*: https://www.ohwr.org/attachments/821/sebastien.pdf
- http://opencircuitdesign.com/qflow/

Obijuan:

El formato del bitstream y el significdo de todos sus bits de configuración están disponibles

En la página de icestorm: *Note: The format itself seems to be very flexible. At the moment it is unclear what the FPGA devices will do when presented with a bitstream that use the commands in a different way than the bitstreams generated by the lattice tools*.

Obijuan:

Esta información no la ha proporcionado el fabricante. Era algo que desde se venía piediendo desde el principio, pero que el fabricante nunca dió. Hemos tenido que esperar 30 años hasta que se ha conseguido esta documentación, gracias a Clifford wolf con el proyecto Icestorm. Es un hito histórico

El fabricante, titular de los derechos de autor no ha proporcionado explícitamente ninguna información. Salvo que las patentes hayan expirado, Lattice puede en cualquier momento emprender acciones legales contra icestorm y requerir que se retire parte o todo el contenido. Cuestión que ha sucedido anteriormente con otros fabricantes y por la que es difícil encontrar referencias anteriores. Por poner un ejemplo, buscando *ulogic.org/trac bitstream* en Google, obtenemos:

- Open-Source FPGA Bitstream Generation - VTechWorks - Virginia Tech: https://vtechworks.lib.vt.edu/bitstream/handle/10919/51836/Soni_RK_T_2013.pdf
- https://pdfs.semanticscholar.org/b3b1/7f941f8f12ef3b3f848dd527a967c99756ad.pdf
- Ref 11 en https://link.springer.com/article/10.1007/s11432-011-4396-3. La página web fue eliminada en 2010.

Algunas referencias se remontan a 2004, más de una década antes del trabajo de Clifford.

En este sentido, en laboratorios de grupos de investigación y empresas de todo el mundo hay toolchains ""libres"" (interpretado como 'característica' por haber sido extraida la información), que no están disponibles públicamente por el motivo anterior. Se publican habitualmente resultados que requieren la manipulación de los bitstreams con estas herramientas, pero se omite explicar cómo se ha realizado ese paso.

Personalmente, estoy convencido de que Lattice no ha tomado ninguna medida porque no sacan ningún beneficio del software (a diferencia de otros fabricantes). Por ello, en lo que les afecta, que es la venta de placas y chips, les viene de maravilla el hype.

Obijuan:

Para diferenciar las FPGAs tradicionales de las nuevas cuya información está disponible, usamos el término FPGAs libres.

Está disponible la información de estas justamente porque son las más 'tradicionales' y 'viejas', es decir, simples. La primera revisión de la datasheet es de 2011. Siendo discutible el uso del término 'libre', presentar los productos de Lattice como 'nuevos' es muy complicado de encajar. La novedad está en las herramientas, no en los dispositivos.

Obijuan:

Por eso, el disponer de algunas FPGAs que sí tienen estas información disponible, creo conveniente seguir llamándolas FPGAs libres, porque son muy diferentes a las que no lo tienen publicado.

Legalmente, que es como se ha utilizado y se sigue utilizando en relación tanto al hardware como al software, no hay ninguna diferencia. Es importante subrayarlo: las 'viejas', las 'nuevas', las 'tradicionales' y 'modernas', absolutamente todas las FPGAs (y las ya no llamadas así) disponibles en el mercado son equivalentes en lo que a la libertad del usuario final genérico se requiere. Como indicaba Salvador, "Stallman siempre dice que el S.L. no es software que sea libre en si mismo, al fin y al cabo es un objeto, sino que es software que le da libertades al que lo usa".

Nótese la perversión en el hecho de asociar los dispositivos de Lattice con 'FPGA libre' y, por consiguiente, con 'software libre'. Mientras que el software libre surgió para proteger a los usuarios, 'FPGA libre' se utiliza para hacer creer a los usuarios que tienen "garantías" cuando se encuentran utilizando software, al menos, alegal.

Lo que sí es muy diferente (de hecho, es brutal), es que para algunas FPGA disponemos de toolchains libres completas, relativamente fáciles de usar y que son funcionales. Por lo tanto lo coherente con la exposición sería denominarlas 'FPGAs con toolchain libre funcional' frente a 'FPGAs que requieren al menos una herramienta no libre'. Tampoco 'liberadas' encajaría, porque i) seguiría sin ser cierto en lo que a la libertad se refiere, y ii) ya hay un caso de uso: publicar con una licencia libre una obra que previamente había sido publicada sólo con licencias no libres. Ni siquiera abiertas, ya que es necesaria la implicación del autor (Lattice) en cualquier caso.

Evidentemente, como esloganes son mucho más feos que 'FPGAs libres'. Pero creo que hay características de FPGAwars mucho más significativas que el hecho de aportar una toolchain libre. De hecho, FPGAwars reutiliza todo de otros proyectos externos y añade capas de software por encima. Entendamos, por tanto, que el objetivo es facilitar, simplificar, hacer más accesible... Diría que eso es lo que atrae a los usuarios a utilizar icestudio y apio. ¿Por qué utilizar como eslogan algo que no es especialmente meritorio en el contexto actual, en vez de subrayar el valor añadido que aportáis?

En cualquier caso, ya hay sitios de FPGAwars donde la expresión utilizada no da lugar a equivocación:

- *Exploring the open side of the FPGAs* fpgawars.github.io
- *Diseño Digital para FPGAs, con herramientas libres* https://github.com/Obijuan/open-fpga-verilog-tutorial/wiki

Obijuan:

¿Qué pasará cuando haya FPGAs con el chip libre? Bien, ojalá que esto ocurra. En ese caso buscaremos nombres para bautizarlas

Ya las hay, y las había antes de FPGAwars. No están disponibles comercialmente, pero existen. ¿Qué nombre les ponemos? ¿Cómo convencemos a todo el mundo de que en España hemos decidido que a partir de ahora 'FPGA libre'/'open FPGA' (y supongo que por extensión también 'FPGA abierta' y 'free FPGA') van a ser lo mismo (media docena de dispositivos, parte de una familia, de un solo fabricante), y que empiecen a utilizar el nuevo término para 'el resto'?

Obijuan:

En cualquier caso, el salto entre FPGAs sin información (las tradicionales), a FPGAs con toda la información disponible es tan brutal que en mi opinión sí son merecedoras del término libre. Y a nivel práctico nos permiten diferenciar rápidamente entre unas FPGAs y otras

Estamos de acuerdo en que el salto de cara al usuario inexperto es brutal. Pero más por tener un icestick por 20€ que por la toolchain. Ser libre podría ser un valor añadido si se especificara qué significa; cuestión complicada si tenemos a churras y merinas juntas.

Como experiencia de usuario, icecube es todavía notablemente superior. Para un usuario con un mínimo de experiencia, por 65-90€ hay zynqs con licencia de Vivado. Evidentemente, es necesario diferenciar al usuario que quiere aprender sobre FPGAs del que quiere cacharrear con el último juguete libre del barrio y ver de qué va el tema. La lógica reconfigurable ya es una realidad en los datacenters, en los móviles, en los coches, en los routers... y cada vez se va a extender más. Por eso, ambos perfiles me parecen igual de respetables. Estamos rompiendo parcialmente con el modelo Von-Neumann. Eso sí es histórico. Pero como en todos los cambios relevantes, no hay un solo hito.

Como he indicado, no es cierto que toda la información esté disponible. Aunque lo estuviera, eso ya tiene nombre: 'FPGA con toda la documentación libre' o 'FPGA con documentación libre'. Nótese que una FPGA puede tener toda la documentación bajo licencia libre y que el diseño de la FPGA no lo esté. Es habitual utilizar licencias diferentes para un diseño y para su documentación.

Obijuan:

No considero que sea un termino que lleve al error. Cuando hablamos de que arduino es hardware libre, nos quedamos a nivel de información. Ninguno de los chips que lo constituyen son libres, pero tenemos disponible toda la información del esquema, el PCB, software, etc... para entenderlo, mejorarlo compartirlo... Igual con las FPGAs libres. Pero no con las FPGAs tradicionales

Si sustituyes 'FPGAs' por 'Icezum' o 'placas (libres) basadas en FPGA', es equivalente a Arduino y no lleva a error. No hacerlo es equivalente a que Arduino hubiera promocionado 'uCs libres' o 'CPUs libres'.

Naturalmente, a falta de algún organismo equivalente a la FSF que se pronuncie sobre qué es hardware libre, puedes basar el nombre en la interpretación u opinión que mas se ajuste a tus objetivos. No obstante, creo muy razonable apuntar que es mejor corregir a tiempo. Si hay que inventarse un término corto y atractivo, se inventa. Si queréis que el 'gancho' siga basándose en un grupo reducido de dispositivos, seguro que hay alguna fórmula. Mas, no hacerlo es meterse en camisa de once varas, al generar mayor confusión en quienes no lo tienen claro y desconfianza en quienes saben lo que están leyendo.

---

Salvador, el uso que haces tú del término es muy diferente. Se trata del nombre de un proyecto, un entorno. Es evidente que no te refieres a un chip en concreto ni a un grupo de chips. 'FPGA Libre' incluye software, hardware, placas, tutoriales... y yo lo he interpretado siempre como una reivindicación (aunque sin símbolos de exclamación).

Saludos

Juanma Rico

unread,
Dec 31, 2017, 9:45:04 AM12/31/17
to FPGAwars: explorando el lado libre

¡Genial Unai!

Qué alegría empezar el año con texto tuyo para leer... ¡Y solo es uno de los post que has escrito estos días! jajajajajajaja
¡En el momento que escribas un libro me tengo que reencarnar tres veces para leerlo entero! jajajajajajajaja (y encantado de ello)

He hecho una lectura rápida (sin profundizar entre los enlaces que aportas, eso para una segunda lectura) y creo que no encuentro ningún "pero" a lo que escribes.
Está claro que el término es "confuso" y entre expertos como vosotros (yo no soy teleco) tendría que reflexionarse (el lenguaje es importante), pero en esta revolución (que afortunadamente estamos viviendo) todo es nuevo y confuso, hay que aprender a moverse entre esta confusión y toda aclaración siempre es poca (con lo que tu rigurosidad es siempre de agradecer y eso siempre lo he valorado).

Sin embargo, al mismo tiempo que se están definiendo los conceptos en esta revolución que vivimos, debemos ser proactivos y no dejar de utilizarlos, cuanta más gente de cualquier nivel lo utilice mejor (aunque con ello tengamos que sacrificar cierta rigurosidad), porque si no las utilizamos la tecnología acabará (como siempre) en manos de unos pocos "expertos" y con ello se terminará con la "libertad" del usuario, libertad que, por otra parte, tanto nos ha costado ganar y nos cuesta mantener (la lucha por disponer de un software verdaderamente libre nunca termina). Filosofando un poco: la libertad se gana haciendo uso de ella.

Es por eso que estoy de acuerdo contigo en que no viene mal saber en FPGAwars cuales son nuestras fuerzas y nuestra debilidad (y potenciar unas y no otras).

A mi entender (como entender mio es más que discutible, ;D ) nuestra fuerza como comunidad es bajar la barrera de entrada en el uso de las FPGA (libres, liberadas, con documentación libre, con tool-chain alegal....), facilitar su uso y comprensión para el "maker de la calle" (en el que me incluyo) y con ello, haciendo crecer la comunidad implicada, hacer crecer la libertad personal del usuario.

Esta es nuestra fortaleza y como exponente máximo de dicha fortaleza tenemos a Obijuan y sus sencillos ejemplos, juegos y microtutoriales. Esto tiene un valor enorme para hacer crecer la comunidad y lo que conlleva en libertad individual dicho crecimiento, por lo que yo le perdono (y le perdonaré siempre) su posible falta de rigurosidad (que por otra parte los usuarios de nivel básico como yo nunca apreciamos y no lo vemos como un menoscabo a lo que hemos aprendido con él), sin que con ello quede entendido que desprecio tu rigurosidad, todo lo contrario, a mi personalmente, me motiva muchísimo e imagino que a los usuarios más avanzados más aún, por lo que tenerte a ti en el grupo se puede considerar otra fortaleza más (yo encantado siempre de tus apariciones). ;)))

Por otra parte estoy de acuerdo contigo en que esas capas de software (apio, apio-ide, icestudio y demás) esconden un poco la potencia real de las FPGA (así como también, por otra parte, lo hace la propia tool-chain de icestorm), pero por otro lado, también facilitan (de alguna forma) bajar la barrera de entrada a otros usuarios que sin este software no hubieran sintetizado nunca nada en una FPGA, luego su valor tiene (y mucho) para hacer crecer la comunidad.

El problema (volvemos a mi entender) y la debilidad más clara que yo veo en el grupo (y que alguna vez he dejado entrever) es la estructura que se lleva con el desarrollo de estas capas, Jesús Arroyo es un máquina (un Ingeniero Industrial no puede decir otra cosa de otro Ingeniero Industrial... ;D) pero desgraciadamente no es un Dios, ni ubicuo, ni siempre su criterio es el acertado.... y sobre el software y sus decisiones no hay discusión, ni intención de hacer bajar la barrera de entrada para que la haya. Hay que entender que hay quién se ve más cómodo con el software que con la electrónica y no estamos utilizando su potencial de aportar a la comunidad. Creo que es una clara debilidad y que no se hace nada para remediarlo (más allá de un "no te preocupes que integro tu pull-request").

Dicho esto... seguiré releyendo tus post.
Gracias por volver a volcar tus conocimientos en este grupo.

Un saludo.
Juan Manuel Rico


1138-4EB

unread,
Dec 31, 2017, 1:43:35 PM12/31/17
to FPGAwars: explorando el lado libre
Buenas Juanma,

Un placer, como siempre, recibir una réplica tuya ;)


Está claro que el término es "confuso" y entre expertos como vosotros (yo no soy teleco) tendría que reflexionarse (el lenguaje es importante), pero en esta revolución (que afortunadamente estamos viviendo) todo es nuevo y confuso, hay que aprender a moverse entre esta confusión y toda aclaración siempre es poca (con lo que tu rigurosidad es siempre de agradecer y eso siempre lo he valorado).

La vida en sí es nueva y confusa. Por eso, nos apoyamos en nuestros mayores. Que no es más que una forma de decir que nos fiamos de quien tiene experiencia y, presumiblemente, ya ha estado allí donde queremos llegar. Suele darsela casualidad de que quienes ya han estado, no ven el camino tan nublado. En este sentido, yo no soy experto (ni teleco). Mas, he 'sufrido' la confusión de tener que licenciar el contenido que he generado. Un proyecto actual incluye software, placas hardware, chips/IP y documentación. Por eso, he tenido que buscar y leer sobre ello. Recursos que están al alcance de cualquier usuario.

Por lo tanto, esto no es un debate entre expertos; es un debate entre personas que están utilizando y generando contenido, y quieren saber qué derechos tienen y cuándo están actuando al borde de la ley. Que ciertos usuarios no presten/prestéis atención a ello... es una posición lícita. Yo tampoco leo las condiciones de uso de todos los servicios que utilizo. Sin embargo, es muy peligroso basar las decisiones en medias verdades de un tercero que no puede acreditar ningún conocimiento sobre la materia. Nótese que esto se nos aplica a mí, a Obijuan, y a cualquier otra persona sin formación legal o que no haya leído las licencias íntegras. IANAL, que se suele decir.

Con respecto a la "revolución" en sí. Es, en este contexto, un concepto tan controvertido y confuso como 'FPGA libre'. Sin embargo, como entra dentro de la épica que cada cual quiera dar a su discurso (para muestra, las múltiples campañas electorales del último lustro), no había querido profundizar en ello. Me he centrado en refutar algunas de las afirmaciones utilizadas para justificar como históricos algunos hitos. Viniendo de la academia, la ocultación aparentemente intencionada de referencias, que justamente contradicen la tesis defendida, es motivo para rechazar un contenido y poner en tela de juicio la integridad de un autor. Y es una pena, porque FPGAwars tiene muchas bondades para ser 'ensuciada'.

En otras palabras, hablar de Clifford y FPGAwars como una "revolución" y que no se encuentre en ninguna parte ni una sola referencia al 'síndrome von Neumann' (http://hartenstein.de/EIS2/) conduce indudablemente a plantearse cuál es la revolución que se supone que estamos viviendo. Este artículo (http://xputers.informatik.uni-kl.de/staff/hartenstein/lot/HartensteinWRCE06.pdf) publicado en 2006, se titula 'Why we need Reconfigurable Computing Education'. Parece razonable que tenga un link en la sección de 'referencias de consulta para revolucionarios'. Del mismo modo, abanderar el software libre y el hardware libre pero no explicitar que (por causas de fuerza mayor) se hace uso de recursos no libres, hace plantearse el motivo por el que se alza la bandera.

En conclusión, la rigurosidad es condición sine qua non. Si uno no puede garantizar un mínimo de rigor en sus exposiciones, tan sencillo como decirlo: 'AFAIK', 'por lo que he visto', 'según tengo entendio', 'sin haber profundizado en ello', 'que yo sepa'... ¡anda que no es rica la lengua!


Sin embargo, al mismo tiempo que se están definiendo los conceptos en esta revolución que vivimos, debemos ser proactivos y no dejar de utilizarlos,

La cuestión es que no hay absolutamente ningún concepto nuevo que definir. Todo está meridianamente claro desde hace más de una década.

¿Quiere decir esto que FPGAwars no es una revolución? En absoluto. Lo es para todos y cada uno de los usuarios que, gracias a las charlas y talleres, están conociendo el maravilloso mundo de las FPGAs. También para quienes no serían capaces de instalar la toolchain paso a paso y gracias a Apio la tienen a su alcance. También para quienes no saben lenguajes HDL y no pueden/quieren utilizar soluciones anteriores como Simulink o Labview, gracias a Icestudio. Por descontado, para Obijuan, Jesús, Eladio y cía, para quienes este proyecto ocupa gran parte de su tiempo e ilusiones. Todos y todas las docentes que están viendo cómo se abre una ventana al futuro para poder enseñar a sus alumnos y alumnas ahora lo que necesitarán dentro de 5-10 años.

Pero, al mismo tiempo, hay aspectos económicos y comerciales con los que debemos ser, al menos, sinceros:

Se está vendiendo como 'hardware libre' una placa, la icezum, que es una copia (mejorada) de una placa 'no libre', la icestick. Esa copia no infringe el copyright, porque un esquema electrónico no es patentable/protegible, ya que es tan sencillo como mover un par de componentes y volver a rutarlo para considerarse diferente. Nótese la importancia de esto, ya que es uno de los motivos por los que para proteger el hardware libre en forma de HDL ¡se utilizan licencias de software! Considerar el 'hardware' legalmente como 'software' es la forma de 'aprovechar' toda la infraestructura legal que se ha ido motando durante años para proteger a las grandes empresas de software.

Para crear icezum se han utilizado los esquemas de la icestick porque están disponibles gratuitamente y de forma pública en el manual de usuario. De acuerdo con la interpretación expuesta por Obijuan para diferenciar FPGAs "libres" y "nuevas" de las "tradicionales", la icestick es "hardware libre" o "hardware abierto". Habiendo dos placas "abiertas", y teniendo como público objetivo estudiantes y aficionados (target low-cost), ¿la opción por defecto es la de +65€ en lugar de la de 20€? Buff. Creo que un pequeño esfuerzo adicional sería muy de agradecer. Habrá que explicar que la venta de la icezum es la fuente principal de financiación del proyecto (si lo es). Habrá que subrayar que se está dando trabajo en España gracias a la venta de la placa, que espero que así sea. Habrá que explicar por qué los conversores de nivel son un valor añadido, si lo son. En resumen, habrá que convencer al usuario de que la mejor opción es un producto que cuesta el triple que el original.

De lo contrario, parece que estamos siendo contribuidores de un proyecto pseudo-empresarial, en el que la comunidad es un pretexto (o un contexto) para el lucro personal. Véase https://arduinohistory.github.io/. ¡Ojo! Me parece cojonudo que Eladio y el resto de trabajadores cobren; que Obijuan cobre por sus charlas (o al menos que no le cuesten dinero, ya que el tiempo lo invierte); que Jesús pueda obtener rendimiento económico de las muchas horas que dedicará a icestudio. De hecho, sería muy interesante algún modelo de crowdfunding o mecenazgo con la posibilidad the 'adopta una caracteristica' o 'pay for a feature'; que permitiera a centros educativos 'poner bote' para pagar horas de desarrollo. Para ello, lo ideal sería que no hubiera una sola personas capaz de implementar estas características (ver comentario al respecto más abajo).


cuanta más gente de cualquier nivel lo utilice mejor (aunque con ello tengamos que sacrificar cierta rigurosidad)

¿Por qué tenemos que sacrificar cierta rigurosidad? ¿Cuál es el factor, externo o interno, que nos impide ser rigurosos? Por centrarnos: estamos discutiendo sobre no utilizar 'FPGA(s) libre(s)' y sustituirlo por 'FPGA(s) accesible(s) [con herramientas libres]', 'FPGA fácil [con toolchain libre]', 'FPGA low-cost'... O "Explorando el lado libre de las FPGAs", que me encanta, y ya se utiliza.


porque si no las utilizamos la tecnología acabará (como siempre) en manos de unos pocos "expertos" y con ello se terminará con la "libertad" del usuario,

Llegamos tarde, muy tarde. El desarrollo hardware ya está en manos de unos pocos expertos. No sólo eso, sino que la fabricación está al alcance de un puñado de factorías en el mundo. De hecho, es un tema que daría para unas cuantas pelis de espionaje cyberpunk.

La perspectiva actual del hardware libre comercializado y disponible para todos los públicos es apocalíptica. El mercado se está moviendo hacia SoC, que son típicamente 2, 4 u 8 cores ARM con periféricos, controlador DDR y zona programable -FPGA- todo en un mismo dispositivo. Más allá, ya hay empresas que comercializan FPGAs como IP core para ASIC. ¿Qué quiere decir eso? Que ARM o Atmel pueden incluir una mini-FPGA dentro de sus uC, como si fuera otro periférico más (timers, contadores, ADC...). Al mismo tiempo, se está facilitando el acceso a desarrolladores de software, de forma que no hagan falta tantos expertos en desarrollo hardware. La explicación es tan sencilla como que el ratio debe andar alrededor de 10/1. Por lo tanto, volvemos a lo que comenté en el mensaje anterior: qué más da que los chips no sean libres, si toda la toolchain es libre. Tésis defendida en este grupo.

Lo más irónico de todo esto es que una reivindicación clásica del software libre (la seguridad por exposición frente a la seguridad por ocultación), puede ser absolutamente inútil frente a troyanos o backdoors introducidos en el hardware. Al fin y al cabo *if you have physical access, you own the machine*. He aquí mi principal motivo para empeñarme en subrayar cuándo los chips utilizados no son libres (que es siempre).

Por suerte, todo esto significa que sólo podemos ir a mejor.


libertad que, por otra parte, tanto nos ha costado ganar y nos cuesta mantener (la lucha por disponer de un software verdaderamente libre nunca termina). Filosofando un poco: la libertad se gana haciendo uso de ella.

Estoy de acuerdo. Pero en este caso la batalla final es económica. El 'boss' pendiente es encontrar un modelo de financiación que permita fabricar al menos un dispositivo programable libre. Estamos hablando de muchos millones (no de pesetas). Tenemos las CPUs como referencia. ¿Cuántos años hace que se utilizan CPUs por el público en general? 40? Todavía no conozco a nadie que haya comprado una libre (de hecho, no sé si los RISC-V están disponibles o hay que esperar). Si a RISC-V le va bien, es posible que tengamos FPGAs relativamente pronto (como un periférico de RISC-V). En el mejor de los casos, será un lustro. Si RISC-V no consigue posicionarse, volvemos a la casilla de salida.

Un detalle sobre el paso HDL -> chip. Normalmente se utilizan procesos semi-custom ASIC. Esto quiere decir que si yo tengo el diseño HDL de una CPU, FPGA o cualquier otro dispositivo, me pongo en contacto con un fabricante (fundición), y me ofrecen varios conjuntos de librerías para los diferences procesos (http://www.europractice-ic.com/technologies.php). Por ejemplo: para 65nm con tecnología de TSMC, http://www.europractice-ic.com/technologies_TSMC.php?tech_id=65nm. Las librerías tienen definidas puertas lógicas, memorias, dsps, etc. Posiciono cada uno de los módulos de mi diseño en un layout (hacer un puzzle), ejecuto un sintetizador y una herramienta de place and route (como si fuera icestom (yosys + arachne-pnr)). Envío el resultado a la fundición.

Efectivamente, esas librerías no son libres. Como anécdota, en los cursos de formación donde se utilizan, los ordenadores están aislados (no hay red) y hay prohibición expresa de utilizar cualquier USB (incluso cargar el móvil), bajo riesgo de expulsión directa. Además de tener que firmar media docena de acuerdos de confidencialidad.

Sin embargo, en mi opinión, RISC-V puede considerarse hardware libre en el sentido en que las diferencias entre librerías tecnológicas no afectan a la funcionalidad del código. Es decir, la cantidad de silicio, el dopaje o la forma de las máscaras de una puerta AND no puede hacer algo diferente a una función lógica AND. Si lo hiciera, simplemente el proceso de fabricación sería inválido. La razón de ser de estas librerías es, de hecho, cómo son los procesos físicamente. Es decir, dependen de las máquinas específicas que se utilicen.


Es por eso que estoy de acuerdo contigo en que no viene mal saber en FPGAwars cuales son nuestras fuerzas y nuestra debilidad (y potenciar unas y no otras).
A mi entender (como entender mio es más que discutible, ;D ) nuestra fuerza como comunidad es bajar la barrera de entrada en el uso de las FPGA (libres, liberadas, con documentación libre, con tool-chain alegal....), facilitar su uso y comprensión para el "maker de la calle" (en el que me incluyo) y con ello, haciendo crecer la comunidad implicada, hacer crecer la libertad personal del usuario.
Esta es nuestra fortaleza y como exponente máximo de dicha fortaleza tenemos a Obijuan y sus sencillos ejemplos, juegos y microtutoriales. Esto tiene un valor enorme para hacer crecer la comunidad y lo que conlleva en libertad individual dicho crecimiento, por lo que yo le perdono (y le perdonaré siempre) su posible falta de rigurosidad (que por otra parte los usuarios de nivel básico como yo nunca apreciamos y no lo vemos como un menoscabo a lo que hemos aprendido con él), sin que con ello quede entendido que desprecio tu rigurosidad, todo lo contrario, a mi personalmente, me motiva muchísimo e imagino que a los usuarios más avanzados más aún, por lo que tenerte a ti en el grupo se puede considerar otra fortaleza más (yo encantado siempre de tus apariciones). ;)))

No quisiera poner absolutamente ningún pero. Reitero que alabo la labor en FPGAwars y lo considero una revolución en muchos aspectos, especialmente en contextos personales. Si no fuera así, no haría ningún esfuerzo por intervenir en este hilo.


Por otra parte estoy de acuerdo contigo en que esas capas de software (apio, apio-ide, icestudio y demás) esconden un poco la potencia real de las FPGA (así como también, por otra parte, lo hace la propia tool-chain de icestorm), pero por otro lado, también facilitan (de alguna forma) bajar la barrera de entrada a otros usuarios que sin este software no hubieran sintetizado nunca nada en una FPGA, luego su valor tiene (y mucho) para hacer crecer la comunidad.

No fue mi intención en ningún momento poner en duda la utilidad de esas capas de software. De hecho, creo que es bueno que escondan algunos detalles de implementación. Por ejemplo, si quiero centrarme en un diseño lógico, me da exactamente igual cuál va a ser la placa en la que lo pruebe. Prefiero tenerlo en un menú y mirarlo cuando vaya a sintetizar y configurar.

En cuanto a la 'potencia real', sinceramente creo que Obijuan y Jesús infravaloran el framework que están creando. Tengo la sensación, y es sólo una percepción, de que han ido haciendo las cosas sobre la marcha; y, disfrutando de la ola, no quieren mirar a la orilla. Lo que no sé es si, cuando lleguen, se quedarán en la orilla, jugando con la espuma; si marcharán a otra playa, porque sólo habían venido a pasar el día; si remarán para coger otra ola; o si no saben, porque esta está muy guay. Hasta ahora, la respuesta que he obtenido es que 'esta está muy guay'.


El problema (volvemos a mi entender) y la debilidad más clara que yo veo en el grupo (y que alguna vez he dejado entrever) es la estructura que se lleva con el desarrollo de estas capas, Jesús Arroyo es un máquina (un Ingeniero Industrial no puede decir otra cosa de otro Ingeniero Industrial... ;D) pero desgraciadamente no es un Dios, ni ubicuo, ni siempre su criterio es el acertado.... y sobre el software y sus decisiones no hay discusión, ni intención de hacer bajar la barrera de entrada para que la haya. Hay que entender que hay quién se ve más cómodo con el software que con la electrónica y no estamos utilizando su potencial de aportar a la comunidad. Creo que es una clara debilidad y que no se hace nada para remediarlo (más allá de un "no te preocupes que integro tu pull-request").

Por mis intervenciones anteriores (https://groups.google.com/d/msg/fpga-wars-explorando-el-lado-libre/mbdalNWgkBw/5ZlR1CRgCwAJ), es evidente que estoy de acuerdo. Mas, metido en harina, quisiera puntualizar por qué creo que esto es así: *writing software is hard*. En palabras de Donald Knuth:

In fact, my main conclusion after spending ten years of my life working on the TEX project is that software is hard. It’s harder than anything else I’ve ever had to do.

Si juntamos esto con el contexto cultural, y con la posibilidad de que Jesús sea exigente consigo mismo (esto lo aporto porque sí, es una suposición arbitraria por mi parte), el cóctel es muy feo. Es feo, porque cabe la posibilidad de que este proyecto le venga a priori muy grande. Exactamente igual que a cualquier single-man en el planeta. Así, cuando empezó escogió los lenguajes y tecnologías mainstream del momento: python como "lenguaje de sistema" y nodejs con angular para "full-stack web". Elecciones muy interesantes y acertadas para prototipado rápido, y especialmente para alguien que no sabía nada del tema. Conforme se van añadiendo requerimientos, el prototipo se va complicando. Un problema de este tipo plantea retos muy sugerentes para una mente curiosa, por lo que es muy fácil mezclar el aprendizaje de una herramienta, con el de un lenguaje, el de un framework y el de problemas prácticos a resolver.

Revirsarlo después de dos años puede ser muy doloroso. Por una parte, porque ves cosas que (con la experiencia) harías de forma totalmente diferente, pero que requerirían reescribir grandes partes de la herramienta. Por otra parte, porque documentar la herramienta es como reescribirla de nuevo. Hay partes de las que ni te acuerdas. Por último, porque no puedes modularizarla para permitir implementaciones independientes de algunos módulos, al no haber estandarizado y documentado las interfaces. Quien quiera contribuir tiene que empollarse la app, a pelo.

En esta situación, hay dos opciones: verguenza y orgullo, o sinceridad. Y aquí damos con el contexto cultural y el relato made-in Silicon Valley. Parece que admitir la situación, incluyendo características diferenciadoras y carencias actuales, es síntoma de debilidad o de trabajo mal hecho. Somos mucho más de 'tirárnosla' un poco. Esto explica las respuestas evasivas, reiterativas o enrocadas, o las llamativas omisiones. Lamentablemente, choca frontalmente con la escuela del software libre.


Dicho esto... seguiré releyendo tus post.
Gracias por volver a volcar tus conocimientos en este grupo.

Gracias a ti por apreciarlos.

Feliz año nuevo!

Juanma Rico

unread,
Dec 31, 2017, 2:33:37 PM12/31/17
to FPGAwars: explorando el lado libre

¡Dioooooooos!
¡Qué me gusta leerte! jajajajajajajajajajaja

El problema es que terminas siendo tan nítido que no encuentro "contraréplica" para "picarte" y sigas escribiendo... (y así aprovecharme para aprender gratuitamente de tu saber... jajajajajaja... ¡qué sinvergüenza que soy! jajajajajajaja)

Por favor, tengo un deseo... para el año que viene te pasas aunque sea una vez al mes por el grupo y dejas uno de tus post, que con lo intensos que son y lo que me cuesta asimilar todos los conceptos que vuelcas y hasta que consigo exprimirlos lo suficiente, yo con uno ya tengo para entretenerme hasta el siguiente...  jajajajajajaja

Saludos.
Y feliz año para ti también. :))))
Juan Manuel Rico

Pdta: Lo de la solución de "sinceridad" final me ha encantado... nada más lejos de la realidad.  :)))


Salvador Eduardo Tropea

unread,
Jan 2, 2018, 7:24:24 AM1/2/18
to fpga-wars-explora...@googlegroups.com
On 30/12/17 22:03, 1138-4EB wrote:
[snip]

Creo que entiendo tu punto, pero no lo comparto, como ya expliqué en
este thread:
El término "software libre" no se refiere a "software" que es "libre",
sino a "software" que le da libertades al que lo usa. Esto lo explica
claramente Stallman.
Entendiendo este concepto básico deberíamos entender que "hardware
libre" es hardware que le da al usuario libertad (de replicarlo, de
estudiarlo, de modificarlo, etc.). Por lo que el término "hardware
libre" está perfectamente aplicado al proyecto Arduino.
Al mismo tiempo podríamos decir que "FPGAs Libres" son aquellas FPGAs
que le dan al usuario libertad. ¿Las 4 libertades del software libre?,
no todavía. Pero si algunas muy importantes. El hecho de conocer
detalles de la arquitectura interna le da al usuario libertades. Y creo
que el ejemplo  de lo que me pasó con la iCE40HX4K de la Kéfir es una
demostración excelente de esto: es una parte que el fabricante vende
como de 4K flip-flops, pero resulta que internamente tiene el mismo die
que la 8K. El IceStorm permite usar todo el chip, no sólo los "4K".
Estoy de acuerdo que lo ideal sería que dispusiéramos de FPGAs cuyo
diseño estuviera disponible, pero eso no invalida el uso del término. Es
lo que hoy día existe. Por otro lado hoy por hoy no ayudaría mucho
disponer de esa información, ya que fabricar un chip de 40 nm (como lo
es la iCE40) es muy costoso y sólo unas pocas empresas en el mundo
pueden hacerlo. En el futuro esto irá cambiando y las "FPGAs libres"
serán más parecidas al "Software Libre". Entiendo que los diseños de
FPGAs que mencionás no están disponibles por estas razones.
En menor medida algo así pasó con el hardware libre. Proyectos como el
Arduino liberaban la información de diseño, pero usando EDA tools que no
eran libres (Eagle en el caso de Arduino). Hoy día sigue sucediendo,
pero muchos proyectos migraron a KiCad, que es software libre.
Otro ejemplo de cómo las FPGAs Libres agregan libertades: Es cierto que
en un Arduino, los del proyecto original basados en los chips ATmega, es
necesario comprar una CPU. Dicha CPU no es libre, no es gratis, no hay
información de cómo está hecha, no podemos replicarla. Sin embargo
usando FPGAs Libres es posible sintetizar un ATmega e implementar un
Arduino donde la CPU es libre. Obviamente que para eso necesitamos un
chip, pero el usuario ganó libertades. El proyecto Lattuino hace esto.

Por lo que yo no veo que el uso que hace ObiJuan del término sea ni para
confundir, ni para engañar a nadie. Yo no lo hubiera usado así, pero me
parece completamente aplicable.

En cuanto a tus afirmaciones de "ilegalidad", para la legislación
norteamericana la ingeniería inversa es admisible cuando lo que se busca
es la interoperabilidad. Está en claro que IceStorm busca eso, que el
software sea compatible con la FPGAs, no replicar las FPGAs de Lattice,
cosa que si sería ilegal. Por lo tanto lo que hizo Clifford *no* es
ilegal para la jurisdicción donde se encuentra Lattice. Obviamente que
si Lattice quisiera impedírselo probablemente podría lograrlo, ya que
Clifford no creo que tenga los recursos como para defenderse, no porque
haya hecho algo ilegal.

Saludos, Salvador

Roland Coeurjoly

unread,
Jan 2, 2018, 8:59:37 AM1/2/18
to FPGAwars: explorando el lado libre
Muy interesante Salvador.

Me parece muy adecuada la ilustración que hizo Obijuan sobre los niveles de abstracción.


Liberar un nivel ya es un gran logro. Colaboremos para seguir liberando niveles!

Juanma Rico

unread,
Jan 2, 2018, 2:03:49 PM1/2/18
to FPGAwars: explorando el lado libre

¡Claro Roland!
¡De eso se trata! de liberar niveles y colaborar en ello (a eso me refería al usar la expresión "usar nuestra libertad para ser libres"). :)))

El tema está en que Unai (que me corrija si me equivoco) quiere ser riguroso y usar las palabras adecuadas en el nivel actual de "liberación" en el que nos encontramos y no confundir con una expresión que, posiblemente, engloba más libertad de la que realmente existe para el usuario y que, a su vez, sus connotaciones asociadas nos hace restringirnos a un hardware que no es más libre que otro (lo que hace que realmente nos auto-limitemos en nuestra libertad y no avancemos al ritmo que podríamos avanzar).

A mi entender creo que por ahí van los tiros... Espero no haberme equivocado mucho. :))

Saludos
Juan Manuel Rico

Roland Coeurjoly

unread,
Jan 2, 2018, 2:51:49 PM1/2/18
to FPGAwars: explorando el lado libre
Me parece importante también que no perdamos de vista que los que tenemos que ser libres somos nosotros y nosotras, no la tecnología.

https://mako.cc/writing/hill-freedom_for_users-ES.html

Juanma Rico

unread,
Jan 2, 2018, 2:54:33 PM1/2/18
to FPGAwars: explorando el lado libre

Buenas Salvador,

Encantado de leerte... aunque imagino que con desfase horario. :)))

Creo que todos hablamos de lo mismo, pero la diferencia que yo encuentro está en el nivel de rigurosidad que se persigue para enfrentarse a cada uno de los problemas que se plantean. Cada cual es exigente y riguroso al nivel que desea serlo.

A mi, en este caso del nombre, me da igual; prefiero ser un poco menos riguroso y empezar a andar, eso sí, siendo consciente e intentando buscar la rigurosidad por el camino. Comprendo también que si hay alguien que pide rigurosidad y no se le da (al menos una explicación de porqué no) se sienta defraudado por su falta y se desmotive (y en esta "batalla" de liberación donde somos "cuatro gatos" no estamos para despreciar a nadie, por muy riguroso que quiera ser).

Podemos o no estar de acuerdo en la "rigurosidad extrema" (entiéndase el concepto empleado) de Unai, pero creo que tiene razón, la falta de rigurosidad hace que los proyectos no se asienten como debieran y, al no tener claro a donde se quiere ir, nos conformemos con cualquier logro que se consiga, por pequeño que haya sido. Luego, para avanzar, hace falta gente rigurosa (que ya digo, yo no soy de esos).

Repito, la gente rigurosa en cualquier comunidad es otro valor más que hay que preservar y, si se ningunea, se está menospreciando un valor clave para la comunidad.

Y siendo riguroso (aunque como digo yo no sirvo para esto... :D), Unai nunca usó la palabra "ilegal" usó la palabra "alegal", (que es algo que no está regulado ni prohibido), es decir... sin "garantías" y creo que a eso se refería cuando nombraba el proyecto "icestrom".

Por otra parte, tú mismo estas reconociendo que "FPGA libres" no tiene las 4 libertades del software libre, luego en cierta forma le estás dando la razón: el término es confuso, la libertad no es completa y por tanto se necesita explicitar donde sí y donde no se es libre.

Si no se tienen todas (las cuatro) no se puede decir "libre" sin añadir nada... ¿Que las libertades que ya te da son muy importantes para ti? Perfecto, pero puede que no para otros más rigurosos... la importancia que tú le das a esas en concreto que ya son libres no debebería ser motivo de desprecio de las que quedan por liberar porque, entre otras cosas, si no se les da la misma importancia nunca se hará el esfuerzo suficiente para liberar las que quedan.

Es decir, volvemos al término clave: siendo riguroso (o por lo menos siendo consciente de que NO se está siendo riguroso) siempre se hará un esfuerzo por ir liberando niveles y dando libertad. Si no se es riguroso, en algún momento nos conformaremos con lo que cada uno considera "importante" y nunca se hará un esfuerzo superior para liberar todos los niveles (hasta el de la fabricación a 40nm... ¿Por qué no? ;D )

Está claro que yo no puedo abanderar la bandera de la rigurosidad (por falta de conocimientos y ganas), pero sí valoro a las personas que lo intentan porque sé el esfuerzo que se requiere para serlo y creo que llegado a cierto punto de un proyecto, si se quiere seguir avanzando y que no muera, es bueno pararse, saber escuchar a estas personas, quitarse prejuicios, ser sincero con uno mismo y darles, al menos, una justificación tan rigurosa como piden. Es lo menos que le debemos por su esfuerzo.

Saludos
Juan Manuel Rico


Juanma Rico

unread,
Jan 2, 2018, 2:59:55 PM1/2/18
to FPGAwars: explorando el lado libre
¡La tecnología te hará libre! (o no) jajajajajaja  ;)))

Saludos
Juan Manuel Rico

Salvador Eduardo Tropea

unread,
Jan 3, 2018, 6:16:45 AM1/3/18
to fpga-wars-explora...@googlegroups.com
Hola JuanMa!

No tengo ningún problema con que Unai sea riguroso, la verdad es que no
me gusta el tono de imposición y acusación con que se expresó.
Una cosa es decir: "Para mi no alcanzan las libertades como para usar la
palabra libre" y otra es decir "Es un engaño usar la palabra libres". Mi
lectura del mail de Unai estaba más cerca de la segunda que de la primera.
Por otro lado estamos hablando de un término demasiado difuso como para
poder ser o no rigurosos. Esto no es matemáticas, ni siquiera física. La
libertad siempre tiene límites, justamente donde comienza la libertad de
los demás. Es ridículo pensar que el hardware pueda lograr los mismos
niveles de libertad que el software con la tecnología actual. De hecho
buena parte del discurso de Stallman se basa en que el software es
intangible y que su duplicación es casi gratuita.

Saludos, Salvador

On 02/01/18 16:54, Juanma Rico wrote:
>
> Buenas Salvador,
>
> Encantado de leerte... aunque imagino que con desfase horario. :)))
>
> Creo que todos hablamos de lo mismo, pero la diferencia que yo
> encuentro está en el /*nivel de rigurosidad */que se persigue para
> enfrentarse a cada uno de los problemas que se plantean. Cada cual es
> exigente y riguroso al nivel que desea serlo.
>
> A mi, en este caso del nombre, me da igual; prefiero ser un poco menos
> riguroso y empezar a andar, eso sí, siendo consciente e intentando
> buscar la rigurosidad por el camino. Comprendo también que si hay
> alguien que pide rigurosidad y no se le da (al menos una explicación
> de porqué no) se sienta defraudado por su falta y se desmotive (y en
> esta /"batalla"/ de liberación donde somos/"cuatro gatos"/ no estamos
> para despreciar a nadie, por muy riguroso que quiera ser).
>
> Podemos o no estar de acuerdo en la /"rigurosidad extrema/"
> (entiéndase el concepto empleado) de Unai, pero creo que tiene razón,
> la falta de rigurosidad hace que los proyectos no se asienten como
> debieran y, al no tener claro a donde se quiere ir, nos conformemos
> con cualquier logro que se consiga, por pequeño que haya sido. Luego,
> para avanzar, hace falta gente rigurosa (que ya digo, yo no soy de esos).
>
> Repito, la gente rigurosa en cualquier comunidad es otro valor más que
> hay que preservar y, si se ningunea, se está menospreciando un valor
> clave para la comunidad.
>
> Y siendo riguroso (aunque como digo yo no sirvo para esto... :D), Unai
> nunca usó la palabra "ilegal" usó la palabra "alegal", (que es algo
> que no está regulado ni prohibido), es decir... sin "garantías" y creo
> que a eso se refería cuando nombraba el proyecto "icestrom".
>
> Por otra parte, tú mismo estas reconociendo que "/FPGA libres"/ no
> tiene las 4 libertades del /software libre/, luego en cierta forma le
> estás dando la razón: /el término es confuso, la libertad no es
> completa y por tanto se necesita explicitar donde sí y donde no se es
> libre/.
>
> Si no se tienen todas (las cuatro) no se puede decir "libre" sin
> añadir nada... ¿Que las libertades que ya te da son muy importantes
> para ti? Perfecto, pero puede que no para otros más rigurosos... la
> importancia que tú le das a esas en concreto que ya son libres no
> debebería ser motivo de desprecio de las que quedan por liberar
> porque, entre otras cosas, si no se les da la misma importancia nunca
> se hará el esfuerzo suficiente para liberar las que quedan.
>
> Es decir, volvemos al término clave: siendo *riguroso *(o por lo menos
> siendo consciente de que NO se está siendo riguroso) siempre se hará
> un esfuerzo por ir liberando niveles y dando libertad. Si no se es
> riguroso, en algún momento nos conformaremos con lo que cada uno
> considera "importante" y nunca se hará un esfuerzo superior para
> liberar todos los niveles (hasta el de la fabricación a 40nm... ¿Por
> qué no? ;D )
>
> Está claro que yo no puedo abanderar la bandera de la rigurosidad (por
> falta de conocimientos y ganas), pero sí valoro a las personas que lo
> intentan porque sé el esfuerzo que se requiere para serlo y creo que
> llegado a cierto punto de un proyecto, si se quiere seguir avanzando y
> que no muera, es bueno pararse, saber escuchar a estas personas,
> quitarse prejuicios, ser sincero con uno mismo y darles, al menos, una
> justificación tan rigurosa como piden. Es lo menos que le debemos por
> su esfuerzo.
>
> Saludos
> /Juan Manuel Rico/
>
>
> --
> 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
> <mailto:fpga-wars-explorando-el...@googlegroups.com>.
> Para publicar en este grupo, envía un correo electrónico a
> fpga-wars-explora...@googlegroups.com
> <mailto:fpga-wars-explora...@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/1dbab6c2-c321-4108-b0cf-a5e7bb70869d%40googlegroups.com
> <https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/1dbab6c2-c321-4108-b0cf-a5e7bb70869d%40googlegroups.com?utm_medium=email&utm_source=footer>.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.


1138-4EB

unread,
Jan 3, 2018, 12:45:46 PM1/3/18
to FPGAwars: explorando el lado libre
Buenas Salvador,

En primer lugar, muchas gracias por animarte a profundizar en el debate. Sea de acuerdo, o en desacuerdo, es muy de agradecer la participación de diferentes integrantes de la comunidad.

Con respecto a "mi punto", tengo la sensación de que no lo he expresado correctamente, o no se ha entendido como yo experaba. Lo digo, porque estoy de acuerdo contigo prácticamente en todo, y en un contexto informal pasaría de largo. Pero veo que no se ha respondido a la clave de mi planteamiento:

*Si me encuentro un CD con el código fuente de Windows 10 o macOS en la calle y lo cuelgo en internet, ¿es software libre? Si es otro usuario el que se lo encuentra y yo sólo hago uso de ello ¿es software libre?*

Parafraseándote, Salvador, una copia del código fuente de Windows disponible en internet no concede las 4 libertades del software libre, todavía. Pero si algunas muy importantes. El hecho de conocer detalles de la arquitectura interna le da al usuario libertades. Por lo tanto, podemos decir que esa versión de Windows es software libre, aunque no sea del todo riguroso.

[NOTA] A visitantes casuales que lean en diagonal: el párrafo anterior es un mero recurso literario; cuidado con interpretarlo literalmente.

Desarrollando la clave anterior, mi argumentación se basa en dos premisas:

- El software es inerte, y como tal no puede dar ni quitar nada a nadie. Por ello, cuando decimos que "el software da libertades a quien lo usa", lo que significa es que "el autor/propietario de un software da libertades a quien lo usa".
- Tener la posibilidad, la capacidad y los recursos para hacer algo, no te da derecho a hacerlo.

Pongamos un par de ejemplos para ilustrar la diferencia entre "libertad" en términos absolutos/abstractos y "libertad" en el contexto legal de las sociedades occidentales "modernas":

Yo soy muy "libre" de adquirir cualquier arma y acabar con la vida de cualquier ser. A priori, tengo la posibilidad y la capacidad para hacerlo, ya que nada me lo impide forzosamente. Pero no es lo mismo degollar un cerdo en San Martín, o asesinar a niños en un instituto. La ley restringe mi "libertad" en ambos casos. En el primero, para garantizar que las condiciones en las que se realiza sean "dignas" para el animal. En el segundo, porque no está permitido asesinar niños. Es absolutamente irrelevante que alguien opine que los niños son molestos y el resto somos más libres sin ellos. Sí, esta afirmación es psicopática, pero es que la ley está hecha para cualquier persona, independientemente de sus procesos mentales.

Otro, más de andar por casa, en España eres "libre" de tener una cuenta de Twitter y hacer comentarios o retwittear los comentarios de otros usuarios. Desde hace relativamente poco, el Estado es "libre" de encarcelarte por hacer ejercido esa "libertad".

---

Esto es lo que explica claramente Stallman. De hecho, el origen de su cruzada no puede ser más ilustrativa: él tenía un problema con un driver y sabía cómo arreglarlo. Es decir, era "libre" de hacerlo en lo que respecta a la información, conocimientos y capacidades necesarias. Sin embargo, el propietario no le permitía hacerlo, no le concedía el derecho a hacerlo.

---


> Entendiendo este concepto básico deberíamos entender que "hardware
libre" es hardware que le da al usuario libertad (de replicarlo, de
estudiarlo, de modificarlo, etc.). Por lo que el término "hardware
libre" está perfectamente aplicado al proyecto Arduino.

Añadiendo mi apreciación anterior sobre que no es "el hardware" sino "el desarrollador/autor/propietario del hardware", estoy de acuerdo. No "perfectamente", pero ya expresé que, pese a no ser rigurosamente cierto, acepto que la comunidad internacional reconoce PCBs libres como hardware libre. Este no es motivo de discusión.


> Al mismo tiempo podríamos decir que "FPGAs Libres" son aquellas FPGAs
que le dan al usuario libertad. ¿Las 4 libertades del software libre?,
no todavía. Pero si algunas muy importantes. El hecho de conocer
detalles de la arquitectura interna le da al usuario libertades.

En coherencia con lo anterior, el hecho de conocer detalles de la arquitectura interna da a un usuario conocimiento, capacidad, posibilidad, facilidad... para hacer algo. No hay ninguna diferencia desde el punto de vista legal. Léase, no se te concede ningún derecho en ninguna legislación que yo sepa, sólo por haber leído un documento.

De hecho, ¿por qué las Spartan (II, 3, 6, 7...) no son "libres"? De acuerdo con la postura que expones, hay muchas más información disponible sobre la arquitectura interna de éstas que de otros CIs.


> Estoy de acuerdo que lo ideal sería que dispusiéramos de FPGAs cuyo
diseño estuviera disponible, pero eso no invalida el uso del término. Es
lo que hoy día existe.

Esto me recuerda mucho a la escalada: las escuelas de deportiva y artificial. La deportiva consiste en no alterar la pared que tratas de superar, evitando incrustar objetos que te ayuden en la progresión. La premisa es que, aunque hoy en día no conozcamos a nadie capaz de superar el reto, no somos nadie para "estropear" una pared a futuras generaciones más hábiles. La artificial consiste en llegar a la cima, independientemente de los recursos que se utilicen y cuántos agujeros, tornillos y escalas se pongan en la pared.

En otras palabras, me parece corto de miras "condenar" un término sólo porque ahora no conocemos a nadie con capacidad económica suficiente. Porque ya existen FPGAs cuyo diseño esta disponible. No es un supuesto, ni una situación futura.

NOTA: con "corto de miras" me refiero a "visión a corto plazo". No hay ningún ánimo de referencia a la capacidad cognitiva de nadie.


> Por otro lado hoy por hoy no ayudaría mucho
disponer de esa información, ya que fabricar un chip de 40 nm (como lo
es la iCE40) es muy costoso y sólo unas pocas empresas en el mundo
pueden hacerlo. En el futuro esto irá cambiando y las "FPGAs libres" serán más parecidas al "Software Libre".

En caso de disponer del diseño HDL de la arquitectura de la familia ICE40, no es necesario fabricarlo en 40nm. La tecnología de fabricación es independiente del diseño lógico. Sigue siendo muy costoso, y al alcance de un conjunto reducido de agentes, pero permite cambiar "sólo unas pocas empresas" por "un grupo de universidades que pongan escote". Esto no es una invención mía. Europractice ofrece justamente este servicio. Desconozco si al otro lado del charco tenéis algún proyecto similar.


> En menor medida algo así pasó con el hardware libre. Proyectos como el
Arduino liberaban la información de diseño, pero usando EDA tools que no
eran libres (Eagle en el caso de Arduino). Hoy día sigue sucediendo,
pero muchos proyectos migraron a KiCad, que es software libre.

El hecho de utilizar herramientas EDA no libres es normalmente independiente de la licencia de distribución del producto. Que los esquemáticos de Arduino se elaboren con Eagle o KiCad no tiene ningún efecto sobre los PDFs que yo me descargo o las fuentes en formatos no estandarizados. Lo mismo sucede con Icezum, que no es más libre por tener los esquemas hechos en KiCad, con respecto a cuando sólo estaban disponibles en Altium.

Personalmente me parece infinitamente mejor tener las fuentes en KiCad que en cualquier otro formato propietario. Pero no quiero mezclar tres cuestiones claramente diferenciadas:

- La licencia/condiciones de uso del software que utilizo para crear un producto.
- La licencia/condiciones de uso del producto hardware que he creado.
- La limitaciones inherentes al uso de formatos de archivo no estandarizados.

En otras palabras, yo puedo utilizar Microsoft Word XP para crear la documentación libre (CC-by-sa) de un producto. Es más incómodo si lo distribuyo en formato DOC que en formato ODT. Incómodo, no menos libre, ya que puedo utilizar OpenOffice/LibreOffice, aunque el formato sea DOC.


> Otro ejemplo de cómo las FPGAs Libres agregan libertades: Es cierto que
en un Arduino, los del proyecto original basados en los chips ATmega, es
necesario comprar una CPU. Dicha CPU no es libre, no es gratis, no hay
información de cómo está hecha, no podemos replicarla.

Vuelvo a parafrasearte, y digo que es necesario comprar una FPGA. Dichas FPGAs (que denomináis libres) no son libres, ni son gratis, ni hay información (oficial) de cómo están hechas, ni podemos replicarlas.

He de admitir que aquí puedo estar metiendo la pata, porque no estoy seguro del estado de las patentes. Si todas las patentes que afectan a la familia ICE40 de Lattice han expirado ya, entonces estamos hablando de "FPGAs de dominio público", por definición. Son "todavía más libres que las FPGAs libres", porque no hay titular que pueda reivindicar nada. En este caso, solicitaría que dejarais de usar el término libre, y lo sustituyerais por "de dominio público".


> Sin embargo usando FPGAs Libres es posible sintetizar un ATmega e implementar un Arduino donde la CPU es libre. Obviamente que para eso necesitamos un chip, pero el usuario ganó libertades. El proyecto Lattuino hace esto.

Sin haber revisado el código, sólo por la información disponible en este grupo, yo diría que no hay absolutamente ninguna limitación técnica que impida utilizar Lattuino en cualquier FPGA disponible comercialmente. Entiendo que tu motivación principal ha sido ofrecer un IP core para ejeutar el stack de software (libre) del poyecto Arduino en la kéfir, icezum, u otras placas low-cost inspiradas en Arduino. Por eso lo has llamado Lattuino. Pero, ¿qué impide a un usuario hacer un fork simplemente renombrándolo a "Libre AVR-alike IP-core" y ofrecerlo como una alternativa a J-core?

NOTA: la elección de J-core no es casual. Es un proyecto en el que hacen muy explícito que contenido han liberado y qué contenido tienen ya desarrollado (también por ingeniería inversa), pero que todavía no es público ni libre, porque están esperando a que expiren las patentes.

Por lo tanto, si yo sustituyo MicroBlaze/Picoblaze por Lattuino en una FPGA de Xilinx, o lo utilizo en una FPGA de Intel/Altera, ¿son estas FGPAs "libres" porque el usuario ganó libertades? ¿O el usuario ganó libertades porque está configurando hardware libre (IP core) en un harware no libre (chip) frente a configurar hardware no libre en hardware no libre?

no libre AND no libre = no libre
libre AND no libre = libre
libre AND libre = libre

Como ves, estamos utilizando una puerta AND y la tabla de la verdad es la de una puerta OR.


> Por lo que yo no veo que el uso que hace ObiJuan del término sea ni para confundir, ni para engañar a nadie. Yo no lo hubiera usado así, pero me parece completamente aplicable.

No afirmo yo que sea para confundir ni para engañar a nadie. Pero el hecho es que confunde y conduce a engaño. Qué mejor forma de evitarlo, si esa no es la motivación, que especificarlo para que no haya lugar.


> En cuanto a tus afirmaciones de "ilegalidad", para la legislación
norteamericana la ingeniería inversa es admisible cuando lo que se busca
es la interoperabilidad.

Sé que los términos "ilegal" y "alegal" no tienen la misma acepción en todos los paises, y menos aún en diferentes idiomas. Por eso, quisiera enmendar mi error si en algún momento se ha entendido que estaba haciendo la menor acusación de ilegalidad. Es más, en lo que respecta al trabajo de Clifford (y de otros antes que él) mi opinión es que bajo ningún concepto debería ser ni ilegal ni alegal. No tengo la menor intención de defender ni reforzar cómo la legislación respecto al software y el hardware permite al titular de derechos sobre un producto limitar las libertades de los usuarios. Ese es un debate muy diference sobre libertades individuales y colectivas, que si queréis podemos afrontar en otro hilo.

Mas, IANAL. Cuando uso software libre o hardware propiamente libre sé qué puedo hacer y sé que la ley me protege frente a un titular desconsiderado. En el caso de icestorm creo evidente que estamos en una zona gris. Yo no estoy tranquilo sabiendo que una interpretación (torticera o no) de la legislación, sea en EEUU o en España, puede obligarme a buscar recursos económicos de los que no dispongo para afrontar una afrenta legal.

Nótese que esto no me sucede si utilizo Lattuino en Zynq. Todas las herramientas utilizadas y el uso que hago de ellas es explicitamente legal, y nadie puede reclamarme nada por ello. Es más, si el Zynq está en una placa con el PCB libre, estoy en las mismas condiciones de "libertad" como sinónimo de "capacidad", pero estoy protegido legalmente. ¿Sería un hardware "más más libre" pero "no libre del todo"?

---

En conclusión, sois/somos muy libres de utilizar "libertad" como sinónimo de "acceso a la información", "posibilidad", "capacidad" para referiros a algunas de las FPGAs de Lattice. Pero el uso del término es arbitrario. Como sería llamarlas "FPGAs liberadas", "FPGAs abiertas" o "FPGAs de dominio público". Me gustaría ver esto explicitado de forma síntetica, para que un usuario no deba preguntaros cuál es vuestra opinión sobre el "hardware libre" para conocer el contexto legal. De hecho, la motivación principal de las licencias es esa: que no esté sujeto a interpretaciones y que no sea necesaria una comunicación directa entre cada usuario y el desarrollador para conocer las condiciones explícitas de uso.

Saludos, y gracias de nuevo por profundizar en el debate

---

Juanma, efectivamente, mis intervenciones se reducen a "por mucho que repitas que la economía va a mejor, yo cobro lo mismo y las facturas son más caras cada mes".

Roland, muy útil en enlace que has aportado. Desarrolla y elabora algunos de los datos que expuse "de memoria". Especialmente reseñable del último párrafo: *Mientras nuestras comunidades sean capaces de distinguir entre «apertura» de componentes y de enfatizar cuestiones de control, políticas, y poder,...*

Salvador Eduardo Tropea

unread,
Jan 4, 2018, 8:21:41 AM1/4/18
to fpga-wars-explora...@googlegroups.com
Hola!

On 03/01/18 14:45, 1138-4EB wrote:
> Buenas Salvador,
>
> En primer lugar, muchas gracias por animarte a profundizar en el
> debate. Sea de acuerdo, o en desacuerdo, es muy de agradecer la
> participación de diferentes integrantes de la comunidad.
>
> Con respecto a "mi punto", tengo la sensación de que no lo he
> expresado correctamente, o no se ha entendido como yo experaba. Lo
> digo, porque estoy de acuerdo contigo prácticamente en todo, y en un
> contexto informal pasaría de largo. Pero veo que no se ha respondido a
> la clave de mi planteamiento:
>
> *Si me encuentro un CD con el código fuente de Windows 10 o macOS en
> la calle y lo cuelgo en internet, ¿es software libre? Si es otro
> usuario el que se lo encuentra y yo sólo hago uso de ello ¿es software
> libre?*
>
> Parafraseándote, Salvador, una copia del código fuente de Windows
> disponible en internet no concede las 4 libertades del software libre,
> todavía. Pero si algunas muy importantes. El hecho de conocer detalles
> de la arquitectura interna le da al usuario libertades. Por lo tanto,
> podemos decir que esa versión de Windows es software libre, aunque no
> sea del todo riguroso.
>
> [NOTA] A visitantes casuales que lean en diagonal: el párrafo anterior
> es un mero recurso literario; cuidado con interpretarlo literalmente.
>


Entiendo el punto, pero creo que no es comparable.
Tratando de seguir tu ejemplo: lo que hizo Clifford es más parecido a lo
que hace el proyecto Wine.
No se exactamente cuánta es la información disponible, pero
evidentemente no es la suficiente como para completar el ciclo de diseño
con software libre. Y entiendo que Yosys se usó primero en conjunto con
las herramientas de Xilinx (hoy también soporta FPGAs de Intel/ALTERA,
Achronix, eASIC, GOWIN y Dialog), sin embargo sólo con las iCE40 es que
se logró cerrar el ciclo.
De hecho entiendo que Clifford y otros están tratando de lograrlo con la
línea 7 de Xilinx. El día que lo logren me imagino que el proyecto
FPGAWars las añadirá a la lista de "FPGAs Libres".
Puede que sea más o menos arbitrario este criterio, pero la verdad es
que no me molesta.


> > Estoy de acuerdo que lo ideal sería que dispusiéramos de FPGAs cuyo
> diseño estuviera disponible, pero eso no invalida el uso del término. Es
> lo que hoy día existe.
>
> Esto me recuerda mucho a la escalada: las escuelas de deportiva y
> artificial. La deportiva consiste en no alterar la pared que tratas de
> superar, evitando incrustar objetos que te ayuden en la progresión. La
> premisa es que, aunque hoy en día no conozcamos a nadie capaz de
> superar el reto, no somos nadie para "estropear" una pared a futuras
> generaciones más hábiles. La artificial consiste en llegar a la cima,
> independientemente de los recursos que se utilicen y cuántos agujeros,
> tornillos y escalas se pongan en la pared.
>
> En otras palabras, me parece corto de miras "condenar" un término sólo
> porque ahora no conocemos a nadie con capacidad económica suficiente.
> Porque ya existen FPGAs cuyo diseño esta disponible. No es un
> supuesto, ni una situación futura.
>
> NOTA: con "corto de miras" me refiero a "visión a corto plazo". No hay
> ningún ánimo de referencia a la capacidad cognitiva de nadie.


A mi también me parecería muy mal "condenar" el término, pero no veo que
nadie lo esté condenando.
Ojo, cada vez que veo un sitio que dice "Este proyecto es hardware
libre" y no puedo encontrar el esquemático, o el PCB, o simplemente el
PCB no puede modificarse, o está hecho con herramientas propietarias ...
me enojo bastante. Sin embargo entiendo que es así, y no le digo nada al
que usa el término de esa manera.
Por otro lado hay que entender que es cuestión de depuración, el tiempo
va decantando las cosas, en la medida en que hay cosas "más libres" las
"menos libres" quedan mal paradas, simplemente por comparación.
El día que se junten N personas y manden a fabricar una FPGA
verdaderamente libre (y la misma pruebe ser útil, no sirve de nada si
consume 100 veces más, o no tiene capacidad para nada útil, o cuesta 10
veces más), y esas FPGAs se puedan conseguir ... pues bien, pasarán
naturalmente a fijar un nuevo estándar.


>
> > Por otro lado hoy por hoy no ayudaría mucho
> disponer de esa información, ya que fabricar un chip de 40 nm (como lo
> es la iCE40) es muy costoso y sólo unas pocas empresas en el mundo
> pueden hacerlo. En el futuro esto irá cambiando y las "FPGAs libres"
> serán más parecidas al "Software Libre".
>
> En caso de disponer del diseño HDL de la arquitectura de la familia
> ICE40, no es necesario fabricarlo en 40nm. La tecnología de
> fabricación es independiente del diseño lógico. Sigue siendo muy
> costoso, y al alcance de un conjunto reducido de agentes, pero permite
> cambiar "sólo unas pocas empresas" por "un grupo de universidades que
> pongan escote". Esto no es una invención mía. Europractice ofrece
> justamente este servicio. Desconozco si al otro lado del charco tenéis
> algún proyecto similar.


Si, MOSIS nos ofrece servicios, e incluso tenemos un par de corridas
"gratis".
Hay dos puntos que destacar acá:

1) No toda la iCE40 puede describirse en términos de HDL. Buena parte de
los PLLs y sistemas de alimentación son analógicos, ni hablar de los
IOBs. A Intel le llevó años deshacerse de muchas de las cosas analógicas
de sus CPUs, y entiendo que aún siguen cargando con unas cuantas. Esas
partes analógicas son extremadamente dependientes de la tecnología de
fabricación. No por nada la parte analógica de un USB (que son unos
drivers simplemente) sale unas 4 veces más cara que la parte lógica (que
son decenas de bloques HDL) [hablo del costo de licenciamiento].
2) La performance de una "iCE150" o "iCE180" dudo que fuera interesante
más que para algunas pocas aplicaciones. Muy lindas para enseñar, pero
poco usables en la práctica.


>
> > En menor medida algo así pasó con el hardware libre. Proyectos como el
> Arduino liberaban la información de diseño, pero usando EDA tools que no
> eran libres (Eagle en el caso de Arduino). Hoy día sigue sucediendo,
> pero muchos proyectos migraron a KiCad, que es software libre.
>
> El hecho de utilizar herramientas EDA no libres es normalmente
> independiente de la licencia de distribución del producto.

De acuerdo

> Que los esquemáticos de Arduino se elaboren con Eagle o KiCad no tiene
> ningún efecto sobre los PDFs que yo me descargo o las fuentes en
> formatos no estandarizados. Lo mismo sucede con Icezum, que no es más
> libre por tener los esquemas hechos en KiCad, con respecto a cuando
> sólo estaban disponibles en Altium.


No estoy de acuerdo.
Una de las libertades importantes que me da el "hardware libre" es la de
poder modificarlo. Si para modificarlo tengo que volver a hacer el PCB
... la verdad que para eso sería como sacarle una foto (o radiografía) ...
Nuevamente es una cuestión de "grados de libertad". Y por eso más arriba
digo que me enojo cuando se usa Altium para un "hardware libre".
Pero de nuevo: a mi entender "hardware libre" con información de diseño
editable con "software propietario" es *menos* libre que hardware libre"
con información de diseño editable con "software libre", sin embargo no
me pongo a criticar esos proyectos ;-)

>
> Personalmente me parece infinitamente mejor tener las fuentes en KiCad
> que en cualquier otro formato propietario. Pero no quiero mezclar tres
> cuestiones claramente diferenciadas:
>
> - La licencia/condiciones de uso del software que utilizo para crear
> un producto.
> - La licencia/condiciones de uso del producto hardware que he creado.
> - La limitaciones inherentes al uso de formatos de archivo no
> estandarizados.
>
> En otras palabras, yo puedo utilizar Microsoft Word XP para crear la
> documentación libre (CC-by-sa) de un producto. Es más incómodo si lo
> distribuyo en formato DOC que en formato ODT. Incómodo, no menos
> libre, ya que puedo utilizar OpenOffice/LibreOffice, aunque el formato
> sea DOC.

Asumiendo que al cargarlo con el Libre/OpenOffice no pierdo nada ...
Y con un PCB es muchísimo peor. El caso de la documentación quizás sea
el de menor impacto, pero imaginate que te paso los fuentes del gcc ...
impresos ... y te digo "sos libre de modificarlo" ... :-))) o peor,
escritos a mano alzada ;-)))
No es lo mismo, pero de nuevo, no creo que por eso se "condene" el
término cuando se hacen estas cosas.
De nuevo es un tema de decantación, Olimex ya migró a KiCad, por dar un
ejemplo.

>
> > Otro ejemplo de cómo las FPGAs Libres agregan libertades: Es cierto que
> en un Arduino, los del proyecto original basados en los chips ATmega, es
> necesario comprar una CPU. Dicha CPU no es libre, no es gratis, no hay
> información de cómo está hecha, no podemos replicarla.
>
> Vuelvo a parafrasearte, y digo que es necesario comprar una FPGA.
> Dichas FPGAs (que denomináis libres) no son libres, ni son gratis, ni
> hay información (oficial) de cómo están hechas, ni podemos replicarlas.
>
> He de admitir que aquí puedo estar metiendo la pata, porque no estoy
> seguro del estado de las patentes. Si todas las patentes que afectan a
> la familia ICE40 de Lattice han expirado ya, entonces estamos hablando
> de "FPGAs de dominio público", por definición. Son "todavía más libres
> que las FPGAs libres", porque no hay titular que pueda reivindicar
> nada. En este caso, solicitaría que dejarais de usar el término libre,
> y lo sustituyerais por "de dominio público".


Las patentes no pueden haber expirado, SBT se fundó en 2005.
Nuevamente entiendo que tu error es aplicar lógica estricta a términos
difusos. Es como aplicar reglas matemáticas a legislación ... me
encantaría, pero no funciona. O si te gusta más este ejemplo: matemática
a filosofía.
Aplicando este tipo de lógica podríamos llegar a la conclusión de que no
existe hardware libre, ni siquiera software libre.
Estoy de acuerdo en que clarificar con más detalle el uso de los
términos es lo mejor.
¿Qué entiende la gente que escucha las charlas de ObiJuan?

http://rufianenlared.com/fpgas-libres/

Esta lleno de imprecisiones, pero al menos entendió cuál es la libertad
que obtiene.
Creo que buena parte del "problema" es que la forma de comunicación del
proyecto es difusa:

http://fpgawars.github.io/

Muchas imágenes y pocas definiciones. Por lo que es necesario navegar
más profundo, si lo hacemos creo que está explícito el tema:
http://obijuan.github.io/intro-fpga.html

"Las FPGAs son una tecnología muy cerrada, donde hay muy pocos
fabricantes y todo el software es privativo. Nadie conoce el formato de
los bitstreams"
"Sin embargo, Clifford Wolf, hizo Ingeniería inversa de las FPGAs iCE40
de Lattice y en Marzo del 2015 creó el PROYECTO ICESTORM y se liberó la
primera toolchain de herramientas que permiten pasar de Verilog al
bitstream usando sólo Herramientas libres"

Creo que con esto queda claro que significa "FPGA Libre" en el contexto
de "FPGAWars"
¿Qué otra aclaración sugerís que agreguen?


>
> Saludos, y gracias de nuevo por profundizar en el debate

Un placer.

1138-4EB

unread,
Jan 5, 2018, 8:51:52 AM1/5/18
to FPGAwars: explorando el lado libre
Buenas!

Salvador escribió:
Entiendo el punto, pero creo que no es comparable.
Tratando de seguir tu ejemplo: lo que hizo Clifford es más parecido a lo
que hace el proyecto Wine.

Me parece muy acertado el ejemplo. Wine me permite ejecutar Microsoft Word en un sistema GNU/Linux. Wine es software libre, GNU/Linux es software libre, hacerlo me concede más libertad como usuario que si estuviera limitado a utilizarlo en Windows. Sin embargo, Microsoft Word sigue sin ser software libre.

Las FPGAs de Lattice son Microsoft Word. Icestorm es Wine.
 
Puede que sea más o menos arbitrario este criterio, pero la verdad es
que no me molesta.

A mi sí, porque entiendo que no es necesario, que no añade valor al proyecto, y que en todo caso puede restar legitimidad.
 
A mi también me parecería muy mal "condenar" el término, pero no veo que
nadie lo esté condenando.

Por centrar el punto, estoy refiriéndome en todo momento a "FPGA libre". Lo condenas/condenamos en el sentido en que, como comentó Obijuan, habrá que inventar algún término nuevo al haberlo "usuarpado".
 
Ojo, cada vez que veo un sitio que dice "Este proyecto es hardware
libre" y no puedo encontrar el esquemático, o el PCB,

Entiendo que si no puedes encontrar el esquemático, el PCB o algún equivalente (netlist, HDL...), no es hardware libre. Por muy llamativa que sea la reivindicación.
 
o simplemente el
PCB no puede modificarse, o está hecho con herramientas propietarias ...
me enojo bastante.

En este caso, entiendo que te enfades. Yo también lo hago y en mi foro interno lo catalogo como open y no libre. Sin embargo, esto entra dentro de las comodidades/facilidades que el desarrollador quiere ofrecer. Que sea más o menos cómodo modificar unas fuentes no afecta al hecho de que estas sean libres. Quitemos la electrónica/informática de la ecuación y pensemos en el modelo 3D de, por ejemplo, la caja para la Icestick que diseñó Obijuan. Es hardware libre, independientemente de que facilite las fuentes en FreeCAD, en STL o los planos de fabricación en PDF.

Naturalmente, le agradecemos disponer del STL para poder imprimirlo directamente. Sin embargo, un usuario que quiera modificarlo/replicarlo con una herramienta diferente a FreeCAD se encuentra muy limitado, ya que esta "obligado" a abrir FreeCAD y saber utilizarlo para, al menos, acotar las piezas. Esto me ha pasado a mí, que quiero hacer el mismo diseño en OpenSCAD y estoy pendiente de instalar FreeCAD sólo para extraer las medidas. Sin embargo, esto no me molesta en absoluto. Es sólo un ejemplo para ilustrar que a veces las fuentes en un formato de archivo concreto, por muy libre que sea, tampoco son la opción más cómoda para facilitar una contribución/extensión.

Sin embargo entiendo que es así, y no le digo nada al
que usa el término de esa manera.

Como ves, entiendo que es así en algunos casos, no en otros. En cualquiera de ellos, si el proyecto no me interesa, y me da igual lo que suceda con él a largo plazo, tampoco digo nada.
 
Por otro lado hay que entender que es cuestión de depuración, el tiempo
va decantando las cosas, en la medida en que hay cosas "más libres" las
"menos libres" quedan mal paradas, simplemente por comparación.
El día que se junten N personas y manden a fabricar una FPGA
verdaderamente libre (y la misma pruebe ser útil, no sirve de nada si
consume 100 veces más, o no tiene capacidad para nada útil, o cuesta 10
veces más), y esas FPGAs se puedan conseguir ... pues bien, pasarán
naturalmente a fijar un nuevo estándar.

Creo que ya existen modelos que consumen 100 veces más y no son útiles fuera del ámbito académico. Sin embargo, es muy ilustrativo este planteamiento, pues deja claro que la discusión es sobre estándares de facto y de iure. Como ingeniero, estoy acostumbrado a los de iure.
 
1) No toda la iCE40 puede describirse en términos de HDL. Buena parte de
los PLLs y sistemas de alimentación son analógicos, ni hablar de los
IOBs. A Intel le llevó años deshacerse de muchas de las cosas analógicas
de sus CPUs, y entiendo que aún siguen cargando con unas cuantas. Esas
partes analógicas son extremadamente dependientes de la tecnología de
fabricación. No por nada la parte analógica de un USB (que son unos
drivers simplemente) sale unas 4 veces más cara que la parte lógica (que
son decenas de bloques HDL) [hablo del costo de licenciamiento].

¿No existen modelos libres, aunque sean teóricos, sobre esos componentes analógicos? En relación con lo anterior, independientemente de que sean para 350nm, 65nm, 40nm o 16nm, y del rendimiento. No es mi campo, pero creía que había librerías para, por ejemplo, Magic.
 
2) La performance de una "iCE150" o "iCE180" dudo que fuera interesante
más que para algunas pocas aplicaciones. Muy lindas para enseñar, pero
poco usables en la práctica.

De acuerdo. Mas la consideración de hardware libre es independiente de la utilidad práctica.
 
 Una de las libertades importantes que me da el "hardware libre" es la de
poder modificarlo. Si para modificarlo tengo que volver a hacer el PCB
... la verdad que para eso sería como sacarle una foto (o radiografía) ...
Nuevamente es una cuestión de "grados de libertad". Y por eso más arriba
digo que me enojo cuando se usa Altium para un "hardware libre".
Pero de nuevo: a mi entender "hardware libre" con información de diseño
editable con "software propietario" es *menos* libre que hardware libre"
con información de diseño editable con "software libre", sin embargo no
me pongo a criticar esos proyectos ;-)

Entiendo que en este caso, el de los PCBs, es muy difícil trazar una línea entre la libertad legal y la libertad abstracta, por lo sencillo que es "burlar" la primera (explicado anteriormente). Sin embargo, podemos resumirlo en el autor original diciendo "toma, haz lo que quieras con ello" o "toma, utilízalo pero no le hagas ningún cambio". Nótese que el formato utilizado es independiente en lo que respecta al "permiso". La icezum es libre, la Icestick no. Aunque yo pudiera descargarme los esquemas de Icestick en formato KiCAD de la página web de Lattice, si eso no va acompañado explícitamente de un "haz lo que quieras con ello", seguirá sin ser libre. No critico a Icestick por no ser libre, critico que se utilice el término "libre" para describir un producto cuya licencia de uso no es libre.
 
Asumiendo que al cargarlo con el Libre/OpenOffice no pierdo nada ...
Y con un PCB es muchísimo peor. El caso de la documentación quizás sea
el de menor impacto, pero imaginate que te paso los fuentes del gcc ...
impresos ... y te digo "sos libre de modificarlo" ... :-))) o peor,
escritos a mano alzada ;-)))

¡Seguirá siendo software/documentación/hardware libre! Es una cabronada, estoy muy de acuerdo. Pero hay escuelas de informática donde hasta hace relativamente poco los proyectos fin de carrera debían entregarse en papel. Si se utilizaba una licencia como GPL, había que imprimir todo el código fuente y una copia de la licencia. De hecho, esta es una de las razones por las que yo en su día utilicé CreativeCommons y no la FDL. Incomodísimo no significa "no libre" ni "menos libre" desde el punto de vista de la licencia.
 
Las patentes no pueden haber expirado, SBT se fundó en 2005.

Desconozco si las patentes son de Lattice, de SBT, son licencias de patentes anteriores de terceros o una mezcla de todo. En cualquier caso, el punto es que las patentes condicionan la consideración de "dominio público", no el aspecto de libre o no. Lo mismo sucede con el copyright y el software. En España, según tengo entendido, no hay forma legal de ceder un contenido al dominio público desde su creación (es decir, de renunciar al reconocimiento de la autoría intelectual).
 
Nuevamente entiendo que tu error es aplicar lógica estricta a términos
difusos. Es como aplicar reglas matemáticas a legislación ... me
encantaría, pero no funciona. O si te gusta más este ejemplo: matemática
a filosofía.

Me sorprenden estas afirmaciones, ya que la lógica es un área de la filosofía, y la lógica matemática es una disciplina que justamente relaciona filosofía con matemáticas. De hecho, la primera referencia en la Wikipedia es George Boole: https://es.wikipedia.org/wiki/L%C3%B3gica_matem%C3%A1tica Asimismo, la filosofía analítica es una forma de hacer filosofía que merece, al menos, un reconocimiento. La búsqueda de "filosofía analítica derecho", "lógica derecho", o "lógica jurídica" ofrece múltiples resultados.

En este sentido, me gustaría ver algún argumento sobre por qué no funciona, es decir, por qué la lógica booleana no es de aplicación en este caso. Entiendo que si consideras que la lógica matemática o la filosofía analítica no funcionan para analizar el dilema filosófico del software y el hardware libre, tendrás algún fundamento que lo invalide o considerarás más adecuada otra corriente de pensamiento.
 
Aplicando este tipo de lógica podríamos llegar a la conclusión de que no
existe hardware libre, ni siquiera software libre.

Si dispones de alguna referencia en este sentido, me gustaría echarle un ojo por mera curiosidad. Entiendo que no te refieres a la clásica discusión entre GPL o BSD sobre cuál es más libre, ya que ambas comunidades están de acuerdo en que todo es software libre, a pesar de diferencias prácticas en el ejercicio de la libertad.
 
Esta lleno de imprecisiones, pero al menos entendió cuál es la libertad
que obtiene.

Me parece muy bueno este ejemplo. Creo que estamos de acuerdo en que no haría ningún daño a nadie y sí ayudaría mucho que en ese mismo texto se especificara: "Por lo tanto, aunque las denominemos FPGAs Libres, los dispositivos de Lattice no son hardware libre. Un ejemplo de FPGA libre que sí es hardware libre es <enlace>". Entaremos de acuerdo también, en que esto está condicionado por la importancia que Obijuan le dé en sus exposiciones.
 
Creo que con esto queda claro que significa "FPGA Libre" en el contexto
de "FPGAWars"
¿Qué otra aclaración sugerís que agreguen?

Ahí en concreto, nada. Ya indiqué que en muchas partes del proyecto FPGAwars los términos se utilizan muy correctamente y no ha lugar a crítica. Puse como ejemplo que me gusta mucho el eslogan "Explorando el lado libre de las FPGAs". La crítica única es que cuando se apuntan las imprecisiones la respuesta es defensiva, justificativa o se ignora, en vez de simplemente asumirla como legítima y discutir la solución. Sugerencias concretas:

- Sustituir "Bienvenido a este grupo sobre FPGAs libres" por "Bienvenido a este grupo sobre el lado libre de las FPGAs".
- Eliminar el término "libre" del título del apartado https://github.com/Obijuan/digital-electronics-with-open-FPGAs-tutorial/wiki/Video-1:-Electr%C3%B3nica-digital-para-todos#fpgas-libres , y eliminar/modificar el primer párrafo, ya que lo que se está introduciendo es el concepto de "FPGA". El término libre, adecuado o no, sólo genera confusión. Debe introducirse cuando el lector ya sepa qué es una FPGA.
- En el mismo apartado, reescribir el párrafo donde se afirma que "(Clifford) creó el primer sintetizador libre de la historia", para reconocer el trabajo de https://github.com/verilog-to-routing/vtr-verilog-to-routing , cuya publicación de referencia es de 1997: http://www.eecg.toronto.edu/~vaughn/papers/fpl97.pdf . De hecho, estos últimos meses hay usuarios contribuyendo para que VTR pueda utilizarse con los dispositivos de Lattice como target: https://github.com/verilog-to-routing/vtr-verilog-to-routing/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+icestorm En la página de Qflow se expone por qué yosys es "mejor", aunque no sea el primero: http://opencircuitdesign.com/qflow/ La asociación entre VTR y yosys en sí (quitando los dispositivos de Lattice de la ecuación) es patente prácticamente desde que surgió yosys: https://eddiehung.github.io/vtb.html
- ¿Qué es el "patrimonio tecnológico de la humanidad"? Al parecer es una expresión inventada por el propio Obijuan, pero no he encontrado ninguna fuente de referencia que diga "A esto me refiero con esta expresión" y "creo que utilizar esta expresión es necesario por...". Ojo, no me parece mal, entendiéndolo como "herramientas y recursos tecnológicos con licencias libres". Mas, me surge la duda de por qué "con licencias libres" no es suficiente. Como suena análogo a un título concecido por una organización de reconocimiento internacional, agradecería una explicación, breve o no, sobre su origen y alcance. Por si las dudas, esto no me molesta en absoluto. Pero me parece relevante en un listado de "detalles para evitar imprecisiones".

Como ves, se trata simplemente de cambiar el discurso del héroe solitario surgido de la nada por el del héroe que camina a lomos de gigantes. Como el discurso del héroe surgido de la nada es falso, es inevitable caer en incorrecciones. Mostrando interés por conceder desde un inicio al César lo que es del César, el resto viene rodado. En este caso, lo que es del César son "el primer sintetizador libre" y "FPGA libre". Una vez más, me es absolutamente indiferente la motivación de Obijuan para optar por un discurso y no por otro. El hecho de relacionarlo anteriormente con Arduino en un tono posiblemente molesto, era un recurso para mostrar cómo pequeños detalles pueden acabar generando ruido que ensucie las muchas bondades de un proyecto. Si cuida esos detalles, la mejor de las suertes y todo mi apoyo para la empresa que motive su prolífica actividad.

Saludos

Salvador Eduardo Tropea

unread,
Jan 5, 2018, 12:29:09 PM1/5/18
to fpga-wars-explora...@googlegroups.com
On 05/01/18 10:51, 1138-4EB wrote:
> Buenas!
>
> Salvador escribió:
>
> Entiendo el punto, pero creo que no es comparable.
> Tratando de seguir tu ejemplo: lo que hizo Clifford es más
> parecido a lo
> que hace el proyecto Wine.
>
>
> Me parece muy acertado el ejemplo. Wine me permite ejecutar Microsoft
> Word en un sistema GNU/Linux. Wine es software libre, GNU/Linux es
> software libre, hacerlo me concede más libertad como usuario que si
> estuviera limitado a utilizarlo en Windows. Sin embargo, Microsoft
> Word sigue sin ser software libre.
>
> Las FPGAs de Lattice son Microsoft Word. Icestorm es Wine.

Estoy de acuerdo. Aunque sigo pensando que con el hardware el contexto
es diferente al que tenemos con el software.


> Puede que sea más o menos arbitrario este criterio, pero la verdad es
> que no me molesta.
>
>
> A mi sí, porque entiendo que no es necesario, que no añade valor al
> proyecto, y que en todo caso puede restar legitimidad.
>
> A mi también me parecería muy mal "condenar" el término, pero no
> veo que
> nadie lo esté condenando.
>
>
> Por centrar el punto, estoy refiriéndome en todo momento a "FPGA
> libre". Lo condenas/condenamos en el sentido en que, como comentó
> Obijuan, habrá que inventar algún término nuevo al haberlo "usuarpado".


A ver, "FPGA Libre" es el nombre que elegí para mi proyecto en 2005, no
creo que ObiJuan haya usurpado nada por hablar de "FPGAs Libres". Por lo
que no veo porque en el futuro alguien vaya a pensar que el termino fue
"usurpado" cuando lo quiera aplicar a otro aspecto del tema. No se,
quizás sea muy personal mio.
> ejemplo, Magic <http://opencircuitdesign.com/magic/>.

No, no existen para cualquier tecnología.
Cuando digo filosofía no me refiero a la rama específica de la "lógica
filosófica", sino a la que se plantea las preguntas "¿de donde venimos?"
"¿para qué existimos?" etc. Eso es el grueso de la filosofía, y la
verdad que dista demasiado de la lógica racional.

> Aplicando este tipo de lógica podríamos llegar a la conclusión de
> que no
> existe hardware libre, ni siquiera software libre.
>
>
> Si dispones de alguna referencia en este sentido, me gustaría echarle
> un ojo por mera curiosidad. Entiendo que no te refieres a la clásica
> discusión entre GPL o BSD sobre cuál es más libre, ya que ambas
> comunidades están de acuerdo en que todo es software libre, a pesar de
> diferencias prácticas en el ejercicio de la libertad.

No es necesario, comenzá ponerte exigente en cuestiones irrelevantes:
* Hardware libre: Ah si hay que comprar un chip ya no es libre! Luego te
dan la información de diseño en HDL ... Ah! pero si no tengo acceso a
las bibliotecas de síntesis que se usan para convertir el HDL a las
máscaras no es libre (olvidate que tengas acceso a eso en una tecnología
moderna e industrial) Luego sólo es libre si usás un proceso académico
(no industrial) Ah! pero si no tengo acceso a como es la fórmula química
del insumo X que uso en el proceso no es libre!! y así podríamos seguir
hasta llegar a la conclusión de que es imposible.
* Con el software también se puede ir por el mismo camino si nos
imponemos que eso englobe al hardware necesario para que corra.

> Esta lleno de imprecisiones, pero al menos entendió cuál es la
> libertad
> que obtiene.
>
>
> Me parece muy bueno este ejemplo. Creo que estamos de acuerdo en que
> no haría ningún daño a nadie y sí ayudaría mucho que en ese mismo
> texto se especificara: "Por lo tanto, aunque las denominemos FPGAs
> Libres, los dispositivos de Lattice no son hardware libre. Un ejemplo
> de FPGA libre que sí es hardware libre es <enlace>". Entaremos de
> acuerdo también, en que esto está condicionado por la importancia que
> Obijuan le dé en sus exposiciones.
>
> Creo que con esto queda claro que significa "FPGA Libre" en el
> contexto
> de "FPGAWars"
> ¿Qué otra aclaración sugerís que agreguen?
>
>
> Ahí en concreto, nada. Ya indiqué que en muchas partes del proyecto
> FPGAwars los términos se utilizan muy correctamente y no ha lugar a
> crítica. Puse como ejemplo que me gusta mucho el eslogan "Explorando
> el lado libre de las FPGAs". La crítica única es que cuando se apuntan
> las imprecisiones la respuesta es defensiva, justificativa o se
> ignora, en vez de simplemente asumirla como legítima y discutir la
> solución. Sugerencias concretas:
>
> - Sustituir "Bienvenido a este grupo sobre *FPGAs libres"* por
> "Bienvenido a este grupo sobre el lado libre de las FPGAs".
> - Eliminar el término "libre" del título del apartado
> https://github.com/Obijuan/digital-electronics-with-open-FPGAs-tutorial/wiki/Video-1:-Electr%C3%B3nica-digital-para-todos#fpgas-libres
> , y eliminar/modificar el primer párrafo, ya que lo que se está
> introduciendo es el concepto de "FPGA". El término libre, adecuado o
> no, sólo genera confusión. Debe introducirse cuando el lector ya sepa
> qué es una FPGA.
> - En el mismo apartado, reescribir el párrafo donde se afirma que
> "(Clifford) creó el primer sintetizador libre de la historia", para
> reconocer el trabajo de
> https://github.com/verilog-to-routing/vtr-verilog-to-routing , cuya
> publicación de referencia es de 1997:
> http://www.eecg.toronto.edu/~vaughn/papers/fpl97.pdf . De hecho, estos
> últimos meses hay usuarios contribuyendo para que VTR pueda utilizarse
> con los dispositivos de Lattice como target:
> https://github.com/verilog-to-routing/vtr-verilog-to-routing/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+icestorm
> En la página de Qflow se expone por qué yosys es "mejor", aunque no
> sea el primero: http://opencircuitdesign.com/qflow/ La asociación
> entre VTR y yosys en sí (quitando los dispositivos de Lattice de la
> ecuación) es patente prácticamente desde que surgió yosys:
> https://eddiehung.github.io/vtb.html

Sin ánimo de ofender: ¿No era más simple pedir estas cosas? y de paso:
como sugerencia, no expresado en forma imperativa ;-)

> - ¿Qué es el "patrimonio tecnológico de la humanidad"?Al parecer es
> una expresión inventada por el propio Obijuan,

No quiero volver a empezar ...
¿No es más fácil sugerir un cambio en lugar de criticar una frase?

> pero no he encontrado ninguna fuente de referencia que diga "A esto me
> refiero con esta expresión" y "creo que utilizar esta expresión es
> necesario por...". Ojo, no me parece mal, entendiéndolo como
> "herramientas y recursos tecnológicos con licencias libres". Mas, me
> surge la duda de por qué "con licencias libres" no es suficiente. Como
> suena análogo a un título concecido por una organización de
> reconocimiento internacional, agradecería una explicación, breve o no,
> sobre su origen y alcance. Por si las dudas, esto no me molesta en
> absoluto. Pero me parece relevante en un listado de "detalles para
> evitar imprecisiones".
>
> Como ves, se trata simplemente de cambiar el discurso del héroe
> solitario surgido de la nada por el del héroe que camina a lomos de
> gigantes. Como el discurso del héroe surgido de la nada es falso, es
> inevitable caer en incorrecciones. Mostrando interés por conceder
> desde un inicio al César lo que es del César, el resto viene rodado.
> En este caso, lo que es del César son "el primer sintetizador libre" y
> "FPGA libre". Una vez más, me es absolutamente indiferente la
> motivación de Obijuan para optar por un discurso y no por otro. El
> hecho de relacionarlo anteriormente con Arduino en un tono
> posiblemente molesto, era un recurso para mostrar cómo pequeños
> detalles pueden acabar generando ruido que ensucie las muchas bondades
> de un proyecto. Si cuida esos detalles, la mejor de las suertes y todo
> mi apoyo para la empresa que motive su prolífica actividad.

1138-4EB

unread,
Jan 5, 2018, 3:38:14 PM1/5/18
to FPGAwars: explorando el lado libre
Salvador escribió:
A ver, "FPGA Libre" es el nombre que elegí para mi proyecto en 2005, no
creo que ObiJuan haya usurpado nada por hablar de "FPGAs Libres". Por lo
que no veo porque en el futuro alguien vaya a pensar que el termino fue
"usurpado" cuando lo quiera aplicar a otro aspecto del tema. No se,
quizás sea muy personal mio.

No a "tu FPGA Libre" sino a "FPGA libre" como "FPGA distribuida bajo licencia libre". En el caso de tu proyecto, ya indiqué que siempre lo he interpretado como una exclamación/reivindicación, donde "FPGA" no es un listado concreto de dispositivos, sino un tipo de chip en general (en oposición a CPU o GPU, por ejemplo).
 
No es necesario, comenzá ponerte exigente en cuestiones irrelevantes:
* Hardware libre: Ah si hay que comprar un chip ya no es libre! Luego te
dan la información de diseño en HDL ... Ah! pero si no tengo acceso a
las bibliotecas de síntesis que se usan para convertir el HDL a las
máscaras no es libre (olvidate que tengas acceso a eso en una tecnología
moderna e industrial) Luego sólo es libre si usás un proceso académico
(no industrial) Ah! pero si no tengo acceso a como es la fórmula química
del insumo X que uso en el proceso no es libre!! y así podríamos seguir
hasta llegar a la conclusión de que es imposible.
* Con el software también se puede ir por el mismo camino si nos
imponemos que eso englobe al hardware necesario para que corra.

Pagar (comprar) un producto es independiente de la licencia de distribución del mismo. Hay software libre por el que se paga. En realidad se entiende que no pagas por el software en sí, sino por el empaquetado, el manual, etc. Lo mismo sucede con el hardware; no pagas por la propiedad intelectual, sino por que te lo fabriquen. En caso de no tener las bibliotecas de síntesis, se trata de una FPGA de diseño libre fabricada en un proceso tecnológico no libre. Es decir, el repo de git será el de una FPGA libre, pero el chip que tenga en mi mano no será libre. De hecho, esto es exactamente un paso más en la libertad del usuario, una etapa más en el tutorial de Obijuan. Del mismo modo que ahora tenemos una toolchain completa libre para una FPGA no libre (ni diseño, ni fabricación).

Si algún día el proceso es libre también tendremos hardware completamente libre (entendiendo que las fórmulas son parte necesaria del proceso). Si el proceso es libre pero los materiales no, tendremos un hardware libre a excepción de los materiales. De hecho, este tema de los materiales, aunque desde otro prisma, está de actualidad por proyectos como Fairphone.

No veo dónde está la imposibilidad. Es más, creo que esta progresión en la liberación es muy acorde a los planteamientos expuestos por todos en este hilo. Sólo es necesario que el vocabulario utilizado sea acorde a la progresión, y no intentemos de avanzar mediante el lenguaje lo que no hemos conseguido mediante la técnica.

Sin ánimo de ofender: ¿No era más simple pedir estas cosas? y de paso:
como sugerencia, no expresado en forma imperativa ;-)

Claro. De hecho, mi primera referencia al respecto fue hace un año, y fue algo así como "por favor, no uséis el término 'FPGA libre', un gatito muere cada vez que se usa relacionado con Lattice". Múltiples sugerencias después y habiéndose ignorado toda referencia, me condujo a pensar que igual no era/es un simple malentendido. Un simple, "trataremos de cuidar el vocabulario" habría servido. Es más, solo tú has afirmado que, efectivamente, la elección es arbitraria, aunque no te importe/moleste.

 > - ¿Qué es el "patrimonio tecnológico de la humanidad"?Al parecer es
> una expresión inventada por el propio Obijuan,

No quiero volver a empezar ...
¿No es más fácil sugerir un cambio en lugar de criticar una frase?

Yo tampoco. Como digo, que yo sepa esa expresión no existía antes, por lo que es "virgen" para que Obijuan la defina como guste. No creo que deba ser yo quien defina su invención, aunque ya he indicado qué es lo que creo que quiere decir. Mas, seamos proactivos:

Patrimonio es un término (usado normalmente en derecho) para describir un listado de bienes, normalmente cuantificables económicamente, pertenecientes a una persona física o jurídica. Según la RAE, existen el patrimonio nacional, histórico, neto o real. El patrimonio tecnológico, aunque no aparezca en la RAE se usa para hacer referencia a procedimientos o recetas para fabricar objetos, o a los objetos en sí. Por ejemplo: https://www.nippon.com/es/currents/d00299/ En el contexto de CloneWars y FPGAwars podemos entender que en "patrimonio tecnológico" se incluyen software y hardware.

El "de la humanidad" complica el tema, ya que "humanidad" es por definición todos/cualquier persona física o jurídica. Por lo tanto, se puede interpretar como "cualquier software o hardware creado por cualquier persona en la historia". Que, en el contexto, es lo mismo que decir "todo lo que se ha hecho/fabricado/creado". Por lo tanto, para que sea especificativo y no sólo explicativo, debemos interpretar que hay una elipsis "el patrimonio tecnológico (adjetivo) de la humanidad". ¿Cuál es el adjetivo? En alguna referencia he visto citar a Obijuan indicando que es "libre", pero no creo que quiera excluir "abierto" ni "de dominio público". Tampoco sirve "Copyleft", porque esto no va sólo de copyright, va también de patentes. Puede que justamente por eso esté oculto. Además, por el debate previo, interpreto que el factor gratis también es importante en la escala de "libertad".

En cualquier caso, como el adjetivo está por definir (o aclarar), cualquier definición que se haga estará bien. Por ejemplo:

"El patrimonio tecnológico de la humanidad es el conjunto de procedimientos y recetas para fabricar y utilizar objetos, y los objetos en sí, que están disponibles públicamente y de forma gratuita para que cualquier persona pueda consultar y analizar."

Aquí los adjetivos son "público" y "gratis": el patrimonio tecnológico (público y gratuito) de la humanidad. Es efectiva porque define el significado y al hacerlo justifica la necesidad/adecuación de la expresión (léase, sintetizar una oración bastante larga en tres palabras clave). Pero, es tan general, tan asociado a "software abierto" y tan poco a "software libre", que no estoy seguro de que sea la intención original.

Complementariamente, desconozco hasta qué punto Obijuan encuentra el concepto cercano a la "Declaración del Buen conocer" de http://floksociety.org/: http://book.floksociety.org/ec/

Como ves, no es tan directo hacer una propuesta de definición concreta, sin entrometerme en la intención original de Obijuan. Inventarse una expresión es algo muy personal.

Saludos

José María Morales

unread,
Jan 6, 2018, 9:47:25 PM1/6/18
to FPGAwars: explorando el lado libre
Hola a todos!

Este es mi primer comentario en el foro, así que lo primero felicitaros a todos por el proyecto. Me parece muy interesante querer hacer más accesibles las FPGA. Aún recuerdo cuando me las explicaron en la carrera :S... de haber tenido estas tecnologías todo hubiera sido más fácil y habríamos llegado más lejos.

A mi modo de ver hablar de libertad puede ser algo paradógico. Si lo vemos como un porcentaje, las FPGA siempre han sido libres y al mismo tiempo no libres. Me explico: cuando no existían eran nada libres, cuando aparecieron en laboratorios y revistas científicas eras libre de conocer su existencia y su por qué, cuando las comercializaron eras libre de comprarlas y usarlas según los términos de licencia, cuando mejoraron eras libre de usarlas en más aplicaciones, y ahora se está progresando hacia una libertad mucho mayor pero no total, y así sucesivamente (tal vez llegue un día en el que cualquiera pueda fabricar su FPGA en casa con materiales y procedimientos gratuitos y triviales... pero por ahora es ciencia-ficción jajaja).

El caso es que lo que ahora llamamos "FPGA libre" será la "FPGA no libre" en el futuro, porque siempre aparecerán nuevas libertades (nuevos hitos históricos) que cambiaran lo que a nivel práctico entendemos por libertad. Y en sentido contrario, las "FPGA no libres" de ahora son las "FPGA libres" del pasado, con la diferencia sustancial de que este proyecto sí tiene una aspiración de ser lo más libre posible (ir añadiendo libertades), al menos hasta donde yo entiendo.

Creo que este término (FPGA libres) lleva a confusión según cómo se explique. Por ejemplo todo el mundo es cosciente a día de hoy de que los materiales para fabricar algo no son libres (OK, no hace falta decir "FPGA libres salvo los materiales de construcción"). Pero lo que no todo el mundo sabe es que hay componentes prioritarios que no son libres (no puedes fabricar estos componentes sin permiso aunque tengas los recursos), al igual que ocurre con Arduino o RasperryPi.

Creo que lo más razonable sería dejar claro hasta donde llega la libertad (ya que a día de hoy no se puede llegar a más libertad por distintas cuestiones, y siendo consciente de que en el futuro tal vez sí se podrá). Es decir, dejar claro cuál es el aporte del proyecto (que es mucho), independientemente de cómo se denomine. Si se llaman FPGA libres, a mi personalmente me gustaría que se especificara hasta donde llega esa libertad, puesto que puedo no conocer los límites más alla de los obvios a día de hoy; y explicar que "libre" es una aspiración de mejora continua para con la libertad de los usuarios.

En fin, eso es todo. Un placer comentar, espero que sirva mi humilde granito de arena!

Saludos,
José María.
Reply all
Reply to author
Forward
0 new messages