Приложения использования! vs ~ в условиях цикла - PullRequest
0 голосов
/ 28 октября 2019

В Verilog я заметил, что различные ресурсы (примечания к курсу и онлайн-ресурсы), как правило, используют либо логический оператор!, Либо оператор сокращения ~ в условии оператора if.

Например,используя это с активным низким сбросом:

if(!reset)

//reset statements, etc.

или

if(~reset)

//reset statements, etc.

Я полагаю, что оба они по существу дают один и тот же результат моделирования, зная, что сброс ДОЛЖЕН / БУДЕТ1-битный двоичный вход 1 или 0. Я понимаю, что это может измениться, если условие было многоразрядным значением.

Будет ли какая-то польза для приложения от выбора одного над другим? Кто-нибудь может привести примеры? Каковы будут изменения в отношении синтеза? Моделирование

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Ответы на этот вопрос могут иметь некоторые предвзятые предубеждения, но я ожидаю, что выражение, введенное вами в if(expression), будет оцениваться как 1-битный истинный или ложный результат. Так что !result является более представительным для вашего намерения.

0 голосов
/ 28 октября 2019

Для однобитового сигнала, такого как ваш сброс, да, они должны давать одинаковый результат при моделировании и синтезе. Любой инструмент, который не вероятен , имеет какую-то ошибку.

Лично я не верю, что одно лучше другого. Я видел, как оба года успешно использовались в FPGA и ASIC. Я обычно использую ~, поскольку я предпочитаю думать о настройке / сбросе, который активен на низком уровне, с истинным инвертором на выводе установки / сброса.

...