Languages
디지털 입력신호값에 따라 여러개의 주파수 값 중 하나를 선택하는 모델을 작성하려는데, switch
primitive들을 병렬로 구성하여서 아날로그 multiplexer를 구현하였을때 event가 많이 발생하면서 속도가 느려졌습니다. 왜 그런가요?
해당 문제는 switch
primitive로 구성한 아날로그 multiplexer의 입력에 1,000,000이 넘는 매우 큰 값을 넣어주었기 때문에 발생하였습니다.
switch
primitive로 구성한 아날로그 multiplexer는 circuit-level 모델에 해당하는데, XMODEL은 이와 같은 circuit-level 모델들을 시뮬레이션할 때 큰 수가 발생하지 않도록 노력을 합니다. 그 이유는 큰 수가 작은 수와 함께 연산이 되면, 작은 수에 담긴 정보가 소실되는 경우가 있기 때문입니다. 이를 방지하기 위해서 XMODEL은 추가적으로 event를 발생시키는데, 문의하시는 경우에는 그것이 과다하여 속도저하를 일으킨 것으로 판단됩니다.
해당 문제를 해결하는 한가지 방법은, analog multiplexer에 작은 수를 입력한후, 그 선택된 출력값에 scale
primitive를 적용하여서 값을 키우는 것입니다. 다른 더 간단한 방법은 circuit primitive인 switch
대신에 function
primitive이면서 아날로그 multiplexer를 바로 표현하는 select
primitive를 사용하는 것입니다.
Please login or Register to submit your answer