Оператори изводе операцију на једном или више операнда унутар израза. Израз комбинује операнде са одговарајућим операторима да би произвео жељени функционални израз.
1. Аритметички оператори
За ФПГА, дељење и множење су веома скупи, а понекад не можемо синтетизовати дељење. Ако користимо З или Кс за вредности, резултат је непознат. Операције третирају вредности као неозначене.
карактер | Операција обављена | Пример |
+ | Додати | б + ц = 11 |
- | Субтрац | б - ц = 9, -б=-10 |
/ | Подела | б / а = 2 |
* | Помножите | а * б = 50 |
% | Модул | б % а = 0 |
2. Битвисе оператори
Сваки бит се оперише, резултат је величина највећег операнда, а мањи операнд остаје проширен нулама до величине већег операнда.
карактер | Операција обављена | Пример |
~ | Окрените сваки бит | ~а = 3'б010 |
& | И сваки део | б & ц = 3'б010 |
| | Или сваки део | а | б = 3'б111 |
^ | Ксор сваки бит | а ^ б = 3'б011 |
^~ или ~^ | Кснор сваки бит | а ^~ б = 3'б100 |
3. Оператери редукције
Ови оператори смањују векторе на само један бит. Ако постоје знакови з и к, резултат може бити позната вредност.
карактер | Операција обављена | Пример |
& | И све делове | &а = 1'б0, &д = 1'б0 |
~& | Нанд све битове | ~&а = 1'б1 |
| | Или све делове | |а = 1'б1, |ц = 1'бКс |
~| | Нити све делове | ~|а= 1'б0 |
^ | Ксор све битове | ^а = 1'б1 |
^~ или ~^ | Кснор сви битови | ~^а = 1'б0 |
4. Релациони оператори
Ови оператори упоређују операнде и резултирају 1-битном скаларном Буловом вредношћу. Оператори једнакости и неједнакости могу се користити за непознате или високе вредности импедансе (з или к), а ако су два операнда непозната, резултат је 1.
карактер | Операција обављена | Пример |
> | Веће од | а > б = 1'б0 |
< | Мањи од | а |
>= | Веће или једнако | а >= д = 1'бКс |
<=< td> | Мање или једнако | а<= e='1'bX</td'> => | =<>
== | Једнакост | а == б = 1'б0 |
!= | Неједнакост | а != б = 1'б1 |
=== | Једнакост падежа | е === е = 1'б1 |
!=== | Падежна неједнакост | и !== д = 1'б1 |
5. Логички оператори
Ови оператори упоређују операнде и резултирају 1-битном скаларном Буловом вредношћу.
карактер | Операција обављена | Пример |
! | Није истина | !(а && б) = 1'б1 |
&& | Оба израза су тачна | а && б = 1'б0 |
|| | Један или оба израза тачна | и || б = 1'б1 |
6. Оператери смена
Ови оператори померају операнде удесно или улево, величина се одржава константном, померени битови се губе, а вектор је испуњен нулама.
где су подешавања претраживача
карактер | Операција обављена | Пример |
>> | Схифт десно | б >> 1 резултати 4?б010Кс |
<< | Схифт лево | а << 2 резултати 4?б1000 |
7. Оператери доделе
Постоје три оператора додељивања, од којих сваки обавља различите задатке и користи се са различитим типовима података:
- доделити (континуирани задатак)
- <= (non-blocking assignment)< li>
- = (задатак блокирања) =>
8. Други оператери
Ово су оператори који се користе за тестирање услова и за креирање вектора.
карактер | Операција обављена | Пример |
?: | Испитивање услова | тест конд. ? ако је истина уради ово или ако не уради ово |
{} | Спојити | ц = {а,б} = 8'101010к0 |
{{}} | Реплицате | {3{2'б10}}= 6'б101010 |
9. Приоритет оператера
Редослед табеле говори која се операција прва изводи. Први има највећи приоритет. () се може користити за замену подразумеваног.
Приоритет оператера |
---|
+, -, !, ~ (унарно) |
+,- (бинарни) |
<> |
,= |
==, != |
& |
^, ^~ или ~^ |
| |
&& |
|| |
?: |