카테고리 없음

[석사 4학기] 9. SciKit Optimization

Young Long 2026. 2. 26. 13:47

OCEAN+Reference.pdf
1.73MB

 

NC_ai_opt2.py
0.00MB
ai_vars.ocn
0.00MB
oceanScript2.ocn
0.00MB

 

 

 

회로를 설계할 때 가장 오래걸리는 과정이 디테일한 성능을 맞추는데 있다. 

mosfet의 W,L,finger Cap size, ind size에 따라 성능을 다르게 나오기 때문에 수식으로 계산한다고 해도 PDk에 따라 값이 달라지고 원하는 성능이 나오는데는 많은 시간이 걸릴 수 있다. 

이를 해결하기 위해 여러가지 값들을 Sweep해서 시뮬레이션을 해서 맞는 값을 찾는 방법도 있지만 Optimization을 하여 회로의 최적화를 진행할 수도 있다. 

 

먼저, 케이던스 시뮬레이션 툴에서 save OceanScript.ocn 파일을 저장할 수 있다. 

 

그러면 터미널에 아래와 같은 .ocn 파일이 생긴다. 

그럼 다음과 같이 시뮬레이션에서 선택한 analysis와 변수항목들이 들어가있다. 

 

이 변수 항목은 ai_vars.ocn파일로 따로 저장한다. 

그리고 oceonScript.ocn을 다음과 같이 수정을 해야한다. 수정을 할 때 원하는 시뮬레이션과 시뮬레이션 결과를 ocn 파일에 입력을 해야한다. 

지금은 시뮬레이션을 통해 얻어내고자 하는것이 LNA output 각 node의 gain값과 그 차이, phase 차이, S11의 peak, Conversion gain을 얻어내고자 한다. 

 

지금까지가 세팅단계이다. 이제는 python 코드로 이 ocn파일을 기반으로 최적화 시뮬레이션을 하는 과정이 필요하다. 

변수 설정
각 항목 별 score 및 csv 파일 저장

 

해당 코드를 실행하면 터미널에서 케이던스에서 시뮬레이션이 도는 것 처럼 같이 돌게 되고 최종적으로 csv 파일에 저장이 되게 된다. 

 

csv 파일에 지금처럼 변수 파라미터들이 나오고 최적화 범위에 있는 값들을 리스트업 해준다.

 

이를 통해 원하는 결과값을 찾을 수 있고 시뮬레이션 해본 결과 해당 파라미터들을 넣었을 때 실제 시뮬에이션으로 확인한 결과가 크게 다르지 않다는 점을 확인하였다. 

 

이제는 PSS와 PAC, Pnoise도 같이 확인하려고 한다. 

 

 

PAC에서 LNA OUT node의 AC gain을 확인하고 sideband 0에서 확인해야하기 때문에 위처럼 harmonic을 사용하고 Pnoise를 통해 NF를 확인해야 하기 때문에 getData를 사용했다. 

이 선언들은 ocean_Script.pdf 파일에서 찾아서 진행하였다. 

 

최종적으로 나온 값들중 nf를 필터로 거쳐 하나의 최적화 라인을 선택해서 직접 cadence에서 시뮬레이션을 진행하여 결과가 얼마나 차이가 있는지 확인하였다. 

 

 

실제 시뮬레이션과 차이가 크지 않음을 확인하였다.