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

이정민님의 프로필 이미지
이정민

작성한 질문수

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

.

작성

·

232

·

수정됨

1

맛비님의 맛비 시계 강의를 모두 수강하였고, 해당 자료를 보고 아이디어가 떠올라 맛비시계를 응용한 프로젝트를 진행하였습니다.

https://www.hackster.io/Yupabal/fpga-watch-with-button-function-on-zybo-z7-14250c

맛비님이 hackster.io에 올린 코드를 가지고 "matbi_watch_top", "one_sec_gen"에 대한 코드는 제가 원하는대로 고쳤습니다. 위의 2가지 모듈에는 License를 제 github 주소로 고쳤고, 그 외에 코드들은 matbi님 주소 그대로 두고 저의 github에 올렸는데 혹시 문제가 될까요? (프로젝트를 올린 것도 문제가 될까요?)

 

 

+추가로 (프로젝트를 진행하면서 생긴 문제였습니다.)

하나의 always 구문안에 if~else, if~else 이런식으로 if문을 2개 이상 넣을 수 있나요?

이를 시도해보았는데, testbench를 돌려보니 always 구문안에 존재하는 변수 값이 xx로 출력되면서 동작하지 않았습니다.

ex)

always @( ~~~) begin

if(~~)

else

if(~~~~)

else

end

 

답변 1

0

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

안녕하세요 🙂

코드 관련해서는 시계프로젝트의 경우만 예외적으로 git 으로 공개적으로 올려놓았기 때문에 괜찮습니다. 이 부분은 걱정안하셔도 돼요. 여기에 제가 직접 괜찮다고 적어드렸으니 걱정하지 마셔요. (좋아요 눌렀습니다 ㅎ 아주 훌륭합니다!!!)

(다만 그외 다른 강의들의 모든 실습코드는 문제가 되실 수 있으니, 참고 부탁드려요)

==================================

하나의 always 구문안에 if~else, if~else 이런식으로 if문을 2개 이상 넣을 수 있나요?

문법 상 가능합니다.

사실상

"always 문 하나 안에 if else 하나" + "always 문 하나 안에 if else 하나"

 

이거랑 같은 결과를 만들어야 할 것 같은데요.

구현에 문제가 있지 않을까 예상을 해봅니다.

 

먼저 문제되는 코드를 다음과 같이 나눠서도 test 해보세요.

이거는 아시다시피 되어야 하는 문법이니까요. (아마 똑같이 문제가 재현 될 것이라 예상합니다)

"always 문 하나 안에 if else 하나" + "always 문 하나 안에 if else 하나"

 

개인적으로는 가독성을 중시하는게 좋아보여서, 분리하는 것을 추천드립니다.

 

즐공하세요 🙂

이정민님의 프로필 이미지
이정민

작성한 질문수

질문하기