logo

Operatorji Verilog

Operatorji izvajajo operacijo na enem ali več operandih znotraj izraza. Izraz združuje operande z ustreznimi operatorji, da ustvari želeni funkcionalni izraz.

1. Aritmetični operatorji

Za FPGA sta deljenje in množenje zelo draga in včasih ne moremo sintetizirati deljenja. Če za vrednosti uporabimo Z ali X, rezultat ni znan. Operacije obravnavajo vrednosti kot nepredznačene.

Znak Operacija izvedena Primer
+ Dodaj b + c = 11
- odštej b - c = 9, -b = -10
/ Razdeli b / a = 2
* Pomnožite a * b = 50
% Modul b % a = 0

2. Bitni operaterji

Vsak bit se upravlja, rezultat je velikost največjega operanda, manjši operand pa ostane razširjen z ničlami ​​na velikost večjega operanda.

Znak Operacija izvedena Primer
~ Obrnite vsak bit ~a = 3'b010
& In vsak košček b & c = 3'b010
| Ali vsak košček a | b = 3'b111
^ Xor vsak bit a ^ b = 3'b011
^~ ali ~^ Xnor vsak bit a ^~ b = 3'b100

3. Operatorji redukcije

Ti operaterji zmanjšajo vektorje na samo en bit. Če obstajata znaka z in x, je lahko rezultat znana vrednost.

Znak Operacija izvedena Primer
& In vse koščke &a = 1'b0, &d = 1'b0
~& Nand vse bite ~&a = 1'b1
| Ali vse koščke |a = 1'b1, |c = 1'bX
~| Niti vsi deli ~|a= 1'b0
^ Xor vsi bitovi ^a = 1'b1
^~ ali ~^ Xnor vsi bitovi ~^a = 1'b0

4. Relacijski operaterji

Ti operaterji primerjajo operande in dobijo 1-bitno skalarno logično vrednost. Operatorja za enakost in neenakost lahko uporabite za neznane ali visoke vrednosti impedance (z ali x), in če sta operanda neznana, je rezultat 1.

Znak Operacija izvedena Primer
> Večji kot a > b = 1'b0
< Manjši od a
>= Večje ali enako a >= d = 1'bX
<=< td> Manjši ali enak a<= e='1'bX</td'>
== Enakopravnost a == b = 1'b0
!= Neenakost a != b = 1'b1
=== Enakost malih in malih črk e === e = 1'b1
!=== Neenakost primerov in !== d = 1'b1

5. Logični operatorji

Ti operaterji primerjajo operande in dobijo 1-bitno skalarno logično vrednost.

Znak Operacija izvedena Primer
! Ni res !(a && b) = 1'b1
&& Oba izraza držita a && b = 1'b0
|| En ali oba izraza držita in || b = 1'b1

6. Operaterji premika

Ti operaterji premaknejo operande v desno ali levo, velikost ostane konstantna, premaknjeni biti se izgubijo in vektor se napolni z ničlami.

program v java
Znak Operacija izvedena Primer
>> Premik desno b >> 1 rezultatov 4?b010X
<< Premik levo a << 2 rezultata 4?b1000

7. Operatorji dodelitve

Obstajajo trije operatorji dodelitve, od katerih vsak opravlja različne naloge in se uporabljajo z različnimi vrstami podatkov:

  • dodeliti (stalna dodelitev)
  • <= (non-blocking assignment)< li>
  • = (dodelitev blokiranja)

8. Drugi operaterji

To so operaterji, ki se uporabljajo za testiranje pogojev in ustvarjanje vektorjev.

Znak Operacija izvedena Primer
?: Testiranje pogojev test kond. ? če je res, naredi to ali če ne naredi to
{} Združiti c = {a,b} = 8'101010x0
{{}} Repliciraj {3{2'b10}}= 6'b101010

9. Prednost operaterjev

Vrstni red v tabeli pove, katera operacija se najprej izvede. Prvi ima najvišjo prednost. () lahko uporabite za preglasitev privzete vrednosti.

Prednost operaterjev
+, -, !, ~ (enorno)
+,- (binarni)
<>
,=
==, !=
&
^, ^~ ali ~^
|
&&
||
?: