개발 편의성을 위한 소소한 Tips/04 질의 응답 정리

[Verilog HDL Q/A. 011] always문을 나누는 기준이 궁금합니다

반응형

꽤 많이 애먹었던 질문입니다. Rule 을 만들어서 관리하고 있지 않았기에 (딱히 인터넷 상에, 정해주질 않았습니다.)

당연하단 듯이 사용했었는데, 이번기회에 정리합니다.

 

Q

always문을  사용하실 때 어떤 기준으로 always문을 나누시는지 궁금합니다.

가령 예를 들면 올려주신 chapter_11에 있는 count 코드를 보면 always 문 2개를 사용해서 모듈을 구성하셨고

그밖에 강의를 보면  다양하게 always문을 나누시는데

같은 동작을 하는 모듈을 always문 하나로 만들 수 있을텐데 나누시는 기준이 어떤건지 궁금합니다.

그리고 작성한 verilog 코드의 가독성을 높히기 위한 팁이나 관련 추천 서적이나 참고 자료가 있으실까요!

제가 이 부분에 대해서 부족한게 많아서 알려주신다면 앞으로 설계를 할 때 도움이 많이 될 것 같습니다. 

감사합니다.

 

A1 맛비의 always 문을 나누는 기준 (정해드립니다.)

1. 한 변수에 여러 always 문 assign 을 해야한다면?  (합치세요. 가장 주의해야함)

https://stackoverflow.com/questions/50622401/can-you-use-manipulate-same-output-reg-variable-in-multiple-always-blocks

2. if else 의 condition 이 indepentent 하다면 always 문을 합쳐도 동일한 로직을 만드나, 맛비는 추천하지 않는다. (합쳐도 되는데, 나누세요)

https://stackoverflow.com/questions/61690027/assigning-multiple-if-statements-in-a-sequential-always-block

3. if else 의 condition 이 depentent 가 있다면? (나누세요)

4. 너무 복잡해서 가독성이 떨어진다. (가독성이 좋은 쪽으로 합치던 나누세요.)

5. 맛비가 무슨말을 하는지 모르겠다. 그러면 1번 case 만 주의하시고 일단 나누세요.

 

즐공하세요 :)

 

A2 코드의 가독성 관련 추천 서적

코드의 가독성이나 tip 이라.. 면? (저도 잘 지키진 않지만)

http://www.ime.cas.cn/icac/learning/learning_3/201907/P020190716574161163126.pdf

반응형