- LEC -

 

(Logic Equivalance Check)

- 기존 netlist와 logic 추가 이후 변경된 netlist의 function이 동일한지 검증하는 단계입니다.

 

 

 

LEC를 하는 이유

 

- chip 설계 중 기능이 변경되면 chip 전체가 쓸모 없어지기 때문에  LEC를 통해 function 적인 부분을 test 해야 합니다.

  * RTL code 합성 시 진행하는 optimization이나 DFT logic 삽입, PnR 등을 진행하다 보면 function 적으로 바뀌어 버릴 수 있습니다. 

- 기술이 발전으로 logic의 복잡성이 증가함에 따라 LEC는 logic의 function 적인 부분에 있어서 중요한 역할을 합니다.

 

 

 

LEC 방법

 

- Logic을 test 하기 위해 gate simulation을 하게 되면 많은 test vector가 필요합니다.

  → Test vector는 입력이 될 수 있는 모든 경우의 수를 포함시켜 만들 가능성이 매우 적습니다.

  따라서 Logic Equivalance Check는 전체 logic을 simulation 하는 것이 아닌

      key point를 이용하여 해당 부분의 출력을 비교합니다.

 

 

 

 

LEC의 3가지 단계

 

- Setup

- Mapping

- Compare

 

 

Setup

 

- 원래 logic과 수정된 logic을 지정하여 어떤 design들을 비교할 것인지 결정

   (ex) Gate Level Netlist vs PnR Netlist)

- blackbox의 specification 지정

- design의 clock info, power info 등을 지정

- 만약 DFT netlist와의 LEC라면 DFT mode를 제어하는 port들의 constraint도 추가해야 합니다. 

setup

 

 

Mapping

 

- 각 logic에서 비교할 point를 mapping(연결)해 주는 단계입니다.

  * 두 design 중 하나의 design에만 존재할 경우 mapping 하지 않습니다. (unmatched)

 

 

Verify

 

- mapping 된 point(key point)에서의 equivalent를 확인하는 단계입니다.

 

verify

 

 

 

LEC report

 

- Non-equivalence report

- Unmated report

- mapping report

 

 

 

언제 LEC를 해야 하나?

 

- RTL vs Gate level Netlist

- Gate Level Netlist vs DFT Netlist

- DFT Netlist vs PnR Netlist

 

 

 

LEC를 했을 때 Gate Simulation 보다 좋은 점

 

- 비교적 빠르게 확인하여 수정 가능 (Run time 감소)

- Simulation에 대한 의존도 감소

- Test vector가 필요 없음

- key point를 통해 정확한 검증 가능

- PnR 진행 시 생긴 버그의 누락 방지

 

 

 

 

 

 

반응형

+ Recent posts