HDL과 검증

Verilog의 wire형과 reg형의 차이로 올바른 것은?

  1. Areg는 반드시 플립플롭이 되고, wire는 반드시 조합 회로가 된다
  2. Bwire는 assign문 등으로 연결되는 배선을 나타내고, reg는 always 블록 안에서 값을 대입하는 신호를 나타내지만, reg가 반드시 플립플롭이 되는 것은 아니다
  3. Cwire는 숫자를, reg는 문자를 넣기 위한 형이다
정답과 해설 보기

정답: B. wire는 assign문 등으로 연결되는 배선을 나타내고, reg는 always 블록 안에서 값을 대입하는 신호를 나타내지만, reg가 반드시 플립플롭이 되는 것은 아니다

Verilog에서는 assign문이나 module의 출력으로 구동되는 신호는 wire, always 블록 안에서 대입되는 신호는 reg로 선언하는 규칙입니다. reg는 "레지스터"의 약자처럼 보이지만, always @(*) 안에서 대입하면 조합 회로가 되며 플립플롭이 되지 않습니다. 플립플롭이 되는지는 클록 에지에서 값을 갱신하는 방식으로 쓰였는지에 따라 결정됩니다. SystemVerilog에서는 둘 다 logic형으로 쓸 수 있습니다.

  • A. reg라는 이름이어도 조합 회로가 되는 경우가 있습니다.
  • B. 올바릅니다. reg는 always @(*)에서 조합 회로도 됩니다.
  • C. 문자를 위한 형이 아닙니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. 위 Verilog의 assign문이 나타내는 회로로 올바른 것은?
  2. 위 Verilog 기술이 논리 합성으로 만드는 회로로 올바른 것은?
  3. Verilog의 논블로킹 대입(<=)의 동작으로 올바른 것은?
  4. 위 기술에서 클록 상승 직전에 a=0, b=1이었다. 상승 후 a와 b의 값은 어떻게 되는가?
  5. 2단 시프트 레지스터를 의도하여 위와 같이 블로킹 대입(=)으로 작성했다. 발생하는 문제로 올바른 것은?

이 분야의 비교