Languages

CommunityCategory: XMODELXMODEL의 xreal 타입

XMODEL

XMODEL의 xreal 타입

SA Support Team Staff 2020-06-29

XMODEL에서 사용하는 xreal 타입에 대해서 설명해주세요. 특히, SystemVerilog의 real 타입과의 주차이점은 무엇인가요? 신호의 타입만으로 시뮬레이션의 속도나 정확성에 큰 영향을 줄 수 있나요?

1 Answers
Best Answer
SA Support Team Staff 2020-06-29

XMODEL의 xreal 타입은 SystemVerilog에서 아날로그 신호를 표현할 때 사건구동방식(event-driven)의 빠르고 정확한 시뮬레이션을 가능케 하기 위해 도입된 데이터 타입입니다. 시간에 따라 변화하는 신호를 표현함에 있어, 각 시점의 값들의 나열에만 의존하기보다 함수식을 사용해 표현한다는 점이 Verilog의 real 타입과의 가장 큰 차이점입니다.

xreal 타입은 이 함수식을 사용함으로써 SPICE와 Real-Number Verilog를 비롯한 기존 아날로그 시뮬레이터가 가지고 있던 속도와 정확성의 한계를 제거했습니다. 기존 아날로그 시뮬레이터에서는 연속적으로 변하는 아날로그 신호의 파형을 표현하기 위해 일련의 점들을 사용하는데, 정확도를 높이려면 이 점들의 수를 늘려야 합니다. 그런데, 이 늘어난 수의 점들을 계산하려면 시뮬레이션 속도가 느려지게 됩니다. 반면 XMODEL은 신호 값이 아닌, 함수식이 변화할 때만 이벤트를 발생시키기 때문에 기존 시뮬레이터보다 적은 수의 이벤트를 생성하면서도 정확한 파형을 표현할 수 있습니다. 다시 말해, 정확도를 높이기 위해 시뮬레이션 속도를 희생하지 않아도 됩니다.

xreal 타입은 임의의 선형시스템의 응답을 표현할 수 있는 아래의 함수식을 사용해 아날로그 신호의 파형을 표현합니다.

xreal 타입 신호에 새로운 이벤트가 발생하면, 이는 신호가 해당 시점부터는 새로운 함수식에 따라 변화하게 된다는 것을 의미합니다. 그 새로운 함수식은 함수식을 구성하는 계수들의 값들(ci, mi, ai)로 표현되며, 이벤트가 발생한 여부와 시점은 별도의 flag 및 time offset 변수로 각각 표현됩니다. 실제로 xreal 타입은 SystemVerilog의 struct 타입을 사용해 이들 변수들을 하나의 신호로 묶은 것입니다.

아래 그림은 real 타입 신호와 xreal 타입 신호 파형의 주요 차이를 보여줍니다. real 타입 신호는 이벤트가 발생하는 지점에서만 값이 변화할 수 있고, 이벤트 사이의 구간에서는 고정된 값만 표현할 수 있기 때문에, 그림과 같은 계단식의 파형으로 원파형을 근사하게 됩니다. 따라서, 정확도를 높이기 위해 타임 스텝을 줄이면 시뮬레이션이 느려지게 되고, 이벤트 수를 줄이기 위해 타임 스텝을 늘리면 정확도가 떨어지는 문제가 있습니다. 반면 xreal 타입 신호는 함수식을 이용해 파형을 정확하게 표현할 수 있으며, 이벤트는 함수식이 바뀔 때만 생성됩니다. 즉, xreal 타입은 높은 정확도를 유지하면서도 시뮬레이션을 빠르게 수행할 수 있습니다.