Capítulo 28: Etiquetas en Icestudio - Obijuan/videoblog GitHub Wiki
Vídeo
- Fecha: 2019/Mayo/12
Haz click en la imagen para ver el vídeo en Youtube
Descripción
A partir de la versión 0.4-dev Nightly Build, disponemos de etiquetas en Icestudio. Esto nos permite organizar mejor los diseños y que sean mucho más legibles y fáciles de reutilizar. Veremos ejemplos de cómo utilizarlas
Contenido
- Instrucciones
- Introducción
- Etiquetando cables
- Etiquetando buses
- Múltiples etiquetas
- Conclusiones
- Descargas
- Autor
- Licencia
- Créditos y agradecimientos
- Enlaces
Instrucciones
Para hacer los ejemplos mostrados en este videoblog necesitarás:
- Jedi collection 1.4.0. Colección Jedi de bloques para Icestudio (1.4.0 ó superior)
- Icestudio 0.4-dev nightly. Versión de icestudio 0.4-dev Nightly o superior
Introducción
Los circuitos digitales ocupan un espacio físico. Los bits se transportan de un componente a otro mediante cables. Cuando hay muchos elementos, el cableado se vuelve complejo
En las herramientas de diseño electrónico se usan etiquetas para definir las uniones entre los elementos, evitando así el tener que dibujar los cables explícitamente, y facilitando la legibilidad de los diseños
Gracias a Carlos Venegas (Charli), disponemos de etiquetas en Icestudio, a partir de la versión 0.4-dev nightly
Etiquetando cables
Vamos a aprender a poner etiquetas en Icestudio
Ejemplo 1: Bombeo de bits por cable
Partimos de un ejemplo que ya conocemos muy bien: hacer parpadear un led. Usamos un corazón de 1Hz para bombear bits al LED7 de la placa Alhambra II. La conexión se hace con un cable
Ejemplo 2: Mi primera conexión con etiquetas
Este es el circuito equivalente pero usando la etiqueta parpadeo para hacer la conexión entre el corazón y el pin de salida donde está conectado el LED
Cargamos el circuito para probarlo, y comprobamos que efectivamente el LED 0 parpadea. Funciona exactamente igual que si lo hubiésemos conectado explícitamente con un cable. En esta animación lo vemos en funcionamiento
La etiqueta por donde "entra" el cable se denomina etiqueta de entrada y es la que usamos para exportar ese cable. Está accesible desde el menú Básico/etiqueta de entrada. La otra etiqueta recibe el nombre de etiqueta de salida. Está accesible en Básico/etiqueta de salida
Para que las etiquetas estén conectadas, es necesario que tengan el mismo nombre. En esta animación se muestra cómo se colocan las etiquetas de entrada y salida del ejemplo 2
Ejemplo 3: LEDs alternantes
Modificamos el ejemplo anterior para tener dos LEDs, el 7 y el 0 parpadeando alternativamente. Los cables que van a los pines de los LEDs los sacamos de la etiqueta de salida. Se comporta como cualquier otro bloque, y su salida la podemos conectar donde queramos
Lo cargamos y lo probamos. En esta animación vemos el resultado. No es nada nuevo, ya lo hemos hecho muchas veces en los tutoriales ;-)
Ejemplo 4: Varias etiquetas de salida
Por cada etiqueta de entrada, puede haber ninguna, una o varias etiquetas de salida. Cuando hay más de una, todas son el mismo cable, aunque se dibujen en posiciones separadas. Este es el ejemplo anterior modificado para usar 2 etiquetas de salida. Es totalmente equivalente al ejemplo 3
Ejemplo 5: tomando medidas
Las etiquetas son muy cómodas para tomar mediciones fácilmente, sin modificar el circuito original y sin entorpecerlo. Así por ejemplo, si queremos medir la señal de parpadeo del ejemplo 5 sólo habría que añadir una etiqueta de salida conectada al pin de medición, en cualquier lugar del circuito
Este es el escenario, con la Alhambra II y el analizador lógico compatible Saleae, conectado al pin D0
Y esto es lo que se observa en la pantala del PulseView
Como la frecuencia del parpadeo es baja (4Hz) en el analizador vemos en tiempo real su estado: alto o bajo. Esto no tiene nada que ver con este tutorial, pero mola :-). Aquí podéis ver la animación
Etiquetando buses
Los buses también se pueden etiquetar, ya que al fin y al cabo, no son más que cables. Basta con colocar los corchetes al final de la etiqueta e indicar el bit de mayor y menos peso respectivamente. Vamos a ver ejemplos de ello
Ejemplo 6: Bombeo de números por bus
Empezamos por un circuito que bombea números de 8 bits a los LEDs para mostrar una secuencia de dos estados. El corazón hace que el multiplexor seleccione el número 0x55 ó el 0xAA para sacar por los LEDs. La salida del multiplexor se conecta con un bus explícito a los LEDs
Ejemplo 7: Bombeo de números por etiquetas
Ahora reconvertimos este bus en una etiqueta de bus para enviar los números a través de ella. Como el bus es de 8 bits, creamos una etiqueta de entrada finalizada en [7:0], por ejemplo sec[7:0]. Y su etiqueta de salida, con el mismo nombre para que se establezca la unión
Este circuito es totalmente equivalente al anterior, donde se usaba un bus explícito para hacer la conexión. Lo cargamos y lo probamos. En esta animación se muestra la secuencia en los LEDs:
Múltiples etiquetas
En nuestros diseños podemos añadir tantas etiquetas como queramos. La conexión se hace por el nombre de la etiqueta, pero resulta útil utilizar diferentes colores para mejorar la legibilidad. El color lo definimos al crear la etiqueta
Ejemplo 8: Secuencia en LEDs y puerto serie
Modificamos el ejemplo anterior para hacer que los números se envíen por el puerto serie al PC, además de mostrarse por los LEDs. Para ello añadimos la etiqueta numero que contiene la señal del corazón
El circuito de envío al PC recibe el dato de la etiqueta sec[7:0] y genera un tic en los flancos de subida y bajada para iniciar la transmisión del valor que toca. En el terminal de comunicaciones del pc podemos ver que los valores obtenidos son los correctos: 0xAA y 0x55:
Ejemplo 9: Circuito grabado en fábrica en la Alhambra-II
El circuito que viene pre-grabado de fábrica en la Alhambra-II utiliza diferentes etiquetas para mejorar la legibilidad. Hay 3 etiquetas de cables: sw2 (amarilla), tx-3 (azul) y tx-4 (azul) y dos de buses: rxdata[7:0] (fuxia) y circuit[1:0] (naranja)
Este circuito se está disponible en el repositorio de la alhambra II, y se puede descargar desde este enlace. Su funcionamiento se mostró en el Videoblog 27
Conclusiones
- Las etiquetas mejoran la legibilidad de nuestros circuitos
- Si dos etiquetas tienen el mismo nombre, se establece una unión entre ellas
- Las podemos usar tanto para cables como para buses
- Podemos establecer los colores que queramos
- ¡Usa etiquetas siempre!
Descargas
Fichero | Descripción |
---|---|
Ejemplo-1-bombeo-bits.ice | Ejemplo 1: Bombeo de bits por cable |
Ejemplo-2-bombeo-labels.ice | Ejemplo 2: Mi primera conexión con etiquetas |
Ejemplo-3-leds-alternantes-1.ice | Ejemplo 3: LEDs alternantes |
Ejemplo-4-dos-etiquetas-salida.ice | Ejemplo 4: Varias etiquetas de salida |
Ejemplo-5-medicion-con-etiquetas.ice | Ejemplo 5: Tomando medidas |
Ejemplo-6-bombeo-numeros-bus.ice | Ejemplo 6: Bombeo de números por bus |
Ejemplo-7-bombeo-numeros-etiquetas.ice | Ejemplo 7: Bombeo de números por etiquetas |
Ejemplo-8-bombeo-numeros-LEDs-serial.ice | Ejemplo 8: Secuencia en LEDs y puerto serie |
Autor
- Juan González-Gómez (Obijuan)
Licencia
Créditos y agradecimientos
- Carlos Venegas (Charli). Ha implementado las etiquetas en Icestudio. ¡Muchísimas gracias!
- Jesús Arroyo. Creador y desarrollador principal de Icestudio. ¡Muchísimas gracias!
- Imagen cableado caótico: https://blog.dotcom-monitor.com/dotcom-monitor-news/server-cable-hell-worst-wiring-jobs-ever/