яке значення символу труби "|" перед змінною


10

Я аналізую код verilog і знайшов щось подібне

wire z = |a & b;

при моделюванні код поводиться так само

wire z = a & b;

тож мені було цікаво, яке значення |символу (труби)? Чи має це вплив на моделювання / синтез?

Відповіді:


17

Це трохи розумний оператор скорочення . |a & bозначає, що ви застосовуєте логічний АБО до всіх бітів a(виробляючи один біт), а потім виконайте логічне І цього біта і b. |aне має ефекту, коли aце єдиний біт.

Тим не менш, досить часто зустрічається скорочення біт-розуму, застосованого до значень одного біта. Один типовий випадок - автоматично генерований код, де фактична ширина aможе залежати від конфігурації. Інша можливість полягає в тому, що це застарілий код, де aколись було кілька біт. Коли це aстало єдиним бітовим значенням, цей рядок все ще був технічно правильним, тому тепер не потрібний оператор скорочення був залишений.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.