Skip to content

Commit d2a2060

Browse files
Merge pull request google#54 from mabrains/ngspice_tst_notebooks_plt
add notebooks to plot the measurements against the simulation
2 parents 23a0a61 + e30cbdc commit d2a2060

File tree

7 files changed

+583
-0
lines changed

7 files changed

+583
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 2,
6+
"id": "dc364796",
7+
"metadata": {
8+
"scrolled": false
9+
},
10+
"outputs": [
11+
{
12+
"name": "stdout",
13+
"output_type": "stream",
14+
"text": [
15+
"measured is blue\n",
16+
"simulated is red\n"
17+
]
18+
},
19+
{
20+
"name": "stderr",
21+
"output_type": "stream",
22+
"text": [
23+
"python3: can't open file '/home/mgomaa/klayout/old_versions/globalfoundries-pdk-libs-gf180mcu_fd_pr/models/ngspice/testing/regression/bjt_beta/model_reg.py': [Errno 2] No such file or directory\n"
24+
]
25+
}
26+
],
27+
"source": [
28+
"import os\n",
29+
"import pandas as pd\n",
30+
"import glob\n",
31+
"from matplotlib import pyplot as plt\n",
32+
"\n",
33+
"%matplotlib notebook\n",
34+
"os.system(f\"python3 models_regression.py \")\n",
35+
"\n",
36+
"\n",
37+
"def draw(measured, simulated):\n",
38+
" \"\"\"draw func draw measured data vs simulated data\n",
39+
"\n",
40+
" Args:\n",
41+
" measured (list[str]): measured files paths\n",
42+
" simulated (list[str]): simulated files paths\n",
43+
" \"\"\" \n",
44+
" print(\"measured is blue\")\n",
45+
" print(\"simulated is red\")\n",
46+
" measured.sort()\n",
47+
" simulated.sort()\n",
48+
" for i in range(len(measured)):\n",
49+
" space = measured[i].rfind(\"/\")\n",
50+
" read_dev_name = measured[i][space + 1:]\n",
51+
" df = pd.read_csv(measured[i])\n",
52+
" ax = df.plot(x=df.columns[0], y=df.columns[1:], color=\"b\")\n",
53+
" df = pd.read_csv(simulated[i])\n",
54+
" df.plot(ax=ax, x=df.columns[0], y=df.columns[1:], color=\"r\")\n",
55+
" plt.title(read_dev_name)\n",
56+
" plt.show()\n",
57+
"\n",
58+
"\n",
59+
"device = [\"npn\",\"pnp\"]\n",
60+
"# 1 for \"pnp\"\n",
61+
"# for \"npn\"\n",
62+
"dev=0\n",
63+
"\n",
64+
"measured_ib = glob.glob(f\"{device[dev]}/measured_Ib/*.csv\")\n",
65+
"simulated_ib = glob.glob(f\"{device[dev]}/simulated_Ib/*.csv\")\n",
66+
"\n",
67+
"measured_ic = glob.glob(f\"{device[dev]}/measured_Ic/*.csv\")\n",
68+
"simulated_ic = glob.glob(f\"{device[dev]}/simulated_Ic/*.csv\")\n",
69+
"\n",
70+
"\n",
71+
"draw(measured_ic, simulated_ic)\n",
72+
"# draw(measured_ib,simulated_ib,device)\n"
73+
]
74+
},
75+
{
76+
"cell_type": "code",
77+
"execution_count": null,
78+
"id": "33eb12ca",
79+
"metadata": {},
80+
"outputs": [],
81+
"source": []
82+
}
83+
],
84+
"metadata": {
85+
"kernelspec": {
86+
"display_name": "Python 3 (ipykernel)",
87+
"language": "python",
88+
"name": "python3"
89+
},
90+
"language_info": {
91+
"codemirror_mode": {
92+
"name": "ipython",
93+
"version": 3
94+
},
95+
"file_extension": ".py",
96+
"mimetype": "text/x-python",
97+
"name": "python",
98+
"nbconvert_exporter": "python",
99+
"pygments_lexer": "ipython3",
100+
"version": "3.9.13"
101+
}
102+
},
103+
"nbformat": 4,
104+
"nbformat_minor": 5
105+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"id": "dc364796",
7+
"metadata": {
8+
"scrolled": false
9+
},
10+
"outputs": [],
11+
"source": [
12+
"import os\n",
13+
"import pandas as pd\n",
14+
"import glob\n",
15+
"from matplotlib import pyplot as plt\n",
16+
"\n",
17+
"%matplotlib notebook\n",
18+
"os.system(f\"python3 models_regression.py \")\n",
19+
"\n",
20+
"\n",
21+
"\n",
22+
"def draw(measured, simulated):\n",
23+
" \"\"\"draw func draw measured data vs simulated data\n",
24+
"\n",
25+
" Args:\n",
26+
" measured (list[str]): measured files paths\n",
27+
" simulated (list[str]): simulated files paths\n",
28+
" \"\"\" \n",
29+
" print(\"measured is blue\")\n",
30+
" print(\"simulated is red\")\n",
31+
"\n",
32+
" for i in range(len(measured)):\n",
33+
" space = measured[i].rfind(\"/\")\n",
34+
" read_dev_name = measured[i][space + 1:]\n",
35+
" df = pd.read_csv(measured[i])\n",
36+
" ax = df.plot(x=df.columns[0], y=df.columns[1:], color=\"b\")\n",
37+
" df = pd.read_csv(simulated[i])\n",
38+
" df.plot(ax=ax, x=df.columns[0], y=df.columns[1:], color=\"r\")\n",
39+
" plt.title(read_dev_name)\n",
40+
" plt.show()\n",
41+
"\n",
42+
"\n",
43+
"device = [\"npn\",\"pnp\"]\n",
44+
"# 1 for pnp\n",
45+
"# 0 for npn\n",
46+
"dev=0\n",
47+
"measured = glob.glob(f\"bjt_cj_regr/{device[dev]}/cj_measured/*.csv\")\n",
48+
"simulated = [s.replace(\"measured\", \"simulated\") for s in measured]\n",
49+
"\n",
50+
"draw(measured, simulated)\n"
51+
]
52+
},
53+
{
54+
"cell_type": "code",
55+
"execution_count": null,
56+
"id": "f75575cf",
57+
"metadata": {},
58+
"outputs": [],
59+
"source": []
60+
}
61+
],
62+
"metadata": {
63+
"kernelspec": {
64+
"display_name": "Python 3 (ipykernel)",
65+
"language": "python",
66+
"name": "python3"
67+
},
68+
"language_info": {
69+
"codemirror_mode": {
70+
"name": "ipython",
71+
"version": 3
72+
},
73+
"file_extension": ".py",
74+
"mimetype": "text/x-python",
75+
"name": "python",
76+
"nbconvert_exporter": "python",
77+
"pygments_lexer": "ipython3",
78+
"version": "3.9.13"
79+
}
80+
},
81+
"nbformat": 4,
82+
"nbformat_minor": 5
83+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"id": "dc364796",
7+
"metadata": {
8+
"scrolled": false
9+
},
10+
"outputs": [],
11+
"source": [
12+
"import os\n",
13+
"import pandas as pd\n",
14+
"import glob\n",
15+
"from matplotlib import pyplot as plt\n",
16+
"\n",
17+
"%matplotlib notebook\n",
18+
"os.system(f\"python3 models_regression.py \")\n",
19+
"\n",
20+
"\n",
21+
"def draw(measured, simulated):\n",
22+
" \"\"\"draw func draw measured data vs simulated data\n",
23+
"\n",
24+
" Args:\n",
25+
" measured (list[str]): measured files paths\n",
26+
" simulated (list[str]): simulated files paths\n",
27+
" \"\"\" \n",
28+
" print(\"measured is blue\")\n",
29+
" print(\"simulated is red\")\n",
30+
"\n",
31+
" for i in range(len(measured)):\n",
32+
" space = measured[i].rfind(\"/\")\n",
33+
" read_dev_name = measured[i][space + 1:]\n",
34+
" df = pd.read_csv(measured[i])\n",
35+
" ax = df.plot(x=df.columns[1], y=df.columns[2:], color=\"b\")\n",
36+
" df = pd.read_csv(simulated[i])\n",
37+
" df.plot(ax=ax, x=df.columns[1], y=df.columns[2:], color=\"r\")\n",
38+
" plt.title(read_dev_name)\n",
39+
" plt.show()\n",
40+
"\n",
41+
"\n",
42+
"device = [\"npn\",\"pnp\"]\n",
43+
"# 1 for pnp\n",
44+
"# 0 for npn\n",
45+
"dev=0\n",
46+
"measured = glob.glob(f\"bjt_iv_regr/{device[dev]}/ib_measured/*.csv\")\n",
47+
"simulated = glob.glob(f\"bjt_iv_regr/{device[dev]}/ib_simulated/*.csv\")\n",
48+
"measured.sort()\n",
49+
"simulated.sort()\n",
50+
"\n",
51+
"draw(measured, simulated)\n"
52+
]
53+
},
54+
{
55+
"cell_type": "code",
56+
"execution_count": null,
57+
"id": "69f06f65",
58+
"metadata": {},
59+
"outputs": [],
60+
"source": []
61+
}
62+
],
63+
"metadata": {
64+
"kernelspec": {
65+
"display_name": "Python 3 (ipykernel)",
66+
"language": "python",
67+
"name": "python3"
68+
},
69+
"language_info": {
70+
"codemirror_mode": {
71+
"name": "ipython",
72+
"version": 3
73+
},
74+
"file_extension": ".py",
75+
"mimetype": "text/x-python",
76+
"name": "python",
77+
"nbconvert_exporter": "python",
78+
"pygments_lexer": "ipython3",
79+
"version": "3.9.13"
80+
}
81+
},
82+
"nbformat": 4,
83+
"nbformat_minor": 5
84+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"id": "dc364796",
7+
"metadata": {
8+
"scrolled": false
9+
},
10+
"outputs": [],
11+
"source": [
12+
"import os\n",
13+
"import pandas as pd\n",
14+
"import glob\n",
15+
"from matplotlib import pyplot as plt\n",
16+
"\n",
17+
"%matplotlib notebook\n",
18+
"os.system(f\"python3 models_regression.py \")\n",
19+
"\n",
20+
"\n",
21+
"def draw(measured: list[str], simulated: list[str]) -> None:\n",
22+
" \"\"\"draw func draw measured data vs simulated data\n",
23+
"\n",
24+
" Args:\n",
25+
" measured (list[str]): measured files paths\n",
26+
" simulated (list[str]): simulated files paths\n",
27+
" \"\"\"\n",
28+
" print(\"measured is blue\")\n",
29+
" print(\"simulated is red\")\n",
30+
" measured.sort()\n",
31+
" simulated.sort()\n",
32+
" for i in range(len(measured)):\n",
33+
" space = measured[i].rfind(\"/\")\n",
34+
" read_dev_name = measured[i][space + 1:]\n",
35+
" df = pd.read_csv(measured[i])\n",
36+
" ax = df.plot(x=df.columns[1], y=df.columns[2:], color=\"b\")\n",
37+
" df = pd.read_csv(simulated[i])\n",
38+
" df.plot(ax=ax, x=df.columns[1], y=df.columns[2:], color=\"r\")\n",
39+
" plt.title(read_dev_name)\n",
40+
" plt.show()\n",
41+
"\n",
42+
"\n",
43+
"device = [\n",
44+
" \"diode_regr/diode_dw2ps\",\n",
45+
" \"diode_regr/diode_nd2ps_03v3\",\n",
46+
" \"diode_regr/diode_nd2ps_06v0\",\n",
47+
" \"diode_regr/diode_nw2ps_03v3\",\n",
48+
" \"diode_regr/diode_nw2ps_06v0\",\n",
49+
" \"diode_regr/diode_pd2nw_03v3\",\n",
50+
" \"diode_regr/diode_pd2nw_06v0\",\n",
51+
" \"diode_regr/diode_pw2dw\",\n",
52+
" \"diode_regr/sc_diode\",\n",
53+
"]\n",
54+
"\n",
55+
"iv_cv_m = [\"measured_iv\", \"measured_cv\"]\n",
56+
"iv_cv_s = [\"simulated_iv\", \"simulated_cv\"]\n",
57+
"# 0 for diode_dw2ps\n",
58+
"# 1 for diode_nd2ps_03v3\n",
59+
"# 2 for diode_nd2ps_06v0\n",
60+
"# 3 for diode_nw2ps_03v3\n",
61+
"# 4 for diode_nw2ps_06v0\n",
62+
"# 5 for diode_pd2nw_03v3\n",
63+
"# 6 for diode_pd2nw_06v0\n",
64+
"# 7 for diode_pw2dw\n",
65+
"dev = 0\n",
66+
"\n",
67+
"# 1 for cv 0 for iv\n",
68+
"iv_cv = 1\n",
69+
"measured = glob.glob(f\"{device[dev]}/{iv_cv_m[iv_cv]}/*.csv\")\n",
70+
"simulated = glob.glob(f\"{device[dev]}/{iv_cv_s[iv_cv]}/*.csv\")\n",
71+
"# caling the draw func\n",
72+
"draw(measured, simulated)\n"
73+
]
74+
},
75+
{
76+
"cell_type": "code",
77+
"execution_count": null,
78+
"id": "ddeaa9c0",
79+
"metadata": {},
80+
"outputs": [],
81+
"source": []
82+
}
83+
],
84+
"metadata": {
85+
"kernelspec": {
86+
"display_name": "Python 3 (ipykernel)",
87+
"language": "python",
88+
"name": "python3"
89+
},
90+
"language_info": {
91+
"codemirror_mode": {
92+
"name": "ipython",
93+
"version": 3
94+
},
95+
"file_extension": ".py",
96+
"mimetype": "text/x-python",
97+
"name": "python",
98+
"nbconvert_exporter": "python",
99+
"pygments_lexer": "ipython3",
100+
"version": "3.9.13"
101+
}
102+
},
103+
"nbformat": 4,
104+
"nbformat_minor": 5
105+
}

0 commit comments

Comments
 (0)