C/Visual C - [OT] Pregunta sobre Abel-HDL

 
Vista:

[OT] Pregunta sobre Abel-HDL

Publicado por Dario Kusters (3 intervenciones) el 05/04/2003 04:32:25
Hola,

alguien programa lenguajes de hardware por aqui?
Tengo una consulta sobre Abel-HDL y el uso de la sentencia @REPEAT
Encontre en la red buenos manuales pero en los ejemplos les sacan los vectores de testeo para ahorar espacio.
y he encontrado muy poca explicacion de la sentencia que mencione.

se que por ej. si pongo
@REPEAT 32 { [.U.,.x.,.x.] -> [.X.,.X.] };

testea todos los vectores. Hasta ahi bien.
Pero como uso esta sentencia para vectores de por ej un decodificador de 16 entradas?

Espero quee alguien me pueda ayudar,

Saludos,
Dario
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Uso de la sentencia @REPEAT en Abel-HDL para decodificadores de 16 entradas

Publicado por Alejandro (1153 intervenciones) el 13/05/2025 20:09:51
Hola Darío,

La sentencia `@REPEAT` en Abel-HDL es una herramienta muy útil para generar múltiples vectores de prueba de manera eficiente. Entiendo que estás buscando cómo aplicarla específicamente para un decodificador de 16 entradas.

Para un decodificador de 16 entradas, necesitarás generar vectores de prueba que cubran todas las combinaciones posibles de las 16 entradas. Esto significa que tendrás 2^16 (65536) combinaciones posibles. Sin embargo, puedes usar `@REPEAT` para simplificar la generación de estos vectores.

Aquí tienes un ejemplo de cómo podrías usar `@REPEAT` para un decodificador de 16 entradas:

1
2
3
@REPEAT 16 {
    [.U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U., .U.] -> [.X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X.]
};

En este caso, el `@REPEAT 16` generará 16 vectores de prueba, donde cada entrada se puede definir como `U` (indeterminado) y la salida como `X` (no especificado). Sin embargo, esto no cubre todas las combinaciones.

Para cubrir todas las combinaciones de un decodificador de 16 entradas, puedes usar un enfoque más específico. Aquí hay un ejemplo más detallado:

1
2
3
@REPEAT 65536 {
    [.A0, .A1, .A2, .A3, .A4, .A5, .A6, .A7, .A8, .A9, .A10, .A11, .A12, .A13, .A14, .A15] -> [.X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X.]
};

Sin embargo, esto generará un número muy grande de vectores de prueba, lo que puede no ser práctico. En su lugar, podrías considerar usar un bucle que genere solo los vectores que necesitas para probar las salidas específicas del decodificador. Por ejemplo, podrías crear un vector de prueba que active cada entrada una por una:

1
2
3
@REPEAT 16 {
    [.A0, .A1, .A2, .A3, .A4, .A5, .A6, .A7, .A8, .A9, .A10, .A11, .A12, .A13, .A14, .A15] -> [.X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X., .X.]
};

En este caso, deberías definir cómo se activan las entradas en cada iteración del bucle. Esto puede requerir un poco más de lógica, pero te permitirá probar el decodificador de manera más eficiente.

¡Espero que esto te ayude!

Saludos,
Ale.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar