je serais refactorisons cela:
casez(A)
4'b1???: Y<=4'b1000;
4'b01??: Y<=4'b0100;
4'b001?: Y<=4'b0010;
4'b0001: Y<=4'b0001;
default: Y<=4'b0000;
endcase
Ensuite, il n'y a pas besoin de se soucier de priorité, chaque match est unique.
IEEE Std 1800-2009 (norme IEEE POUR SystemVerilog)
12.5.2 Expression constante dans le cas où la déclaration
Une expression constante peut être utilisée pour la expression_conditionnelle. La valeur de l'expression constante doit être comparée à l'expression case_item_expressions.
L'exemple suivant montre l'utilisation par la modélisation d'un codeur de priorité 3 bits:
logic [2:0] encode ;
case (1)
encode[2] : $display("Select Line 2") ;
encode[1] : $display("Select Line 1") ;
encode[0] : $display("Select Line 0") ;
default $display("Error: One of the bits expected ON");
endcase
12.5.3-cas unique, unique0 cas, et la priorité cas
Le Les mots clés case, casez et casex peuvent être qualifiés par des mots clés prioritaires, uniques ou uniques0 pour effectuer certaines vérifications de violation. On les appelle collectivement un cas de priorité, un cas unique ou un cas unique0. Une priorité-case doit agir sur le premier match seulement. Case-cas et unique0-case affirment qu'il n'y a pas de chevauchement case_items et qu'il est donc sûr que les arguments case_items soient évalués en parallèle.
...
priority casez(a) // values 4,5,6,7 cause a violation report
3’b00?: $display("0 or 1");
3’b0??: $display("2 or 3");
endcase
Je ne sais pas comment bien appuyé les déclarations de cas prioritaires sont pris en charge par des outils de synthèse bien.
Ohh. J'ai un doute alors. N'est-ce pas similaire à l'écriture d'une instruction if else? Alors pourquoi écrire une déclaration de cas? – aditya3524
@ aditya3524 déclaration de cas est plus propre, et généralement préféré par rapport à d'autres chaînes. – Morgan
Personnellement, j'ai rarement vu un codeur de priorité écrit de cette façon.Cela devrait être équivalent à un tas d'instructions if/else. C'est plus compact mais je trouve difficile à lire puisque la valeur à l'intérieur de case (...) est une constante. – dwikle