Menu
Coddy logo textTech

Przypisanie ciągłe

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 37 z 90.

W sprzęcie połączenie to fizyczny przewód łączący dwa punkty w obwodzie. Gdy przewód jest już na miejscu, połączenie jest trwałe i zawsze aktywne. Jeśli zmieni się jeden koniec, drugi zmieni się natychmiast.

W Verilogu potrzebujemy sposobu na modelowanie tego zachowania. Chcemy przekazać wartość do przewodu i pozostawić go podłączonym na zawsze. Ten proces nazywa się przypisaniem ciągłym.

Przypisanie ciągłe używa słowa kluczowego assign, aby utworzyć stałe połączenie między przewodem a wyrażeniem. Przewód stale przyjmuje wartość wyrażenia, tak jak fizyczny przewód.

Pomyśl o tym jak o przylutowaniu przewodu, a nie jednorazowym wpisaniu wartości.

Składnia

assign wire_name = expression;
CzęśćZnaczenie
assignSłowo kluczowe rozpoczynające przypisanie ciągłe
wire_namePrzewód, którym steruje wartość (nie może być typu reg)
expressionWartość sterująca przewodem

Prosty przykład

wire out;
assign out = a & b;

Oznacza to, że out jest zawsze równe a AND b. Za każdym razem, gdy zmieni się a lub b, out zmienia się natychmiast.

Jak to działa

W przeciwieństwie do reg, który przechowuje wartość, wire z przypisaniem ciągłym jest stale aktualizowany:

module continuous_demo;
  reg a, b;
  wire c;
  
  assign c = a & b;   // c zawsze odzwierciedla wynik operacji AND na a i b
  
  initial begin
    a = 0; b = 0;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0
    
    a = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0 (1&0=0)
    
    b = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=1 (1&1=1)
    
    $finish;
  end
endmodule

Wynik:

a=0, b=0, c=0
a=1, b=0, c=0
a=1, b=1, c=1

Za każdym razem, gdy zmienia się a lub b, c aktualizuje się automatycznie.

Wiele przypisań

W module możesz mieć wiele przypisań ciągłych:

module multiple_assign (
  input a, b, c,
  output x, y
);
  assign x = a & b;
  assign y = x | c;   // y zależy od x
endmodule

Wszystkie przypisania są wykonywane równolegle i nieprzerwanie.

Typowe zastosowania

Przypisania ciągłe są używane do:

  • Prostej logiki kombinacyjnej (AND, OR, XOR)
  • Łączenia przewodów
  • Tworzenia buforów trójstanowych
  • Sterowania wyjściami za pomocą wyrażeń kombinacyjnych
challenge icon

Wyzwanie

Co zrobić:

  1. Dodaj brakujące przypisanie ciągłe, które sprawia, że z jest równe x AND y.

Spróbuj swoich sił

module continuous_challenge (
  input x,
  input y,
  output z
);
  
  // TODO: Dodaj brakujące przypisanie ciągłe, dzięki któremu z będzie równe wynikowi operacji AND na x i y
  

endmodule
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online