샘플링된 에지 감지
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 19번째.
레벨은 여러 주기 동안 높은 상태로 유지될 수 있지만, 이벤트 펄스는 한 주기 동안 지속되어야 합니다. 이전에 샘플링한 레벨을 저장하고 현재 레벨과 비교하세요. 이 에지 검출기는 입력이 이미 이 클록에 동기화되어 있다고 가정하며, 클록 도메인 교차 동기화기는 아닙니다.
관련 발췌문이며, 주변 선언과 연결은 문제에서 제공됩니다.
previous <= sig;
rising <= sig & ~previous;이전에 저장된 레벨이 샘플링된 전환에서 단일 펄스를 생성합니다.
현재 샘플링된 레벨과 이전 샘플링된 레벨을 비교합니다. 이 검출기는 동기식 입력에만 사용하세요.
챌린지
중급이미 clk에 동기화된 신호 sig에 대해, 샘플링된 0에서 1로의 각 전이마다 레지스터에 저장되는 1사이클 펄스를 생성하세요. 동기식 rst는 저장된 이전 레벨과 펄스를 지웁니다. 따라서 리셋이 해제된 첫 번째 에지에서 sig가 높으면 펄스가 생성됩니다. 출력 열: pulse. 모든 제어 신호와 데이터는 각 상승 클록 에지 전에 안정된 상태이며, 결과는 그 이후에 관찰됩니다.
design.v를 완성하고 모듈 이름과 포트를 유지하세요. 잠긴 testbench.v는 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. 시뮬레이터 인수(예: +CASE=1)를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 각 관찰 결과마다 공백 하나로 구분된 십진수 값 한 행이며, 줄바꿈으로 끝납니다.
직접 해보기
module dut (input clk, input rst, input sig, output reg pulse);
// 이 플레이스홀더를 여러분의 디자인으로 교체하세요.
initial pulse = 0;
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러