인프런 커뮤니티 질문&답변
level sensitive @에 대한 질문
해결된 질문
작성
·
630
3
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 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의 문법적인 스킬이라고 해야할까요?
뭔가 많은 모듈을 디자인을 하려면 문법적인 내용을 알고 있으면 유리할 것 같은데, 이런 것을 따로 공부하고 싶다면 전 강의에 추천해주신 책으로 공부하는 것이 좋을까요?
그런데 저는 책으로 공부하는 것보다 문제를 풀면서(모듈 설계) 공부를 하고 싶다는 생각이 더 드는데, 이를 보충해줄만한 참고 자료 같은 것이 있을까요?
퀴즈
HW 변수에서 오버플로우(Overflow)가 발생하는 근본적인 이유는 무엇일까요?
변수의 이름이 너무 길게 정의되어서
변수가 표현 가능한 값의 범위를 넘어섰기 때문에
클럭 주파수가 너무 높게 설정되어서
리셋 신호가 비활성화 상태이기 때문에
답변 2
1
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 제 강의? 이런거 만들어 볼까요;;)
구글링 해보니까, 이 링크 괜찮네요. (사실 현업에서 많이 배우긴 하죠.. ㅎㅎ)
즐공하세요 :)




