Синтезируемый арифметический сдвиг в Verilog - PullRequest
0 голосов
/ 08 сентября 2018

Я недавно сталкивался с этим ответом на stackoverflow.

С Verilog, как только вы сделаете выбор части, результат будет без знака. Используйте системную задачу $signed для выбранной детали, чтобы сделать ее подписанной.

Является ли этот метод синтезируемым (т.е. системная задача $signed)

Если он не синтезируемый, есть ли другой способ выполнить арифметическое смещение для переменных, подобных a <= a>>>2 (это должно дать коэффициент, когда a делится на 4).

1 Ответ

0 голосов
/ 08 сентября 2018

Это, конечно, синтезируемый. Поддерживает ли ваш конкретный инструмент это другой вопрос.

Вы также можете использовать приведение в SystemVerilog.

res = signed'(registers[0][0]) >>> 2;
...