Peut Verilog des variables locale particulière portée à toujours bloquer?

J'ai parfois s'avérer utile d'utiliser le blocage des missions pour des "variables locales" à l'intérieur cadencé toujours blocs. Cela peut aider à réduire vers le bas sur le code à répétition.

Pour éviter accidentellement en utilisant la même variable dans une autre toujours de bloc (qui peut être non-déterministe pour la simulation), je tiens à donner une portée locale. Est-il un gentil synthesizable façon de faire cela?

Quelque chose comme:

module sum3(
  input            clk,
  input      [7:0] in1,
  input      [7:0] in2,
  input      [7:0] in3,
  output reg [7:0] result,
  output reg [7:0] result_p1);

  begin :sum
    reg [7:0] sum_temp; //local variable
    always @(posedge clk) begin
      sum_temp   = in1 + in2 + in3;
      result    <= sum_temp;
      result_p1 <= sum_temp + 1;
    end
  end

endmodule

(ModelSim semble être d'accord avec cela, mais Synplify ne semble pas comme elle.)

Votre code a plusieurs erreurs de compilation avec les 2 simulateurs j'ai utilisé (VCS et Incisif).
Édité pour corriger les erreurs de compilation.
Tous les commentaires de l'électeur?

OriginalL'auteur mksuth | 2014-09-15