logo

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

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

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

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

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