Operatorji izvajajo operacijo na enem ali več operandih znotraj izraza. Izraz združuje operande z ustreznimi operatorji, da ustvari želeni funkcionalni izraz.
1. Aritmetični operatorji
Za FPGA sta deljenje in množenje zelo draga in včasih ne moremo sintetizirati deljenja. Če za vrednosti uporabimo Z ali X, rezultat ni znan. Operacije obravnavajo vrednosti kot nepredznačene.
| Znak | Operacija izvedena | Primer |
| + | Dodaj | b + c = 11 |
| - | odštej | b - c = 9, -b = -10 |
| / | Razdeli | b / a = 2 |
| * | Pomnožite | a * b = 50 |
| % | Modul | b % a = 0 |
2. Bitni operaterji
Vsak bit se upravlja, rezultat je velikost največjega operanda, manjši operand pa ostane razširjen z ničlami na velikost večjega operanda.
| Znak | Operacija izvedena | Primer |
| ~ | Obrnite vsak bit | ~a = 3'b010 |
| & | In vsak košček | b & c = 3'b010 |
| | | Ali vsak košček | a | b = 3'b111 |
| ^ | Xor vsak bit | a ^ b = 3'b011 |
| ^~ ali ~^ | Xnor vsak bit | a ^~ b = 3'b100 |
3. Operatorji redukcije
Ti operaterji zmanjšajo vektorje na samo en bit. Če obstajata znaka z in x, je lahko rezultat znana vrednost.
| Znak | Operacija izvedena | Primer |
| & | In vse koščke | &a = 1'b0, &d = 1'b0 |
| ~& | Nand vse bite | ~&a = 1'b1 |
| | | Ali vse koščke | |a = 1'b1, |c = 1'bX |
| ~| | Niti vsi deli | ~|a= 1'b0 |
| ^ | Xor vsi bitovi | ^a = 1'b1 |
| ^~ ali ~^ | Xnor vsi bitovi | ~^a = 1'b0 |
4. Relacijski operaterji
Ti operaterji primerjajo operande in dobijo 1-bitno skalarno logično vrednost. Operatorja za enakost in neenakost lahko uporabite za neznane ali visoke vrednosti impedance (z ali x), in če sta operanda neznana, je rezultat 1.
| Znak | Operacija izvedena | Primer |
| > | Večji kot | a > b = 1'b0 |
| < | Manjši od | a |
| >= | Večje ali enako | a >= d = 1'bX |
| <=< td> | Manjši ali enak | a<= e='1'bX</td'> => | =<>
| == | Enakopravnost | a == b = 1'b0 |
| != | Neenakost | a != b = 1'b1 |
| === | Enakost malih in malih črk | e === e = 1'b1 |
| !=== | Neenakost primerov | in !== d = 1'b1 |
5. Logični operatorji
Ti operaterji primerjajo operande in dobijo 1-bitno skalarno logično vrednost.
| Znak | Operacija izvedena | Primer |
| ! | Ni res | !(a && b) = 1'b1 |
| && | Oba izraza držita | a && b = 1'b0 |
| || | En ali oba izraza držita | in || b = 1'b1 |
6. Operaterji premika
Ti operaterji premaknejo operande v desno ali levo, velikost ostane konstantna, premaknjeni biti se izgubijo in vektor se napolni z ničlami.
program v java
| Znak | Operacija izvedena | Primer |
| >> | Premik desno | b >> 1 rezultatov 4?b010X |
| << | Premik levo | a << 2 rezultata 4?b1000 |
7. Operatorji dodelitve
Obstajajo trije operatorji dodelitve, od katerih vsak opravlja različne naloge in se uporabljajo z različnimi vrstami podatkov:
- dodeliti (stalna dodelitev)
- <= (non-blocking assignment)< li>
- = (dodelitev blokiranja) =>
8. Drugi operaterji
To so operaterji, ki se uporabljajo za testiranje pogojev in ustvarjanje vektorjev.
| Znak | Operacija izvedena | Primer |
| ?: | Testiranje pogojev | test kond. ? če je res, naredi to ali če ne naredi to |
| {} | Združiti | c = {a,b} = 8'101010x0 |
| {{}} | Repliciraj | {3{2'b10}}= 6'b101010 |
9. Prednost operaterjev
Vrstni red v tabeli pove, katera operacija se najprej izvede. Prvi ima najvišjo prednost. () lahko uporabite za preglasitev privzete vrednosti.
| Prednost operaterjev |
|---|
| +, -, !, ~ (enorno) |
| +,- (binarni) |
| <> |
| ,= |
| ==, != |
| & |
| ^, ^~ ali ~^ |
| | |
| && |
| || |
| ?: |