HDL과 검증

위 Verilog 기술이 논리 합성으로 만드는 회로로 올바른 것은?

always @(posedge clk)
    q <= d;
  1. Ad와 clk의 AND 회로
  2. B클록의 상승 에지에서 d를 받아들이는 D 플립플롭
  3. C클록이 1인 동안 계속 d를 통과시키는 래치
정답과 해설 보기

정답: B. 클록의 상승 에지에서 d를 받아들이는 D 플립플롭

"always @(posedge clk)"는 클록이 상승하는 순간에만 안의 대입을 수행한다는 의미이며, 논리 합성은 이를 에지에서 동작하는 플립플롭으로 만듭니다. q는 클록 상승 시점의 d 값을 다음 상승까지 유지합니다. 동기식 회로에서는 대부분의 기억이 이 형태로 기술됩니다. 클록의 에지가 아니라 레벨에서 동작하는 래치와는 구별해야 합니다.

  • A. 클록은 에지의 트리거로 사용되며 AND는 만들지 않습니다.
  • B. 올바릅니다. posedge는 상승 에지를 나타냅니다.
  • C. 에지에서 동작하므로 래치가 아닙니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. Verilog의 논블로킹 대입(<=)의 동작으로 올바른 것은?
  2. 위 기술에서 클록 상승 직전에 a=0, b=1이었다. 상승 후 a와 b의 값은 어떻게 되는가?
  3. 2단 시프트 레지스터를 의도하여 위와 같이 블로킹 대입(=)으로 작성했다. 발생하는 문제로 올바른 것은?
  4. Verilog에서 대입 종류를 구분해 사용할 때의 일반적인 가이드라인으로 올바른 것은?
  5. Verilog에서 "always @(*)"라고 쓰는 의미로 올바른 것은?

이 분야의 비교