그동안 RTL 을 설계해오면서 Case 문을 자주 사용했다.

Case 문을 쓸때 항상 default 구문을 사용했기 때문에 Case 문을 사용하면서 로직에러가 발생할 일이 없었다.

그래서 Full CASE와 Parallel CASE 가 뭔지 알지 못햇고, 실제 누군가 나에게 이걸 물었을 때 당연히 대답을 할 수 없었다.

아주 부끄러웠다. -_-;

여기저기서 언듯 본 기억이 있어서 감은 있었지만 정확하지 않기에 모른다고 할 수 밖에 없었고..

이번 기회에 정확하게 알 수 있었다. -_-

A "full" case statement is a case statement in which all possible case-expression binary patterns
can be matched to a case item or to a case default.
말 그대로 Full CASE 는 Case 의 States 모든 경우를 다 커버할 수 있도록  설계된 CASE 구문을 의미한다.
내가 사용하고 있던 default 를 쓰는 구문은 100% Full CASE로 합성이 되는경우이다. default 구문이 없다면 예외 상황이 발생하고 이는 Full CASE로 합성되지 않는다. 경우에 따라서는 Latch 가 발생한다.


A "parallel" case statement is a case statement in which it is only possible to match a case
expression to one and only one case item
Parallel CASE 구문은 States 가 1:1로 매칭이 되도록 설계된 CASE구문을 의미한다.
이 부분은 casex 나 casez 구문을 사용하는 경우 발생할 수 있다. 의도적으로 Parallel CASE 구문을 만들어 내는 경우가 있을 수 있는지는 모르겠지만 casex나 casez 를 잘 사용하지 않아서 이부분은 필요한 경우에 자세하게 생각해 봐야 할 것 같다.

내가 알고 있다고 생각했던것들에 대한 정확한 개념을 알고 있는것이 중요하다. 사실 내용을 보면 알고 있었던 것들이고 내가 지켜나가고 있던 룰이 였음에도 그 개념을 명확하게 알고 있지 못했다.
저작자 표시 비영리

'설계' 카테고리의 다른 글

리눅스에서 ISE 9.2i 를 실행하기 위한 환경설정  (0) 2009/09/23
false path 와 multi-cycle path  (4) 2009/09/21
Full CASE 와 Parallel CASE 구문의 비교  (0) 2009/08/25
드디어 프로젝트 시작  (1) 2009/04/27
IEEE 802.11 VHT  (0) 2009/03/24
JOB의 계층구조?  (0) 2009/03/13
Posted by 영고니짱
이전버튼 1 ... 10 11 12 13 14 15 16 17 18 ... 193 이전버튼