Els operadors realitzen una operació sobre un o més operands dins d'una expressió. Una expressió combina operands amb operadors adequats per produir l'expressió funcional desitjada.
1. Operadors aritmètics
Per a l'FPGA, la divisió i la multiplicació són molt cares, i de vegades no podem sintetitzar la divisió. Si utilitzem Z o X per a valors, el resultat és desconegut. Les operacions tracten els valors com a sense signe.
| Personatge | Operació realitzada | Exemple |
| + | Afegeix | b + c = 11 |
| - | Resta | b - c = 9, -b=-10 |
| / | Divideix | b/a = 2 |
| * | Multiplicar | a * b = 50 |
| % | Mòdul | b % a = 0 |
2. Operadors bit a bit
Cada bit s'opera, el resultat és la mida de l'operand més gran i l'operand més petit es deixa estès amb zeros a la mida de l'operand més gran.
| Personatge | Operació realitzada | Exemple |
| ~ | Inverteix cada bit | ~a = 3'b010 |
| & | I cada tros | b i c = 3'b010 |
| | | O cada bit | a | b = 3'b111 |
| ^ | Xo cada bit | a ^ b = 3'b011 |
| ^~ o ~^ | Xnor cada bit | a ^~ b = 3'b100 |
3. Operadors de reducció
Aquests operadors redueixen els vectors a només un bit. Si hi ha els caràcters z i x, el resultat pot ser un valor conegut.
| Personatge | Operació realitzada | Exemple |
| & | I tots els trossos | &a = 1'b0, &d = 1'b0 |
| ~& | Nand tots els bits | ~&a = 1'b1 |
| | | O tots els trossos | |a = 1'b1, |c = 1'bX |
| ~| | Ni tots els trossos | ~|a= 1'b0 |
| ^ | Xor tots els bits | ^a = 1'b1 |
| ^~ o ~^ | Xnor tots els bits | ~^a = 1'b0 |
4. Operadors relacionals
Aquests operadors comparen operands i donen com a resultat un valor booleà escalar d'1 bit. Els operadors d'igualtat i desigualtat de casos es poden utilitzar per a valors desconeguts o d'alta impedància (z o x), i si els dos operands són desconeguts, el resultat és un 1.
| Personatge | Operació realitzada | Exemple |
| > | Més gran que | a > b = 1'b0 |
| < | Menor que | a |
| >= | Major o igual | a >= d = 1'bX |
| <=< td> | Més petit o igual | a<= e='1'bX</td'> => | =<>
| == | Igualtat | a == b = 1'b0 |
| != | Desigualtat | a != b = 1'b1 |
| === | Igualtat de casos | e === e = 1'b1 |
| !=== | Desigualtat de casos | i !== d = 1'b1 |
5. Operadors lògics
Aquests operadors comparen operands i donen com a resultat un valor booleà escalar d'1 bit.
| Personatge | Operació realitzada | Exemple |
| ! | No és cert | !(a && b) = 1'b1 |
| && | Les dues expressions són certes | a && b = 1'b0 |
| || | Una o les dues expressions són certes | i || b = 1'b1 |
6. Operadors de torn
Aquests operadors desplacen els operands cap a la dreta o l'esquerra, la mida es manté constant, els bits desplaçats es perden i el vector s'omple de zeros.
com comprovar la mida de la pantalla
| Personatge | Operació realitzada | Exemple |
| >> | Canvia a la dreta | b >> 1 resultats 4?b010X |
| << | Canvieu cap a l'esquerra | a << 2 resultats 4?b1000 |
7. Operadors d'assignació
Hi ha tres operadors d'assignació, cadascun dels quals realitza tasques diferents i s'utilitzen amb diferents tipus de dades:
- assignar (assignació contínua)
- <= (non-blocking assignment)< li>
- = (assignació de bloqueig) =>
8. Altres operadors
Aquests són operadors utilitzats per a la prova de condicions i per crear vectors.
| Personatge | Operació realitzada | Exemple |
| ?: | Prova de condicions | prova cond. ? si és cert fes això o si no fes això |
| {} | Concatenar | c = {a,b} = 8'101010x0 |
| {{}} | Replicar | {3{2'b10}}= 6'b101010 |
9. Precedència d'operadors
L'ordre de la taula indica quina operació es fa primer. El primer té la màxima prioritat. El () es pot utilitzar per anul·lar el valor predeterminat.
| Precedència dels operadors |
|---|
| +, -, !, ~ (Unari) |
| +,- (binari) |
| <> |
| ,= |
| ==, != |
| & |
| ^, ^~ o ~^ |
| | |
| && |
| || |
| ?: |