5 votos

Será este código crea un pestillo?

Tendrá que crear un pestillo?

always @ (posedge clk) begin
 if (enable) begin
   myvar1[63:0] <= some value;
   myvar2[63:0] <=some value2;
   myvar3[63:0] <= value3;
 end else begin
    myvar1[63:0] <=othervalue
 end
end

Debe todo lo que es en si, estar en la cláusula else así? Tengo entendido que dejar un if sin else puede causar un pestillo, ¿pero esto también significa que cada señal en el si debe estar en la persona? Si ese es el caso, debo escribir algo como esto:

myvar2[63:0] <= myvar2[63:0];

o no?

10voto

Louise Puntos 16

No, este código no debe inferir pestillos. Es el caso en todos los sintetizadores que vi.

La razón es que una herramienta de síntesis se infiere flip-flop para cualquier señal que se le asigna dentro de un bloque secuencial de código (@(posedge clk)). Para todas las ramas que no tienen un explícito de las asignaciones, la herramienta de síntesis sólo une la salida a la entrada, pero ya que es inicialmente un fracaso, no hay preocupación.

Lo que usted está diciendo acerca de los pestillos se aplica a combinable lógica. Por ejemplo, el código siguiente se infiere pestillos de ambos myvar2 y myvar3:

always @* begin
 if (enable) begin
   myvar1[63:0] = some value;
   myvar2[63:0] =some value2;
   myvar3[63:0] = value3;
 end else begin
    myvar1[63:0] =othervalue
 end
end

Síntesis intenta mux de la salida a la de entrada, pero esto requiere de una "memoria" elemento", " estar en el lugar a fin de evitar un "bucle". Pestillos controlado por enable de la señal va a ser inferido.

Espero que esto ayude.

2voto

GSerg Puntos 33571

No hay ninguna preocupación sobre el contenido de su else cláusula, porque ya has creado pestillos (registros) para todas las señales de todos modos, poniéndolos en un proceso que se desencadena en un flanco de reloj.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X