Essayant d'implémenter une méthode sum du tableau. Stocké la valeur de retour de la méthode sur l'entier à l'intérieur d'une fonction. Pourquoi est-ce que j'obtiens la sortie comme 48 au lieu de 560?Array.sum() Gotcha
program test;
class check2;
logic [7:0] a [3:0] = '{10,20,30,500};
function void dis();
int unsigned ch;
ch = a.sum()+16'd0;
$display(ch);
endfunction
endclass
check2 c;
initial begin
c = new;
c.dis;
end
endprogram
Pourquoi $ display (a.sum() + 16'd0) ne fonctionne-t-il pas dans ce cas? – Rottenengg
Parce que sum() est un appel de fonction et que le calcul de la valeur de retour est dans un contexte indépendant d'où l'expression de résultat est utilisée. Vous pensez comme si l'équation de la somme était alignée avec le '+ 16'd0' –
Hey @dave De la méthode mentionnée ci-dessus, je reçois la somme comme 304 au lieu de 560. Lien: - http: //www.edaplayground. com/x/32BU – Rottenengg