Circuitos Digitales - Pregunta sobre Abel-HDL

 
Vista:

Pregunta sobre Abel-HDL

Publicado por Dario Kusters (51 intervenciones) el 05/04/2003 04:29:39
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 pruebas de vectores

Publicado por Alejandro (117 intervenciones) el 25/08/2023 18:35:28
La sentencia `@REPEAT` en Abel-HDL se utiliza para repetir una serie de operaciones o acciones múltiples veces en el simulador. Para el caso de la simulación de vectores de prueba, la sentencia `@REPEAT` puede ser útil para repetir una serie de vectores y observar cómo se comporta un diseño de circuito digital con diferentes entradas.

En tu ejemplo:

1
@REPEAT 32 { [.U.,.x.,.x.] -> [.X.,.X.] };

Se repite el vector `[.U.,.x.,.x.] -> [.X.,.X.]` 32 veces en la simulación. Sin embargo, si deseas aplicar la sentencia `@REPEAT` para vectores de entrada más complejos, como en el caso de un decodificador de 16 entradas, necesitarás definir y repetir esos vectores de manera adecuada.

Supongamos que tienes un decodificador de 16 entradas con todas las combinaciones posibles. Puedes definir los vectores de entrada de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
Vector_0  = [.x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x.];
Vector_1  = [.U., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x.];
Vector_2  = [.x., .U., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x., .x.];
...
 
@REPEAT 16 {
    Vector_0 -> ... ;  -- Definir el resultado esperado
    Vector_1 -> ... ;  -- Definir el resultado esperado
    Vector_2 -> ... ;  -- Definir el resultado esperado
    ...
};

En este caso, cada vector de entrada (`Vector_0`, `Vector_1`, etc.) representa una combinación de entrada posible para el decodificador de 16 entradas. Dentro del bloque `@REPEAT`, puedes definir los resultados esperados para cada combinación de entrada.

Recuerda que el uso exacto de la sentencia `@REPEAT` y la definición de vectores dependerán de la estructura de tu diseño y de lo que estés tratando de probar en tu simulación.

Si sigues teniendo dudas sobre la sentencia `@REPEAT` en el contexto de Abel-HDL, te recomiendo buscar en la documentación de Abel-HDL.
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