simulation, slides, gitignores

* Add Icarus Verilog exmple in semicustom
* .gitignore files now ignore all files from the directory
* add landsgemeinde
This commit is contained in:
Pierre Guillod 2023-04-24 01:31:28 +02:00
parent c29f6d5d6b
commit 4b8298e130
Signed by: pierre
GPG key ID: B00B454469924EDF
9 changed files with 106 additions and 16 deletions

View file

@ -14,5 +14,5 @@ conda activate fullcustom
The notebook can be openend as follows: The notebook can be openend as follows:
```sh ```sh
jupyter notebook jupyter-notebook
``` ```

View file

@ -14,5 +14,5 @@ conda activate semicustom
The notebook can be openend as follows: The notebook can be openend as follows:
```sh ```sh
jupyter notebook jupyter-notebook
``` ```

View file

@ -42,6 +42,7 @@ dependencies:
- ipykernel=6.15.0=pyh210e3f2_0 - ipykernel=6.15.0=pyh210e3f2_0
- ipython=7.33.0=py37h89c1867_0 - ipython=7.33.0=py37h89c1867_0
- ipython_genutils=0.2.0=py_1 - ipython_genutils=0.2.0=py_1
- iverilog=0_8_6666_g014416872=20230412_103222
- jedi=0.18.2=pyhd8ed1ab_0 - jedi=0.18.2=pyhd8ed1ab_0
- jinja2=3.1.2=pyhd8ed1ab_1 - jinja2=3.1.2=pyhd8ed1ab_1
- jpeg=9e=h166bdaf_1 - jpeg=9e=h166bdaf_1
@ -96,7 +97,7 @@ dependencies:
- pcre=8.45=h9c3ff4c_0 - pcre=8.45=h9c3ff4c_0
- pexpect=4.8.0=pyh1a96a4e_2 - pexpect=4.8.0=pyh1a96a4e_2
- pickleshare=0.7.5=py_1003 - pickleshare=0.7.5=py_1003
- pip=23.0.1=pyhd8ed1ab_0 - pip=23.1.1=pyhd8ed1ab_0
- pixman=0.40.0=h36c2ea0_0 - pixman=0.40.0=h36c2ea0_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
- prometheus_client=0.16.0=pyhd8ed1ab_0 - prometheus_client=0.16.0=pyhd8ed1ab_0
@ -104,7 +105,7 @@ dependencies:
- psutil=5.9.0=py37h5eee18b_0 - psutil=5.9.0=py37h5eee18b_0
- ptyprocess=0.7.0=pyhd3deb0d_0 - ptyprocess=0.7.0=pyhd3deb0d_0
- pycparser=2.21=pyhd8ed1ab_0 - pycparser=2.21=pyhd8ed1ab_0
- pygments=2.15.0=pyhd8ed1ab_0 - pygments=2.15.1=pyhd8ed1ab_0
- pyrsistent=0.18.0=py37heee7806_0 - pyrsistent=0.18.0=py37heee7806_0
- python=3.7.16=h7a1cb2a_0 - python=3.7.16=h7a1cb2a_0
- python-dateutil=2.8.2=pyhd8ed1ab_0 - python-dateutil=2.8.2=pyhd8ed1ab_0
@ -144,3 +145,8 @@ dependencies:
- pip: - pip:
- dataclasses-json==0.5.6 - dataclasses-json==0.5.6
- gdstk==0.9.37 - gdstk==0.9.37
- marshmallow==3.19.0
- marshmallow-enum==1.5.1
- mypy-extensions==1.0.0
- typing-inspect==0.8.0
prefix: /home/pierre/anaconda3/envs/semicustom

View file

