logo

Verilog przypisuje oświadczenie

Instrukcje przypisania służą do kierowania wartościami w sieci. I jest również używany Modelowanie przepływu danych .

Sygnały typu wire lub typu danych wymagają ciągłego przypisania wartości. Tak długo, jak bateria +5 V jest przyłożona do jednego końca przewodu, element podłączony do drugiego końca przewodu otrzyma wymagane napięcie.

Koncepcja ta jest realizowana poprzez instrukcję assis, w której dowolny przewód lub inny podobny przewód (typ danych) może być sterowany w sposób ciągły wartością. Wartość może być stałą lub wyrażeniem składającym się z grupy sygnałów.

Składnia

Składnia przypisania zaczyna się od słowa kluczowego access, po którym następuje nazwa sygnału, która może być sygnałem lub kombinacją różnych sieci sygnałowych.

The siła napędowa I opóźnienie są opcjonalne i używane głównie do modelowania przepływu danych niż do syntezy na prawdziwy sprzęt.

Sygnał po prawej stronie jest oceniany i przypisywany do siatki lub wyrażenia sieci po lewej stronie.

 assign = [drive_strength] [delay] 

Wartości opóźnienia są przydatne do określania opóźnień dla bramek i służą do modelowania zachowania taktowania w prawdziwym sprzęcie. Wartość określa, kiedy netto należy przypisać ocenianą wartość.

Zasady

Podczas korzystania z instrukcji przypisania należy przestrzegać kilku zasad:

  • LHS powinien zawsze być skalarem, wektorem lub kombinacją sieci skalarnych i wektorowych, ale nigdy rejestrem skalarnym lub wektorowym.
  • RHS może zawierać rejestry skalarne lub wektorowe oraz wywołania funkcji.
  • Ilekroć jakikolwiek operand w RHS zmieni wartość, LHS zostanie zaktualizowany o nową wartość.
  • Instrukcje przypisania nazywane są także przypisaniami ciągłymi.

Przypisz zmienne reg

Nie możemy prowadzić ani przydzielać zadań rej type z instrukcją przypisania, ponieważ zmienna reg może przechowywać dane i nie jest sterowana w sposób ciągły.

Sygnały Reg mogą być sterowane tylko w blokach proceduralnych, takich jak zawsze i początkowe.

Niejawne przypisanie ciągłe

Kiedy do przypisania danej sieci jakiejś wartości używana jest instrukcja assis, nazywa się ją an wyraźny zadanie

Jeśli zadeklarowano zadanie do wykonania w sieci, nazywa się to an domniemany zadanie.

ciąg json Java
 wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment 

Projekt logiki kombinacyjnej

Rozważ następujący obwód cyfrowy wykonany z bramek kombinacyjnych i odpowiadających im Verilog kod.

Verilog przypisuje oświadczenie

Logika kombinacyjna wymaga ciągłego sterowania wejściami w celu utrzymania wyjścia, w przeciwieństwie do elementów sekwencyjnych, takich jak przerzutniki, w których wartość jest przechwytywana i przechowywana na krawędzi zegara.

Przypisana instrukcja spełnia swój cel, ponieważ wyjście o jest aktualizowane za każdym razem, gdy zmienia się którekolwiek z wejść po prawej stronie.

 // This module takes four inputs and performs a Boolean // operation and assigns output to o. // logic is realized using assign statement. module combo (input a, b, c, d, output o); assign o = ~((a & b) | c ^ d); endmodule 

Schemat sprzętu

Po opracowaniu i syntezie projektu obwód kombinacyjny zachowuje się w taki sam sposób, jak modelowany za pomocą instrukcji przypisania.

Verilog przypisuje oświadczenie

Sygnał o staje się 1, gdy wyrażenie kombinacyjne na RHS staje się prawdą.

Podobnie o staje się 0, gdy RHS jest fałszywe. Wyjście o wynosi X od 0 ns do 10 ns, ponieważ wejścia są X w tym samym czasie.