• Languages:
  • Korean
Community분류: XMODEL비선형 아날로그 버퍼에 대한 모델링

XMODEL

비선형 아날로그 버퍼에 대한 모델링

jaewoohong 2025-06-21

안녕하세요, 출력 전압에 따른 아날로그 버퍼의 전달 특성이 다른 현상에 대한 모델링을 진행하고 있습니다.
예를 들면, 50mV 이하의 출력에는 A라는 AC 전달 특성을, 50mV 이상의 출력에는 A+3G LPF AC 전달 특성을 구현하는 것이 목적입니다.
실험해 보았던 건 출력 전압을 detect하여 서로 다른 filter로 구현한 후 switching 하였는데, 서로 다른 노드이다 보니 출력 파형의 phase 차이가 생겨 불연속점이 발생하는 문제가 있었습니다.
따라서, 하나의 노드로 출력 전압이 어느 voltage 이상 되었을 때 전달 특성을 바꾸는 것이 필요해 보입니다.
같은 노드에 선택적 filter를 적용할 수 있다면 이것도 좋은 방법이 될 것 같습니다.(filter_sel 이나 filter_var를 사용하면 가능할 것처럼 보였는데, 입력을 어떻게 줘야될지 잘 모르겠습니다.)
미리 답변 감사드립니다.

1 Answers
jaeha 스탭 2025-06-23

안녕하세요,
말씀하신대로, filter_sel을 사용해 두개의 filter 특성을 모델링하고, 출력전압에 따라 그 중 하나의 특성을 선택하도록 하는 방식이 가능할 것 같습니다. 아래에 간단한 예를 보입니다.


module TB;

xreal in, out;
xbit sel;
wire sel_w;

sin_gen #(.freq(10e6), .amp(1.0), .offset(0.0))
U1 (in);
filter_sel #(.width_sel(1), .indices('{0,1}),
.data('{1, 2*M_PI*10e6, 0.0, 2*M_PI*10e6, 0.0, 1, // filter #0 (LPF with 10MHz cut-off)
1, 2*M_PI*100e6, 0.0, 2*M_PI*100e6, 0.0, 1 // filter #1 (LPF with 100MHz cut-off)
}))
U2 (.in(in), .out(out), .sel(sel_w));
slice #(.threshold(0.5)) U3 (.out(sel), .in(out), .in_ref(`ground));
xbit_to_bit U4 (.in(sel), .out(sel_w));

initial begin
$xmodel_dumpfile();
$xmodel_dumpvars();
end

endmodule

filter_sel primitive 는 한 filter 특성에서 다른 filter 특성으로 변환할때 출력의 불연속점이 생기는 것을 막아주기는 합니다만, 설정하신 filter 특성에 따라서는 이상동작을 할수도 있습니다. 다시 말해, 비선형 모델링에 사용하시는 특성 파라메터 값에 따라서 모델의 안정성이 좌우될수 있고, Volterra series등 비선형 모델링에 대한 전문지식이 요구되기도 합니다). 구현하시려는 회로의 특성에 대한 좀더 구체적인 정보를 알려주시면 좀더 도움을 드리겠습니다. MODELZEN을 활용해 해당 회로의 structural 모델(즉, 트랜지스터 기반의 모델)을 자동 추출하는 것도 그러한 비선형 모델을 손쉽게 만드는 방법이 됩니다.