Rafeeq Khan Mohammed
03/21/2024, 5:44 PMTim Edwards
03/21/2024, 6:07 PMTim Edwards
03/21/2024, 6:09 PMTim Edwards
03/21/2024, 6:09 PMRafeeq Khan Mohammed
03/21/2024, 6:11 PMRafeeq Khan Mohammed
03/21/2024, 6:12 PMTim Edwards
03/21/2024, 7:44 PMSimulation-->LVS-->LVS netlist: Top level is a .subckt
. Then you will have a top level subcircuit in both netlists that you can compare directly.
After generating the correct netlist from schematic, call netgen with netgen -batch lvs "1T1R_2x2_2.spice 1T1R_2x2" "oneTtwoR_2x2arrayfinal.spice oneTtwoR_2x2arrayfinal"
. That is, for each circuit specify both the filename and the cellname of the cell you want to compare.Rafeeq Khan Mohammed
03/21/2024, 7:53 PMRafeeq Khan Mohammed
03/21/2024, 10:40 PMTim Edwards
03/22/2024, 12:47 AMRafeeq Khan Mohammed
03/22/2024, 2:23 AMMitch Bailey
03/22/2024, 3:19 AMRafeeq Khan Mohammed
03/22/2024, 1:01 PMRafeeq Khan Mohammed
03/22/2024, 1:34 PMRafeeq Khan Mohammed
03/22/2024, 6:59 PMMitch Bailey
03/22/2024, 9:49 PMsky130_fd_pr_reram__reram_cell
while the extracted layout has
sky130_fd_pr__reram_reram_cell
. These need to be the same.
When sharing LVS results, please share the LVS command(s) too.Rafeeq Khan Mohammed
03/22/2024, 11:10 PMRafeeq Khan Mohammed
03/22/2024, 11:40 PMMitch Bailey
03/23/2024, 12:13 AMXR1 bl2 net1 sky130_fd_pr_reram__reram_cell Tfilament_0=3.8e-9
XR2 bl2 net4 sky130_fd_pr_reram__reram_cell Tfilament_0=3.8e-9
XR3 bl1 net3 sky130_fd_pr_reram__reram_cell Tfilament_0=3.8e-9
XR4 bl1 net2 sky130_fd_pr_reram__reram_cell Tfilament_0=3.8e-9
but sky130_fd_pr_reram__reram_cell
is not defined anywhere.
The layout netlist has sky130_fd_pr__reram_reram_cell
as an undefined circuit, but the schematic has this as a defined circuit.
You may be encountering problems by using the same netlist for simulation and LVS. I believe the best practice is to create the LVS schematic (no code, lib, or includes) and then instantiate that in a testbench that has the simulation settings.Rafeeq Khan Mohammed
03/23/2024, 1:04 AMMitch Bailey
03/23/2024, 1:47 AMsky130_fd_pr__reram_reram_cell
symbol (as opposed to the current sky130_fd_pr_reram__reram_cell
) ?Rafeeq Khan Mohammed
03/23/2024, 3:28 AMRafeeq Khan Mohammed
03/23/2024, 3:44 AMRafeeq Khan Mohammed
03/23/2024, 3:44 AMRafeeq Khan Mohammed
03/23/2024, 3:44 AMRafeeq Khan Mohammed
03/23/2024, 3:45 AMRafeeq Khan Mohammed
03/23/2024, 3:46 AMMitch Bailey
03/23/2024, 3:46 AMname=R1 model=sky130_fd_pr_reram__reram_cell spiceprefix=X Tfilament_0=3.8e-9
The model name does not match the extracted device name. Changing that would probably be a first step.
The symbol itself has a lot more properties that aren’t necessary for lvs. I wonder if adding lvs_format
property would resolve this.
Primitive devices such as sky130_fd_pr__nfet_g5v0d10v5
should be treated as black boxes.Rafeeq Khan Mohammed
03/23/2024, 4:18 AMRafeeq Khan Mohammed
03/23/2024, 5:26 AMRafeeq Khan Mohammed
03/23/2024, 9:34 AMMitch Bailey
03/23/2024, 9:46 AMRafeeq Khan Mohammed
03/23/2024, 9:55 AMRafeeq Khan Mohammed
03/23/2024, 4:32 PMMitch Bailey
03/23/2024, 9:15 PMRafeeq Khan Mohammed
03/23/2024, 9:59 PMMitch Bailey
03/23/2024, 10:16 PMdevice csubcircuit sky130_fd_pr__reram_reram_cell reram m1 a=area_ox
which creates an X prefixed device in the netlist (mosfets are also netlisted as X devices).
So for LVS, sky130_fd_pr__reram_reram_cell
is the base device.
For simulation, it is possible to add a subcircuit definition for sky130_fd_pr__reram_reram_cell
that instantiates a simulatable model.
Maybe you can ask about specifics on the #reram channel for people who’ve worked on a reram design.Rafeeq Khan Mohammed
03/23/2024, 10:19 PM