리셋 및 활성화 우선순위
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 16번째.
클록 블록은 비활성화된 에지에서 할당을 생략하여 레지스터를 유지할 수 있습니다. 이러한 의도적인 저장은 우발적인 조합 논리 래치와 다릅니다. 리셋, 로드 및 인에이블 사이의 우선순위를 명시적으로 작성하세요. 여기서 리셋은 동기식입니다. 즉, 상승 클록 에지에서만 적용됩니다.
관련 발췌문이며, 주변 선언과 연결은 과제에서 제공됩니다.
always @(posedge clk) begin
if(rst) q <= 0;
else if(en) q <= data;
end두 제어 신호가 모두 활성화되면 리셋이 우선하며, 리셋이 아닌 비활성화된 에지에서는 q가 유지됩니다.
클록이 적용되는 하나의 우선순위 체인을 사용하고 리셋, 로드, 활성화 및 유지 동작을 정확하게 정의하세요.
챌린지
중급활성-High 동기식 리셋 rst와 활성화 en을 사용하는 8비트 레지스터 q를 구현하세요. 상승 에지에서 리셋이 우선하여 q를 클리어하고, 그렇지 않으면 활성화된 에지에서 a를 로드하며, 비활성화된 에지에서는 q를 유지합니다. 출력 열: q. 모든 제어 신호와 데이터는 각 상승 클록 에지 전에 안정된 상태이며, 결과는 그 후에 관찰됩니다.
design.v를 완성하고 모듈 이름과 포트를 유지하세요. 잠긴 testbench.v는 입력을 변경하고 안정된 후 출력을 출력합니다. 시뮬레이터 인수(예: +CASE=1)를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 각 관찰 결과마다 십진수 값이 한 행에 하나씩 표시되며, 값은 공백 하나로 구분되고 줄바꿈으로 끝납니다.
직접 해보기
module dut (input clk, input rst, input en, input [7:0] a, output reg [7:0] q);
// 이 플레이스홀더를 여러분의 설계로 교체하세요.
initial q = 0;
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러