#binary #comparison #verilog
#двоичный #сравнение #verilog
Вопрос:
Интересно, есть ли возможный способ сравнения нижеприведенных переменных.
reg [7:0] var1;
reg [3:0] var2;
Здесь я хочу проверить, var2
равно ли оно последним 4 битам var1
. Могу ли я это сделать?
Если да, то каким образом?
Ответ №1:
Вот так:
if (var1[3:0] == var2)
...
Ответ №2:
Имейте в виду, что reg
тип предназначен для переменных с 4 состояниями (01xz).
Любой из них подходит для синтезируемого RTL:
if (var1[3:0] == var2[3:0])
if (var1[3:0] == var2)
В тестовом модуле лучше использовать «тройное равенство»:
if (var1[3:0] === var2[3:0])
Ответ №3:
Вы можете сделать {if ~((var[3:0] ^ var2) | 4b'0000)}
Компилятору должно быть проще синтезировать.