강의

멘토링

커뮤니티

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

s ymb님의 프로필 이미지
s ymb

작성한 질문수

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

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

질문있습니다. D플립플롭과 reset실습에서 8:00분경 async_rst부분에서 always@구문에 posedge clk이 들어간 이유가 특별히 있을까요??

작성

·

241

2

..!

답변 1

0

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

안녕하세요 :)

D F/F 은 clock 동기화로 저장되는 로직입니다.

그럼으로, D F/F 을 만들기 위해서 clock 을 사용하였습니다.

async (비동기) reset 을 만들기 위해서 always 문 안에 reset 을 별도 기술하였구요.

혹시나 제 답변에서 이해가 안되는 부분이 있다면 자세히 남겨주시면 답변드릴께요.

즐공하세요 :)

만약 이벤트 발생리스트에 clk이 없이 async_reset_X만 있는 경우에는 

case 2~4 에서 async_reset_X  엣지로 발생되는 이벤트로 인해 r_ff_async_reset 값이 변경이 되도록 D 부분에 값을 넣어준 상태에서 다음 async_reset_x 신호가 들어와서 이벤트가 발생이 되어야만 실제 출력 Q부분에 반영이 되는 문제가 발생하니깐

이벤트 리스트에 clk도 포함했다라고 이해하면 될까요?

이벤트 리스트에 clk이 추가가 안되었다면

async_reset_X를 clk로 보고 한클력(async_reset_x가 두번째 발생할때 D(Q)가 변경되어 출력되므로) 딜레이 되어서 latch처럼 동작을 하게 되나요?

이게 꼭 중요한 개념은 아닐거같은데 궁금하긴 하네요..

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

안녕하세요 :)

 

Q1. 만약 이벤트 발생리스트에 clk이 없이 async_reset_X만 있는 경우에는 

case 2~4 에서 async_reset_X  엣지로 발생되는 이벤트로 인해 r_ff_async_reset 값이 변경이 되도록 D 부분에 값을 넣어준 상태에서 다음 async_reset_x 신호가 들어와서 이벤트가 발생이 되어야만 실제 출력 Q부분에 반영이 되는 문제가 발생하니깐

이벤트 리스트에 clk도 포함했다라고 이해하면 될까요?

A1. clock 이 없다는 전제라면 이는 F/F이 아닙니다. Clock 과 무관한게 동작하므로 combinational logic 입니다. :)

 

Q2. async_reset_X를 clk로 보고 한클력(async_reset_x가 두번째 발생할때 D(Q)가 변경되어 출력되므로) 딜레이 되어서 latch처럼 동작을 하게 되나요?

A2. 질문자님께서 원하시는 상태가 clock 이 없이 저장을 위하는 거라면, latch 가 됩니다.

 

이게 꼭 중요한 개념은 아닐거같은데 궁금하긴 하네요..

Clock 이 없는 디지털 로직은 없다를 알계되시면 좋을 것 같아요. 나쁜 질문은 없죠 ㅎ

즐공입니다. :)

A1. A2답변을 보고  Q1. 에 대한 질문을 좀더드리면 이벤트 리스트에 clk이 없고 async_reset_X만 있으면 latch가 된다는거죠? 

 

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

clock 이 없는 저장 소자는 latch 이므로 맞습니다 :)

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

추가로 더 적어드리면, 현재 질문하신 코드에서 clock 을 뺀 로직은 현업에서 본적이 없습니다.

latch라고 답변을 드리긴 했으나 디지털 로직 설계시  latch 의 사용을 금하고 있어요.

즉, 궁금하신 부분에 대한 답변일 뿐이구요.

적어도 제 강의에서는 질문주신 코드에 clock을 빼서 사용하시는 것은 비 추천 드립니다. :)

네, 저도 그럴생각은 없구요ㅋㅋ 그냥 제가 이해한 개념이 맞나 확인만 한것뿐이에요, 감사합니다. 

s ymb님의 프로필 이미지
s ymb

작성한 질문수

질문하기