Верилог Оператори

Оператори изводе операцију на једном или више операнда унутар израза. Израз комбинује операнде са одговарајућим операторима да би произвео жељени функционални израз.

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. Приоритет оператера

Редослед табеле говори која се операција прва изводи. Први има највећи приоритет. () се може користити за замену подразумеваног.

Приоритет оператера
+, -, !, ~ (унарно)
+,- (бинарни)
<>
,=
==, !=
&
^, ^~ или ~^
|
&&
||
?: