Operatori veic operāciju ar vienu vai vairākiem operandiem izteiksmē. Izteiksme apvieno operandus ar atbilstošiem operatoriem, lai iegūtu vēlamo funkcionālo izteiksmi.
1. Aritmētiskie operatori
FPGA gadījumā dalīšana un reizināšana ir ļoti dārga, un dažreiz mēs nevaram sintezēt dalīšanu. Ja vērtībām izmantojam Z vai X, rezultāts nav zināms. Operācijas apstrādā vērtības kā neparakstītas.
Raksturs | Operācija veikta | Piemērs |
+ | Pievienot | b + c = 11 |
- | Subtrac | b - c = 9, -b = -10 |
/ | Sadaliet | b/a = 2 |
* | Pavairot | a * b = 50 |
% | Modulus | b % a = 0 |
2. Bitu operatori
Katrs bits tiek darbināts, rezultāts ir lielākā operanda lielums, un mazākais operands tiek pagarināts ar nullēm līdz lielākā operanda izmēram.
Raksturs | Operācija veikta | Piemērs |
~ | Apgrieziet katru bitu otrādi | ~a = 3'b010 |
& | Un katrs mazliet | b un c = 3'b010 |
| | Vai katru bitu | a | b = 3'b111 |
^ | X vai katru bitu | a ^ b = 3'b011 |
^~ vai ~^ | Xnor katru bitu | a ^~ b = 3'b100 |
3. Samazināšanas operatori
Šie operatori samazina vektorus tikai līdz vienam bitam. Ja ir rakstzīmes z un x, rezultāts var būt zināma vērtība.
Raksturs | Operācija veikta | Piemērs |
& | Un visi sīkumi | &a = 1'b0, &d = 1'b0 |
~& | Un visi sīkumi | ~&a = 1'b1 |
| | Vai visi biti | |a = 1'b1, |c = 1'bX |
~| | Ne visi biti | ~|a= 1'b0 |
^ | X vai visi biti | ^a = 1'b1 |
^~ vai ~^ | Xnor visi biti | ~^a = 1'b0 |
4. Relāciju operatori
Šie operatori salīdzina operandus un iegūst 1 bita skalāro Būla vērtību. Gadījumu vienādības un nevienlīdzības operatorus var izmantot nezināmām vai augstām pretestības vērtībām (z vai x), un, ja abi operandi nav zināmi, rezultāts ir 1.
Raksturs | Operācija veikta | Piemērs |
> | Lielāks nekā | a > b = 1'b0 |
< | Mazāks nekā | a |
>= | Lielāks par vai vienāds | a >= d = 1'bX |
<=< td> | Mazāks par vai vienāds | a<= e='1'bX</td'> => | =<>
== | Vienlīdzība | a == b = 1'b0 |
!= | Nevienlīdzība | a != b = 1'b1 |
=== | Lietu vienlīdzība | e === e = 1'b1 |
!=== | Lietu nevienlīdzība | un !== d = 1'b1 |
5. Loģiskie operatori
Šie operatori salīdzina operandus un iegūst 1 bita skalāro Būla vērtību.
Raksturs | Operācija veikta | Piemērs |
! | Nav taisnība | !(a && b) = 1'b1 |
&& | Abi izteicieni patiesi | a && b = 1'b0 |
|| | Viens vai abi izteicieni ir patiesi | un || b = 1'b1 |
6. Maiņu operatori
Šie operatori maina operandus pa labi vai pa kreisi, lielums tiek saglabāts nemainīgs, nobīdītie biti tiek zaudēti, un vektors tiek aizpildīts ar nullēm.
kā lasīt csv failu java
Raksturs | Operācija veikta | Piemērs |
>> | Pārslēdziet pa labi | b >> 1 rezultāts 4?b010X |
<< | Pārslēdziet pa kreisi | a << 2 rezultāti 4?b1000 |
7. Piešķiršanas operatori
Ir trīs piešķiršanas operatori, no kuriem katrs veic dažādus uzdevumus un tiek izmantoti ar dažādiem datu tipiem:
- piešķirt (nepārtraukts uzdevums)
- <= (non-blocking assignment)< li>
- = (bloķējošs uzdevums) =>
8. Citi operatori
Tie ir operatori, ko izmanto stāvokļa pārbaudei un vektoru izveidei.
Raksturs | Operācija veikta | Piemērs |
?: | Nosacījumu pārbaude | testa st. ? ja tā ir, dariet to vai, ja nē, dariet to |
{} | Savienot | c = {a,b} = 8'101010x0 |
{{}} | Atkārtot | {3{2'b10}}= 6'b101010 |
9. Operatoru prioritāte
Tabulas secība norāda, kāda darbība tiek veikta vispirms. Pirmajam ir augstākā prioritāte. () var izmantot, lai ignorētu noklusējuma iestatījumu.
Operatoru prioritāte |
---|
+, -, !, ~ (unārs) |
+,- (binārs) |
<> |
,= |
==, != |
& |
^, ^~ vai ~^ |
| |
&& |
|| |
?: |