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

Click to see the youtube video

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

Para hacer los ejemplos mostrados en este videoblog necesitarás:

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

Licencia

Créditos y agradecimientos

Enlaces