SimplHDL 0.7.2__tar.gz → 0.8.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simplhdl-0.7.2 → simplhdl-0.8.2}/PKG-INFO +1 -1
- {simplhdl-0.7.2 → simplhdl-0.8.2}/pyproject.toml +33 -2
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/SimplHDL.egg-info/PKG-INFO +1 -1
- simplhdl-0.8.2/src/SimplHDL.egg-info/SOURCES.txt +141 -0
- simplhdl-0.8.2/src/SimplHDL.egg-info/entry_points.txt +21 -0
- simplhdl-0.8.2/src/SimplHDL.egg-info/top_level.txt +13 -0
- simplhdl-0.8.2/src/simplhdl/__init__.py +5 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/__main__.py +8 -8
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/cli}/info.py +6 -6
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/cli}/run.py +3 -4
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/cocotb.py +13 -7
- simplhdl-0.8.2/src/simplhdl/plugin/__init__.py +5 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/plugin}/flow.py +6 -11
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/plugin}/generator.py +6 -11
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl/plugin}/implementationflow.py +2 -2
- simplhdl-0.8.2/src/simplhdl/plugin/loader.py +81 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/plugin}/parser.py +11 -16
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl/plugin}/simulationflow.py +23 -13
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/project.py +1 -1
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl/pyedaa}/repo.py +1 -1
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/simplhdl.py +3 -3
- {simplhdl-0.7.2/src/simplhdl/generators → simplhdl-0.8.2/src/simplhdl_chisel}/chisel.py +4 -21
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_encrypt}/encrypt/encryptflow.py +12 -10
- {simplhdl-0.7.2/src/simplhdl/parsers → simplhdl-0.8.2/src/simplhdl_fusesocparser}/fusesocparser.py +6 -8
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/flake8/flake8flow.py +7 -6
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/lint/lintflow.py +7 -7
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/verible/veribleflow.py +12 -7
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/vsg/vsgflow.py +6 -6
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_modelsim}/modelsim/modelsimflow.py +10 -10
- {simplhdl-0.7.2/src/simplhdl/parsers → simplhdl-0.8.2/src/simplhdl_parser}/simplhdlparser.py +26 -13
- {simplhdl-0.7.2/src/simplhdl/generators → simplhdl-0.8.2/src/simplhdl_peakrdl}/systemrdl.py +37 -21
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_quartus}/quartusdse/quartusdseflow.py +6 -8
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_quartus}/quartusexport/quartusexportflow.py +15 -17
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_quartus}/quartusflow.py +6 -8
- {simplhdl-0.7.2/src/simplhdl/generators → simplhdl-0.8.2/src/simplhdl_quartus}/spd.py +24 -20
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_questasim}/questasim/questasimflow.py +13 -14
- simplhdl-0.8.2/src/simplhdl_questasim/resources/templates/questasim/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_rivierapro/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_rivierapro/resources/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_rivierapro/resources/templates/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_rivierapro/resources/templates/rivierapro/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_rivierapro/rivierapro/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_rivierapro}/rivierapro/rivieraproflow.py +10 -11
- simplhdl-0.8.2/src/simplhdl_vcs/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vcs/resources/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vcs/resources/templates/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vcs/resources/templates/vcs/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vcs/vcs/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_vcs}/vcs/vcsflow.py +10 -12
- simplhdl-0.8.2/src/simplhdl_vivado/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/generators → simplhdl-0.8.2/src/simplhdl_vivado}/ipxact.py +21 -16
- simplhdl-0.8.2/src/simplhdl_vivado/resources/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/__init__.py +0 -0
- simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/vivado/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/vivado/project.tcl.j2 +1 -1
- simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/xsim/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_vivado}/vivadoflow.py +20 -10
- simplhdl-0.8.2/src/simplhdl_vivado/xsim/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_vivado}/xsim/xsimflow.py +9 -10
- simplhdl-0.7.2/.github/workflows/publish.yml +0 -39
- simplhdl-0.7.2/.gitignore +0 -95
- simplhdl-0.7.2/.readthedocs.yaml +0 -28
- simplhdl-0.7.2/docs/_static/simplhdl_dark.png +0 -0
- simplhdl-0.7.2/docs/_static/simplhdl_light.png +0 -0
- simplhdl-0.7.2/docs/_static/simplhdl_light_1.png +0 -0
- simplhdl-0.7.2/docs/conf.py +0 -65
- simplhdl-0.7.2/docs/drawing.svg +0 -305
- simplhdl-0.7.2/docs/flows/ghdl.rst +0 -2
- simplhdl-0.7.2/docs/flows/icarus.rst +0 -2
- simplhdl-0.7.2/docs/flows/quartus.rst +0 -2
- simplhdl-0.7.2/docs/flows/questasim.rst +0 -2
- simplhdl-0.7.2/docs/flows/vcs.rst +0 -2
- simplhdl-0.7.2/docs/flows/vivado.rst +0 -48
- simplhdl-0.7.2/docs/flows/xsim.rst +0 -2
- simplhdl-0.7.2/docs/flows.rst +0 -16
- simplhdl-0.7.2/docs/index.rst +0 -32
- simplhdl-0.7.2/docs/intel-ips.md +0 -22
- simplhdl-0.7.2/docs/introduction.rst +0 -4
- simplhdl-0.7.2/docs/plugins.rst +0 -55
- simplhdl-0.7.2/docs/requirements.txt +0 -33
- simplhdl-0.7.2/examples/hdl/adder/adder.yml +0 -3
- simplhdl-0.7.2/examples/hdl/adder/hdl/adder.sv +0 -19
- simplhdl-0.7.2/examples/hdl/adder/sim/testbench.sv +0 -10
- simplhdl-0.7.2/examples/hdl/adder/sim/testbench.yml +0 -14
- simplhdl-0.7.2/examples/hdl/adder/syn/build.yml +0 -18
- simplhdl-0.7.2/examples/hdl/adder/syn/placement.xdc +0 -23
- simplhdl-0.7.2/examples/hdl/adder/syn/timing.xdc +0 -1
- simplhdl-0.7.2/examples/hdl/adder/syn/top.sv +0 -21
- simplhdl-0.7.2/examples/hdl/alu/alu.yml +0 -6
- simplhdl-0.7.2/examples/hdl/alu/hdl/add.sv +0 -11
- simplhdl-0.7.2/examples/hdl/alu/hdl/alu.sv +0 -116
- simplhdl-0.7.2/examples/hdl/alu/hdl/mul.sv +0 -11
- simplhdl-0.7.2/examples/hdl/alu/hdl/sub.sv +0 -11
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/__init__.py +0 -7
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/agent.py +0 -26
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/aluif.py +0 -11
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/driver.py +0 -40
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/monitor.py +0 -31
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/sequenceitem.py +0 -43
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/alu_vip/sequencer.py +0 -7
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/clock_vip/__init__.py +0 -3
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/clock_vip/agent.py +0 -29
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/clock_vip/clockif.py +0 -8
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/pyuvm.yml +0 -9
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/test/env.py +0 -14
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/test/seq_lib.py +0 -35
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/test/test.py +0 -52
- simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/testbench.py +0 -8
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/agent.svh +0 -40
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.sv +0 -22
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.yml +0 -9
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/driver.svh +0 -51
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/env.svh +0 -4
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/monitor.svh +0 -135
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/alu_vip/sequence_item.svh +0 -27
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/seq_lib/add_seq.svh +0 -22
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/seq_lib/base_seq.svh +0 -37
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/tb_env.sv +0 -13
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/tb_env.yml +0 -13
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/test/base_test.svh +0 -22
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/tb_env/test/test_add.svh +0 -26
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/testbench/alu_if.sv +0 -77
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/testbench/testbench.sv +0 -52
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/testbench/testbench.yml +0 -9
- simplhdl-0.7.2/examples/hdl/alu/sim/uvm/testcases/test_add/test_add.yml +0 -9
- simplhdl-0.7.2/examples/hdl/alu/syn/build.yml +0 -12
- simplhdl-0.7.2/examples/hdl/alu/syn/placement.xdc +0 -34
- simplhdl-0.7.2/examples/hdl/alu/syn/timing.xdc +0 -4
- simplhdl-0.7.2/examples/hdl/hello/build.sbt +0 -11
- simplhdl-0.7.2/examples/hdl/hello/hello.yml +0 -3
- simplhdl-0.7.2/examples/hdl/hello/src/main/scala/Hello.scala +0 -33
- simplhdl-0.7.2/examples/hdl/hello/syn/build.yml +0 -8
- simplhdl-0.7.2/examples/plugins/simple_parser/setup.py +0 -18
- simplhdl-0.7.2/examples/plugins/simple_parser/src/simple_parser/__init__.py +0 -4
- simplhdl-0.7.2/examples/plugins/simple_parser/src/simple_parser/simple_parser.py +0 -41
- simplhdl-0.7.2/src/SimplHDL.egg-info/SOURCES.txt +0 -200
- simplhdl-0.7.2/src/SimplHDL.egg-info/entry_points.txt +0 -2
- simplhdl-0.7.2/src/SimplHDL.egg-info/top_level.txt +0 -1
- simplhdl-0.7.2/src/simplhdl/__init__.py +0 -1
- simplhdl-0.7.2/src/simplhdl/plugins.py +0 -72
- simplhdl-0.7.2/tox.ini +0 -62
- {simplhdl-0.7.2 → simplhdl-0.8.2}/LICENSE +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/README.md +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/setup.cfg +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/SimplHDL.egg-info/dependency_links.txt +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/SimplHDL.egg-info/requires.txt +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/__init__.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/attributes.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/design.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/fileset.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/filetypes.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/target.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/pyedaa/vhdllibrary.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/tools.py +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/src/simplhdl/utils.py +0 -0
- {simplhdl-0.7.2/examples/hdl/alu/sim/pyuvm/test → simplhdl-0.8.2/src/simplhdl_encrypt}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_encrypt/encrypt}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/encrypt → simplhdl-0.8.2/src/simplhdl_fusesocparser}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/modelsim → simplhdl-0.8.2/src/simplhdl_lint}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/quartusdse → simplhdl-0.8.2/src/simplhdl_lint/resources}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/quartusexport → simplhdl-0.8.2/src/simplhdl_lint/resources/templates}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/questasim → simplhdl-0.8.2/src/simplhdl_lint/resources/templates/flake8}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_lint}/resources/templates/flake8/setup.cfg.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/rivierapro → simplhdl-0.8.2/src/simplhdl_lint/resources/templates/verible}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_lint}/resources/templates/verible/rules.cfg.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/vcs → simplhdl-0.8.2/src/simplhdl_lint/resources/templates/vsg}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_lint}/resources/templates/vsg/files.json.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_lint}/resources/templates/vsg/rules.yml.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/verible/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl_lint}/vsg/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/flows/xsim → simplhdl-0.8.2/src/simplhdl_modelsim}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/generators → simplhdl-0.8.2/src/simplhdl_modelsim/modelsim}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/parsers → simplhdl-0.8.2/src/simplhdl_modelsim/resources}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources → simplhdl-0.8.2/src/simplhdl_modelsim/resources/templates}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/Makefile.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates → simplhdl-0.8.2/src/simplhdl_modelsim/resources/templates/modelsim}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/files.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/fileset.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/project.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_modelsim}/resources/templates/modelsim/run.do.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/flake8 → simplhdl-0.8.2/src/simplhdl_parser}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/modelsim → simplhdl-0.8.2/src/simplhdl_peakrdl}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/quartus → simplhdl-0.8.2/src/simplhdl_quartus/quartusdse}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/questasim → simplhdl-0.8.2/src/simplhdl_quartus/quartusexport}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/rivierapro → simplhdl-0.8.2/src/simplhdl_quartus/resources}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/vcs → simplhdl-0.8.2/src/simplhdl_quartus/resources/templates}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/verible → simplhdl-0.8.2/src/simplhdl_quartus/resources/templates/quartus}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_quartus}/resources/templates/quartus/project.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_quartus}/resources/templates/quartus/run.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/vivado → simplhdl-0.8.2/src/simplhdl_questasim/questasim}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/vsg → simplhdl-0.8.2/src/simplhdl_questasim/resources}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl/resources/templates/xsim → simplhdl-0.8.2/src/simplhdl_questasim/resources/templates}/__init__.py +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_questasim}/resources/templates/questasim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_questasim}/resources/templates/questasim/project.qrun.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_questasim}/resources/templates/questasim/visualizer.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_questasim}/resources/templates/questasim/vsim-run.do.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/Makefile.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/cocotb.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/dependencies.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/files.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/fileset.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_rivierapro}/resources/templates/rivierapro/project.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/Makefile.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/cocotb.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/dependencies.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/files.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/fileset.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/pli.tab.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/project.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/simv-run.do.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/synopsys_sim.setup.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vcs}/resources/templates/vcs/vcs.parameters.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/vivado/launch_run.sh.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/vivado/run.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/vivado/steps.tcl.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/Makefile.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/files.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/fileset.j2 +0 -0
- {simplhdl-0.7.2/src/simplhdl → simplhdl-0.8.2/src/simplhdl_vivado}/resources/templates/xsim/project.mk.j2 +0 -0
- {simplhdl-0.7.2 → simplhdl-0.8.2}/tests/test_dummy.py +0 -0
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
requires = [
|
|
3
|
-
"setuptools>=
|
|
4
|
-
"
|
|
3
|
+
"setuptools>=64.0",
|
|
4
|
+
"wheel"]
|
|
5
5
|
build-backend = "setuptools.build_meta"
|
|
6
6
|
|
|
7
7
|
[tool.setuptools.dynamic]
|
|
8
8
|
version = {attr = "simplhdl.__version__"}
|
|
9
9
|
|
|
10
|
+
[tool.setuptools.package-data]
|
|
11
|
+
"*" = ["*.j2"]
|
|
12
|
+
|
|
13
|
+
[tool.flake8]
|
|
14
|
+
max-line-length = 120
|
|
15
|
+
max_complexity = 10
|
|
16
|
+
per-file-ignores = [
|
|
17
|
+
# Ignore the F401 (unused import) error in all __init__.py files
|
|
18
|
+
"__init__.py:F401",
|
|
19
|
+
]
|
|
20
|
+
|
|
10
21
|
[project]
|
|
11
22
|
name = "SimplHDL"
|
|
12
23
|
description = "A framework for simulating and implementing HDL designs"
|
|
@@ -62,3 +73,23 @@ Homepage = "https://github.com/SimplHDL"
|
|
|
62
73
|
Documentation = "https://simplhdl.readthedocs.io/en/latest/"
|
|
63
74
|
Repository = "https://github.com/SimplHDL/simplhdl.git"
|
|
64
75
|
Issues = "https://github.com/SimplHDL/simplhdl/issues"
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
[project.entry-points."simplhdl.plugins"]
|
|
79
|
+
chisel_generator = "simplhdl_chisel.chisel:ChiselGenerator"
|
|
80
|
+
encrypt_flow = "simplhdl_encrypt.encrypt.encryptflow:EncryptFlow"
|
|
81
|
+
fusersoc_parser = "simplhdl_fusesocparser.fusesocparser:FuseSocParser"
|
|
82
|
+
lint_flow = "simplhdl_lint.lint.lintflow:LintFlow"
|
|
83
|
+
modelsim = "simplhdl_modelsim.modelsim.modelsimflow:ModelSimFlow"
|
|
84
|
+
peakrdl_generator = "simplhdl_peakrdl.systemrdl:PeakRdlGenerator"
|
|
85
|
+
quartus = "simplhdl_quartus.quartusflow:QuartusFlow"
|
|
86
|
+
quartus_generator = "simplhdl_quartus.spd:QuartusGenerator"
|
|
87
|
+
quartus-dse = "simplhdl_quartus.quartusdse.quartusdseflow:QuartusDseFlow"
|
|
88
|
+
quartus-export = "simplhdl_quartus.quartusexport.quartusexportflow:QuartusExportFlow"
|
|
89
|
+
questasim = "simplhdl_questasim.questasim.questasimflow:QuestaSimFlow"
|
|
90
|
+
rivierapro = "simplhdl_rivierapro.rivierapro.rivieraproflow:RivieraProFlow"
|
|
91
|
+
simplhdl_parser = "simplhdl_parser.simplhdlparser:SimplHdlParser"
|
|
92
|
+
vcs = "simplhdl_vcs.vcs.vcsflow:VcsFlow"
|
|
93
|
+
vivado = "simplhdl_vivado.vivadoflow:VivadoFlow"
|
|
94
|
+
vivado_generator = "simplhdl_vivado.ipxact:VivadoGenerator"
|
|
95
|
+
xsim = "simplhdl_vivado.xsim.xsimflow:XsimFlow"
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/SimplHDL.egg-info/PKG-INFO
|
|
5
|
+
src/SimplHDL.egg-info/SOURCES.txt
|
|
6
|
+
src/SimplHDL.egg-info/dependency_links.txt
|
|
7
|
+
src/SimplHDL.egg-info/entry_points.txt
|
|
8
|
+
src/SimplHDL.egg-info/requires.txt
|
|
9
|
+
src/SimplHDL.egg-info/top_level.txt
|
|
10
|
+
src/simplhdl/__init__.py
|
|
11
|
+
src/simplhdl/__main__.py
|
|
12
|
+
src/simplhdl/cocotb.py
|
|
13
|
+
src/simplhdl/simplhdl.py
|
|
14
|
+
src/simplhdl/tools.py
|
|
15
|
+
src/simplhdl/utils.py
|
|
16
|
+
src/simplhdl/cli/info.py
|
|
17
|
+
src/simplhdl/cli/run.py
|
|
18
|
+
src/simplhdl/plugin/__init__.py
|
|
19
|
+
src/simplhdl/plugin/flow.py
|
|
20
|
+
src/simplhdl/plugin/generator.py
|
|
21
|
+
src/simplhdl/plugin/implementationflow.py
|
|
22
|
+
src/simplhdl/plugin/loader.py
|
|
23
|
+
src/simplhdl/plugin/parser.py
|
|
24
|
+
src/simplhdl/plugin/simulationflow.py
|
|
25
|
+
src/simplhdl/pyedaa/__init__.py
|
|
26
|
+
src/simplhdl/pyedaa/attributes.py
|
|
27
|
+
src/simplhdl/pyedaa/design.py
|
|
28
|
+
src/simplhdl/pyedaa/fileset.py
|
|
29
|
+
src/simplhdl/pyedaa/filetypes.py
|
|
30
|
+
src/simplhdl/pyedaa/project.py
|
|
31
|
+
src/simplhdl/pyedaa/repo.py
|
|
32
|
+
src/simplhdl/pyedaa/target.py
|
|
33
|
+
src/simplhdl/pyedaa/vhdllibrary.py
|
|
34
|
+
src/simplhdl_chisel/chisel.py
|
|
35
|
+
src/simplhdl_encrypt/__init__.py
|
|
36
|
+
src/simplhdl_encrypt/encrypt/__init__.py
|
|
37
|
+
src/simplhdl_encrypt/encrypt/encryptflow.py
|
|
38
|
+
src/simplhdl_fusesocparser/__init__.py
|
|
39
|
+
src/simplhdl_fusesocparser/fusesocparser.py
|
|
40
|
+
src/simplhdl_lint/__init__.py
|
|
41
|
+
src/simplhdl_lint/flake8/flake8flow.py
|
|
42
|
+
src/simplhdl_lint/lint/lintflow.py
|
|
43
|
+
src/simplhdl_lint/resources/__init__.py
|
|
44
|
+
src/simplhdl_lint/resources/templates/__init__.py
|
|
45
|
+
src/simplhdl_lint/resources/templates/flake8/__init__.py
|
|
46
|
+
src/simplhdl_lint/resources/templates/flake8/setup.cfg.j2
|
|
47
|
+
src/simplhdl_lint/resources/templates/verible/__init__.py
|
|
48
|
+
src/simplhdl_lint/resources/templates/verible/rules.cfg.j2
|
|
49
|
+
src/simplhdl_lint/resources/templates/vsg/__init__.py
|
|
50
|
+
src/simplhdl_lint/resources/templates/vsg/files.json.j2
|
|
51
|
+
src/simplhdl_lint/resources/templates/vsg/rules.yml.j2
|
|
52
|
+
src/simplhdl_lint/verible/__init__.py
|
|
53
|
+
src/simplhdl_lint/verible/veribleflow.py
|
|
54
|
+
src/simplhdl_lint/vsg/__init__.py
|
|
55
|
+
src/simplhdl_lint/vsg/vsgflow.py
|
|
56
|
+
src/simplhdl_modelsim/__init__.py
|
|
57
|
+
src/simplhdl_modelsim/modelsim/__init__.py
|
|
58
|
+
src/simplhdl_modelsim/modelsim/modelsimflow.py
|
|
59
|
+
src/simplhdl_modelsim/resources/__init__.py
|
|
60
|
+
src/simplhdl_modelsim/resources/templates/__init__.py
|
|
61
|
+
src/simplhdl_modelsim/resources/templates/modelsim/Makefile.j2
|
|
62
|
+
src/simplhdl_modelsim/resources/templates/modelsim/__init__.py
|
|
63
|
+
src/simplhdl_modelsim/resources/templates/modelsim/cocotb.mk.j2
|
|
64
|
+
src/simplhdl_modelsim/resources/templates/modelsim/dependencies.mk.j2
|
|
65
|
+
src/simplhdl_modelsim/resources/templates/modelsim/files.j2
|
|
66
|
+
src/simplhdl_modelsim/resources/templates/modelsim/fileset.j2
|
|
67
|
+
src/simplhdl_modelsim/resources/templates/modelsim/modelsim.tcl.j2
|
|
68
|
+
src/simplhdl_modelsim/resources/templates/modelsim/project.mk.j2
|
|
69
|
+
src/simplhdl_modelsim/resources/templates/modelsim/run.do.j2
|
|
70
|
+
src/simplhdl_parser/__init__.py
|
|
71
|
+
src/simplhdl_parser/simplhdlparser.py
|
|
72
|
+
src/simplhdl_peakrdl/__init__.py
|
|
73
|
+
src/simplhdl_peakrdl/systemrdl.py
|
|
74
|
+
src/simplhdl_quartus/quartusflow.py
|
|
75
|
+
src/simplhdl_quartus/spd.py
|
|
76
|
+
src/simplhdl_quartus/quartusdse/__init__.py
|
|
77
|
+
src/simplhdl_quartus/quartusdse/quartusdseflow.py
|
|
78
|
+
src/simplhdl_quartus/quartusexport/__init__.py
|
|
79
|
+
src/simplhdl_quartus/quartusexport/quartusexportflow.py
|
|
80
|
+
src/simplhdl_quartus/resources/__init__.py
|
|
81
|
+
src/simplhdl_quartus/resources/templates/__init__.py
|
|
82
|
+
src/simplhdl_quartus/resources/templates/quartus/__init__.py
|
|
83
|
+
src/simplhdl_quartus/resources/templates/quartus/project.tcl.j2
|
|
84
|
+
src/simplhdl_quartus/resources/templates/quartus/run.tcl.j2
|
|
85
|
+
src/simplhdl_questasim/questasim/__init__.py
|
|
86
|
+
src/simplhdl_questasim/questasim/questasimflow.py
|
|
87
|
+
src/simplhdl_questasim/resources/__init__.py
|
|
88
|
+
src/simplhdl_questasim/resources/templates/__init__.py
|
|
89
|
+
src/simplhdl_questasim/resources/templates/questasim/__init__.py
|
|
90
|
+
src/simplhdl_questasim/resources/templates/questasim/modelsim.tcl.j2
|
|
91
|
+
src/simplhdl_questasim/resources/templates/questasim/project.qrun.j2
|
|
92
|
+
src/simplhdl_questasim/resources/templates/questasim/visualizer.tcl.j2
|
|
93
|
+
src/simplhdl_questasim/resources/templates/questasim/vsim-run.do.j2
|
|
94
|
+
src/simplhdl_rivierapro/__init__.py
|
|
95
|
+
src/simplhdl_rivierapro/resources/__init__.py
|
|
96
|
+
src/simplhdl_rivierapro/resources/templates/__init__.py
|
|
97
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/Makefile.j2
|
|
98
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/__init__.py
|
|
99
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/cocotb.mk.j2
|
|
100
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/dependencies.mk.j2
|
|
101
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/files.j2
|
|
102
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/fileset.j2
|
|
103
|
+
src/simplhdl_rivierapro/resources/templates/rivierapro/project.mk.j2
|
|
104
|
+
src/simplhdl_rivierapro/rivierapro/__init__.py
|
|
105
|
+
src/simplhdl_rivierapro/rivierapro/rivieraproflow.py
|
|
106
|
+
src/simplhdl_vcs/__init__.py
|
|
107
|
+
src/simplhdl_vcs/resources/__init__.py
|
|
108
|
+
src/simplhdl_vcs/resources/templates/__init__.py
|
|
109
|
+
src/simplhdl_vcs/resources/templates/vcs/Makefile.j2
|
|
110
|
+
src/simplhdl_vcs/resources/templates/vcs/__init__.py
|
|
111
|
+
src/simplhdl_vcs/resources/templates/vcs/cocotb.mk.j2
|
|
112
|
+
src/simplhdl_vcs/resources/templates/vcs/dependencies.mk.j2
|
|
113
|
+
src/simplhdl_vcs/resources/templates/vcs/files.j2
|
|
114
|
+
src/simplhdl_vcs/resources/templates/vcs/fileset.j2
|
|
115
|
+
src/simplhdl_vcs/resources/templates/vcs/pli.tab.j2
|
|
116
|
+
src/simplhdl_vcs/resources/templates/vcs/project.mk.j2
|
|
117
|
+
src/simplhdl_vcs/resources/templates/vcs/simv-run.do.j2
|
|
118
|
+
src/simplhdl_vcs/resources/templates/vcs/synopsys_sim.setup.j2
|
|
119
|
+
src/simplhdl_vcs/resources/templates/vcs/vcs.parameters.j2
|
|
120
|
+
src/simplhdl_vcs/vcs/__init__.py
|
|
121
|
+
src/simplhdl_vcs/vcs/vcsflow.py
|
|
122
|
+
src/simplhdl_vivado/__init__.py
|
|
123
|
+
src/simplhdl_vivado/ipxact.py
|
|
124
|
+
src/simplhdl_vivado/vivadoflow.py
|
|
125
|
+
src/simplhdl_vivado/resources/__init__.py
|
|
126
|
+
src/simplhdl_vivado/resources/templates/__init__.py
|
|
127
|
+
src/simplhdl_vivado/resources/templates/vivado/__init__.py
|
|
128
|
+
src/simplhdl_vivado/resources/templates/vivado/launch_run.sh.j2
|
|
129
|
+
src/simplhdl_vivado/resources/templates/vivado/project.tcl.j2
|
|
130
|
+
src/simplhdl_vivado/resources/templates/vivado/run.tcl.j2
|
|
131
|
+
src/simplhdl_vivado/resources/templates/vivado/steps.tcl.j2
|
|
132
|
+
src/simplhdl_vivado/resources/templates/xsim/Makefile.j2
|
|
133
|
+
src/simplhdl_vivado/resources/templates/xsim/__init__.py
|
|
134
|
+
src/simplhdl_vivado/resources/templates/xsim/cocotb.mk.j2
|
|
135
|
+
src/simplhdl_vivado/resources/templates/xsim/dependencies.mk.j2
|
|
136
|
+
src/simplhdl_vivado/resources/templates/xsim/files.j2
|
|
137
|
+
src/simplhdl_vivado/resources/templates/xsim/fileset.j2
|
|
138
|
+
src/simplhdl_vivado/resources/templates/xsim/project.mk.j2
|
|
139
|
+
src/simplhdl_vivado/xsim/__init__.py
|
|
140
|
+
src/simplhdl_vivado/xsim/xsimflow.py
|
|
141
|
+
tests/test_dummy.py
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
simpl = simplhdl.__main__:main
|
|
3
|
+
|
|
4
|
+
[simplhdl.plugins]
|
|
5
|
+
chisel_generator = simplhdl_chisel.chisel:ChiselGenerator
|
|
6
|
+
encrypt_flow = simplhdl_encrypt.encrypt.encryptflow:EncryptFlow
|
|
7
|
+
fusersoc_parser = simplhdl_fusesocparser.fusesocparser:FuseSocParser
|
|
8
|
+
lint_flow = simplhdl_lint.lint.lintflow:LintFlow
|
|
9
|
+
modelsim = simplhdl_modelsim.modelsim.modelsimflow:ModelSimFlow
|
|
10
|
+
peakrdl_generator = simplhdl_peakrdl.systemrdl:PeakRdlGenerator
|
|
11
|
+
quartus = simplhdl_quartus.quartusflow:QuartusFlow
|
|
12
|
+
quartus-dse = simplhdl_quartus.quartusdse.quartusdseflow:QuartusDseFlow
|
|
13
|
+
quartus-export = simplhdl_quartus.quartusexport.quartusexportflow:QuartusExportFlow
|
|
14
|
+
quartus_generator = simplhdl_quartus.spd:QuartusGenerator
|
|
15
|
+
questasim = simplhdl_questasim.questasim.questasimflow:QuestaSimFlow
|
|
16
|
+
rivierapro = simplhdl_rivierapro.rivierapro.rivieraproflow:RivieraProFlow
|
|
17
|
+
simplhdl_parser = simplhdl_parser.simplhdlparser:SimplHdlParser
|
|
18
|
+
vcs = simplhdl_vcs.vcs.vcsflow:VcsFlow
|
|
19
|
+
vivado = simplhdl_vivado.vivadoflow:VivadoFlow
|
|
20
|
+
vivado_generator = simplhdl_vivado.ipxact:VivadoGenerator
|
|
21
|
+
xsim = simplhdl_vivado.xsim.xsimflow:XsimFlow
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import sys
|
|
2
1
|
import argparse
|
|
3
|
-
import argcomplete
|
|
4
2
|
import logging
|
|
3
|
+
import sys
|
|
5
4
|
import traceback
|
|
6
|
-
|
|
7
|
-
from typing import Sequence
|
|
8
5
|
from pathlib import Path
|
|
6
|
+
from typing import Sequence
|
|
7
|
+
|
|
8
|
+
import argcomplete
|
|
9
9
|
from rich.logging import RichHandler
|
|
10
10
|
|
|
11
11
|
from . import __version__
|
|
12
|
+
from .plugin.flow import FlowError, FlowFactory
|
|
13
|
+
from .plugin.generator import GeneratorError
|
|
14
|
+
from .plugin.loader import load_plugins
|
|
15
|
+
from .plugin.parser import ParserError
|
|
12
16
|
from .simplhdl import Simplhdl
|
|
13
|
-
from .plugins import load_plugins
|
|
14
|
-
from .flow import FlowFactory, FlowError
|
|
15
|
-
from .generator import GeneratorError
|
|
16
|
-
from .parser import ParserError
|
|
17
17
|
from .utils import CalledShError
|
|
18
18
|
|
|
19
19
|
logger = logging.getLogger(__name__)
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
from argparse import Namespace
|
|
2
2
|
from pathlib import Path
|
|
3
|
+
|
|
3
4
|
from rich.console import Console
|
|
4
|
-
from rich.tree import Tree
|
|
5
5
|
from rich.style import Style
|
|
6
|
+
from rich.tree import Tree
|
|
6
7
|
|
|
7
|
-
from
|
|
8
|
-
from .
|
|
9
|
-
from
|
|
10
|
-
from
|
|
8
|
+
from ..plugin.flow import FlowBase
|
|
9
|
+
from ..pyedaa.attributes import UsedIn
|
|
10
|
+
from ..pyedaa.fileset import FileSet
|
|
11
|
+
from ..pyedaa.project import Project
|
|
11
12
|
|
|
12
13
|
|
|
13
|
-
@FlowFactory.register('info')
|
|
14
14
|
class Info(FlowBase):
|
|
15
15
|
|
|
16
16
|
def __init__(self, name, args: Namespace, project: Project, builddir: Path):
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from pprint import pprint
|
|
2
|
-
from simplhdl
|
|
3
|
-
from
|
|
4
|
-
from
|
|
2
|
+
from ..simplhdl import Simplhdl
|
|
3
|
+
from ..plugin.flow import FlowBase, FlowError
|
|
4
|
+
from ..utils import chdir
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
@FlowFactory.register('run')
|
|
8
7
|
class Run(FlowBase):
|
|
9
8
|
|
|
10
9
|
@classmethod
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
import re
|
|
3
2
|
import os
|
|
4
|
-
|
|
5
|
-
from packaging.version import Version
|
|
3
|
+
import re
|
|
6
4
|
from importlib.metadata import version
|
|
7
5
|
from pathlib import Path
|
|
8
|
-
from typing import
|
|
6
|
+
from typing import Dict, Optional
|
|
9
7
|
|
|
10
|
-
from .
|
|
8
|
+
from packaging.version import Version
|
|
9
|
+
|
|
10
|
+
from .plugin.flow import FlowError
|
|
11
|
+
from .pyedaa import (
|
|
12
|
+
CocotbPythonFile,
|
|
13
|
+
SystemVerilogSourceFile,
|
|
14
|
+
VerilogIncludeFile,
|
|
15
|
+
VerilogSourceFile,
|
|
16
|
+
VHDLSourceFile,
|
|
17
|
+
)
|
|
11
18
|
from .pyedaa.project import Project
|
|
12
|
-
from .
|
|
13
|
-
from .flow import FlowError
|
|
19
|
+
from .utils import sh
|
|
14
20
|
|
|
15
21
|
logger = logging.getLogger(__name__)
|
|
16
22
|
|
|
@@ -2,11 +2,11 @@ import logging
|
|
|
2
2
|
|
|
3
3
|
from argparse import Namespace
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Dict, Set
|
|
6
6
|
from abc import ABCMeta, abstractmethod
|
|
7
7
|
from enum import Flag, auto
|
|
8
8
|
|
|
9
|
-
from
|
|
9
|
+
from ..pyedaa.project import Project
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class FlowBase(metaclass=ABCMeta):
|
|
@@ -69,15 +69,10 @@ class FlowFactory:
|
|
|
69
69
|
registry: Dict[str, FlowBase] = dict()
|
|
70
70
|
|
|
71
71
|
@classmethod
|
|
72
|
-
def register(cls, name: str) ->
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
raise Exception(f"Flow {name} already exists.")
|
|
77
|
-
cls.registry[name] = wrapped_class
|
|
78
|
-
return wrapped_class
|
|
79
|
-
|
|
80
|
-
return inner_wrapper
|
|
72
|
+
def register(cls, name: str, _class: FlowBase) -> None:
|
|
73
|
+
if name in cls.registry:
|
|
74
|
+
raise Exception(f"Flow {name} already exists.")
|
|
75
|
+
cls.registry[name] = _class
|
|
81
76
|
|
|
82
77
|
@classmethod
|
|
83
78
|
def get_flow(cls, name: str, args: Namespace, project: Project, builddir: Path) -> 'FlowBase':
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from argparse import Namespace
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Dict, Generator
|
|
4
4
|
from abc import ABCMeta, abstractmethod
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from ..pyedaa.project import Project
|
|
7
7
|
from .flow import FlowCategory
|
|
8
8
|
|
|
9
9
|
|
|
@@ -38,15 +38,10 @@ class GeneratorFactory:
|
|
|
38
38
|
registry: Dict[str, GeneratorBase] = dict()
|
|
39
39
|
|
|
40
40
|
@classmethod
|
|
41
|
-
def register(cls, name: str) ->
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
raise Exception(f"Generator {name} already exists.")
|
|
46
|
-
cls.registry[name] = wrapped_class
|
|
47
|
-
return wrapped_class
|
|
48
|
-
|
|
49
|
-
return inner_wrapper
|
|
41
|
+
def register(cls, name: str, _class: GeneratorBase) -> None:
|
|
42
|
+
if name in cls.registry:
|
|
43
|
+
raise Exception(f"Generator {name} already exists.")
|
|
44
|
+
cls.registry[name] = _class
|
|
50
45
|
|
|
51
46
|
@classmethod
|
|
52
47
|
def get_generator(
|
{simplhdl-0.7.2/src/simplhdl/flows → simplhdl-0.8.2/src/simplhdl/plugin}/implementationflow.py
RENAMED
|
@@ -3,8 +3,8 @@ import logging
|
|
|
3
3
|
from argparse import Namespace
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
6
|
+
from .flow import FlowBase, FlowCategory
|
|
7
|
+
from ..pyedaa.project import Project
|
|
8
8
|
|
|
9
9
|
logger = logging.getLogger(__name__)
|
|
10
10
|
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
try:
|
|
4
|
+
from importlib.metadata import EntryPoint, entry_points
|
|
5
|
+
except ImportError:
|
|
6
|
+
from importlib_metadata import EntryPoint, entry_points
|
|
7
|
+
|
|
8
|
+
from typing import Iterator
|
|
9
|
+
|
|
10
|
+
from ..cli.info import Info
|
|
11
|
+
from ..cli.run import Run
|
|
12
|
+
from .flow import FlowBase, FlowFactory
|
|
13
|
+
from .generator import GeneratorBase, GeneratorFactory
|
|
14
|
+
from .parser import ParserBase, ParserFactory
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def get_external_plugins(group_name: str) -> Iterator[EntryPoint]:
|
|
20
|
+
"""
|
|
21
|
+
Retrieves all EntryPoint objects registered under a specific group name.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
group_name: The string identifying the entry point group
|
|
25
|
+
(e.g., 'simplhdl.plugins').
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
An iterator of EntryPoint objects.
|
|
29
|
+
"""
|
|
30
|
+
try:
|
|
31
|
+
# Use importlib.metadata to find registered entry points
|
|
32
|
+
plugins = entry_points(group=group_name)
|
|
33
|
+
except TypeError:
|
|
34
|
+
# Fallback for older versions of Python that might not support the 'group' argument
|
|
35
|
+
# This requires iterating through all entry points and filtering manually.
|
|
36
|
+
all_entries = entry_points()
|
|
37
|
+
# Note: entry_points() returns a dictionary-like object in Python < 3.10
|
|
38
|
+
plugins = all_entries.get(group_name, [])
|
|
39
|
+
|
|
40
|
+
return plugins
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def load_external_plugins() -> None:
|
|
44
|
+
"""
|
|
45
|
+
Loads external plugins.
|
|
46
|
+
"""
|
|
47
|
+
for plugin in get_external_plugins("simplhdl.plugins"):
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
# 1. Load the class/function explicitly
|
|
51
|
+
PluginClass = plugin.load()
|
|
52
|
+
|
|
53
|
+
# 2. Check if the class inherits from the expected base (GeneratorBase)
|
|
54
|
+
# You might need to import GeneratorBase here for the check.
|
|
55
|
+
if not issubclass(PluginClass, (ParserBase, GeneratorBase, FlowBase)):
|
|
56
|
+
logger.warning(f"Plugin {plugin.name} is not a valid ParserBase, GeneratorBase, FlowBase.")
|
|
57
|
+
continue
|
|
58
|
+
|
|
59
|
+
if issubclass(PluginClass, ParserBase):
|
|
60
|
+
ParserFactory.register(plugin.name, PluginClass)
|
|
61
|
+
logger.debug(f"Registered external parser: {plugin.name}")
|
|
62
|
+
|
|
63
|
+
if issubclass(PluginClass, GeneratorBase):
|
|
64
|
+
GeneratorFactory.register(plugin.name, PluginClass)
|
|
65
|
+
logger.debug(f"Registered external generator: {plugin.name}")
|
|
66
|
+
|
|
67
|
+
if issubclass(PluginClass, FlowBase):
|
|
68
|
+
FlowFactory.register(plugin.name, PluginClass)
|
|
69
|
+
logger.debug(f"Registered external flow: {plugin.name}")
|
|
70
|
+
|
|
71
|
+
except Exception as e:
|
|
72
|
+
logger.error(f"Failed to load or register plugin {plugin.name}: {e}")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def load_plugins() -> None:
|
|
76
|
+
"""
|
|
77
|
+
Loads all plugins, both builtin and external.
|
|
78
|
+
"""
|
|
79
|
+
FlowFactory.register('info', Info)
|
|
80
|
+
FlowFactory.register('run', Run)
|
|
81
|
+
load_external_plugins()
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import logging
|
|
2
4
|
|
|
3
5
|
from pathlib import Path
|
|
4
|
-
from typing import Callable
|
|
5
6
|
from abc import ABCMeta, abstractmethod
|
|
6
7
|
from argparse import Namespace
|
|
7
8
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
9
|
+
from ..pyedaa.fileset import FileSet
|
|
10
|
+
from ..pyedaa.project import Project
|
|
10
11
|
|
|
11
12
|
logger = logging.getLogger(__name__)
|
|
12
13
|
|
|
@@ -21,7 +22,7 @@ class ParserBase(metaclass=ABCMeta):
|
|
|
21
22
|
pass
|
|
22
23
|
|
|
23
24
|
@abstractmethod
|
|
24
|
-
def parse(self, filename: Path, project: Project, args: Namespace) ->
|
|
25
|
+
def parse(self, filename: Path, project: Project, args: Namespace) -> FileSet:
|
|
25
26
|
pass
|
|
26
27
|
|
|
27
28
|
|
|
@@ -32,7 +33,7 @@ class NoParser(ParserBase):
|
|
|
32
33
|
def is_valid_format(self, filename: Path) -> bool:
|
|
33
34
|
return True
|
|
34
35
|
|
|
35
|
-
def parse(self, filename: Path, project: Project, args: Namespace) ->
|
|
36
|
+
def parse(self, filename: Path, project: Project, args: Namespace) -> FileSet:
|
|
36
37
|
return FileSet('Empty')
|
|
37
38
|
|
|
38
39
|
|
|
@@ -44,19 +45,13 @@ class ParserFactory:
|
|
|
44
45
|
registry: dict = {}
|
|
45
46
|
|
|
46
47
|
@classmethod
|
|
47
|
-
def register(cls) ->
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if name in cls.registry:
|
|
52
|
-
raise Exception(f"Parser {name} already exists.")
|
|
53
|
-
cls.registry[name] = wrapped_class
|
|
54
|
-
return wrapped_class
|
|
55
|
-
|
|
56
|
-
return inner_wrapper
|
|
48
|
+
def register(cls, name: str, _class: ParserBase) -> None:
|
|
49
|
+
if name in cls.registry:
|
|
50
|
+
raise Exception(f"Parser {name} already exists.")
|
|
51
|
+
cls.registry[name] = _class
|
|
57
52
|
|
|
58
53
|
@classmethod
|
|
59
|
-
def get_parser(cls, filename: Path) ->
|
|
54
|
+
def get_parser(cls, filename: Path) -> ParserBase:
|
|
60
55
|
for parser_class in cls.registry.values():
|
|
61
56
|
parser = parser_class()
|
|
62
57
|
if parser.is_valid_format(filename):
|
|
@@ -2,25 +2,35 @@ try:
|
|
|
2
2
|
from importlib.resources import files as resources_files
|
|
3
3
|
except ImportError:
|
|
4
4
|
from importlib_resources import files as resources_files
|
|
5
|
-
import os
|
|
6
5
|
import logging
|
|
6
|
+
import os
|
|
7
7
|
import shutil
|
|
8
|
-
|
|
9
|
-
from typing import Callable, Generator, List, Dict, Tuple, Any
|
|
10
|
-
from jinja2 import Environment, FileSystemLoader
|
|
11
8
|
from argparse import Namespace
|
|
12
9
|
from pathlib import Path
|
|
10
|
+
from typing import Any, Callable, Dict, Generator, List, Tuple
|
|
13
11
|
|
|
14
|
-
from
|
|
15
|
-
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
from jinja2 import Environment, FileSystemLoader
|
|
13
|
+
|
|
14
|
+
from ..cocotb import Cocotb
|
|
15
|
+
from ..pyedaa import (
|
|
16
|
+
File,
|
|
17
|
+
MemoryInitFile,
|
|
18
|
+
SystemVerilogSourceFile,
|
|
19
|
+
VerilogIncludeFile,
|
|
20
|
+
VerilogSourceFile,
|
|
21
|
+
VHDLSourceFile,
|
|
22
|
+
)
|
|
23
|
+
from ..pyedaa.attributes import UsedIn
|
|
24
|
+
from ..pyedaa.fileset import FileSet
|
|
25
|
+
from ..pyedaa.project import Project
|
|
26
|
+
from ..utils import (
|
|
27
|
+
append_suffix,
|
|
28
|
+
generate_from_template,
|
|
29
|
+
md5check,
|
|
30
|
+
md5sum,
|
|
31
|
+
md5write,
|
|
22
32
|
)
|
|
23
|
-
from
|
|
33
|
+
from .flow import FlowBase, FlowCategory, FlowError
|
|
24
34
|
|
|
25
35
|
logger = logging.getLogger(__name__)
|
|
26
36
|
|
|
@@ -6,9 +6,9 @@ from argparse import Namespace
|
|
|
6
6
|
from .pyedaa.project import Project
|
|
7
7
|
from .pyedaa.design import Design
|
|
8
8
|
from .pyedaa.vhdllibrary import VHDLLibrary
|
|
9
|
-
from .parser import ParserFactory
|
|
10
|
-
from .flow import FlowFactory
|
|
11
|
-
from .generator import GeneratorFactory
|
|
9
|
+
from .plugin.parser import ParserFactory
|
|
10
|
+
from .plugin.flow import FlowFactory
|
|
11
|
+
from .plugin.generator import GeneratorFactory
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|