Verilog-A: pase una matriz sin un tamaño predefinido como entrada a una función

1

Parece bastante fácil pasar a una matriz de funciones si ya se conoce su tamaño:

analog function integer ArrayIsZeros;
input [7:0] array;
integer array [7:0] ;

Pero entonces la función se vuelve específica para los arreglos con 8. ¿Hay alguna manera de hacerlo más universal, para cualquier arreglo con un tamaño no predefinido?

    
pregunta Alexey Faynburd

1 respuesta

2

Puedes hacer funciones parametrizadas:

localparam WIDTH = 8; //Or module parameter
function integer ArrayIsZeros;
input [WIDTH-1:0] array;
integer array [WIDTH-1:0];
begin
...
end
endfunction

Pero esto solo es útil si está utilizando la función para un ancho de datos en el módulo. Básicamente, puedes usar los parámetros del módulo para parametrizar el ancho de la función, pero no puedes usar la misma función con dos anchos diferentes en el mismo módulo.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas