Inflearn brand logo image

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

미래를위한큰그림님의 프로필 이미지
미래를위한큰그림

작성한 질문수

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

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

Assign 문의 유/무에 따른 합성 결과 문의

작성

·

53

1

[1. 질문 챕터] :

5장 10:30초

[2. 질문 내용] :

다른 분의 질문을 통해, assign 한 의도가 존재함은 알았습니다만, 다른 내용의 질문이 있어 문의 드립니다.

 

  • assign 을 통해 o_variable과 r_flipflop 을 연결해주었는데, assign의 유/무가 합성 되며 생기는 로직 에 영향 (LUT를 잡아먹는다던가, Timing이 지연된다던가) 을 미치는지 궁금합니다.

 

현재 듣고있는 수업과는 크게 관련이 없을 수 있는 질문일 수 있어 미리 사과의 말씀을 드립니다.. 혹 이런 내용이 계속 궁금하면 이번에 열려있는 문법 관련 강의를 듣는다면 도움이 될 수 있을지도 문의 드립니다.

답변 2

1

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

안녕하세요 🙂 질문 주셔서 감사합니다.

질문하신 내용을 요약하면,
assign o_variable = r_flipflop;
이와 같은 continuous assignment가 합성 시 리소스 사용이나 Timing에 영향을 주는지에 대한 궁금증으로 이해했습니다.

결론부터 말씀드리면,

assign 문 자체는 논리적으로 와이어 연결 역할만 수행하기 때문에,
합성 결과에서 별도의 로직 (LUT 등)을 추가로 소비하지 않습니다.

즉, assign o_variable = r_flipflop;
그냥 o_variabler_flipflop의 다른 이름(alias)처럼 동작하는 것이고,
결국엔 둘이 같은 넷(net)에 연결되는 것입니다.

다만 assign 문에서 다음 상황이면 합성결과에 영향이 발생할 수 있습니다.

  1. assign이 복잡한 조합 논리를 포함한다면 (예: assign o = a & b | c;)
    → 이때는 당연히 해당 조합 논리에 따라 LUT나 delay가 생깁니다.

  2. o_variable이 다른 always 블록에서 또 assign되는 경우
    의도치 않은 multiple driver 문제로 합성 오류 혹은 경고가 납니다.

  3. o_variable이 top-level port라면
    assign으로 연결할지, 직접 always 블록에서 assign할지에 따라
    클럭 도메인 처리, FPGA I/O constraint 등에 영향을 줄 수 있습니다.

 

순수한 assign? 은 합성기에서 영향이 없을 것으로 기대하고 있어요.

당연히.. 설계독학의 Verilog 문법강의를 추천하고요. (learning time 이.. 40 시간.. 이라 좀 길어요. 제대로 다루느라..) https://zero-base.co.kr/pages/66840?_token=test_token&

image.png

 

설계하신 로직의 schematic 을 같이 확인해보는 과정도 포함되어 있으니, 많은 도움 되시리라 자부합니다.

즐공하세요!

회신 감사합니다. 모호한 개념에 관하여 잘 적립되고 있고, 아시듯 기술공유가 많지 않은 분야에서 귀중한 시간 내주시어 QnA를 해주신 덕분에 많은 도움이 되고 있습니다. (다른 분들의 질/답도 정독하고 있습니다)

 

로드맵과는 다르게, Verilog HDL 세션 1과 2를 수강하게 되었네요.

순서가 좀 많이 틀어지겠지만, 차후 추천주신 강의도 들어볼 수 있도록 하겠습니다.

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

네 즐공하세요!!

수강해주셔서 감사합니다 🙂

0

안녕하세요, 인프런 AI 인턴입니다.
김동한님,

assign 문을 사용하여 변수와 플립플롭을 연결할 경우 합성 결과에 어떤 영향을 미치는지 궁금하시군요. 보통 assign 문은 연산 지연 없이 조합 논리를 정의하기 위해 사용됩니다. 따라서 assign의 유무가 합성 시 발생하는 로직에 큰 영향을 미치지 않습니다. 그러나 복잡한 디자인에서는 LUT(Resource) 소비와 타이밍 지연에 영향을 줄 수 있으므로 실제로는 설계의 복잡성, FPGA나 ASIC의 요건에 따라 다를 수 있습니다.

설계에 대한 깊이 있는 이해를 위해 관련 문법 강의를 수강하시는 것도 좋은 선택이 될 수 있습니다. 특히, Verilog HDL과 관련된 강의를 통해 설계 및 합성 시의 다양한 고려 사항을 학습할 수 있을 것입니다.

추가적인 도움이 필요하시다면, 강의 페이지의 수강 전 문의 게시판을 통해 강사님께 직접 질문을 남기는 것도 추천드립니다.

감사합니다.

미래를위한큰그림님의 프로필 이미지
미래를위한큰그림

작성한 질문수

질문하기