logo

Operátori Verilog

Operátory vykonávajú operáciu na jednom alebo viacerých operandoch vo výraze. Výraz kombinuje operandy s vhodnými operátormi na vytvorenie požadovaného funkčného výrazu.

1. Aritmetické operátory

Pre FPGA je delenie a násobenie veľmi drahé a niekedy delenie nedokážeme syntetizovať. Ak pre hodnoty použijeme Z alebo X, výsledok nie je známy. Operácie považujú hodnoty za nepodpísané.

Charakter Operácia vykonaná Príklad
+ Pridať b + c = 11
- Subtrac b - c = 9, -b = -10
/ Rozdeliť b/a = 2
* Vynásobte a * b = 50
% Modul b % a = 0

2. Bitové operátory

Každý bit je prevádzkovaný, výsledkom je veľkosť najväčšieho operandu a menší operand je ponechaný rozšírený o nuly na veľkosť väčšieho operandu.

Charakter Operácia vykonaná Príklad
~ Invertujte každý bit ~a = 3'b010
& A každý kúsok b a c = 3'b010
| Alebo každý kúsok a | b = 3'b111
^ Xor každý bit a ^ b = 3'b011
^~ alebo ~^ Xnor každý bit a ^~ b = 3'b100

3. Operátori zníženia

Tieto operátory redukujú vektory iba na jeden bit. Ak existujú znaky z a x, výsledkom môže byť známa hodnota.

Charakter Operácia vykonaná Príklad
& A všetky kúsky &a = 1'b0, &d = 1'b0
~& Nand všetky kúsky ~&a = 1'b1
| Alebo všetky kúsky |a = 1'b1, |c = 1'bX
~| Ani všetky kúsky ~|a= 1'b0
^ Xor všetky bity ^a = 1'b1
^~ alebo ~^ Xnor všetky bity ~^a = 1'b0

4. Vzťahoví operátori

Tieto operátory porovnávajú operandy a výsledkom je 1-bitová skalárna booleovská hodnota. Operátory rovnosti a nerovnosti prípadu možno použiť pre neznáme alebo vysoké hodnoty impedancie (z alebo x), a ak sú tieto dva operandy neznáme, výsledkom je 1.

Charakter Operácia vykonaná Príklad
> Väčší než a > b = 1'b0
< Menšia než a
>= Väčšie alebo rovné a >= d = 1'bX
<=< td> Menšie alebo rovnaké a<= e='1'bX</td'>
== Rovnosť a == b = 1'b0
!= Nerovnosť a != b = 1'b1
=== Rovnosť prípadov e === e = 1'b1
!=== Prípadová nerovnosť a !== d = 1'b1

5. Logické operátory

Tieto operátory porovnávajú operandy a výsledkom je 1-bitová skalárna booleovská hodnota.

Charakter Operácia vykonaná Príklad
! Nepravda !(a && b) = 1'b1
&& Oba výrazy sú pravdivé a && b = 1'b0
|| Jeden alebo oba výrazy sú pravdivé a || b = 1'b1

6. Operátori zmien

Tieto operátory posúvajú operandy doprava alebo doľava, veľkosť sa udržiava konštantná, posunuté bity sa strácajú a vektor je vyplnený nulami.

skener v jave
Charakter Operácia vykonaná Príklad
>> Shift doprava b >> 1 výsledky 4?b010X
<< Shift doľava a << 2 výsledky 4?b1000

7. Operátori pridelenia

Existujú tri operátory priradenia, z ktorých každý vykonáva iné úlohy a používa sa s rôznymi typmi údajov:

  • priradiť (priebežné priraďovanie)
  • <= (non-blocking assignment)< li>
  • = (blokovanie úlohy)

8. Iní prevádzkovatelia

Sú to operátory používané na testovanie stavu a na vytváranie vektorov.

Charakter Operácia vykonaná Príklad
?: Testovanie podmienok skúšobná podmienka ? ak je pravda, urobte toto alebo ak nie, urobte toto
{} zreťaziť c = {a,b} = 8'101010x0
{{}} Replikovať {3{2'b10}}= 6'b101010

9. Prednosť operátorov

Poradie tabuľky hovorí, ktorá operácia sa vykoná ako prvá. Prvý z nich má najvyššiu prioritu. Znak () možno použiť na prepísanie predvoleného nastavenia.

Prednosť operátorov
+, -, !, ~ (unárne)
+,- (binárne)
<>
,=
==, !=
&
^, ^~ alebo ~^
|
&&
||
?: