SimplHDL 0.5.4__tar.gz → 0.5.5__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.5.4 → simplhdl-0.5.5}/PKG-INFO +1 -1
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/PKG-INFO +1 -1
- simplhdl-0.5.5/src/simplhdl/__init__.py +1 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/__main__.py +14 -2
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/cocotb.py +4 -4
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flow.py +7 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/flake8/flake8flow.py +1 -1
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/verible/veribleflow.py +7 -4
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/vsg/vsgflow.py +5 -2
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generators/spd.py +3 -3
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/design.py +5 -4
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/utils.py +2 -2
- simplhdl-0.5.4/src/simplhdl/__init__.py +0 -1
- {simplhdl-0.5.4 → simplhdl-0.5.5}/.github/workflows/publish.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/.gitignore +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/.readthedocs.yaml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/LICENSE +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/README.md +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/_static/simplhdl_dark.png +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/_static/simplhdl_light.png +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/_static/simplhdl_light_1.png +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/conf.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/drawing.svg +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/ghdl.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/icarus.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/quartus.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/questasim.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/vcs.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/vivado.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows/xsim.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/flows.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/index.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/intel-ips.md +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/introduction.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/plugins.rst +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/docs/requirements.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/adder.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/hdl/adder.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/sim/testbench.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/sim/testbench.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/syn/build.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/syn/placement.xdc +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/syn/timing.xdc +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/adder/syn/top.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/alu.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/hdl/add.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/hdl/alu.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/hdl/mul.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/hdl/sub.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/agent.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/aluif.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/driver.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/monitor.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/sequenceitem.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/alu_vip/sequencer.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/clock_vip/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/clock_vip/agent.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/clock_vip/clockif.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/pyuvm.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/test/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/test/env.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/test/seq_lib.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/test/test.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/pyuvm/testbench.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/agent.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/driver.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/env.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/monitor.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/alu_vip/sequence_item.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/add_seq.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/base_seq.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/tb_env.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/tb_env.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/test/base_test.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/tb_env/test/test_add.svh +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/testbench/alu_if.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/testbench/testbench.sv +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/testbench/testbench.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/sim/uvm/testcases/test_add/test_add.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/syn/build.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/syn/placement.xdc +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/alu/syn/timing.xdc +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/hello/build.sbt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/hello/hello.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/hello/src/main/scala/Hello.scala +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/hdl/hello/syn/build.yml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/plugins/simple_parser/setup.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/plugins/simple_parser/src/simple_parser/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/examples/plugins/simple_parser/src/simple_parser/simple_parser.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/pyproject.toml +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/setup.cfg +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/SOURCES.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/dependency_links.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/entry_points.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/requires.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/SimplHDL.egg-info/top_level.txt +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/encrypt/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/encrypt/encryptflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/implementationflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/lint/lintflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/modelsim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/modelsim/modelsimflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/quartusdse/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/quartusdse/quartusdseflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/quartusexport/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/quartusexport/quartusexportflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/quartusflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/questasim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/questasim/questasimflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/rivierapro/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/rivierapro/rivieraproflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/simulationflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/vcs/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/vcs/vcsflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/verible/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/vivadoflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/vsg/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/xsim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/flows/xsim/xsimflow.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generator.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generators/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generators/chisel.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generators/ipxact.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/generators/systemrdl.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/info.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/parser.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/parsers/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/parsers/fusesocparser.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/parsers/simplhdlparser.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/plugins.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/attributes.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/fileset.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/filetypes.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/project.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/target.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/pyedaa/vhdllibrary.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/repo.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/flake8/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/flake8/setup.cfg.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/Makefile.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/files.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/fileset.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/project.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/run.do.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/quartus/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/quartus/project.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/quartus/run.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/project.qrun.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/visualizer.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/vsim-run.do.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/Makefile.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/files.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/fileset.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/project.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/Makefile.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/files.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/fileset.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/pli.tab.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/project.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/synopsys_sim.setup.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/vcs.parameters.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/verible/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/verible/rules.cfg.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vivado/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vivado/launch_run.sh.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vivado/project.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vivado/run.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vivado/steps.tcl.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vsg/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vsg/files.json.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vsg/rules.yml.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/Makefile.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/__init__.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/files.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/fileset.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/xsim/project.mk.j2 +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/run.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/simplhdl.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/tools.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/tests/test_dummy.py +0 -0
- {simplhdl-0.5.4 → simplhdl-0.5.5}/tox.ini +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.5"
|
|
@@ -5,8 +5,9 @@ import logging
|
|
|
5
5
|
import traceback
|
|
6
6
|
|
|
7
7
|
from typing import Sequence
|
|
8
|
-
|
|
9
8
|
from pathlib import Path
|
|
9
|
+
from rich.logging import RichHandler
|
|
10
|
+
|
|
10
11
|
from . import __version__
|
|
11
12
|
from .simplhdl import Simplhdl
|
|
12
13
|
from .plugins import load_plugins
|
|
@@ -67,7 +68,18 @@ def main():
|
|
|
67
68
|
args = parse_arguments()
|
|
68
69
|
levels = [logging.INFO, logging.DEBUG, logging.NOTSET]
|
|
69
70
|
level = levels[min(args.verbose, len(levels)-1)]
|
|
70
|
-
logging.
|
|
71
|
+
if level < logging.INFO:
|
|
72
|
+
show_path = True
|
|
73
|
+
else:
|
|
74
|
+
show_path = False
|
|
75
|
+
|
|
76
|
+
FORMAT = "[simplhdl.%(module)s] - %(message)s"
|
|
77
|
+
console = RichHandler(level=level, show_time=False, rich_tracebacks=True, show_path=show_path)
|
|
78
|
+
logging.basicConfig(
|
|
79
|
+
level=5,
|
|
80
|
+
format=FORMAT,
|
|
81
|
+
handlers=[console]
|
|
82
|
+
)
|
|
71
83
|
simpl = Simplhdl(args)
|
|
72
84
|
simpl.run()
|
|
73
85
|
except (NotImplementedError, FileNotFoundError, CalledShError,
|
|
@@ -41,7 +41,7 @@ class Cocotb:
|
|
|
41
41
|
return None
|
|
42
42
|
set_ = set()
|
|
43
43
|
try:
|
|
44
|
-
modules = self.project.DefaultDesign.
|
|
44
|
+
modules = self.project.DefaultDesign.TopLevel.split()
|
|
45
45
|
except AttributeError:
|
|
46
46
|
raise FlowError("No top levels found")
|
|
47
47
|
|
|
@@ -58,14 +58,14 @@ class Cocotb:
|
|
|
58
58
|
|
|
59
59
|
def hdltoplevels(self) -> str:
|
|
60
60
|
tops = []
|
|
61
|
-
for t in self.project.DefaultDesign.
|
|
61
|
+
for t in self.project.DefaultDesign.TopLevel.split():
|
|
62
62
|
if t != self.top:
|
|
63
63
|
tops.append(t)
|
|
64
64
|
return ' '.join(tops)
|
|
65
65
|
|
|
66
66
|
def get_dut(self) -> str:
|
|
67
67
|
try:
|
|
68
|
-
for top in self.project.DefaultDesign.
|
|
68
|
+
for top in self.project.DefaultDesign.TopLevel.split():
|
|
69
69
|
if top != self.top:
|
|
70
70
|
return top
|
|
71
71
|
except AttributeError:
|
|
@@ -97,7 +97,7 @@ class Cocotb:
|
|
|
97
97
|
with open(file.Path, 'r', errors='replace') as f:
|
|
98
98
|
lines = f.readlines()
|
|
99
99
|
for line in lines:
|
|
100
|
-
if re.search(rf'^\s*module\s+{name}(\s
|
|
100
|
+
if re.search(rf'^\s*module\s+{name}(\s+|#\(|\(|;|$)', line):
|
|
101
101
|
if file.Library.Name == lib:
|
|
102
102
|
logger.info(f"Cocotb dut '{self.dut}' is Verilog")
|
|
103
103
|
return VerilogSourceFile
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
1
3
|
from argparse import Namespace
|
|
2
4
|
from pathlib import Path
|
|
3
5
|
from typing import Callable, Dict, Set
|
|
@@ -16,6 +18,11 @@ class FlowBase(metaclass=ABCMeta):
|
|
|
16
18
|
self.builddir: Path = builddir
|
|
17
19
|
self.category: FlowCategory = FlowCategory.DEFAULT
|
|
18
20
|
self.tools: Set = set()
|
|
21
|
+
self.builddir.mkdir(parents=True, exist_ok=True)
|
|
22
|
+
file = logging.FileHandler(self.builddir.joinpath('simplhdl.log'), mode='w')
|
|
23
|
+
file.setLevel(logging.NOTSET)
|
|
24
|
+
file.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s:%(filename)s:%(lineno)d - %(message)s'))
|
|
25
|
+
logging.getLogger().addHandler(file)
|
|
19
26
|
|
|
20
27
|
@classmethod
|
|
21
28
|
@abstractmethod
|
|
@@ -49,7 +49,7 @@ class Flake8Flow(FlowBase):
|
|
|
49
49
|
self.files = [f.Path for f in self.project.DefaultDesign.DefaultFileSet.Files(PythonSourceFile)]
|
|
50
50
|
|
|
51
51
|
def generate(self):
|
|
52
|
-
config = os.getenv('
|
|
52
|
+
config = os.getenv('SIMPLHDL_FLAKE8_CONFIG')
|
|
53
53
|
if config:
|
|
54
54
|
shutil.copy(config, self.builddir.joinpath('setup.cfg'))
|
|
55
55
|
else:
|
|
@@ -8,7 +8,7 @@ from argparse import Namespace
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from jinja2 import Environment, FileSystemLoader
|
|
10
10
|
|
|
11
|
-
from simplhdl.flow import FlowFactory, FlowBase
|
|
11
|
+
from simplhdl.flow import FlowFactory, FlowBase, FlowError
|
|
12
12
|
from simplhdl.resources.templates import verible as templates
|
|
13
13
|
from simplhdl.utils import sh, CalledShError, generate_from_template
|
|
14
14
|
from simplhdl.pyedaa import VerilogIncludeFile, VerilogSourceFile, SystemVerilogSourceFile
|
|
@@ -51,8 +51,11 @@ class VeribleFlow(FlowBase):
|
|
|
51
51
|
def generate(self):
|
|
52
52
|
if self.args.rules:
|
|
53
53
|
self.rules = self.args.rules
|
|
54
|
-
elif os.getenv('
|
|
55
|
-
|
|
54
|
+
elif os.getenv('SIMPLHDL_VERIBLE_CONFIG'):
|
|
55
|
+
rules = os.getenv('SIMPLHDL_VERIBLE_CONFIG')
|
|
56
|
+
if not Path(rules).exists():
|
|
57
|
+
raise FlowError(f"Rules file {rules} does not exist")
|
|
58
|
+
self.rules = rules
|
|
56
59
|
else:
|
|
57
60
|
templatedir = resources_files(self.templates)
|
|
58
61
|
environment = Environment(
|
|
@@ -67,7 +70,7 @@ class VeribleFlow(FlowBase):
|
|
|
67
70
|
command = [
|
|
68
71
|
"verible-verilog-lint",
|
|
69
72
|
"--check_syntax=false",
|
|
70
|
-
"--ruleset=
|
|
73
|
+
"--ruleset=none",
|
|
71
74
|
"--rules_config", self.rules
|
|
72
75
|
]
|
|
73
76
|
|
|
@@ -74,8 +74,11 @@ class VsgFlow(FlowBase):
|
|
|
74
74
|
UsedIn=UsedIn)
|
|
75
75
|
if self.args.rules:
|
|
76
76
|
self.rules = self.args.rules
|
|
77
|
-
elif os.getenv('
|
|
78
|
-
|
|
77
|
+
elif os.getenv('SIMPLHDL_VSG_CONFIG'):
|
|
78
|
+
rules = os.getenv('SIMPLHDL_VSG_CONFIG')
|
|
79
|
+
if not Path(rules).exists():
|
|
80
|
+
raise FlowError(f"Rules file {rules} does not exist")
|
|
81
|
+
self.rules = rules
|
|
79
82
|
else:
|
|
80
83
|
template = environment.get_template('rules.yml.j2')
|
|
81
84
|
generate_from_template(template, self.builddir)
|
|
@@ -290,14 +290,14 @@ def copy_ipfile(file: QuartusIPSpecificationFile, dest: Path) -> QuartusIPSpecif
|
|
|
290
290
|
destfile = dest.joinpath(file.Path.name)
|
|
291
291
|
if srcdir.exists():
|
|
292
292
|
if not md5file.exists() or not md5check(file.Path, srcdir, filename=md5file):
|
|
293
|
-
logger.
|
|
294
|
-
logger.
|
|
293
|
+
logger.debug(f"Copy {file.Path} to {destfile}")
|
|
294
|
+
logger.debug(f"Copy {srcdir} to {destdir}")
|
|
295
295
|
copy(str(file.Path), str(destfile))
|
|
296
296
|
copytree(str(srcdir), str(destdir), dirs_exist_ok=True)
|
|
297
297
|
md5write(file.Path, srcdir, filename=md5file)
|
|
298
298
|
else:
|
|
299
299
|
if not md5file.exists() or not md5check(file.Path, filename=md5file):
|
|
300
|
-
logger.
|
|
300
|
+
logger.debug(f"Copy {file.Path} to {destfile}")
|
|
301
301
|
rmtree(destdir, ignore_errors=True)
|
|
302
302
|
copy(str(file.Path), str(destfile))
|
|
303
303
|
md5write(file.Path, filename=md5file)
|
|
@@ -39,15 +39,16 @@ class Design(pm.Design):
|
|
|
39
39
|
@property
|
|
40
40
|
def TopLevel(self) -> str:
|
|
41
41
|
"""Property setting or returning the fileset's toplevel."""
|
|
42
|
-
top =
|
|
42
|
+
top = list()
|
|
43
43
|
if self._topLevel is not None:
|
|
44
44
|
for t in self._topLevel.split():
|
|
45
|
-
top.
|
|
45
|
+
top.append(t)
|
|
46
46
|
for fileset in self._fileSets.values():
|
|
47
47
|
if fileset.TopLevel is not None:
|
|
48
48
|
for t in fileset.TopLevel.split():
|
|
49
|
-
top.
|
|
50
|
-
|
|
49
|
+
top.append(t)
|
|
50
|
+
# remove duplicates without changing the order
|
|
51
|
+
return ' '.join(list(dict.fromkeys(top)))
|
|
51
52
|
|
|
52
53
|
@TopLevel.setter
|
|
53
54
|
def TopLevel(self, value: str) -> None:
|
|
@@ -17,7 +17,7 @@ class CalledShError(Exception):
|
|
|
17
17
|
pass
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
def sh(command: List[str], cwd: Optional[Path] = None, output=False, shell=False, env=None):
|
|
20
|
+
def sh(command: List[str], cwd: Optional[Path] = None, output=False, shell=False, env=None, indent=2):
|
|
21
21
|
if os.name == 'nt':
|
|
22
22
|
shell = True
|
|
23
23
|
|
|
@@ -26,7 +26,7 @@ def sh(command: List[str], cwd: Optional[Path] = None, output=False, shell=False
|
|
|
26
26
|
if output:
|
|
27
27
|
stdout: str = ''
|
|
28
28
|
for line in p.stdout:
|
|
29
|
-
sys.stdout.buffer.write(line)
|
|
29
|
+
sys.stdout.buffer.write(b' '*indent + line)
|
|
30
30
|
sys.stdout.buffer.flush()
|
|
31
31
|
stdout += line.decode()
|
|
32
32
|
_, stderr = p.communicate()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.5.4"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/examples/plugins/simple_parser/src/simple_parser/__init__.py
RENAMED
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/examples/plugins/simple_parser/src/simple_parser/simple_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/modelsim/dependencies.mk.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/modelsim.tcl.j2
RENAMED
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/project.qrun.j2
RENAMED
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/questasim/visualizer.tcl.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/rivierapro/dependencies.mk.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.4 → simplhdl-0.5.5}/src/simplhdl/resources/templates/vcs/synopsys_sim.setup.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|