Inflearn brand logo image

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

어진님의 프로필 이미지
어진

작성한 질문수

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

[HDL 17장] HW 의 동작을 제어하는 FSM 을 이해해보자. (실습응용편)

FSM과 CORE logic 분리 설계..?!

작성

·

76

1

안녕하세요! 해당 질문이 적합한지 모르겠지만, 일단 남겨보겠습니다.

 

궁금한 것

fsm_counter_test이라는 하나의 모듈 안에 fsm logic(?)과 core logic(?)(counter)을 같이 설계하셨는데 실제로도 이렇게 core와 fsm을 하나의 모듈 안에서 설계하나요?

아니면 fsm_controlle, core_counter 이런식으로 두개의 모듈로 fsm과 core를 설계 후 top 모듈에서 두 모듈을 파생하면서 이어주시나요?!

물론 상황마다 다르겠지만,
후자처럼 나누어서 설계하는 경우도 있는지. 있다면 그런 경우가 더 많은지?! 궁금해서 여쭙니다!

답변 2

1

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

안녕하세요 🙂

코딩 스타일의 질문으로 이해했는데요.

제가 겪은 경험으로는 회사마다, 그리고 개인마다 FSM 로직을 어떻게 가져가는지 다르더라고요.

가독성을 따라가고 싶고요. 나누는 기준은 현업에 가셔서 선배분께 여쭤보시거나, 기존의 코드를 보시면 더 정확할 것 같습니다.

저는 어떤 스타일을 추천하는가로 답변을 이어가면 될 것 같아요.

간단한 거라면, 하나의 모듈내에 fsm 과 연산을 같이 두고 싶어요. (counter 예제)

복잡하다면, 나눠주시는 것도 좋겠습니다.

현업에 rule 이 있다면, 그 룰을 따라가시는 것이 가장 좋겠죠..?! (가장 좋은 답)

즐공하세요!

0

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

스테이트 머신(FSM)과 코어 로직을 같은 모듈에서 설계할지, 분리할지는 설계의 복잡성과 시스템의 요구사항에 따라 달라집니다.

일반적으로 다음과 같은 경우에 나누어 설계할 수 있습니다:

  1. 복잡한 시스템: 시스템이 복잡하고 여러 구성 요소가 있는 경우, 각 구성 요소를 독립적으로 개발하고 관리하기 위해 FSM과 코어 로직을 분리하여 설계하는 것이 좋습니다. 이렇게 하면 각 모듈의 기능을 명확하게 정의하고 중복 코드를 피할 수 있습니다.

  2. 재사용성: 코어 로직이 여러 FSM에서 사용될 수 있다면, 이를 독립된 모듈로 만들어 재사용성을 높일 수 있습니다.

  3. 유지 관리: 분리된 모듈은 각각의 변경이 다른 모듈에 미치는 영향을 최소화하여 유지 보수를 용이하게 합니다.

반면에, 시스템이 단순하고 각 구성 요소 간의 상호작용이 강한 경우에는 하나의 모듈에 통합하여 설계할 수 있습니다. 이렇게 하면 설계가 직관적이고 간단해집니다.

관련해서 비슷한 질문과 답변을 참고하시면 더 도움이 될 것입니다. 예를 들어 FSM 설계 방법에 질문드립니다 게시물에서처럼, 설계 방법에 대한 여러 접근 방식을 논의하는 것이 다양한 관점에서 고민해볼 수 있게 도와줄 것입니다.

제가 도움이 되셨길 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

어진님의 프로필 이미지
어진

작성한 질문수

질문하기