작성
·
251
1
코드를 보면 카운터에는 else if 쪽에 cnt < 100으로 100 이전까지 1씩 증가하도록 하였고 always 카운터에서는 cnt_always == 100-1로 설계하셨는데 왜 cnt_always = 99으로 적지않고 저렇게 적으셨나요? 간혹 저렇게 9를 10-1로 적거나 연산을 넣어서 표기하는 경우를 본것같은데 왜 그렇게 하는지 궁금합니다.
답변 1
0
안녕하세요 :)
cnt < 100 은 100이 넘어가면, 더 이상 counting 을 하지 않습니다.
cnt_always == 100-1; // 99 와 같죠.
이거는 0으로 초기화를 통해서 다시 counting 을 합니다. clock 이 인가되는 한 계속 counting 을 하죠.
그래서 "always" 라는 surfix 를 붙였어요.
결론 : 교육용 코드이고요.
counting value 를 초기화를 해야 계속 counting 이 된다를 보여드리고 싶었어요. (그 이상 그 이하의 이유는 없습니다.)
======================================
합성기 입장에서는 (100-1) 이나, 99 이나 같은 결과로 인지합니다. (상수이기 때문에)
간혹 멍청한? 합성기는 100-1 을 minus 로직을 넣는 경우가 있을 수 있습니다,, 만 (제가 현업에서 사용하는 상용 tool 에서는 본적은 없습니다.)
100 - 1 이면, 100개를 counting 하려고 하는구나 라는 설계자가 (제 입장) 인지하기 쉽게 하기 위함입니다. (이 또한 그 이상 그 이하의 이유는 없습니다.)
결론 : 코드를 인지하시기 편한 방법을 쓰시면 됩니다.
즐공하세요 :)