산술적 오른쪽 시프트
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 8번째.
산술 오른쪽 시프트는 >>>를 사용하며 왼쪽 피연산자가 signed일 때 부호 비트를 복제합니다. 논리 오른쪽 시프트는 >>를 사용하며 0으로 채웁니다. 음의 홀수 값에서는 오른쪽으로 산술 시프트하는 것이 0을 향해 절단하는 integer 나눗셈과 같지 않습니다.
관련 발췌 내용입니다. 주변 선언과 연결은 도전 과제에서 제공됩니다.
reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);부호 확장이 음수인 2의 보수 해석을 유지하기 때문에 결과는 마이너스 2입니다.
부호 확장이 필요할 때는 >>>와 함께 signed 왼쪽 피연산자를 사용하세요.
챌린지
중급값을 산술 오른쪽 시프트하여 signed 8비트 값으로 만들며, 시프트 양은 0에서 7까지입니다. signed 8비트 결과 y를 반환합니다. 음수 값은 부호 비트로 채워집니다. 출력 열: y. 모든 자극 값은 알려진 이진 값입니다.
design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v가 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 각 관측값마다 십진수 값이 한 행에 하나씩 표시되며, 값은 하나의 공백으로 구분되고 줄바꿈으로 끝납니다.
직접 해보기
module dut (input signed [7:0] value, input [2:0] amount, output signed [7:0] y);
// 이 플레이스홀더를 여러분의 설계로 교체하세요.
assign y = 0;
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러