Matt Venn
03/17/2024, 12:13 PMMatt Venn
03/17/2024, 12:13 PMMatt Venn
03/17/2024, 12:13 PMMatt Venn
03/17/2024, 12:15 PMMatt Venn
03/17/2024, 12:15 PMMatt Venn
03/17/2024, 12:29 PMMatt Venn
03/17/2024, 12:29 PMChristoph Maier
03/17/2024, 12:37 PMChristoph Maier
03/17/2024, 12:48 PMMatt Venn
03/17/2024, 12:49 PMMatt Venn
03/17/2024, 12:49 PMMatt Venn
03/17/2024, 12:50 PMChristoph Maier
03/17/2024, 12:50 PMChristoph Maier
03/17/2024, 12:53 PMMatt Venn
03/17/2024, 12:57 PMMatt Venn
03/17/2024, 12:58 PMMitch Bailey
03/17/2024, 12:58 PMV
is not an ammeter.Christoph Maier
03/17/2024, 1:00 PMChristoph Maier
03/17/2024, 1:08 PMMitch Bailey
03/17/2024, 1:13 PMMatt Venn
03/17/2024, 1:14 PMChristoph Maier
03/17/2024, 1:16 PMChristoph Maier
03/17/2024, 1:20 PMMitch Bailey
03/17/2024, 1:27 PMChristoph Maier
03/17/2024, 1:29 PMMatt Venn
03/17/2024, 1:52 PMMatt Venn
03/17/2024, 1:52 PMMatt Venn
03/17/2024, 1:53 PMChristoph Maier
03/17/2024, 1:58 PMMatt Venn
03/17/2024, 2:04 PMMatt Venn
03/17/2024, 2:04 PMMatt Venn
03/17/2024, 2:28 PMMatt Venn
03/17/2024, 2:28 PMMatt Venn
03/17/2024, 2:29 PMMatt Venn
03/17/2024, 2:29 PMMatt Venn
03/17/2024, 2:29 PMChristoph Maier
03/17/2024, 2:30 PMMitch Bailey
03/17/2024, 2:31 PMChristoph Maier
03/17/2024, 2:37 PMMatt Venn
03/17/2024, 2:38 PMChristoph Maier
03/17/2024, 2:39 PMMatt Venn
03/17/2024, 2:46 PMMatt Venn
03/17/2024, 2:46 PMMatt Venn
03/17/2024, 2:47 PMMatt Venn
03/17/2024, 2:48 PMTim Edwards
03/17/2024, 2:50 PMMatt Venn
03/17/2024, 2:55 PMMatt Venn
03/17/2024, 2:55 PMChristoph Maier
03/17/2024, 2:56 PMMatt Venn
03/17/2024, 2:57 PMChristoph Maier
03/17/2024, 2:59 PMMatt Venn
03/17/2024, 3:01 PMChristoph Maier
03/17/2024, 3:03 PMMitch Bailey
03/17/2024, 3:14 PMMatt Venn
03/17/2024, 3:17 PMMatt Venn
03/17/2024, 3:18 PMMatt Venn
03/17/2024, 3:18 PMMatt Venn
03/17/2024, 3:18 PMMatt Venn
03/17/2024, 3:25 PMMatt Venn
03/17/2024, 3:25 PMMatt Venn
03/17/2024, 3:25 PMChristoph Maier
03/17/2024, 3:27 PMMatt Venn
03/17/2024, 3:39 PMMatt Venn
03/17/2024, 3:40 PMMatt Venn
03/17/2024, 3:40 PMMitch Bailey
03/17/2024, 3:55 PMMatt Venn
03/17/2024, 3:59 PMMatt Venn
03/17/2024, 4:00 PMChristoph Maier
03/17/2024, 4:25 PMTim Edwards
03/17/2024, 5:43 PMTim Edwards
03/17/2024, 5:58 PMStefan Schippers
03/18/2024, 12:34 PM2 * RC *ln(2)
, depending on the value of identical capacitors (C1 and C2) and identical resistances (R1 and R2) but not on the supply voltage level and transistor parameters (only to a first order approximation of course). You see simulated period at 1.7V and 1.9V Vcc is almost identical.Christoph Maier
03/18/2024, 1:29 PMxschemrc
, nudge nudge, wink wink)
that may lead to inconsistencies between different people using it,
I'd want to challenge you to eliminate from this schematic any component that is not absolutely necessary and keep only MOS transistors, and as few of them as possible.
[Hint: Size matters]
As for expertise in critical design tool infrastructure:
This looks like an excellent example for mixed-signal simulation.
Is the repository with the design files openly available on github (or similar)?Christoph Maier
03/18/2024, 1:34 PMStefan Schippers
03/18/2024, 2:13 PMChristoph Maier
03/18/2024, 4:27 PM~/EDA/efabless/chipalooza2024/xschem_sky130$ du -h -d 2 .
15M ./.git/objects
8,0K ./.git/info
28K ./.git/refs
4,0K ./.git/branches
56K ./.git/hooks
32K ./.git/logs
15M ./.git
2,6M ./xschem_verilog_import
30M ./decred_hash_macro
612K ./sky130_fd_pr/doc
928K ./sky130_fd_pr
32K ./scripts
112K ./mips_cpu
372K ./stdcells/doc
688K ./stdcells
528K ./sky130_stdcells/doc
16K ./sky130_stdcells/scripts
2,3M ./sky130_stdcells
1,5M ./sky130_tests
53M .
What eats up so much memory in decred_hash_macro (and why)?
As for the sky130_tests
, are those the circuits made available through top.sch
(i.e., are they already available with the xschem
build)?
As for sizing transistors, this only helps you so much … in addition to the digital switching current spikes, you also have current through the digital NAND gate,
that changes a lot across PVT corners,
as the oscillator capacitor charges slowly.
Looks perfectly adequate in a proof-of-xschem-concept schematic,
but on silicon, it may be a bit of an uncontrollable power hog.
What would a transistor-level design of,
say, a CD4093A look like, anyhow?
And how would you integrate up the charge (energy) consumption over one oscillation cycle in xschem+ngspice??Stefan Schippers
03/18/2024, 5:00 PM"avg current; I(vvcc) 46.3n ravg()"
This expression in waveform dialog box will calculate the running average of I(vvcc)
(supply current) over one oscillation period, thus giving a fairly precise value of average current, as long as the integration period is equal to the oscillation period. Otherwise you can use the simpler avg() function and integrate over a long period.Christoph Maier
03/18/2024, 5:20 PMngspice let
)
or speak hsilop 🇲🇨 (use xschem
expression evaluation)?
And which syntax will CACE understand to do the bean counting??Stefan Schippers
03/18/2024, 5:24 PMWhat eats up so much memory in decred_hash_macro (and why)?This was an import of a big (for viewing as a schematic) RTL synthetized design. https://github.com/StefanSchippers/xschem_sky130/blob/main/decred_hash_macro/README.md I used to verify if xschem was still able to propagate logic levels on its own (blue = 0, red=1) thru the digital gates as a stress test.
Christoph Maier
03/18/2024, 5:26 PMStefan Schippers
03/18/2024, 5:31 PMDo I have a choice how to compute mathematical expressions from voltages and currents,
depending on whether I want to use conventional math notation (useI think you should use what is the best for your need. Ngspice processing happens during simulation, xschem has merely some data post processing abilities. I was bored of running again a long simulation just because I forgot to add a .meas line or create a instantaneous power vector, so some simple calculations can be done on the raw data. Ngspice also can do post-sim processing, like plot i(vvcc) *vcc For more advanced needs I think there are also python libs with more esotheric signal processing functionality. So there are various options.)ngspice let
Stefan Schippers
03/18/2024, 5:40 PMAnyhow, is the oscillator toy schematic available on an open github, so I could track your progress in (almost) real time?yes --> https://github.com/StefanSchippers/xschem_sky130/blob/main/sky130_tests/sky130_oscillator.sch
Stefan Schippers
03/18/2024, 6:13 PMff
process corner given 46uA the average current spent to charge the capacitors the overall circuit takes 50uA at 1.9V. For 1.8V designs where Vcc Christoph Maier
03/19/2024, 2:18 PM/home/cmaier/.xschem/simulations/sky130_oscillator.raw
in an unexpected place?
Question with the very basic schematic I'm working on right now:
How do I get the expression
ngspice 40 -> plot xlog gm_id vs @m.xm1.msky130_fd_pr__nfet_01v8[id]
past the @ evaluation in xschem?
This clobbers up variable definitions.
I'm also wondering if I can suppress arithmetic evaluation of computed signal names like gm/Id .Christoph Maier
03/19/2024, 3:11 PMalterparam vcc=1.9
reset
set appendwrite
between simulation runs.
Can you also do this with
• temperature?
• device sizes??
• model corners???Tim Edwards
03/19/2024, 6:33 PMLuis Henrique Rodovalho
03/19/2024, 9:50 PMChristoph Maier
03/19/2024, 11:02 PMChristoph Maier
03/20/2024, 5:26 AMStefan Schippers
03/20/2024, 11:46 AMxschem opens and simulates both from your repository and mine, but the waves don't load.
Is my xschem putting
/home/cmaier/.xschem/simulations/sky130_oscillator.raw
in an unexpected place?if simulator runs first try to figure out where this file is. At the xschem prompt doing:
puts $netlist_dir
will tell you where the sim stuff is written.Christoph Maier
03/20/2024, 12:46 PMfind ~ -name sky130_oscillator.raw
) where the simulation data ends up.
But how and where, exactly, do I tell xschem
where to find it?
If there are several possible places and workarounds to tell xschem
where the file is, which of them is the one intended by the lead designer?Stefan Schippers
03/20/2024, 1:10 PM$netlist_dir
. This is by default ~/.xschem/simulations
. when you run a simulation schem forks the simulator process into $netlist_dir
, so the simulator will find all its needed files without funky path names.
You can set this variable in your xschemrc file to change the destination.
You can then load sim data in xschem by doing xschem raw read $netlist_dir/circuit_name.raw tran
Christoph Maier
03/20/2024, 1:34 PMsky130_oscillator.raw
files both as ~/.xschem/simulations/sky130_oscillator.raw
and as ~/EDA/efabless/chipalooza2024/xschem_sky130/sky130_tests/simulation/sky130_oscillator.raw
, and your schematic displays neither of them.
Your launcher.sym
device contains
name=h5
descr="load waves"
tclcommand="xschem raw_read $netlist_dir/sky130_oscillator.raw tran"
Do I need to manually push a button or click on the launcher, or does it execute automatically?
Where would I find an error message if the launcher fails to find the file??
Can I edit the file name in the launcher in your schematic on the fly, or would I have to re-netlist and re-simulate???Christoph Maier
03/20/2024, 1:51 PMsky130_oscillator.raw
are all there and visible with gaw, and in gaw, I can even plot what I expect to be the worst cross-currents in the digital gates fed non-digital inputs
(which I haven't found out how to do in xschem, because xschem interprets @
as instruction and clobbers up the signal name),
but I can't convince your xschem schematic to put the data into the graphs.
The chokepoint are probably your undocumented implicit assumptions how xschem is supposed to do things.Stefan Schippers
03/20/2024, 3:00 PMChristoph Maier
03/20/2024, 3:11 PMStefan Schippers
03/20/2024, 3:37 PMWaves
menu: Waves -> Tran->
find the sky130_oscillator.raw
file with the file browser -> Open
Stefan Schippers
03/20/2024, 3:46 PMxschem raw read $netlist_dir/sky130_oscillator.raw tran
this command should be placed in the launcher:
tclcommand="xschem raw read $netlist_dir/sky130_oscillator.raw tran"
Doing a Control + Left mouse button click
triggers the action.