inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[HDL 14장] HW 가속기의 비밀인 Pipeline 을 이해해보자 (실습편)

level sensitive @에 대한 질문

해결된 질문

643

김상현

작성한 질문수 62

3

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
맛비님 안녕하세요. 질문 있습니다.
Verilog 문법적인 부분은 왠만하면 따로 서칭하여 공부하고 있는데 오늘 실습 내용을 보니, @(posedge clk); 와 @(negedge clk);를 따로 사용하더라구요.
 
항상 always @() 이런 것만 봐와서 @가 always의 조건으로만 사용되는 줄로만 이해하고 있었습니다.
 
서칭을 해보니까 level sensitive라고하여 @ 뒤 괄호 안에 있는 신호가 변할 때 실행?된다고 나오더군요.
 
여기서 질문이 생깁니다.
 
1. 아래의 내용은 tb_power_of_8.v 내 49번째 줄부터 61번째 줄입니다.
 
# 10 @(posedge clk); $display("Start! [%d]", $time); for(i=0; i<100; i = i+1) begin @(negedge clk); i_valid = 1; i_value = i; @(posedge clk); end @(negedge clk); i_valid = 0; i_value = 0; # 100
 
10ns 딜레이 후 @(posedge clk);이 나오는데
이걸 해석하면 clk의 rising edge가 발생되기 전까지 polling하는 것인가요?
 
 
2. 따로 Verilog HDL의 문법적인 스킬이라고 해야할까요?
뭔가 많은 모듈을 디자인을 하려면 문법적인 내용을 알고 있으면 유리할 것 같은데, 이런 것을 따로 공부하고 싶다면 전 강의에 추천해주신 책으로 공부하는 것이 좋을까요?
그런데 저는 책으로 공부하는 것보다 문제를 풀면서(모듈 설계) 공부를 하고 싶다는 생각이 더 드는데, 이를 보충해줄만한 참고 자료 같은 것이 있을까요?

임베디드 verilog-hdl fpga

답변 2

1

김상현

답변 감사합니다. Verilog 200제 강의라 나온다면 기대가 되네요!

0

설계독학맛비

안녕하세요 :)

이미 옳은 이야기만 하고 계셔서, 바로 답변을 적겠습니다.

 

서칭을 해보니까 level sensitive라고하여 @ 뒤 괄호 안에 있는 신호가 변할 때 실행?된다고 나오더군요.

맞습니다 :) level sensitive 도 가능하구요. posedge 혹은 negedge 가 리스트안에 기술되었다면, edge sensitive 라 불러요. (아시겠지만 적습니다, 다음 내용을 설명해야 하기에)

 

1. 아래의 내용은 tb_power_of_8.v 내 49번째 줄부터 61번째 줄입니다.

 
# 10 @(posedge clk); $display("Start! [%d]", $time); for(i=0; i<100; i = i+1) begin @(negedge clk); i_valid = 1; i_value = i; @(posedge clk); end @(negedge clk); i_valid = 0; i_value = 0; # 100
 
10ns 딜레이 후 @(posedge clk);이 나오는데
이걸 해석하면 clk의 rising edge가 발생되기 전까지 polling하는 것인가요?
 
맞습니다. 해당 기술은 edge sensitive 임으로 rising edge (0 -> 1 로 변하는 순간) 까지 wait 함으로 polling 하는 것이다 라는 표현은 옳습니다.
 
 
2. 따로 Verilog HDL의 문법적인 스킬이라고 해야할까요?
뭔가 많은 모듈을 디자인을 하려면 문법적인 내용을 알고 있으면 유리할 것 같은데, 이런 것을 따로 공부하고 싶다면 전 강의에 추천해주신 책으로 공부하는 것이 좋을까요?
그런데 저는 책으로 공부하는 것보다 문제를 풀면서(모듈 설계) 공부를 하고 싶다는 생각이 더 드는데, 이를 보충해줄만한 참고 자료 같은 것이 있을까요?
 
제가 사용하고 있는 문법의 99% (혹은 100% 일 수 있습니다) 는 제가 추천드리는 책에 있을 겁니다.
다만, 이거를 응용해보느냐 에서 표현해주신 "스킬?" 이 차이가 있을 것 같아요.
추천할만한 인터넷 자료라...
참고 자료는 필요할때 찾아서 보는 타입인지라.. (제가 그렇게 부지런 하진 않아요.) 도움이 되실지는 모르겠는데요, 문제? 를 풀면서 공부하는 방법도 괜찮은 방법이라 생각합니다. (Verilog 200 제 강의? 이런거 만들어 볼까요;;)
구글링 해보니까, 이 링크 괜찮네요. (사실 현업에서 많이 배우긴 하죠.. ㅎㅎ)
 
즐공하세요 :)

 

 

latency 개념 구현

1

126

3

비바도 all os버전

1

91

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

178

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

102

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

114

2

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

1

96

2