인프런 커뮤니티 질문&답변

이상혁/전자공학과님의 프로필 이미지
이상혁/전자공학과

작성한 질문수

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 5장] D FlipFlop 과 Reset 실습 (Reset 의 중요성은 여러번 말해도 됩니다.)

5장 실습연습 질문

작성

·

106

1

안녕하세요 🙂

[1. 질문 챕터] : eg) 5장 10:30초쯤

[2. 질문 내용] : 여기에서 출력값을 바로 OUTPUT으로 잡지 않고 reg를 통해서 잡아주신 이유가 있을까요? 단지 Testbench와 DUT의 관계를 설명하시기 위함인지 아니면 특별한 이유가 있는지 궁금합니다.

[3. 시도했던 내용, 그렇게 생각하는 이유] : 처음에 설계를 할 때

always 문들에서 else 부분에 i_value를 저같은 경우네는 바로 o_value로 보냈을 것 같은데 reg를 한 번 거치신 이유가 궁금합니다.

답변 2

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

코드 1. // port 선언과 reg 동시 선언

output reg A;

 

코드 2. // port 와 reg 분리 선언

output A;

reg B;

assign A = B;

 

코드 1과 코드 2는 같은 결과를 만들어 냅니다.

설명을 위해서 reg 와 port 를 명확하게 분리하고 싶었습니다.

즐공하세요 🙂

0

안녕하세요, 인프런 AI 인턴입니다.

이상혁님의 질문에 대해, “설계독학맛비’s 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)” 강의의 5장 실습연습에서 출력 값을 reg를 통해 잡은 이유에 대해 궁금해하시는 것으로 이해됩니다. 이와 유사한 질문이 과거에도 있었으며, 그 답변 내용이 여기서 이해하고자 하는 부분에 도움이 될 수 있습니다.

관련 질문 및 답변:

  1. d_ff_test.v에 관한 질문입니다.

    • 이 질문에서는 module 출력을 reg로 접근하는 것에 대한 질문이었고, 강의자께서는 별도로 reg 타입 변수를 선언한 후, always 문 바깥에서 assign으로 아웃풋에 값을 넣는 것은 Syntax의 선택과 코딩 스타일에 따라 다를 수 있다고 답변하셨습니다.
  2. HDL5장 output, reg질문드립니다

    • 강의자는 Verilog에서 output에 직접 reg를 할당하는 방식에 대해 설명하면서, 이는 Syntax 스타일의 차이며 기능상 큰 차이가 없다고 설명하셨습니다. 즉, 각자의 코딩 스타일에 따라서, output 신호를 처리하는 방식을 선택한다는 것을 알 수 있습니다.
  3. DUT 시퀀셜 로직에서 output을 뽑기 위한 reg 설정 스타일 문의

    • 여기서도 강의자는 output reg 선언 방식과 별도의 reg 변수를 선언 후 assign으로 값 할당하는 방식의 차이에 대해 언급하셨는데, 로직의 결과에 영향을 주지 않고, 주로 코딩 스타일의 차이라고 강조하셨습니다.

결론적으로, output 값을 reg를 통해 잡아주신 주된 이유는 설계자의 코딩 스타일과 더욱 구조화된 코드를 작성하기 위함일 수 있습니다. 게다가, always 블록으로 특정 신호의 동작을 제어할 때는 변화를 저장할 수 있는 reg 타입의 사용이 요구됩니다. 따라서, 이러한 접근 방식은 구현하고자 하는 함수와 논리에 따라 결정될 수 있으며, Verilog HDL 설계에서 자주 볼 수 있는 구현의 다양성을 보여줍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이상혁/전자공학과님의 프로필 이미지
이상혁/전자공학과

작성한 질문수

질문하기