“<signal> n'est pas une constante” erreur dans le if

Je suis en train d'écrire un simple module de sortie 14-nombre de bits basé sur la valeur de quatre signaux d'entrée. Ma tentative est indiqué ci-dessous.

module select_size(
    input a,
    input b,
    input c,
    input d,
    output [13:0] size
);

    if (a) begin
        assign size = 14'h2222;
    end
    else begin
        if (b) begin
            assign size = 14'h1111;
        end
        else begin
            if (c) begin
                assign size = 14'h0777;
            end
            else begin
                assign size = 14'h0333;
            end
        end
    end

endmodule

Lors de la compilation, j'ai l'erreur suivante:

ERREUR:HDLCompiler:44 - Ligne 67: c est pas une constante

Je ne comprends pas pourquoi que particulier si l'instruction n'est pas de travail, si les deux autres qui le précède. J'ai essayé de changer la condition de

if (c == 1) begin

mais en vain.

Quelqu'un sait comment résoudre cette erreur? Merci!!!!

Le compilateur ceux qui sont conditionnelles générer des articles, pas des instructions conditionnelles.

OriginalL'auteur Evan W | 2012-08-06