@ -414,6 +414,78 @@
"!cat v/{XLS_DESIGN_NAME}.v" "!cat v/{XLS_DESIGN_NAME}.v"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Verilog simulation\n",
"\n",
"A test bench can be written to simulate the circuit described above:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile tb/xor3_tb.v\n",
"module xor3_tb;\n",
"\n",
" wire value;\n",
" reg w1, w2, w3;\n",
" initial begin\n",
" $dumpfile(\"tb/xor3_tb.vcd\");\n",
" $dumpvars(0,xor3_tb);\n",
" # 0 w1 = 0; w2 = 0; w3 = 0;\n",
" # 5 w1 = 0; w2 = 0; w3 = 1;\n",
" # 5 w1 = 0; w2 = 1; w3 = 0;\n",
" # 5 w1 = 0; w2 = 1; w3 = 1;\n",
" # 5 w1 = 1; w2 = 0; w3 = 0;\n",
" # 5 w1 = 1; w2 = 0; w3 = 1;\n",
" # 5 w1 = 1; w2 = 1; w3 = 0;\n",
" # 5 w1 = 1; w2 = 1; w3 = 1;\n",
" # 5 $finish;\n",
" end\n",
"\n",
" xor3 xor3_i (w1, w2, w3, value);\n",
"\n",
" initial\n",
" $monitor(\"At time %t, value = %h (%0d)\",\n",
" $time, value, value);\n",
"endmodule"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The simulation can then be performed using _Icarus Verilog_:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!iverilog -o tb/xor3_tb tb/xor3_tb.v v/xor3.v\n",
"!vvp tb/xor3_tb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The waveforms are dumped in a `.vcd` file, located under:\n",
"\n",
"```\n",
"tb/xor3_tb.vcd\n",
"```\n",
"\n",
"It can be opened with https://vc.drom.io/ for instance."
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},

View file

@ -1 +1 @@
*.svg *

View file

@ -1 +1 @@
*.v *

View file

@ -1 +1 @@
*.ir *

View file

@ -1 +1 @@
*.x *

View file

@ -56,7 +56,7 @@
<section> <section>
<h2>More Wik'history</h2> <h2>More Wik'history</h2>
<p>Available PDKs are <b>180nm</b> (<em>GlobalFoundries</em>), <b>130nm</b> (<em>SkyWater</em>) and <b>90nm</b> (<em>SkyWater</em>, FDSOI).</p> <p>Available technologies are <b>180nm</b> (<em>GlobalFoundries</em>), <b>130nm</b> (<em>SkyWater</em>) and <b>90nm</b> (<em>SkyWater</em>, FDSOI).</p>
<p>First used in the industry between 1999 and 2003. Old but cheap.</p> <p>First used in the industry between 1999 and 2003. Old but cheap.</p>
@ -69,9 +69,6 @@
* No restriction ⛔ * No restriction ⛔
* No NDA 🤐 * No NDA 🤐
> Who wants overhead?
>
> Who wants reproducibility?
</section> </section>
<section data-markdown> <section data-markdown>
## Why to Open Source? ## Why to Open Source?
@ -81,7 +78,7 @@
* No strategical overhead 👑 * No strategical overhead 👑
* No compliance overhead 🦺 * No compliance overhead 🦺
> Agile workflow makes engineers (at least me) happy. > Streamlined workflow makes engineers (at least me) happy.
</section> </section>
<section data-markdown> <section data-markdown>
## Now give real reasons! ## Now give real reasons!
@ -96,6 +93,21 @@
**🫵 You can also do the three. 🫵** **🫵 You can also do the three. 🫵**
</section> </section>
<section data-markdown>
## Quick Landsgemeinde
> Who wants overhead?
> Who wants reproducibility?
> Who wants to reinvent the wheel?
> Who wants to keep their IP?
</section>
<section data-markdown data-background='img/hype.jpg'> <section data-markdown data-background='img/hype.jpg'>
## 🤩 Are you hyped enough? 🫨 ## 🤩 Are you hyped enough? 🫨
@ -107,7 +119,7 @@
<section data-markdown> <section data-markdown>
# Some technical bits # Some technical bits
* Meet the PDK * Meet the Process Design Kit (PDK)
* Check out the workflows * Check out the workflows
* Addition contextual knowledge (Rules & MOSFETs) * Addition contextual knowledge (Rules & MOSFETs)
@ -172,7 +184,7 @@
conda activate semicustom conda activate semicustom
# Launch the jupyter notebook # Launch the jupyter notebook
jupyter notebook jupyter-notebook
``` ```
</section> </section>
@ -186,7 +198,7 @@
conda activate fullcustom conda activate fullcustom
# Launch the jupyter notebook # Launch the jupyter notebook
jupyter notebook jupyter-notebook
``` ```
</section> </section>