inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

245

s ymb

작성한 질문수 3

2

..!

verilog-hdl 임베디드 fpga

답변 1

0

설계독학맛비

안녕하세요 :)

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

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

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

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

즐공하세요 :)

0

김영선

만약 이벤트 발생리스트에 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처럼 동작을 하게 되나요?

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

0

설계독학맛비

안녕하세요 :)

 

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 이 없는 디지털 로직은 없다를 알계되시면 좋을 것 같아요. 나쁜 질문은 없죠 ㅎ

즐공입니다. :)

0

김영선

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

 

0

설계독학맛비

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

0

설계독학맛비

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

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

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

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

0

김영선

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

latency 개념 구현

1

125

3

비바도 all os버전

1

89

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

98

2

다운로드용량

1

82

2

비바도리눅스설치

1

97

2

전체path복사넣기

1

73

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

176

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

101

2

./build시, waveform 'divide color' 사용

1

61

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

145

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

73

1

안녕하세요 설치 관련 질문 드립니다.

1

72

3

16장 mealy 설계.

1

80

2

14장 Cycle 관련, Testbench 코드.

1

75

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

68

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

76

2

build에러 질문

0

63

2

1장 ./build에서 에러가 나요

1

82

2

FPGA 강의 보드 문의 드립니다.

1

115

2

5장 DFF특성에 대한 질문

1

87

3

vivado linux 사용 이유.

1

150

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

113

2

디스코드 멤버쉽 등업 관련 문제

1

96

2