diff --git a/docs/_static/img/sections/codesign/detector_photonic_system.png b/docs/_static/img/sections/codesign/detector_photonic_system.png new file mode 100644 index 00000000..49815b59 Binary files /dev/null and b/docs/_static/img/sections/codesign/detector_photonic_system.png differ diff --git a/docs/_static/img/sections/codesign/feedback_photonic_system.png b/docs/_static/img/sections/codesign/feedback_photonic_system.png new file mode 100644 index 00000000..0e53f45a Binary files /dev/null and b/docs/_static/img/sections/codesign/feedback_photonic_system.png differ diff --git a/docs/_static/img/sections/codesign/switch_photonic_system.png b/docs/_static/img/sections/codesign/switch_photonic_system.png new file mode 100644 index 00000000..c8fa02c5 Binary files /dev/null and b/docs/_static/img/sections/codesign/switch_photonic_system.png differ diff --git a/docs/conf.py b/docs/conf.py index 10045827..a8c2f2b1 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,7 +44,16 @@ autodoc_inherit_docstrings = True # If no docstring, inherit from base class author = "Dario Quintero" copyright = "2023, Dario Quintero" -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "examples/designs"] +exclude_patterns = [ + "_build", + "Thumbs.db", + ".DS_Store", + "**.ipynb_checkpoints", + "**.verify_checkpoint.py", + "*/examples/02a_large_scale_digital_layout/parallel/*", + "*/examples/02a_large_scale_digital_layout/serial/*", + "examples/designs", +] extensions = [ "autoapi.extension", "IPython.sphinxext.ipython_console_highlighting", diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/docs/README.md b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/docs/README.md deleted file mode 100644 index f0656fc9..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -parallel_0 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/digital/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/digital/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/photonics/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/components/photonics/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/frequency/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/frequency/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/logic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/logic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/physical/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/physical/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/transient/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/models/transient/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/photonic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/photonic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/src/our_truth_table_module.v b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/src/our_truth_table_module.v deleted file mode 100644 index c72be927..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/src/our_truth_table_module.v +++ /dev/null @@ -1,68 +0,0 @@ -/* Generated by Yosys 0.38 (git sha1 543faed9c8c, clang++ 16.0.6 -fPIC -Os) */ - -(* top = 1 *) -(* generator = "Amaranth" *) -module top(\output , \input ); - reg \$auto$verilog_backend.cc:2334:dump_module$1 = 0; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - input [3:0] \input ; - wire [3:0] \input ; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - output [3:0] \output ; - reg [3:0] \output ; - always @* begin - if (\$auto$verilog_backend.cc:2334:dump_module$1 ) begin end - (* full_case = 32'd1 *) - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:61" *) - casez (\input ) - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h0: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h1: - \output = 4'hc; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h2: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h3: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h4: - \output = 4'h2; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h5: - \output = 4'hd; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h6: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h7: - \output = 4'h3; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h8: - \output = 4'h9; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h9: - \output = 4'he; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'ha: - \output = 4'h4; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hb: - \output = 4'h8; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hc: - \output = 4'h1; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hd: - \output = 4'hb; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'he: - \output = 4'hf; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hf: - \output = 4'ha; - endcase - end -endmodule diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/tb/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/parallel_0/tb/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/setup.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/setup.py deleted file mode 100644 index 913461e1..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_0/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from distutils.core import setup - -setup( - name="parallel_0", - version="0.0.1", - description="Example empty piel project.", - author="Dario Quintero", - author_email="darioaquintero@gmail.com", - url="https://github.com/daquintero/piel", - packages=["parallel_0"], -) diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/docs/README.md b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/docs/README.md deleted file mode 100644 index ebb7bb15..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -parallel_1 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/digital/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/digital/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/photonics/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/components/photonics/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/frequency/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/frequency/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/logic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/logic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/physical/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/physical/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/transient/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/models/transient/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/photonic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/photonic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/src/our_truth_table_module.v b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/src/our_truth_table_module.v deleted file mode 100644 index c72be927..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/src/our_truth_table_module.v +++ /dev/null @@ -1,68 +0,0 @@ -/* Generated by Yosys 0.38 (git sha1 543faed9c8c, clang++ 16.0.6 -fPIC -Os) */ - -(* top = 1 *) -(* generator = "Amaranth" *) -module top(\output , \input ); - reg \$auto$verilog_backend.cc:2334:dump_module$1 = 0; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - input [3:0] \input ; - wire [3:0] \input ; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - output [3:0] \output ; - reg [3:0] \output ; - always @* begin - if (\$auto$verilog_backend.cc:2334:dump_module$1 ) begin end - (* full_case = 32'd1 *) - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:61" *) - casez (\input ) - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h0: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h1: - \output = 4'hc; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h2: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h3: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h4: - \output = 4'h2; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h5: - \output = 4'hd; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h6: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h7: - \output = 4'h3; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h8: - \output = 4'h9; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h9: - \output = 4'he; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'ha: - \output = 4'h4; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hb: - \output = 4'h8; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hc: - \output = 4'h1; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hd: - \output = 4'hb; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'he: - \output = 4'hf; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hf: - \output = 4'ha; - endcase - end -endmodule diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/tb/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/parallel_1/tb/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/setup.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/setup.py deleted file mode 100644 index 80f9b9e7..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_1/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from distutils.core import setup - -setup( - name="parallel_1", - version="0.0.1", - description="Example empty piel project.", - author="Dario Quintero", - author_email="darioaquintero@gmail.com", - url="https://github.com/daquintero/piel", - packages=["parallel_1"], -) diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/docs/README.md b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/docs/README.md deleted file mode 100644 index ce9ced09..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -parallel_2 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/digital/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/digital/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/photonics/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/components/photonics/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/frequency/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/frequency/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/logic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/logic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/physical/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/physical/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/transient/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/models/transient/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/photonic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/photonic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/src/our_truth_table_module.v b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/src/our_truth_table_module.v deleted file mode 100644 index c72be927..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/src/our_truth_table_module.v +++ /dev/null @@ -1,68 +0,0 @@ -/* Generated by Yosys 0.38 (git sha1 543faed9c8c, clang++ 16.0.6 -fPIC -Os) */ - -(* top = 1 *) -(* generator = "Amaranth" *) -module top(\output , \input ); - reg \$auto$verilog_backend.cc:2334:dump_module$1 = 0; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - input [3:0] \input ; - wire [3:0] \input ; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - output [3:0] \output ; - reg [3:0] \output ; - always @* begin - if (\$auto$verilog_backend.cc:2334:dump_module$1 ) begin end - (* full_case = 32'd1 *) - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:61" *) - casez (\input ) - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h0: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h1: - \output = 4'hc; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h2: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h3: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h4: - \output = 4'h2; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h5: - \output = 4'hd; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h6: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h7: - \output = 4'h3; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h8: - \output = 4'h9; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h9: - \output = 4'he; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'ha: - \output = 4'h4; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hb: - \output = 4'h8; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hc: - \output = 4'h1; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hd: - \output = 4'hb; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'he: - \output = 4'hf; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hf: - \output = 4'ha; - endcase - end -endmodule diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/tb/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/parallel_2/tb/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/setup.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/setup.py deleted file mode 100644 index e1084e81..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_2/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from distutils.core import setup - -setup( - name="parallel_2", - version="0.0.1", - description="Example empty piel project.", - author="Dario Quintero", - author_email="darioaquintero@gmail.com", - url="https://github.com/daquintero/piel", - packages=["parallel_2"], -) diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/docs/README.md b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/docs/README.md deleted file mode 100644 index 18fe4f3d..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -parallel_3 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/digital/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/digital/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/photonics/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/components/photonics/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/frequency/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/frequency/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/logic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/logic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/physical/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/physical/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/transient/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/models/transient/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/photonic/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/photonic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/src/our_truth_table_module.v b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/src/our_truth_table_module.v deleted file mode 100644 index c72be927..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/src/our_truth_table_module.v +++ /dev/null @@ -1,68 +0,0 @@ -/* Generated by Yosys 0.38 (git sha1 543faed9c8c, clang++ 16.0.6 -fPIC -Os) */ - -(* top = 1 *) -(* generator = "Amaranth" *) -module top(\output , \input ); - reg \$auto$verilog_backend.cc:2334:dump_module$1 = 0; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - input [3:0] \input ; - wire [3:0] \input ; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - output [3:0] \output ; - reg [3:0] \output ; - always @* begin - if (\$auto$verilog_backend.cc:2334:dump_module$1 ) begin end - (* full_case = 32'd1 *) - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:61" *) - casez (\input ) - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h0: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h1: - \output = 4'hc; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h2: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h3: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h4: - \output = 4'h2; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h5: - \output = 4'hd; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h6: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h7: - \output = 4'h3; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h8: - \output = 4'h9; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h9: - \output = 4'he; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'ha: - \output = 4'h4; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hb: - \output = 4'h8; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hc: - \output = 4'h1; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hd: - \output = 4'hb; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'he: - \output = 4'hf; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hf: - \output = 4'ha; - endcase - end -endmodule diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/tb/__init__.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/parallel_3/tb/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/setup.py b/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/setup.py deleted file mode 100644 index 8274631b..00000000 --- a/docs/examples/02a_large_scale_digital_layout/parallel/parallel_3/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from distutils.core import setup - -setup( - name="parallel_3", - version="0.0.1", - description="Example empty piel project.", - author="Dario Quintero", - author_email="darioaquintero@gmail.com", - url="https://github.com/daquintero/piel", - packages=["parallel_3"], -) diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/docs/README.md b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/docs/README.md deleted file mode 100644 index 5a8b0414..00000000 --- a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -sequential_0 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/digital/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/digital/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/photonics/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/components/photonics/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/analogue/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/analogue/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/frequency/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/frequency/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/logic/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/logic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/physical/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/physical/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/transient/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/models/transient/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/photonic/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/photonic/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/src/our_truth_table_module.v b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/src/our_truth_table_module.v deleted file mode 100644 index c72be927..00000000 --- a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/src/our_truth_table_module.v +++ /dev/null @@ -1,68 +0,0 @@ -/* Generated by Yosys 0.38 (git sha1 543faed9c8c, clang++ 16.0.6 -fPIC -Os) */ - -(* top = 1 *) -(* generator = "Amaranth" *) -module top(\output , \input ); - reg \$auto$verilog_backend.cc:2334:dump_module$1 = 0; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - input [3:0] \input ; - wire [3:0] \input ; - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:47" *) - output [3:0] \output ; - reg [3:0] \output ; - always @* begin - if (\$auto$verilog_backend.cc:2334:dump_module$1 ) begin end - (* full_case = 32'd1 *) - (* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:61" *) - casez (\input ) - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h0: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h1: - \output = 4'hc; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h2: - \output = 4'h5; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h3: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h4: - \output = 4'h2; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h5: - \output = 4'hd; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h6: - \output = 4'h6; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h7: - \output = 4'h3; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h8: - \output = 4'h9; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'h9: - \output = 4'he; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'ha: - \output = 4'h4; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hb: - \output = 4'h8; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hc: - \output = 4'h1; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hd: - \output = 4'hb; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'he: - \output = 4'hf; - /* src = "/home/daquintero/phd/piel_private/piel/tools/amaranth/construct.py:64" */ - 4'hf: - \output = 4'ha; - endcase - end -endmodule diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/tb/__init__.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/sequential_0/tb/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/setup.py b/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/setup.py deleted file mode 100644 index b071e11d..00000000 --- a/docs/examples/02a_large_scale_digital_layout/sequential/sequential_0/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from distutils.core import setup - -setup( - name="sequential_0", - version="0.0.1", - description="Example empty piel project.", - author="Dario Quintero", - author_email="darioaquintero@gmail.com", - url="https://github.com/daquintero/piel", - packages=["sequential_0"], -) diff --git a/docs/presentations/mixed_signal_electronic_photonic_codesign/index.rst b/docs/presentations/mixed_signal_electronic_photonic_codesign/index.rst new file mode 100644 index 00000000..486d3d46 --- /dev/null +++ b/docs/presentations/mixed_signal_electronic_photonic_codesign/index.rst @@ -0,0 +1,14 @@ +Outline +------- + +This page involves the outline and resources related to of the presentation: *Integrating Mixed-Signal Microelectronics and Photonics: A Co-Design Approach with piel* for the `2024 Free Silicon Conference (FSiC) `_. + +- What? + - python library, container of a collection of examples of co-design flows, and useful functions that streamline interaction between toolsets specifically for co-design, proper dependency management for reproducibility* + - Uses existing functionality from toolsets, aims to proper dependency management functions and interactions so you don't get horrible conflicts. +- Why? + - applications of electronic-photonic systems. Massive pain of proprietary toolsets, not easy to interact with. + - Power of open source PDKs in this context. + - Was working on quantum photonic systems and it was a massive pain to simulate how the system behaved. +- How? + - diff --git a/docs/sections/codesign/principles/electronic/power_time_metrics.rst b/docs/sections/codesign/principles/electronic/power_time_metrics.rst index cd168c90..47b5dcf0 100644 --- a/docs/sections/codesign/principles/electronic/power_time_metrics.rst +++ b/docs/sections/codesign/principles/electronic/power_time_metrics.rst @@ -11,7 +11,7 @@ include photonic loads based on *Digital Integrated Circuits, A Design Perspective* by Jan Rabaey. Page numbers are provided accordingly. Power Consumption Definitions -^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Peak Power ''''''''''''''''''''''''' diff --git a/docs/sections/codesign/principles/index.rst b/docs/sections/codesign/principles/index.rst index 41d93c0d..ce20f252 100644 --- a/docs/sections/codesign/principles/index.rst +++ b/docs/sections/codesign/principles/index.rst @@ -3,6 +3,10 @@ Fundamental Co-Design Principles Theory It is important to understand the fundamental physical relationships of consigning photonics and electronics systems. Really, we are combining two engineering fields: photonics engineering and electronics engineering. The overlap between the fields, and interconnected relationships, are essential to optimise the system design between them. +.. include:: interactions/introduction.rst +.. include:: interactions/applications.rst +.. include:: interactions/flows.rst + Electronic Fundamentals ============================= diff --git a/docs/sections/codesign/principles/interactions/applications.rst b/docs/sections/codesign/principles/interactions/applications.rst new file mode 100644 index 00000000..269c2ee1 --- /dev/null +++ b/docs/sections/codesign/principles/interactions/applications.rst @@ -0,0 +1,63 @@ +Reference Applications +------------------------ + +What are some example applications of electronic-photonic codesign? Let's look at some references and a brief summary of contents. Last updated: 06/2024. + +.. list-table:: + :widths: 15 35 50 + :header-rows: 1 + + * - Domain + - Reference + - Brief Description + * - Communications + - Kim, Gyungock, et al. "Single-chip photonic transceiver based on bulk-silicon, as a chip-level photonic I/O platform for optical interconnects." Scientific Reports 5.1 (2015): 11329. + - + * - Communications* + - Sengupta, Kaushik, Tadao Nagatsuma, and Daniel M. Mittleman. "Terahertz integrated electronic and hybrid electronic–photonic systems." Nature Electronics 1.12 (2018): 622-635. + - + * - Foundry + - KIMERLING, L. C., et al. Electronic-photonic integrated circuits on the CMOS platform. En Silicon photonics. SPIE, 2006. p. 6-15. + - + * - Foundry + - Orcutt, Jason Scott. Monolithic electronic-photonic integration in state-of-the-art CMOS processes. Diss. Massachusetts Institute of Technology, 2012. + - + * - HPC + - YING, Zhoufeng, et al. Electronic-photonic arithmetic logic unit for high-speed computing. Nature communications, 2020, vol. 11, no 1, p. 2154. + - + * - HPC + - Chen, Luis, et al. "Electronic and photonic integrated circuits for fast data center optical circuit switches." IEEE Communications Magazine 51.9 (2013): 53-59. + - + * - HPC & Neuromorphic AI + - Ning, Shupeng, et al. "Photonic-Electronic Integrated Circuits for High-Performance Computing and AI Accelerator." arXiv preprint arXiv:2403.14806 (2024). + - + * - HPC & Neuromorphic AI + - Xu, Bo, et al. "Recent progress of neuromorphic computing based on silicon photonics: Electronic–photonic Co-design, device, and architecture." Photonics. Vol. 9. No. 10. MDPI, 2022. + - + * - HPC & Neuromorphic AI + - Shastri, Bhavin J., et al. "Photonics for artificial intelligence and neuromorphic computing." Nature Photonics 15.2 (2021): 102-114. + - + * - Photonic Computation + - Macho‐Ortiz, Andrés, et al. "Analog Programmable‐Photonic Computation." Laser & Photonics Reviews 17.10 (2023): 2200360. + - + * - Photonic Computation + - Cheng, Junwei, Hailong Zhou, and Jianji Dong. "Photonic matrix computing: from fundamentals to applications." nanomaterials 11.7 (2021): 1683. + - + * - Signal Processing + - KÄRTNER, F. X., et al. Photonic analog-to-digital conversion with electronic-photonic integrated circuits. En Silicon Photonics III. SPIE, 2008. p. 59-73. + - + + +Passive Photonics Design Applications +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: Title + :widths: 15 35 50 + :header-rows: 1 + + * - Domain + - Reference + - Brief Description + * - + - + - diff --git a/docs/sections/codesign/principles/interactions/flows.rst b/docs/sections/codesign/principles/interactions/flows.rst new file mode 100644 index 00000000..d569664c --- /dev/null +++ b/docs/sections/codesign/principles/interactions/flows.rst @@ -0,0 +1,26 @@ +Design Flows +------------- + +Let's consider the fundamental principles between electronic-photonic codesign flows, and the corresponding modelling at each stage. +In this section, we will explore some design flow relationships between co-designed systems. + +Domain Principles +^^^^^^^^^^^^^^^^^^ + +There are three important domains in a given co-design flow: *digital and analogue electronics, and photonics*. + +The photonics domain can be divided into passive photonics, not discussed here, and active photonics. Active photonics could be grouped into opto-electronic and electro-optic systems. Opto-electronic systems involve an optical signal being converted into a photonic signal, whilst electro-optics is the inverse. + +Frequently, an analogue electronic signal drives or is generated by an *active* photonic device. For now, we will concern ourselves with analogue electronic signals that operate at multiple order of magnitude below of the frequencies of tera-hertz optical electromagnetic signals. However, there has been much research into the interaction of terahertz electronics and photonics which has led to interesting physical effects and applications, but maybe we discuss this in another section. + +If we are interacting with these analogue signals through a modern computer, it means that we are *discretising* the analogue signals. In many applications, we need to consider the digital-logic control or readout of analogue signals from a photonic system. + +Common Examples +^^^^^^^^^^^^^^^^ + +Let's explore some common design flows in the context of common design examples: + +Controlling a electro-optic switch lattice +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Many integrated electronic-photonic systems involve this application implementation: such as neuro-morphic AI systems, HPC matrix multipliers, data-center transceivers, quantum-photonic interferometers, etc. See the applications page for reference. TODO add link. diff --git a/docs/sections/codesign/principles/interactions/introduction.rst b/docs/sections/codesign/principles/interactions/introduction.rst new file mode 100644 index 00000000..e6968b77 --- /dev/null +++ b/docs/sections/codesign/principles/interactions/introduction.rst @@ -0,0 +1,40 @@ +A primer on common photonic-electronic systems +----------------------------------------------- + +We will explore some common photonic-electronic systems and discuss the design flows involved afterwards. + +An Opto-electronic System +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A relatively-common system is one where an electronic signal is generated from a photonic device. This involves the readout of photodetectors such as silicon photodiodes, photoresistors, or more-quantum-focused single-photon detectors such as superconducting nanowires. TODO ref. + +.. figure:: ../../../_static/img/sections/codesign/detector_photonic_system.png + :alt: Example detector integrated photonics-electronics system + +For many of these photodetectors, they need to be biased or amplified with analogue or RF electronics. This is often discretized into digital electronics through an equivalent ADC. + +These systems are commonly used as sensing-based detectors, and can be used for very precise metrology. TODO add ref. + +An Electro-Optic System +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Another common system in the integrated photonics domain is an electronically-controlled photonic system. In this case, en electronic signal can control an optical signal such as a laser pulse, continuous laser, or more-quantum-focused single-photon and change it's properties such as phase or amplitude. + +These types of systems are more common in datacenters, photonics-driven-HPC, neuro-morphic photonic computation, and quantum photonic systems. TODO ref. + +.. figure:: ../../../_static/img/sections/codesign/switch_photonic_system.png + :alt: Example switched integrated photonics-electronics system + +To optimise power consumption, it might be desired to design custom digital logic, with custom amplifiers and specifications, for a application-specific integrated photonic device. + +In an integrated-photonics platform, it is common to use a Mach-Zehnder interferometer as en electro-optic switch. This is by the use of an active electro-optic or thermo-optic phase shifter on one interferometer arm, can be use to route a photonic path output or not. + +A Concurrent Photonic-Electronic System +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These are the most interesting ones in my opinion. Concurrent photonic-electronic systems involve the interaction between optical signals and electronics signals in real-time, with feedback and feedforward. This is currently at the cusp of scientific development of current technology. + +However, these systems are very hard to simulate fully. It involves the time-domain interaction of analogue, digital and photonic signals in order to model a specific behaviour. These are the type of systems we are interested in modelling through `piel`. The flexibility of open-source software enables us to create these type of modelling systems in a way that closed-source software can make it very difficult to extend. + +.. image:: ../../../_static/img/sections/codesign/feedback_photonic_system.png + :alt: Example feedback integrated photonics-electronics system diff --git a/piel/integration/hdl21_gdsfactory/sky130.py b/piel/integration/hdl21_gdsfactory/sky130.py index 7ad9a662..f2385f95 100644 --- a/piel/integration/hdl21_gdsfactory/sky130.py +++ b/piel/integration/hdl21_gdsfactory/sky130.py @@ -13,6 +13,7 @@ custom_mapping_dict = { "sky130_fd_pr__nfet_01v8": "sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15", "sky130_fd_pr__pfet_01v8": "sky130_fd_pr__rf_pfet_01v8_mcM04W3p00L0p15", + "sky130_fd_pr__res_generic_po": "", }