A hozzárendelési utasítások az értékek irányítására szolgálnak a neten. És abban is használják Adatfolyam-modellezés .
A vezetékes vagy adattípusú jelek folyamatos értékadást igényelnek. Amíg a vezeték egyik végére a +5V-os akkumulátor van rákapcsolva, addig a vezeték másik végére csatlakoztatott komponens megkapja a szükséges feszültséget.
java tömb lista
Ezt a koncepciót a hozzárendelési utasítás valósítja meg, ahol bármely vezeték vagy más hasonló vezeték (adattípus) folyamatosan meghajtható egy értékkel. Az érték lehet konstans vagy jelek csoportját tartalmazó kifejezés.
Szintaxis
A hozzárendelés szintaxisa az assign kulcsszóval kezdődik, amelyet a jel neve követ, amely lehet jel vagy különböző jelhálózatok kombinációja.
A hajtóerő és késleltetés opcionálisak, és többnyire adatfolyam-modellezésre használják, mint valódi hardverbe történő szintetizálásra.
A jobb oldali jelet kiértékeli és hozzárendeli a bal oldali hálóhoz vagy a hálók kifejezéséhez.
a java karakterláncot tartalmazza
assign = [drive_strength] [delay]
A késleltetési értékek hasznosak a kapuk késleltetésének meghatározásához, és valós hardverben az időzítési viselkedés modellezésére szolgálnak. Az érték határozza meg, hogy a nettóhoz mikor kell hozzárendelni a kiértékelt értéket.
Szabályok
Néhány szabályt be kell tartani a hozzárendelési utasítás használata során:
- Az LHS-nek mindig skalárnak, vektornak vagy skalár- és vektorhálók kombinációjának kell lennie, de soha nem skalárnak vagy vektorregiszternek.
- Az RHS skaláris vagy vektorregisztereket és függvényhívásokat tartalmazhat.
- Amikor az RHS bármely operandusa értéke megváltozik, az LHS az új értékkel frissül.
- A hozzárendelési utasításokat folyamatos hozzárendeléseknek is nevezik.
Rend változók hozzárendelése
Nem tudunk vezetni vagy megbízni reg típusú változókat hozzárendelési utasítással, mert a reg változó képes adatokat tárolni, és nem hajtja folyamatosan.
Reg jelek csak olyan eljárási blokkokban hajthatók meg, mint például mindig és kezdeti.
Implicit folyamatos hozzárendelés
Ha egy hozzárendelési utasítást használunk arra, hogy az adott hálót valamilyen értékkel rendeljük hozzá, akkor annek nevezzük kifejezett feladat
Ha a net során elvégzendő feladatot deklarálják, azt an-nak nevezzük beleértett feladat.
wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment
Kombinációs logikai tervezés
Tekintsük a következő, kombinált kapukból készült digitális áramkört és a megfelelőt Verilog kód.
java string.format
A kombinációs logika megköveteli, hogy a bemeneteket folyamatosan hajtsák meg a kimenet fenntartása érdekében, ellentétben a szekvenciális elemekkel, például a flip-flopokkal, ahol az értéket rögzítik és az óra szélén tárolják.
Egy hozzárendelt utasítás megfelel a célnak, mert az o kimenet minden alkalommal frissül, amikor a jobb oldali bemenetek bármelyike megváltozik.
// 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
Hardver séma
A tervezés kidolgozása és szintézise után a kombinációs áramkör ugyanúgy viselkedik, mint a hozzárendelési utasítás által modellezett.
Az o jel 1 lesz, amikor az RHS kombinációs kifejezése igaz lesz.
Hasonlóképpen, az o 0 lesz, ha az RHS hamis. Az o kimenet X 0 ns és 10 ns között, mivel a bemenetek ugyanabban az időben X.