[Icestudio][iceMeasure] Bloque para medición de ciclos de reloj

81 views
Skip to first unread message

Obijuan

unread,
Aug 27, 2020, 7:10:05 AM8/27/20
to FPGAwars: explorando el lado libre
Hola,

He hecho un bloque para medir los ciclos de reloj que tarda una operación de un circuito y mostrar el resultado en la consola serie. Es muy útil para realizar mediaciones rápidas

En este primer ejemplo se muestra su funcionamiento: [iceMeasure-screenshot-01.png]

Se está midiendo el retraso que introduce un biestable D, entre su entrada (p1) y su salida (p2), que sabemos que es de 1 ciclo de reloj

La medición la realizamos cada vez que se aprieta el pulsador sw1, que entra por p1, y colocamos el bloque medidor (Measure-8bits) entre p1 y p2

En la consola serie veremos el número de ciclos que tarda, que efectivamente es 1:

[iceMeasure-screenshot-02.png]

De momento sólo tengo hecho un bloque, que permite medir retardos de hasta 255 ciclos. Se encuentra en la colección iceMeasure, junto con varios ejemplos. Está en este repositorio:


Este bloque será muy util para la implementación de bloques de cálculo (multiplicaciones, divisiones, etc...) y poder así saber rápidamente cuántos ciclos se tarda en realizar la operación, sin tener que obtener los cronogramas

Saludos, Obijuan


iceMeasure-screenshot-02.png
iceMeasure-screenshot-01.png

charli va

unread,
Aug 27, 2020, 7:15:35 AM8/27/20
to fpga-wars-explora...@googlegroups.com
Un módulo super útil! Gracias Maestro!

--
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.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/3d9af7ba-6dab-416b-a682-42b36d34a3c2n%40googlegroups.com.

PTAa

unread,
Aug 27, 2020, 7:20:37 AM8/27/20
to fpga-wars-explora...@googlegroups.com

Obijuan

unread,
Aug 27, 2020, 7:33:45 AM8/27/20
to FPGAwars: explorando el lado libre
Este es el pantallazo de un ejemplo en el que se miden 2 bliestables D en cascada, que introduce un retraso de 2 ciclos entre p1 y p2:  [iceMeasure-screenshot-03.png]

El bloque de medición se coloca entre p1 y p2, y al apretar el pulsador efectivamente comprobamos que tarda 2 ciclos en llegar el tic desde p1 a p2

En este otro ejemplo se está midiendo un circuito combinacional. Al ser combinacional, el retraso son 0 ciclos de reloj (todo ocurre en el mismo ciclo): [iceMeasure-screenshot-04.png]

Ahora al apretar el pulsador se obtiene una medición de 0 ciclos de reloj. Claro, la puerta AND es un circuito combinacional y su retraso (en ciclos de reloj) es 0

Podéis encontrar más ejemplos en la carpeta de ejemplos de la  colección iceMeasure

Saludos, Obijuan


iceMeasure-screenshot-04.png
iceMeasure-screenshot-03.png

Democrito

unread,
Aug 27, 2020, 7:38:45 AM8/27/20
to FPGAwars: explorando el lado libre
Lo he probado y funciona genial. Me va a ser muy útil porque en cierto tipo de circuitos me pregunto eso mismo, cuántos ciclos necesita y siempre utilizaba la intuición (ojo de cubero).

Muchas gracias!

Obijuan

unread,
Aug 27, 2020, 7:39:04 AM8/27/20
to FPGAwars: explorando el lado libre
Thanks! Although i've written this post in spanish, the examples are in english. Also the implementation of the measuring block

Best regards, Juan

Obijuan

unread,
Aug 27, 2020, 7:41:30 AM8/27/20
to FPGAwars: explorando el lado libre
Gracias por las pruebas Demócrito! 🙂

A mí me pasaba lo mismo: usas la intuición y la prueba y error para saber si había que retrasar una señal o no. Con este tipo de bloques esas mediciones son extremadamente simples y rápidas

Saludos, Obijuan

charli va

unread,
Aug 27, 2020, 7:43:53 AM8/27/20
to fpga-wars-explora...@googlegroups.com
Yo ahora estoy con integrando la tarjeta SD y me va a venir fenomenal , justo por lo que dices, ahora ando con icerok haciendo pruebas super lentas para medir si me falta un ciclo o si me sobran dos....

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

Juan Gonzalez Gomez

unread,
Aug 27, 2020, 8:02:57 AM8/27/20
to FPGA-WARS: explorando el lado libre
Genial!  Yo lo he necesitado para las máquinas que realizan operaciones en las memorias síncronas, y saber exactamente cuántos ciclos tardan. Unas de estas máquinas son precisamente para implementar fácilmente el muestreo y el envío de datos al PC, para hacer sondas muy fácilmente para icerok.

Estoy trabajando en el cuaderno técnico 9, sobre memorias [1]


charli va

unread,
Aug 27, 2020, 8:18:20 AM8/27/20
to fpga-wars-explora...@googlegroups.com
Como siempre una documentación tremenda.

vas...@gmail.com

unread,
Aug 29, 2020, 9:18:53 AM8/29/20
to FPGAwars: explorando el lado libre
Gracias Obijuan, un bloque super útil!!.

Saludos. Diego

Reply all
Reply to author
Forward
0 new messages