co oznacza symbol rury „|” przed zmienną


10

Analizuję kod verilog i znalazłem coś podobnego

wire z = |a & b;

podczas symulacji kod zachowuje się tak samo

wire z = a & b;

więc zastanawiałem się, jakie jest znaczenie |symbolu (fajki)? Czy ma to wpływ na symulację / syntezę?

Odpowiedzi:


17

Jest to nieco mądry operator redukcji . |a & boznacza, że ​​zastosujesz logiczne OR do wszystkich bitów a(tworząc pojedynczy bit), a następnie wykonasz logiczne AND tego bitu i b. |anie ma wpływu, gdy ajest pojedynczym bitem.

Niemniej jednak dość często obserwuje się bitową redukcję wartości pojedynczych bitów. Jednym typowym przypadkiem jest automatycznie generowany kod, w którym faktyczna szerokość amoże zależeć od konfiguracji. Inną możliwością jest to, że jest to starszy kod, w którym akiedyś było kilka bitów. Gdy astał się wartością jednobitową, linia ta była technicznie poprawna, więc pozostawiono niepotrzebnego operatora redukcji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.