파이프 기호 "|"의 의미는 무엇입니까 변수 앞에서


10

나는 verilog 코드를 분석하고 다음과 같은 것을 발견했다.

wire z = |a & b;

시뮬레이션하는 동안 코드는 다음과 같이 동작합니다

wire z = a & b;

그래서 |(파이프) 심볼 의 의미가 무엇인지 궁금합니다 . 시뮬레이션 / 합성에 영향을 미칩니 까?

답변:


17

이것은 비트 단위 감소 연산자 입니다. |a & b의 의미 a는 단일 비트를 생성하는 모든 비트에 논리 OR을 적용한 다음 해당 비트의 논리 AND를 수행한다는 의미 b입니다. 단일 비트 일 |a때는 효과가 없습니다 a.

그럼에도 불구하고 비트 단위 축소가 단일 비트 값에 적용되는 것이 일반적입니다. 일반적인 경우 중 하나 a는 구성에 따라 실제 너비 가 달라질 수 있는 자동 생성 코드 입니다. 또 다른 가능성은 a한 번에 여러 비트가 있었던 레거시 코드 일 수 있습니다. a단일 비트 값이 되었을 때이 라인은 여전히 ​​기술적으로 정확하여 이제 불필요한 감소 연산자가 남아 있습니다.

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