logo

Izjava o dodelitvi Verilog

Izjave o dodelitvi se uporabljajo za vodenje vrednosti v omrežju. In se uporablja tudi v Modeliranje podatkovnega toka .

Signali tipa wire ali podatkovnega tipa zahtevajo neprekinjeno dodeljevanje vrednosti. Dokler je baterija +5 V priključena na en konec žice, bo komponenta, priključena na drugi konec žice, dobila potrebno napetost.

Ta koncept je uresničen s stavkom dodelitve, kjer je mogoče katero koli žico ali drugo podobno žico (podatkovne vrste) nenehno poganjati z vrednostjo. Vrednost je lahko konstanta ali izraz, sestavljen iz skupine signalov.

Sintaksa

Sintaksa dodelitve se začne s ključno besedo assign, ki ji sledi ime signala, ki je lahko signal ali kombinacija različnih signalnih mrež.

The moč pogona in zamuda so neobvezne in se večinoma uporabljajo za modeliranje pretoka podatkov kot za sintezo v pravo strojno opremo.

Signal na desni strani se ovrednoti in dodeli mreži ali izrazu mrež na levi strani.

 assign = [drive_strength] [delay] 

Vrednosti zakasnitve so uporabne za določanje zakasnitev za vrata in se uporabljajo za modeliranje časovnega obnašanja v resnični strojni opremi. Vrednost narekuje, kdaj je treba mreži dodeliti ovrednoteno vrednost.

Pravila

Med uporabo stavka dodelitve je treba upoštevati nekaj pravil:

  • LHS mora biti vedno skalarni, vektorski ali kombinacija skalarnih in vektorskih mrež, nikoli pa skalarni ali vektorski register.
  • RHS lahko vsebuje skalarne ali vektorske registre in klice funkcij.
  • Kadarkoli katerikoli operand na RHS spremeni vrednost, bo LHS posodobljen z novo vrednostjo.
  • Stavki dodelitve se imenujejo tudi neprekinjene dodelitve.

Dodeli reg spremenljivke

Ne moremo voziti ali dodeliti reg vnesite spremenljivke s stavkom assign, ker je spremenljivka reg sposobna shranjevati podatke in se ne poganja neprekinjeno.

Reg signale je mogoče poganjati le v proceduralnih blokih, kot sta vedno in začetni.

Implicitna kontinuirana dodelitev

Ko se stavek dodelitve uporabi za dodelitev dane mreže z neko vrednostjo, se imenuje an eksplicitno dodelitev

Če je deklarirana dodelitev, ki jo je treba opraviti med mrežo, se imenuje an implicitno dodelitev.

 wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment 

Kombinacijsko logično oblikovanje

Razmislite o naslednjem digitalnem vezju, izdelanem iz kombinacijskih vrat in ustreznih Verilog Koda.

Izjava o dodelitvi Verilog

Kombinacijska logika zahteva, da se vhodi nenehno poganjajo, da se ohrani izhod, za razliko od zaporednih elementov, kot so natikači, kjer se vrednost zajame in shrani na robu ure.

Dodeljeni stavek zadosti namenu, ker se izhod o posodobi vsakič, ko se spremeni kateri koli od vnosov na desni strani.

 // 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 

Shema strojne opreme

Po izdelavi načrta in sintezi se kombinacijsko vezje obnaša enako, kot je modelirano s stavkom assign.

Izjava o dodelitvi Verilog

Signal o postane 1, kadar koli kombinacijski izraz na RHS postane resničen.

Podobno postane o 0, ko je RHS napačen. Izhod o je X od 0ns do 10ns, ker so vhodi X v istem času.