Languages

CommunityCategory: XMODELXMODEL의 xbit 타입
SA Support Team Staff asked 4 years ago

XMODEL에서 사용되는 xbit 타입에 대해 더 자세히 알고 싶습니다. xbit 타입이란 무엇이며 또 어떤 경우에 사용하나요? 특히, Verilog의 regwire 타입과 다른 점은 무엇인가요? 모델의 모든 디지털 신호에 대해 regwire 대신 xbit을 사용해야 하나요?

1 Answers
Best Answer
SA Support Team Staff answered 4 years ago

XMODEL의 xbit은 SystemVerilog에서 시뮬레이션 time step의 제한을 받지 않고 정확한 타이밍의 디지털 신호를 표현하기 위해 도입되었습니다. SystemVerilog에서의 시간은 time precision이라고 불리는 시뮬레이션 time step의 정수배로만 표현되기 때문에, wirereg 등 Verilog의 표준타입을 사용한 디지털 신호들은 이 시뮬레이션 time step보다 더 정밀한 타이밍을 표현할 수가 없습니다.

xbit 타입은 디지털 신호를 표현할때 신호의 0, 1값에 추가하여 타임 오프셋 정보를 함께 표현함으로써 이 한계를 없앴습니다. 타임 오프셋 변수는 double-precision 부동소수점형식의 실수값을 가질 수 있기 때문에 거의 무한한 resolution의 타이밍을 표현할 수 있습니다. 아래 그림은 wire/reg 타입과 xbit 타입으로 표현된 두 클록 신호를 비교하였습니다. 일반적인 클록신호는 SystemVerilog의 timestep 위치와 정확하게 일치하지 않는 지점에서 스위칭할 수 있습니다. wire/reg 타입을 사용하면, 이 경우에 양자화(quantization)로 인한 타이밍 에러가 발생합니다. 반면, xbit 타입을 사용하면 타임 오프셋 변수가 해당 타이밍 에러값을 별도로 저장하기 때문에 에러가 발생하지 않습니다. 예를 들어, 시간이 10일 때 xbit 신호의 값이 변경되고 타임 오프셋 값이 -0.4이면, 이는 실제로는 9.6 시점에서 변경되었다는 것을 의미합니다.

이런 이유로 xbit 타입은 클록이나 타이밍 펄스 등 정확한 타이밍의 표현이 필요한 신호에 적합합니다. 예를 들면, phase-locked loop 또는 delay-locked loop의 출력 클록, DC-DC converter의 스위칭 펄스 등은 0, 1 값보다는 그 신호가 표현하는 주파수, 주기, 딜레이, 또는 펄스폭 등의 타이밍 정보가 더 중요하고, 정확하게 표현되어야 합니다.

하지만 모든 디지털 신호에 xbit 타입을 사용하라는 뜻은 아닙니다. 사실 대부분의 디지털 회로는 표준 Verilog 문법으로 wire/reg 타입의 신호를 가진 모델로 표현하는 것이 더 낫습니다. 이들 회로에 쓰이는 디지털 신호들은 그 지연시간이 어느 범위에만 들어온다면 그 타이밍이 정확하게 표현되어야 할 필요는 없기 때문입니다. 순수한 Verilog로 디지털 모델을 작성하면, 그 모델을 합성에 사용할 수 있을 뿐만 아니라, 시뮬레이션 속도도 더 빠릅니다.

xbitwire/reg 타잎의 선택을 좀더 설명드리기 위해서 아래 그림의 프로그래머블 주파수 분주기를 예로 들어보겠습니다. 이 주파수 분주기는 phase-locked loop에 흔히 쓰이는 회로로써, 출력 클록신호의 타이밍은 입력 클록신호의 타이밍과 정확한 관계를 유지해야 합니다. 반면, 그 정확한 시점에 출력신호가 가지게 되는 값은 programmable counter와 delta-sigma modulator(DSM)으로 구성된 디지털 finite-state machine의 출력값이 결정합니다. 따라서, programmable counter와 DSM은 wire/reg 타입 신호를 사용한 순수한 Verilog 모델로, 최종단의 retiming flip-flop은 xbit 타입의 입출력 신호를 갖는 'dff_xbit' primitive로 표현하는 것이 좋습니다. 이렇게 하면, 정확한 타이밍을 가진 주파수 분주기 모델을 구현하면서 그 디지털 부분은 합성가능한 Verilog 언어로 기술할 수 있습니다. 그리고, 모든 부분을 xbit 타입신호로 표현한 모델을 사용했을때보다 시뮬레이션 속도도 더 빨라집니다.