조합 함수
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 11번째.
Verilog function은 모듈 내에서 재사용할 수 있도록 제로 시간 계산을 묶습니다. 반환 폭, 입력 인수 및 지역 변수를 선언한 다음, 결과를 function 이름에 assign합니다. 조합 함수에는 지연이나 이벤트 제어가 포함되지 않으며, 고정된 범위의 루프는 반복되는 논리를 설명할 수 있습니다.
관련 발췌문입니다. 주변 선언과 연결은 과제에서 제공됩니다.
function [7:0] gray;
input [7:0] value;
begin gray = value ^ (value >> 1); end
endfunctionfunction을 호출하면 시뮬레이션 시간을 추가하지 않고 표현식을 계산합니다.
모든 경로에서 function 결과를 할당하고 조합 함수를 타이밍 제어 없이 유지하세요.
챌린지
중급부호 없는 8비트 이진 값을 value XOR (value를 오른쪽으로 1비트 시프트한 값)을 사용하여 Gray 코드로 변환하는 Verilog function gray를 구현하세요. function을 a와 함께 호출하여 y를 구동하세요. 출력 열: y. 모든 자극 값은 알려진 이진 값입니다.
design.v를 완성하고 모듈 이름과 포트를 유지하세요. 잠긴 testbench.v는 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 각 관찰마다 10진수 값이 한 행에 하나씩 표시되며, 값은 하나의 공백으로 구분되고 줄바꿈으로 끝납니다.
직접 해보기
module dut (input [7:0] a, output [7:0] y);
// 이 플레이스홀더를 자신의 디자인으로 교체하세요.
assign y = 0;
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러