Je suis en train de déclarer un tableau de taille variable basée sur une générer variable mais mon outil de peluchage SpyGlass se plaint de règle BitOrder-ML
et affiche le message d'erreur suivant:Declare taille du vecteur avec l'expression de générer variables
Declare 'Taille du vecteur' ordre des bits '[((1 < niveau <) -1): 0]' comme par convention
Ceci est le code qui génère le problème:
genvar level;
localparam integer LEVELS = 3;
generate
for (level=0; level<LEVELS; level=level+1) begin
wire result[(1 << level)-1:0];
end
endgenerate
Est-ce que SpyGlass est sain ici? Pense-t-elle en quelque sorte que l'expression (1 << level)-1
générerait une valeur négative?
La synthèse se termine sans problème lorsque l'erreur est levée.
quel sera le résultat de 'niveau == 0'? vous obtiendrez le 'résultat [-1: 0]' je ne voudrais pas blâmer spyglass pour cela. – Serge
@Serge: Non, (1 << 0) - 1 = 0 – Moberg
oups, votre droite. aurait dû se réveiller en premier :-) – Serge