logo

Verilog operatori

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