Verilog에서 두 숫자 (순수, 변수, 상수)를 비교하는 방법


10

저는 Verilog를 처음 사용하고 두 숫자를 비교하는 방법을 배우고 싶습니다. 예를 들어, 매개 변수 또는 reg (예 : a)를 숫자 2 (2'b10)와 비교해 봅시다. 이것이 Verilog로 어떻게 작성됩니까?

답변:


11

평등 및 관계 연산자 (피연산자가 X 또는 Z 인 경우 X 반환)

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

경고

  1. 대부분의 연산에서 피연산자는 네트, 변수, 상수 또는 함수 호출 일 수 있습니다. 일부 연산은 실수 (부동 소수점) 값에 적합하지 않습니다.
  2. 참 / 거짓 결과를 반환하는 연산자는 1 비트 값을 반환합니다. 여기서 1은 참, 0은 거짓, X는 불확정을 나타냅니다.
  3. Z와 X는 시뮬레이션과 하드웨어에서 동일한 의미를 갖지 않기 때문에 === 및! == 연산자는 합성을 지원하지 않습니다.
  4. 너비가 다른 두 숫자를 비교하면 더 작은 크기가 확장됩니다. 부호없는 피연산자는 0으로 왼쪽 확장하여 확장됩니다. 부호있는 피연산자는 가장 중요한 비트 (부호 비트)의 값으로 왼쪽 확장하여 확장됩니다.

출처 : Stuart Sutherland의 "Verilog-2001 표준 (IEEE Std 1364-2001) 기반 Verilog HDL 빠른 참조 안내서"


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.