Menu
Coddy logo textTech

원-핫 검증

Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 3번째.

원-핫 데이터에는 정확히 하나의 비트만 설정되어 있습니다. 디코더는 이러한 데이터를 생성하고, 검증은 들어오는 데이터를 사용하기 전에 확인합니다. 알려진 이진 값의 경우 bits & (bits - 1)이 0이면 0이 아닌 값은 원-핫입니다. 이 섹션에서는 X 또는 Z를 분류하기 위해 해당 지름길을 사용하지 않습니다.

관련 발췌문이며, 주변 선언과 연결은 문제에서 제공됩니다.

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

0이 아닌지 확인하여 유휴 상태를 제외하고, 비트 트릭을 사용하여 여러 설정 비트를 거부합니다.

요청을 검증할 때 0, 정확히 하나의 설정된 비트, 여러 개의 설정된 비트를 구분하세요.

challenge icon

챌린지

중급

알려진 4비트 입력 bits에 대해 정확히 하나의 비트가 high일 때만 valid를 설정하세요. 0이 아닌지 확인하는 조건을 bits & (bits - 1)과 함께 사용하세요. 출력 열: valid. 모든 자극 값은 알려진 이진 값입니다.

design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v는 입력을 변경하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 각 관측값에 대해 10진수 값이 한 행에 하나씩 표시되며, 값은 공백 하나로 구분되고 줄바꿈으로 끝납니다.

직접 해보기

module dut (input [3:0] bits, output valid);
    // 이 플레이스홀더를 자신의 디자인으로 교체하세요.
    assign valid = 0;
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

RTL 설계 및 검증의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러