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 ~^ |
| |
&& |
|| |
?: |