logo

Verilog operatoriai

Operatoriai atlieka operaciją su vienu ar daugiau išraiškos operandų. Išraiška sujungia operandus su atitinkamais operatoriais, kad gautų norimą funkcinę išraišką.

1. Aritmetiniai operatoriai

FPGA dalijimas ir daugyba yra labai brangūs, todėl kartais negalime susintetinti dalybos. Jei reikšmėms naudosime Z arba X, rezultatas nežinomas. Operacijos traktuoja reikšmes kaip nepažymėtas.

Charakteris Atlikta operacija Pavyzdys
+ Papildyti b + c = 11
- Subtrac b - c = 9, -b = -10
/ Padalinti b / a = 2
* Padauginti a * b = 50
% Modulis b % a = 0

2. Bitiniai operatoriai

Kiekvienas bitas yra operuojamas, rezultatas yra didžiausio operando dydis, o mažesnis operandas paliekamas pratęstas nuliais iki didesnio operando dydžio.

Charakteris Atlikta operacija Pavyzdys
~ Apverskite kiekvieną bitą ~a = 3'b010
& Ir kiekviena dalis b ir c = 3'b010
| Arba kiekvieną bitą a | b = 3'b111
^ Xar kiekvieną bitą a ^ b = 3'b011
^~ arba ~^ Xnor kiekvieną bitą a ^~ b = 3'b100

3. Sumažinimo operatoriai

Šie operatoriai sumažina vektorius tik iki vieno bito. Jei yra simboliai z ir x, rezultatas gali būti žinoma reikšmė.

Charakteris Atlikta operacija Pavyzdys
& Ir visos smulkmenos &a = 1'b0, &d = 1'b0
~& Ir visos smulkmenos ~&a = 1'b1
| Arba visas smulkmenas |a = 1'b1, |c = 1'bX
~| Nei visi bitai ~|a= 1'b0
^ Xar visi bitai ^a = 1'b1
^~ arba ~^ Xnor visi bitai ~^a = 1'b0

4. Santykių operatoriai

Šie operatoriai palygina operandus ir pateikia 1 bito skaliarinę Būlio reikšmę. Atvejo lygybės ir nelygybės operatoriai gali būti naudojami nežinomoms arba didelėms varžos reikšmėms (z arba x), o jei abu operandai nežinomi, rezultatas yra 1.

Charakteris Atlikta operacija Pavyzdys
> Geresnis negu a > b = 1'b0
< Mažesnis nei a
>= Didesnis nei arba lygus a >= d = 1'bX
<=< td> Mažesnis nei arba lygus a<= e='1'bX</td'>
== Lygybė a == b = 1'b0
!= Nelygybė a != b = 1'b1
=== Bylų lygybė e === e = 1'b1
!=== Atvejo nelygybė ir !== d = 1'b1

5. Loginiai operatoriai

Šie operatoriai palygina operandus ir pateikia 1 bito skaliarinę Būlio reikšmę.

Charakteris Atlikta operacija Pavyzdys
! Netiesa !(a && b) = 1'b1
&& Abu posakiai teisingi a && b = 1'b0
|| Vienas arba abu posakiai teisingi ir || b = 1'b1

6. Pamainos operatoriai

Šie operatoriai perkelia operandus į dešinę arba į kairę, dydis išlaikomas pastovus, pasislinkę bitai prarandami, o vektorius užpildomas nuliais.

java gauna dabartinę datą
Charakteris Atlikta operacija Pavyzdys
>> Perkelkite į dešinę b >> 1 rezultatas 4?b010X
<< Perkelkite į kairę a << 2 rezultatai 4?b1000

7. Priskyrimo operatoriai

Yra trys priskyrimo operatoriai, kurių kiekvienas atlieka skirtingas užduotis ir yra naudojamas su skirtingais duomenų tipais:

  • priskirti (nuolatinė užduotis)
  • <= (non-blocking assignment)< li>
  • = (blokavimo priskyrimas)

8. Kiti operatoriai

Tai yra operatoriai, naudojami būklės testavimui ir vektoriams kurti.

Charakteris Atlikta operacija Pavyzdys
?: Sąlygų testavimas bandymo kond. ? jei tiesa, darykite tai arba jei ne
{} Sujungti c = {a,b} = 8'101010x0
{{}} Atkartoti {3{2'b10}}= 6'b101010

9. Pirmenybė operatoriams

Lentelės tvarka nurodoma, kokia operacija atliekama pirmiausia. Pirmasis turi aukščiausią prioritetą. () gali būti naudojamas norint nepaisyti numatytosios vertės.

Operatorių pirmenybė
+, -, !, ~ (Unary)
+,- (dvejetainis)
<>
,=
==, !=
&
^, ^~ arba ~^
|
&&
||
?: