Community분류: XMODEL스텝 형태로 변화하는 신호를 고정된 기울기로 변화하는 신호로 변환하기

XMODEL

스텝 형태로 변화하는 신호를 고정된 기울기로 변화하는 신호로 변환하기

SA Support Team 스탭 2025-09-30

Verilog-A에는 'transition'이라는 연산자가 있어서 신호가 변화하는 기울기를 제한할 수 있습니다. XMODEL에서도 이와 비슷한 기능을 구현할 수 있는 방법이 있을까요? 다시 말해, 스텝의 형태로 급격하게 변화하는 입력 신호를 받아, 내가 원하는 기울기로 변화하는 출력을 생성하는 모듈을 작성하고 싶습니다.

1 Answers
SA Support Team 스탭 2025-09-30

스텝 형태로 변하는 신호를 고정된 변화 기울기를 가진 신호로 바꿀 수 있는 간단한 방법이 있습니다. 첨부된 패키지에는 sandbox.slope_limit.schematic라는 이름의 cellview가 포함되어 있는데, 이 cellview는 'ilimit''capacitor'의 두 primitive만을 사용하여 이를 구현하는 예를 보여줍니다.

'ilimit' primitive는 기본적으로 최대전류와 최소전류가 정해진 직렬 저항으로서 동작합니다. 흐르는 전류가 'Imax''Imin' 파라메터로 설정된 범위 내에 있을 때에는, 기본값 0.01의 작은 저항값을 가지지만, 전류가 그 설정된 범위를 넘어서면, 저항값이 증가하여 전류가 설정된 범위를 더이상 넘어서지 못하게 합니다.

위에 보인 'slope_limit' 모델의 동작을 설명하면, 먼저 출력신호 'out'이 입력신호 'in'과 같은 값을 가질 때에는, 'ilimit' primitive는 아무 전류도 흘리지 않고, 출력 'out'은 갖고 있는 값을 그대로 유지합니다. 그러나, 입력 'in'이 새로운 값으로 스위칭하면, 'ilimit' primitive가 최대값이 'slope' 파라메터의 값으로 제한된 전류를 흘리기 시작하고, 그 결과 출력 'out'의 변화 기울기는 'capacitor' primitive의 커패시턴스 값을 'C'라 할때 'slope/C'의 값으로 고정되게 됩니다.

아래는 sandbox.slope_limit.tb_run testbench cellview를 사용해 얻은 시뮬레이션 결과 파형입니다. 'slope' 파라메터의 값이 0.5이고, 커패시턴스 값이 1nF일때, 출력의 변화 기울기는 0.5V/ns로 제한됩니다. 그 결과, 스텝의 형태로 변화하는 입력 신호가 고정된 변화 기울기를 가진 출력 신호로 성공적으로 변환되었음을 확인할 수 있습니다.

한편, 이 변화 기울기의 값을 외부 입력을 통해 조절하는 것도 가능합니다. 아래의 sandbox.slope_ilimit_var.schematic cellview는 'ilimit_sw' primitive를 사용해 이를 구현하는 예를 보여줍니다. 'ilimit_sw' primitive는 기본적인 동작과 기능은 'ilimit' primitive와 같은데, 그 전류의 최대값과 최소값이 real 타입의 두 입력 'Imax''Imin'에 의해 변화할 수 있다는 것만 다릅니다. 이 모델에 사용된 'inline' primitive는 입력 'slope'의 값이 바뀔 때마다, 이 'Imax''Imin' 값을 각각 'slope''-slope'로 설정하는 간단한 Verilog 코드를 담고 있습니다.

아래의 시뮬레이션 결과 파형은 이 'slope_limit_var' 모델의 동작을 보여줍니다. 'slope' 입력이 값이 1.6으로부터 시작해 점진적으로 감소할때, 출력의 변화 기울기도 그에 따라 함께 감소함을 확인할 수 있습니다.

첨부: slope_limit_20250930.tar.gz