캐리 비트 보존
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 6번째.
신호 폭은 어떤 비트를 표현할 수 있는지 결정합니다. 연산 전에 피연산자를 확장하여 산술 연산의 의도를 명확하게 하세요. 부호 없는 8비트 값 두 개를 더하면 9개의 결과 비트가 필요할 수 있습니다. 8비트만 할당하면 하위 8비트만 유지되고 올림값은 손실됩니다.
관련 발췌문입니다. 주변 선언과 연결은 과제에서 제공됩니다.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};각 피연산자는 명시적으로 9비트 너비이며, 전체 합과 일치합니다.
필요한 결과 너비를 선택하고 산술 연산을 수행하기 전에 피연산자를 확장하세요.
챌린지
중급캐리 비트를 잃지 않고 부호 없는 8비트 a와 b를 더하세요. 완전한 9비트 합을 total에 반환하세요. 두 피연산자를 명시적으로 9비트로 확장하세요. 출력 열: total. 모든 자극 값은 알려진 이진 값입니다.
design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v가 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 관측값마다 십진수 값 한 행이며, 값은 하나의 공백으로 구분되고 줄바꿈으로 끝나야 합니다.
직접 해보기
module dut (input [7:0] a, input [7:0] b, output [8:0] total);
// 이 플레이스홀더를 여러분의 설계로 교체하세요.
assign total = 0;
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러