Differential Op-Amp Resistive Load
Creating a New Project

Create a new project by clicking Add New Project. A single project can contain multiple related circuits.
Upon clicking Add New Project, you will be prompted to enter:
- Project Type – Select the appropriate classification (Analog, Digital, or Mixed-Signal)
- Project Name – Enter the project name
After completing the details, click Save Project.
You will then be redirected to the Upload Circuit page.
Base Circuit Details
- Base Circuit Name – Enter the base circuit name
- Tool – Select the schematic/simulation tool. For this tutorial, Ngspice is used
- Circuit Schematic – Upload the
.spice(netlist) file (dc_netlist.spiceis used in this tutorial) - Circuit Image – Upload schematic screenshots, including input and output waveforms
For this tutorial, the circuit considered is Diff_Amp.
Circuit Dependencies
Upload the required models and libraries. For this tutorial, the Global Foundries 180nm models and libraries are included.
Complete the process by clicking Save Circuit.
DC Analysis
After uploading the circuit, click on the testbench from the left-hand panel under Circuits. (In this tutorial, Diff_Amp_DC_tb is used.)
The following tabs will be visible:
- Netlist
- Design Parameters
- Environment Parameters
- Measurements
- Simulation Setup
- Genie
- Analytics

Netlist
You can view the uploaded netlist file in the Netlist tab.
- Click the Edit button to make changes to the netlist if required.
- Click the Image icon next to the Edit button to view uploaded circuit images.

Design Parameters

This tab displays all parameters defined in the uploaded netlist along with their respective values.
For optimization, you can define the allowed range for each parameter by modifying:
- Minimum Value
- Maximum Value
By default, these values are set to half and twice the typical parameter value.
Select the testbench (Diff_Amp_DC_tb) and enable the parameters that should be optimized by the AI agent.
Environment Parameters

This tab is used to define simulation conditions such as process corner and temperature.
For this tutorial, the temperature is set to 27°C.
Measurements

Measurement statements define the values that will be evaluated during simulation.
The measurement type depends on the requirement:
- Scalar
- Vector
Under DC Analysis, click the Custom button and provide a variable name. Enter the measurement statement in the generated input box.
For this tutorial, a vector measurement is used to evaluate values at multiple instances.
The required voltage values can be:
- Entered manually, or
- Uploaded using a CSV file via the menu icon beside DC Analysis
To enable vector measurement:
- Click the menu icon in the top-right corner of the measurement box
- Enable Vector Mode
- Provide the variable name (e.g.,
Vout1) and the instances at which measurements are taken, separated by commas
Data Capture

To extract variables defined in the netlist (such as pm), Data Capture is used. In this tutorial, variables are calculated using let statements, so Data Capture is required.
To add a Data Capture measurement:
- Click the Plus (+) icon under Data Capture
- Enter the variable name exactly as defined in the netlist
Vector measurements can also be used by:
- Changing the measurement type from Scalar to Vector
- Entering multiple variable names separated by commas
Simulation Setup

Before running the simulation, Manage Dependencies must be completed.
To include dependencies:
- Click the menu button below Publish Project
- Select Manage Dependencies
- Click the Chain icon to connect the required models and libraries
After linking dependencies:
- Click Simulate
- View the results in the Log file
The results correspond to the default design parameter values defined in the Design Parameters tab.
Genie

The Genie page is where circuit optimization is performed.
Measurement variables (both scalar and vector) defined earlier are displayed on the top-left of the Genie page.
To configure optimization:
- Click Enter Expression
- Select the measurement variable
- Define the optimization goal:
- Minimum
- Maximum
- Range
- Equal to a value
- Provide the target value or range for scalar measurements
Multiple expressions can be added using the Plus (+) icon.
For vector measurements, targets must be assigned using Graph Mode:
- Click Open Graph

- Select the X-axis label (
vout_values). The defined instances will be listed automatically. - Set Y-values either manually or by uploading a CSV file

Targets can also be assigned using Import from File (JSON format). The required JSON files are available in the Resources section.

- Select the appropriate agent. For this tutorial, the agent
Diff_Amp_DCis used. - Click Genie Optimize
Open Chart to monitor:
- Current iteration measurement
- Best measurement achieved
- Target value
Each iteration is displayed in real time. Previous iterations can be viewed by enabling Show Trail.
Once the target is achieved, download the optimized netlist using the Download icon.
Transient Analysis
Add a new testbench by clicking the Plus (+) icon.
Upload the required .spice file along with waveform images, then click Save Circuit.
After uploading, click on the testbench. The following tabs will be visible:
- Netlist
- Design Parameters
- Measurements
- Simulation Setup
- Genie
- Analytics
Netlist

The Netlist tab displays the uploaded netlist file.
- Click the Pencil (Edit) icon to edit the netlist.
- Click the Image icon to view uploaded images.

Design Parameters

This tab displays all parameters defined in the netlist along with their values.
Select the parameters that the AI agent is allowed to modify, and specify the optimization range by adjusting:
- Minimum Value
- Maximum Value
Measurements

Measurement statements define the values evaluated during simulation.
Under Transient Analysis, click the Custom button and provide a variable name. Enter the measurement statement.
For this tutorial, a vector measurement is used. Values can be entered manually or uploaded using a CSV file.
To enable vector measurement:
- Click the menu icon and enable Vector Mode
- Provide the variable name (e.g.,
[time]) and the instances separated by commas
Simulation Setup

Before running the simulation, complete Manage Dependencies:
- Click the menu button below Publish Project
- Select Manage Dependencies
- Click the Chain icon to connect dependencies
Click Simulate and view results in the Log file.
Genie

The Genie page is used for optimization.
- Click Enter Expression and select the measurement variable
- Define the optimization goal and provide target values
- For vector measurements, click Open Graph

- Select the X-axis label (
output) - Set Y-values manually or upload a CSV file

Targets can also be assigned using Import from File (JSON format).

- Select the appropriate agent (
Diff_Amp_tran_tb) and click Genie Optimize - Open Chart to monitor progress
Once the target is achieved, download the optimized netlist.
AC Analysis
Add a new testbench by clicking the Plus (+) icon.

Upload the required .spice file and waveform images, then click Save Circuit.
Netlist

The Netlist tab displays the uploaded netlist file.
- Click the Pencil icon to edit the netlist.
- Click the Image icon to view uploaded images.
Design Parameters

This tab displays all parameters defined in the netlist along with their values.
Select the parameters for optimization and define their ranges.
Measurements

Measurement statements define the values evaluated during simulation.
Under AC Analysis, click the Custom button and provide a variable name. Enter the measurement statement.
For this tutorial, a vector measurement is used. Provide:
- The variable name (e.g.,
[freq]) - The frequency instances separated by commas
Data Capture

To extract variables defined in the netlist (such as ubw and pm), Data Capture is used.
- Click the Plus (+) icon under Data Capture
- Enter the variable name
Vector measurements can also be used if required.
Simulation Setup

Complete Manage Dependencies before simulation.
Click Simulate and view results in the Log file.
Genie

The Genie page is used to assign optimization targets.
- Select the measurement variable and define optimization goals
- Select the appropriate agent (
Diff_Amp_AC_tb) and click Genie Optimize - Open Chart to monitor progress
Once the target is achieved, download the optimized netlist.