Операторы равенства и отношения (возвращают X, если у операнда есть X или Z)
m == n // is m equal to n? (1-bit True/False result)
m != n // is m not equal to n? (1-bit True/False result)
m < n // is m less than n? (1-bit True/False result)
m > n // is m greater than n? (1-bit True/False result)
m <= n // is m less than or equal to n? (1-bit True/False result)
m >= n // is m greater than or equal to n? (1-bit True/False result)
Операторы идентификации (сравните логические значения 0, 1, X и Z)
m === n // is m identical to n? (1-bit True/False results)
m !== n // is m not identical to n? (1-bit True/False result)
пример
Если reg a меньше 2'b10, сохраните 2'b11 в a.
if (a < 2'b10) begin
a = 2'b11;
end
Предостережения
- Для большинства операций операндами могут быть сети, переменные, константы или вызовы функций. Некоторые операции недопустимы для реальных (с плавающей запятой) значений.
- Операторы, которые возвращают результат true / false, будут возвращать 1-битное значение, где 1 представляет истину, 0 представляет ложь, а X представляет неопределенный
- Операторы === и! == не поддерживаются для синтеза, потому что Z и X не имеют одинакового значения в симуляции и аппаратном обеспечении.
- Если вы сравните два числа неравной ширины, меньшее будет расширено. Беззнаковые операнды расширяются с помощью расширения влево с нуля. Подписанные операнды расширяются расширением влево значением самого значимого бита (знакового бита).
Источник: «Краткое руководство Verilog HDL на основе стандарта Verilog-2001 (IEEE Std 1364-2001)» Стюарта Сазерленда