Operatører utfører en operasjon på en eller flere operander i et uttrykk. Et uttrykk kombinerer operander med passende operatorer for å produsere det ønskede funksjonelle uttrykket.
1. Aritmetiske operatorer
For FPGA er divisjon og multiplikasjon veldig kostbart, og noen ganger kan vi ikke syntetisere divisjon. Hvis vi bruker Z eller X for verdier, er resultatet ukjent. Operasjonene behandler verdiene som usignerte.
| Karakter | Operasjon utført | Eksempel |
| + | Legg til | b + c = 11 |
| - | Subtrac | b - c = 9, -b = -10 |
| / | Dele opp | b/a = 2 |
| * | Multiplisere | a * b = 50 |
| % | Modulus | b % a = 0 |
2. Bitvise operatører
Hver bit blir operert, resultatet er størrelsen på den største operanden, og den mindre operanden blir utvidet med nuller til den større operandens størrelse.
| Karakter | Operasjon utført | Eksempel |
| ~ | Inverter hver bit | ~a = 3'b010 |
| & | Og hver bit | b & c = 3'b010 |
| | | Eller hver bit | en | b = 3'b111 |
| ^ | Xor hver bit | a ^ b = 3'b011 |
| ^~ eller ~^ | Xnor hver bit | a ^~ b = 3'b100 |
3. Reduksjonsoperatører
Disse operatorene reduserer vektorene til bare én bit. Hvis det er tegnene z og x, kan resultatet være en kjent verdi.
| Karakter | Operasjon utført | Eksempel |
| & | Og alle biter | &a = 1'b0, &d = 1'b0 |
| ~& | Nand alle biter | ~&a = 1'b1 |
| | | Eller alle biter | |a = 1'b1, |c = 1'bX |
| ~| | Heller ikke alle biter | ~|a= 1'b0 |
| ^ | Xor alle biter | ^a = 1'b1 |
| ^~ eller ~^ | Xnor alle biter | ~^a = 1'b0 |
4. Relasjonelle operatører
Disse operatorene sammenligner operander og resulterer i en 1-bits skalar boolsk verdi. Operatorene for kasuslikhet og ulikhet kan brukes for ukjente eller høye impedansverdier (z eller x), og hvis de to operandene er ukjente, er resultatet en 1.
| Karakter | Operasjon utført | Eksempel |
| > | Større enn | a > b = 1'b0 |
| < | Mindre enn | en |
| >= | Større enn eller lik | a >= d = 1'bX |
| <=< td> | Mindre enn eller lik | en<= e='1'bX</td'> => | =<>
| == | Likestilling | a == b = 1'b0 |
| != | Ulikhet | a != b = 1'b1 |
| === | Sakslikhet | e === e = 1'b1 |
| !=== | Saksulikhet | og !== d = 1'b1 |
5. Logiske operatører
Disse operatorene sammenligner operander og resulterer i en 1-bits skalar boolsk verdi.
| Karakter | Operasjon utført | Eksempel |
| ! | Ikke sant | !(a && b) = 1'b1 |
| && | Begge uttrykkene er sanne | a && b = 1'b0 |
| || | Ett eller begge uttrykk er sanne | og || b = 1'b1 |
6. Skiftoperatører
Disse operatørene skifter operander til høyre eller venstre, størrelsen holdes konstant, forskjøvede biter går tapt, og vektoren fylles med nuller.
erstatte en farge i gimp
| Karakter | Operasjon utført | Eksempel |
| >> | Skift til høyre | b >> 1 resultater 4?b010X |
| << | Skift til venstre | a << 2 resultater 4?b1000 |
7. Oppdragsoperatører
Det er tre oppdragsoperatører, som hver utfører forskjellige oppgaver, og brukes med forskjellige datatyper:
- tilordne (løpende oppdrag)
- <= (non-blocking assignment)< li>
- = (blokkeringsoppdrag) =>
8. Andre operatører
Dette er operatorer som brukes til tilstandstesting og for å lage vektorer.
| Karakter | Operasjon utført | Eksempel |
| ?: | Forholdstesting | prøvekond. ? hvis sant gjør dette eller hvis ikke gjør dette |
| {} | Sammenknytt | c = {a,b} = 8'101010x0 |
| {{}} | Gjenskape | {3{2'b10}}= 6'b101010 |
9. Operatørers forrang
Rekkefølgen på tabellen forteller hvilken operasjon som gjøres først. Den første har høyeste prioritet. () kan brukes til å overstyre standarden.
| Operatørers forrang |
|---|
| +, -, !, ~ (unær) |
| +,- (binær) |
| <> |
| ,= |
| ==, != |
| & |
| ^, ^~ eller ~^ |
| | |
| && |
| || |
| ?: |