logo

Verilog operatører

Operatører udfører en operation på en eller flere operander i et udtryk. Et udtryk kombinerer operander med passende operatorer for at producere det ønskede funktionelle udtryk.

1. Aritmetiske operatorer

For FPGA er division og multiplikation meget dyre, og nogle gange kan vi ikke syntetisere division. Hvis vi bruger Z eller X til værdier, er resultatet ukendt. Operationerne behandler værdierne som usignerede.

Karakter Operation udført Eksempel
+ Tilføje b + c = 11
- Subtrac b - c = 9, -b = -10
/ Dele b/a = 2
* Formere sig a * b = 50
% Modulus b % a = 0

2. Bitvise operatører

Hver bit betjenes, resultatet er størrelsen af ​​den største operand, og den mindre operand efterlades udvidet med nuller til den større operands størrelse.

Karakter Operation udført Eksempel
~ Vend hver bit ~a = 3'b010
& Og hver bid b & c = 3'b010
| Eller hver bid en | b = 3'b111
^ Xor hver bit a ^ b = 3'b011
^~ eller ~^ Xnor hver bit a ^~ b = 3'b100

3. Reduktionsoperatører

Disse operatorer reducerer vektorerne til kun én bit. Hvis der er tegnene z og x, kan resultatet være en kendt værdi.

Karakter Operation udført Eksempel
& Og alt sammen &a = 1'b0, &d = 1'b0
~& Nand alle dele ~&a = 1'b1
| Eller alle dele |a = 1'b1, |c = 1'bX
~| Heller ikke alle dele ~|a= 1'b0
^ Xor alle bits ^a = 1'b1
^~ eller ~^ Xnor alle bits ~^a = 1'b0

4. Relationelle operatører

Disse operatorer sammenligner operander og resulterer i en 1-bit skalar boolsk værdi. Case-ligheds- og ulighedsoperatorerne kan bruges til ukendte eller høje impedansværdier (z eller x), og hvis de to operander er ukendte, er resultatet en 1.

Karakter Operation udført Eksempel
> Bedre end a > b = 1'b0
< Mindre end -en
>= Større end eller lig a >= d = 1'bX
<=< td> Mindre end eller lig -en<= e='1'bX</td'>
== Lighed a == b = 1'b0
!= Ulighed a != b = 1'b1
=== Sagslighed e === e = 1'b1
!=== Ulighed i sager og !== d = 1'b1

5. Logiske operatører

Disse operatorer sammenligner operander og resulterer i en 1-bit skalar boolsk værdi.

Karakter Operation udført Eksempel
! Ikke sandt !(a && b) = 1'b1
&& Begge udtryk er sande a && b = 1'b0
|| Et eller begge udtryk er sande og || b = 1'b1

6. Skifteoperatører

Disse operatorer skifter operander til højre eller venstre, størrelsen holdes konstant, forskudte bits går tabt, og vektoren er fyldt med nuller.

erstatte en farve i gimp
Karakter Operation udført Eksempel
>> Skift til højre b >> 1 resultater 4?b010X
<< Skift til venstre a << 2 resultater 4?b1000

7. Opgaveoperatører

Der er tre tildelingsoperatører, som hver udfører forskellige opgaver og bruges med forskellige datatyper:

  • tildele (løbende tildeling)
  • <= (non-blocking assignment)< li>
  • = (blokerende opgave)

8. Andre operatører

Disse er operatorer, der bruges til tilstandstest og til at skabe vektorer.

Karakter Operation udført Eksempel
?: Forholdstest test kond. ? hvis sandt gør dette eller hvis ikke gør dette
{} Sammenkæd c = {a,b} = 8'101010x0
{{}} Repliker {3{2'b10}}= 6'b101010

9. Operatørers forrang

Rækkefølgen af ​​tabellen fortæller, hvilken handling der foretages først. Den første har højeste prioritet. () kan bruges til at tilsidesætte standarden.

Operatørers forrang
+, -, !, ~ (unær)
+,- (Binær)
<>
,=
==, !=
&
^, ^~ eller ~^
|
&&
||
?: