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:
parent
c29f6d5d6b
commit
4b8298e130
9 changed files with 106 additions and 16 deletions
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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": {},
|
||||||
|
|
2
semicustom/svg/.gitignore
vendored
2
semicustom/svg/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
*.svg
|
*
|
||||||
|
|
2
semicustom/v/.gitignore
vendored
2
semicustom/v/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
*.v
|
*
|
||||||
|
|
2
semicustom/xls/ir/.gitignore
vendored
2
semicustom/xls/ir/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
*.ir
|
*
|
||||||
|
|
2
semicustom/xls/x/.gitignore
vendored
2
semicustom/xls/x/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
*.x
|
*
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue