Operátory provádějí operaci na jednom nebo více operandech ve výrazu. Výraz kombinuje operandy s vhodnými operátory, aby vytvořil požadovaný funkční výraz.
1. Aritmetické operátory
Pro FPGA je dělení a násobení velmi drahé a někdy nemůžeme dělení syntetizovat. Pokud pro hodnoty použijeme Z nebo X, výsledek je neznámý. Operace považují hodnoty za nepodepsané.
| Charakter | Operace provedena | Příklad |
| + | Přidat | b + c = 11 |
| - | Subtrac | b - c = 9, -b = -10 |
| / | Rozdělit | b/a = 2 |
| * | Násobit | a * b = 50 |
| % | Modul | b % a = 0 |
2. Bitové operátory
Každý bit je provozován, výsledkem je velikost největšího operandu a menší operand je ponechán rozšířen o nuly na velikost většího operandu.
| Charakter | Operace provedena | Příklad |
| ~ | Invertujte každý bit | ~a = 3'b010 |
| & | A každý kousek | b & c = 3'b010 |
| | | Nebo každý kousek | a | b = 3'b111 |
| ^ | Xor každý bit | a ^ b = 3'b011 |
| ^~ nebo ~^ | Xnor každý bit | a ^~ b = 3'b100 |
3. Operátoři redukce
Tyto operátory redukují vektory pouze na jeden bit. Pokud existují znaky z a x, výsledkem může být známá hodnota.
| Charakter | Operace provedena | Příklad |
| & | A všechny kousky | &a = 1'b0, &d = 1'b0 |
| ~& | Nand všechny kousky | ~&a = 1'b1 |
| | | Nebo všechny kousky | |a = 1'b1, |c = 1'bX |
| ~| | Ani všechny kousky | ~|a= 1'b0 |
| ^ | Xor všechny bity | ^a = 1'b1 |
| ^~ nebo ~^ | Xnor všechny bity | ~^a = 1'b0 |
4. Relační operátoři
Tyto operátory porovnávají operandy a výsledkem je 1bitová skalární booleovská hodnota. Operátory rovnosti a nerovnosti případu lze použít pro neznámé nebo vysoké hodnoty impedance (z nebo x), a pokud jsou tyto dva operandy neznámé, výsledkem je 1.
| Charakter | Operace provedena | Příklad |
| > | Větší než | a > b = 1'b0 |
| < | Menší než | A |
| >= | Větší nebo rovno | a >= d = 1'bX |
| <=< td> | Menší nebo rovno | A<= e='1'bX</td'> => | =<>
| == | Rovnost | a == b = 1'b0 |
| != | Nerovnost | a != b = 1'b1 |
| === | Rovnost případů | e === e = 1'b1 |
| !=== | Případová nerovnost | a !== d = 1'b1 |
5. Logické operátory
Tyto operátory porovnávají operandy a výsledkem je 1bitová skalární booleovská hodnota.
| Charakter | Operace provedena | Příklad |
| ! | Není pravda | !(a && b) = 1'b1 |
| && | Oba výrazy jsou pravdivé | a && b = 1'b0 |
| || | Jeden nebo oba výrazy jsou pravdivé | a || b = 1'b1 |
6. Operátoři směn
Tyto operátory posouvají operandy doprava nebo doleva, velikost je udržována konstantní, posunuté bity jsou ztraceny a vektor je vyplněn nulami.
boolean na řetězec java
| Charakter | Operace provedena | Příklad |
| >> | Shift vpravo | b >> 1 výsledek 4?b010X |
| << | Shift doleva | a << 2 výsledky 4?b1000 |
7. Operátoři přiřazení
Existují tři operátory přiřazení, z nichž každý provádí různé úkoly a používá se s různými datovými typy:
- přiřadit (průběžné přidělování)
- <= (non-blocking assignment)< li>
- = (blokování přiřazení) =>
8. Ostatní operátoři
Jedná se o operátory používané pro testování podmínek a pro vytváření vektorů.
| Charakter | Operace provedena | Příklad |
| ?: | Testování podmínek | zkušební podm. ? pokud je to pravda, udělejte toto nebo pokud ne |
| {} | Zřetězit | c = {a,b} = 8'101010x0 |
| {{}} | Replikovat | {3{2'b10}}= 6'b101010 |
9. Přednost operátorů
Pořadí v tabulce říká, která operace je provedena jako první. První z nich má nejvyšší prioritu. Znak () lze použít k přepsání výchozího nastavení.
| Přednost operátorů |
|---|
| +, -, !, ~ (Unární) |
| +,- (binární) |
| <> |
| ,= |
| ==, != |
| & |
| ^, ^~ nebo ~^ |
| | |
| && |
| || |
| ?: |