Supongamos que tenemos un contador de 8 bits out[7:0◆
Debe permanecer en cada recuento durante un número específico de relojes x, donde x puede ser cualquier entero o factor fraccional de 512.
Mi enfoque:
Use el contador de 10 bits temp [9: 0] que se incrementa en cada reloj de posicionamiento
Para x = 512, aumente temp en los pasos de 1, e incremente cuando temp[9◆==1
Para x = 256, incremente temp en pasos de 2, e incremente cuando temp [9] == 1 .... y así sucesivamente.
Mi pregunta
-
¿Alguien tiene una idea mejor que esta, más eficiente en recursos?
-
¿Cómo manejar el caso cuando x puede tomar valores arbitrarios no necesariamente relacionados por factores de un número en particular? Solo sabemos el máximo que x puede ser.
Para aclarar: x es solo un registro normal de 9 bits. El valor en x y el número de relojes de espera están relacionados por 512 / x = HoldClocks.
- 512/1 = 512
- 512/2 = 256
- 512/3 = 170.667
- 512/4 = 128
- ........
- 512/512 = 1.
¿Qué tal el caso general? ¿Qué pasa si max hold no es una potencia de 2? ¿Cómo manejaría el caso en el que el tiempo de espera máxima (x = 1) es, por ejemplo, 460 en lugar de 512?