Priskyrimo sakiniai naudojami vertėms tinkle valdyti. Ir jis taip pat naudojamas Duomenų srauto modeliavimas .
Laido ar duomenų tipo signalams reikia nuolat priskirti vertę. Kol viename laido gale bus prijungta +5 V baterija, komponentas, prijungtas prie kito laido galo, gaus reikiamą įtampą.
Ši koncepcija realizuojama priskyrimo sakiniu, kai bet koks laidas ar kitas panašus laidas (duomenų tipai) gali būti nuolat varomas su verte. Reikšmė gali būti konstanta arba išraiška, sudaryta iš signalų grupės.
Sintaksė
string json java
Priskyrimo sintaksė prasideda raktiniu žodžiu assign, po kurio nurodomas signalo pavadinimas, kuris gali būti signalas arba skirtingų signalų tinklų derinys.
The pavaros jėga ir delsimas yra neprivalomi ir dažniausiai naudojami duomenų srauto modeliavimui, o ne sintezei į tikrą aparatinę įrangą.
Dešinėje pusėje esantis signalas įvertinamas ir priskiriamas tinklui arba tinklų išraiškai kairėje pusėje.
avl medis
assign = [drive_strength] [delay]
Vėlavimo reikšmės yra naudingos nurodant vartų vėlavimą ir yra naudojamos modeliuoti laiko elgseną realioje aparatinėje įrangoje. Vertė nurodo, kada tinklui turi būti priskirta įvertinta vertė.
Taisyklės
Naudojant priskyrimo teiginį reikia laikytis kai kurių taisyklių:
- LHS visada turėtų būti skaliarinis, vektorius arba skaliarinių ir vektorinių tinklų derinys, bet niekada ne skaliarinis ar vektorinis registras.
- RHS gali turėti skaliarinius arba vektorinius registrus ir funkcijų iškvietimus.
- Kai bet kurio RHS operando vertė pasikeičia, LHS bus atnaujinta nauja verte.
- Priskyrimo teiginiai taip pat vadinami tęstiniais priskyrimais.
Priskirkite reg Kintamuosius
Negalime vairuoti ar paskirti reg tipo kintamuosius su priskyrimo sakiniu, nes reg kintamasis gali saugoti duomenis ir nėra nuolat valdomas.
java kamino
Reg signalai gali būti valdomi tik procedūriniuose blokuose, tokiuose kaip visada ir pradinis.
Numanomas nuolatinis priskyrimas
Kai priskyrimo sakinys naudojamas tam tikram tinklui priskirti tam tikrą reikšmę, jis vadinamas an aiškus paskyrimas
Jei deklaruojama užduotis, kurią reikia atlikti tinklo metu, ji vadinama an numanomas paskyrimas.
wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment
Kombinuotas loginis dizainas
Apsvarstykite šią skaitmeninę grandinę, pagamintą iš kombinuotų vartų ir atitinkamų Verilog kodas.
Kombinuota logika reikalauja, kad įėjimai būtų nuolat valdomi, kad būtų išlaikytas išėjimas, kitaip nei nuoseklūs elementai, pvz., šlepetės, kai vertė fiksuojama ir saugoma laikrodžio krašte.
Priskirtas sakinys atitinka tikslą, nes išvestis o atnaujinama, kai pasikeičia bet kuri iš dešinės pusės įvesties.
java cast int į eilutę
// 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
Techninės įrangos schema
Parengus dizainą ir sintezę, kombinacinė grandinė veikia taip pat, kaip modeliuojama priskyrimo sakinyje.
Signalas o tampa 1, kai kombinacinė išraiška RHS tampa teisinga.
Panašiai o tampa 0, kai RHS yra klaidingas. Išėjimas o yra X nuo 0 ns iki 10 ns, nes įėjimai yra X tuo pačiu metu.