Languages

CommunityCategory: XMODELProfiling XMODEL simulation runtimes
SA Support Team Staff asked 4 years ago

I'd like to analyze which part of my models is consuming the most time and understand how to improve the simulation runtime. Please give a general guidance on how to perform such profile analysis on XMODEL simulations.

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

Sure. There are largely two ways of profiling your XMODEL simulation, depending on what kind of XMODEL primitives your model is mostly made of. Recall that you can model your analog circuits either as block-level models or as circuit-level models. The block-level models, also known as signal-flow models, describe a system as a set of blocks that propagate signals in one direction only. The models described with most of the XMODEL primitives except the 'circuit' primitives would belong to this category. On the other hand, the circuit-level models, also known as conservative system models, describe a system as a network of circuit elements of which node voltages and branch currents are simultaneously governed by Kirchhoff equations. Most of the bottom-up models extracted by MODELZEN would belong to this category. As SystemVerilog simulators can natively handle only block-level models, the circuit-level models are handled by the XMODEL CLM engine when they are described with the 'circuit' primitives, such as 'nmosfet', 'pmosfet', 'resistor' and 'capacitor' primitives.

When your model is mostly a block-level model, you can use the profiling analysis provided by the host SystemVerilog simulator to analyze which module instance has the most activity or consumes the most time. Here are the links on how to perform the profiling analysis with Synopsys VCS or with Cadence NCVerilog/XCelium:

On the other hand, when your model is mostly a circuit-level model, the above-mentioned profiling analysis provided by the host simulator wouldn't help much, as it would just say the most amount of time is consumed by the XMODEL CLM engine, without further breakdown information. In that case, the incremental profiling analysis provided by the XMODEL CLM engine can offer better insights, such as whether your model is forming a large cluster or whether a certain cluster is triggering a large number of events. For more details, please refer to this link below.

SA Support Team Staff asked 4 years ago

모델의 어떤 부분이 가장 많은 시간을 소모하고 있는지 분석해서, 어떻게 시뮬레이션 속도를 개선할 수 있는지 알아보고 싶습니다. XMODEL 시뮬레이션에 대한 프로파일링 분석을 수행하는 방법에 대한 일반적인 가이드를 부탁합니다.

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

Sure. There are largely two ways of profiling your XMODEL simulation, depending on what kind of XMODEL primitives your model is mostly made of. Recall that you can model your analog circuits either as block-level models or as circuit-level models. The block-level models, also known as signal-flow models, describe a system as a set of blocks that propagate signals in one direction only. The models described with most of the XMODEL primitives except the 'circuit' primitives would belong to this category. On the other hand, the circuit-level models, also known as conservative system models, describe a system as a network of circuit elements of which node voltages and branch currents are simultaneously governed by Kirchhoff equations. Most of the bottom-up models extracted by MODELZEN would belong to this category. As SystemVerilog simulators can natively handle only block-level models, the circuit-level models are handled by the XMODEL CLM engine when they are described with the 'circuit' primitives, such as 'nmosfet', 'pmosfet', 'resistor' and 'capacitor' primitives.

When your model is mostly a block-level model, you can use the profiling analysis provided by the host SystemVerilog simulator to analyze which module instance has the most activity or consumes the most time. Here are the links on how to perform the profiling analysis with Synopsys VCS or with Cadence NCVerilog/XCelium:

On the other hand, when your model is mostly a circuit-level model, the above-mentioned profiling analysis provided by the host simulator wouldn't help much, as it would just say the most amount of time is consumed by the XMODEL CLM engine, without further breakdown information. In that case, the incremental profiling analysis provided by the XMODEL CLM engine can offer better insights, such as whether your model is forming a large cluster or whether a certain cluster is triggering a large number of events. For more details, please refer to this link below.