Altium Designer에서 시뮬레이션 문제 해결
회로가 시뮬레이션되지 않을 때는 문제가 회로에 있는지, 아니면 시뮬레이션 과정에 있는지를 식별해야 합니다. 이 참조 섹션에 포함된 정보를 따라가며 제안된 지점들을 하나씩 시도해 보세요.
시뮬레이션 중에 때때로 오류나 경고를 보고하는 메시지가 표시될 수 있습니다. 이러한 메시지들은 Messages Panel에 나열됩니다.
- Warning Messages - 경고 메시지는 시뮬레이션에 치명적이지 않습니다. 일반적으로 SPICE가 시뮬레이션을 완료하기 위해 회로에 대해 변경해야 했던 사항들에 대한 정보를 제공합니다. 이에는 유효하지 않거나 누락된 매개변수 등이 포함됩니다.
- Error Messages - 오류 메시지는 시뮬레이터가 해결할 수 없었던 문제에 대한 정보를 제공하며 시뮬레이션 과정에 치명적이었습니다. 오류 메시지는 시뮬레이션 결과를 생성할 수 없음을 나타내므로, 회로를 분석할 수 있기 전에 수정해야 합니다.
시뮬레이션 분석 실패 문제 해결
모든 시뮬레이터의 어려운 점 중 하나는 Convergence입니다.
Convergence이라는 용어는 정확히 무엇을 의미하나요? 대부분의 시뮬레이터와 마찬가지로, Altium Designer의 SPICE 엔진은 회로를 대표하는 방정식을 반복적으로 해결하는 반복 과정을 사용하여, 회로의 정상 상태 전압과 전류를 찾습니다. 만약 이 전압과 전류를 찾는 데 실패한다면(Convergence에 실패한다면), 그 회로의 분석을 수행할 수 없게 됩니다.
SPICE는 회로의 작동 지점(직류 전압 및 전류)을 시뮬레이션의 각 단계에서 결정하기 위해 행렬 형태로 표현된 동시 Linear 방정식을 사용합니다. 회로는 전도도의 배열로 축소되며, 이 배열이 행렬에 배치되어 방정식(G * V = I
)을 형성합니다.
회로에 비선형 요소가 포함되어 있는 경우, SPICE는 비선형성을 고려하기 위해 Linear 방정식의 여러 번의 반복을 사용합니다. SPICE는 노드 전압에 대한 초기 추정을 한 다음 회로의 전도도를 기반으로 분기 전류를 계산합니다. 그런 다음 SPICE는 분기 전류를 사용하여 노드 전압을 다시 계산하고, 이 과정이 반복됩니다. 이 사이클은 모든 노드 전압과 분기 전류가 지정된 허용 오차 내에 들어올 때까지(Convergence할 때까지) 계속됩니다.
그러나 전압이나 전류가 지정된 반복 횟수 내에 Convergence하지 않으면, SPICE는 Singular Matrix
, Gmin Stepping Faild
, Source Stepping Failed
또는 iteration Limit reached
과 같은 오류 메시지를 생성하고 시뮬레이션을 중단합니다.
SPICE는 각 시뮬레이션 단계의 결과를 다음 단계의 초기 추정치로 사용합니다. Transient analysis(즉, 시간이 단계적으로 진행됨)을 수행 중이고 SPICE가 지정된 타임스텝을 사용하여 해를 Convergence할 수 없는 경우, 타임스텝이 자동으로 줄어들고, 이 과정이 반복됩니다. 타임스텝이 너무 많이 줄어들면, SPICE는 Timestep too small
메시지를 표시하고 시뮬레이션을 중단합니다.
일반 시뮬레이션 Convergence 문제 해결
시뮬레이션 분석이 실패할 때 가장 흔한 문제는 회로가 합리적인 작동 지점으로 Convergence하지 못하는 것입니다. 다음 기술을 사용하여 Convergence 문제를 해결하세요.
Convergence 문제 해결 단계
- Convergence 문제가 발생하면, Operating Point 분석을 제외한 모든 분석을 끄고 시작하세요.
- Messages Panel을 확인하여 시뮬레이션과 관련된 오류나 경고가 있는지 먼저 조사하세요.
- 회로가 올바르게 연결되었는지 확인하세요. 떨어져 있는 노드와 잘못된 부품은 허용되지 않습니다.
- 회로에 접지 노드가 있고, 회로의 모든 노드가 이 접지로 DC 경로를 가지고 있는지 확인하세요. 노드를 격리할 수 있는 부품에는 transformers와 capacitors가 포함됩니다. 전압원은 DC Short 회로로, 전류원은 DC Open 회로로 간주됩니다.
- 시뮬레이션 파라미터를 입력할 때 0을 문자 O와 혼동하지 않았는지 확인하세요.
-
부품 값이나 시뮬레이션 파라미터에 대해 올바른 SPICE 배수가 지정되었는지 확인하세요(
1e6
에 대해M
대신MEG
).
배수는 대소문자를 구분하지 않습니다. 또한, 값과 배수 사이에 공백이 허용되지 않습니다. 예를 들어,1.0 uF
가 아닌1.0uF
여야 합니다. - 모든 장치와 소스가 올바른 값으로 설정되었는지 확인하세요.
- 부하 소스의 Gain이 올바르게 설정되었는지 확인하세요.
- 직렬 캐패시터나 전류원을 일시적으로 제거하고 시뮬레이션을 다시 실행하세요.
- 병렬 인덕터나 전압원을 일시적으로 제거하고 시뮬레이션을 다시 실행하세요.
-
Simulation Dashboard 패널의 Analysis Setup & Run 영역에서 Settings을 클릭하여, Advanced Analysis Settings 대화 상자의 Advanced 탭에서
ITL1
파라미터의 값을300
으로 증가시키세요. 이렇게 하면 Operating Point 분석이 포기하기 전에 더 많은 반복을 거칠 수 있습니다. -
Advanced Analysis Settings 대화 상자의 Advanced 탭에서
RSHUNT1
의 값을 설정하세요.
이 저항 값은 각 회로 노드와 접지 사이에 추가되어 "singular matrix" 오류와 같은 문제를 수정하는 데 도움이 됩니다. 규칙적으로, RSHUNT 값은1e12
와 같은 매우 높은 저항으로 설정되어야 합니다. - .NS (노드셋) 장치를 추가하여 노드 전압을 정의하세요. 노드 전압의 초기 추측이 매우 벗어난 경우, 노드셋 장치를 사용하여 Operating Point 분석의 예비 패스에 사용되는 시작 전압을 사전에 정의할 수 있습니다. 배치할 때 각 노드셋 장치의 Initial Voltage (초기 전압) 파라미터를 구성하세요. 노드셋은 시뮬레이션 일반 부품 라이브러리에서 배치할 수 있습니다.
- 노드셋 장치가 Convergence에 도움이 되지 않는 경우, .IC 장치를 배치하여 초기 조건을 정의해 보세요. 이 경우, 노드 전압은 Operating Point 분석 동안 지정된 값에서 유지되었다가, Transient 분석 동안 해제됩니다. 초기 조건 장치는 노드셋 장치와 같은 라이브러리에서 배치할 수 있으며, 초기 전압 파라미터는 동일한 방식으로 구성되어야 합니다.
- Simulation Dashboard 패널의 Analysis Setup & Run 영역에서 Transient 설정에서 Use Initial Conditions 옵션을 활성화하세요. 이 옵션은 .IC 장치(또는 부품의 IC 파라미터)와 함께 작동합니다. 이 옵션을 설정하면 Operating Point 분석이 수행되지 않고 지정된 전압이 Transient 분석의 초기 조건으로 사용됩니다.
-
모델의 시리즈 저항 파라미터를 지정하고 Advanced Analysis Settings 대화 상자의 Advanced 탭에서
GMIN
옵션을10
배 증가시키세요. -
반도체 장치, 특히 다이오드의 초기 조건(시작 조건)을
OFF
로 지정하세요. 이는 첫 번째 반복에서 다이오드(또는 반도체 장치)를 건너뛰어 Convergence을 개선하는 데 도움이 될 수 있습니다.
DC Sweep 분석 문제 해결
DC 스윕 분석에 문제가 있을 때는, 먼저 위에 나열된 Convergence 문제 해결 단계를 시도해 보세요. 만약 여전히 문제가 발생한다면, 다음을 시도해 보세요:
-
Simulation Dashboard의 Analysis Setup & Run 섹션에서 Step 매개변수의 값을 변경하세요.
장치 모델에 불연속성이 존재한다면(예를 들어, 모델의 Linear 영역과 saturation 영역 사이에), 스텝 크기를 늘리면 시뮬레이션이 불연속성을 건너뛸 수 있습니다. 반면에, 스텝을 작게 만들면 시뮬레이션이 급격한 전압 전환 불연속성을 해결할 수 있습니다. - DC Sweep 분석을 사용하지 마세요. 일부 문제(예: hysteresis, 히스테리시스)는 DC 분석으로 해결할 수 없습니다. 이런 경우에는 적절한 전원 소스의 값을 램프처럼 조절하는 Transient 분석을 사용하는 것이 더 효과적입니다.
Transient 현상 분석 문제 해결
Transient 현상 분석에 문제가 있을 때, 먼저 위에 나열된 Convergence 문제 해결 단계를 시도해 보세요. 만약 문제가 여전히 발생한다면, 다음을 시도해 보세요.
Simulation Dashboard 패널의 Analysis Setup & Run 영역에서 Settings을 클릭하여 접근하는 Advanced Analysis Settings 대화 상자의 Advanced 탭에서:
-
RELTOL
매개변수를0.01
로 설정하세요. 기본값인0.001
(0.1% 정확도)에서 허용 오차를 늘리면 해를 Convergence하는 데 필요한 반복 횟수가 줄어들고 시뮬레이션이 훨씬 더 빨리 완료됩니다. -
ITL4
매개변수의 값을100
으로 증가시키세요. 이렇게 하면 Transient 분석(Transient analysis)이 각 시간 단계마다 더 많은 반복을 거치게 됩니다.
이 값이 높아지면timestep too small
오류를 없애는 데 도움이 되어 Convergence성과 시뮬레이션 속도를 모두 개선할 수 있습니다. -
전류/전압 수준이 허용한다면
ABSTOL
및VNTOL
의 값을 증가시켜 정확도를 낮추세요.
귀하의 특정 회로는 1uV 또는 1pA까지의 해상도를 요구하지 않을 수 있습니다. 그러나, 회로의 예상되는 최저 전압 또는 전류 수준보다 적어도 한 자릿수 낮은 수준은 허용해야 합니다. -
Integration Method을 Gear 방법 중 하나로 변경하세요.
Gear 적분은 더 긴 시뮬레이션 시간을 요구하지만, 일반적으로 사다리꼴(trapezoidal) 방법보다 더 안정적입니다. Gear 적분은 특히 진동하거나 피드백 경로가 있는 회로에 유용할 수 있습니다.
추가로 시도해볼 추가 사항들:
- 회로를 현실적으로 모델링하세요. 특히 stray / junction 캐패시턴스와 같은 현실적인 기생 요소를 추가하세요. 다이오드 주변에 RC 스너버를 사용하세요. RF 및 전력 장치에 대해서는 장치 모델을 서브서킷으로 교체하세요.
- 회로의 모든 주기적 펄스 소스의 상승/하강 시간을 늘리세요. 가장 좋은 펄스 발생기라도 순간적으로 전환할 수 없습니다.