작성
·
215
1
- 강의 내용외의 개인 질문은 받지 않아요. (개인 과제, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..)
- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
여기서 registering할 때 굳이 always@(posedge clk, negedge rst_n)을 이용하는 이유가 무엇인가요?
always@(*)
if (i_run)
.....
이런 식으로 짜도 동작할 것이라 생각되서 질문드립니다!
감사합니다.
답변 2
0
안녕하세요 :)
always@(posedge clk, negedge rst_n)
저장소자(F/F)를 생성할때, 사용하고요.
always@(*)
Combination Logic 을 만들때 사용해요.
디테일 한 내용은 다음링크 참고부탁드려요. :)
https://aifpga.tistory.com/entry/FPGA-QA-017-always-%EB%AC%B8%EC%9E%A5-%EC%A7%88%EB%AC%B8
질문은 "사실상 level trigger로 구현해도 function 구현가능한데 저 기능을 구현하는데 왜 굳이 F/F로 저장을 해야할까?" 입니다.
이 부분은 설계자가 판단하면 돼요.
과다한 Combinational Logic 은 큰 Delay 를 만들어 내겠죠.
중간에 F/F 으로 delay 를 나누고 싶었습니다... 라는 이유가 큽니다.
pipeline 영상을 복기하시면 좋을 것 같아요.
latch만들지 않으려는 것인가요? ...
latch는... 만들지 말자가 default 라 위 이야기와는 거리가 멀어요 :)