qual è il significato del simbolo del tubo “|” davanti a una variabile


10

Sto analizzando un po 'di codice Verilog e ho trovato qualcosa di simile

wire z = |a & b;

mentre la simultanea il codice si comporta proprio come

wire z = a & b;

quindi mi chiedevo qual è il significato del |simbolo (pipe)? Ha qualche impatto sulla simulazione / sintesi?

Risposte:


17

Questo è un operatore di riduzione bit-saggio . |a & bsignifica che si applica un OR logico a tutti i bit di a(producendo un singolo bit) e quindi si esegue un AND logico di quel bit e b. |anon ha alcun effetto quando aè un singolo bit.

Tuttavia, è abbastanza comune vedere una riduzione bit-saggio applicata ai valori a bit singolo. Un caso tipico è il codice generato automaticamente in cui la larghezza effettiva di apuò dipendere dalla configurazione. Un'altra possibilità è che questo sia un codice legacy in cui auna volta c'erano diversi bit. Quando è adiventato un valore a singolo bit, questa riga era ancora tecnicamente corretta, quindi l'operatore di riduzione ora non necessario è stato inserito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.