Languages
생성을 원하시는 신호는 그 자체로는 주기적인 신호가 아니라 어려움이 있으신 것 같습니다. 여러가지 방법이 있겠습니다만, 대표적으로 두가지를 소개합니다.
1. integ
primitive 을 활용한 모델링
먼저 pwl_gen
primitive를 사용해 주기적인 펄스 신호를 만들고, 그 신호를 integ
primitive를 통해 적분하여 계단식으로 값이 증가하는 신호를 생성하는 방법입니다. pwl_gen
primitive로 생성되는 각 펄스의 면적과 integ
primitive의 gain은 각 step당 증가되는 변화량을, 각 펄스의 폭은 그 값이 변화되는 시간을, 그리고 integ
primitive의 init_value
는 출력신호의 초기값을 결정합니다.
예를 들어, 200ns마다 한 스텝당 10mV씩 값이 증가하는 신호를 만들기 위해서 다음과 같이 모델링 할 수 있습니다.
2. sample
primitive를 활용한 모델링
다른 방법은 sample
primitive를 활용하는 방법입니다. 예를 들어, 아래 그림에 보인 모델의 경우, add
primitive 은 현재 출력값에 기초해서 다음 주기에 출력할 출력값을 계산하고, sample
primitive은 그 값이 실제로 출력에 전달되는 타이밍을 결정합니다. 따라서 add
primitive가 더하는 값을 통해 스텝당 변화량을, sample
primitive가 trigger되는 주기를 통해 변화주기를 정할 수 있습니다. 참고로, buffer
primitive는 init_value
라는 파라메터를 통해 초기값을 결정하기 위해 사용되었습니다. 아래의 예는 200ns마다 한 스텝당 10mV씩 값이 증가하는 신호를 생성합니다.
Please login or Register to submit your answer