SimplHDL 0.5.3__tar.gz → 0.5.4__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.3 → simplhdl-0.5.4}/PKG-INFO +1 -1
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/PKG-INFO +1 -1
- simplhdl-0.5.4/src/simplhdl/__init__.py +1 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/modelsim/modelsimflow.py +17 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/quartusexport/quartusexportflow.py +1 -1
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/questasim/questasimflow.py +14 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generators/ipxact.py +6 -1
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generators/spd.py +33 -24
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/__init__.py +10 -1
- simplhdl-0.5.3/src/simplhdl/__init__.py +0 -1
- {simplhdl-0.5.3 → simplhdl-0.5.4}/.github/workflows/publish.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/.gitignore +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/.readthedocs.yaml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/LICENSE +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/README.md +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/_static/simplhdl_dark.png +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/_static/simplhdl_light.png +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/_static/simplhdl_light_1.png +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/conf.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/drawing.svg +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/ghdl.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/icarus.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/quartus.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/questasim.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/vcs.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/vivado.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows/xsim.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/flows.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/index.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/intel-ips.md +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/introduction.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/plugins.rst +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/docs/requirements.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/adder.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/hdl/adder.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/sim/testbench.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/sim/testbench.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/syn/build.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/syn/placement.xdc +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/syn/timing.xdc +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/adder/syn/top.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/alu.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/hdl/add.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/hdl/alu.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/hdl/mul.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/hdl/sub.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/agent.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/aluif.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/driver.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/monitor.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/sequenceitem.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/alu_vip/sequencer.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/clock_vip/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/clock_vip/agent.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/clock_vip/clockif.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/pyuvm.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/test/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/test/env.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/test/seq_lib.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/test/test.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/pyuvm/testbench.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/agent.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/driver.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/env.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/monitor.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/alu_vip/sequence_item.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/add_seq.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/base_seq.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/tb_env.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/tb_env.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/test/base_test.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/tb_env/test/test_add.svh +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/testbench/alu_if.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/testbench/testbench.sv +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/testbench/testbench.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/sim/uvm/testcases/test_add/test_add.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/syn/build.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/syn/placement.xdc +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/alu/syn/timing.xdc +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/hello/build.sbt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/hello/hello.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/hello/src/main/scala/Hello.scala +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/hdl/hello/syn/build.yml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/plugins/simple_parser/setup.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/plugins/simple_parser/src/simple_parser/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/examples/plugins/simple_parser/src/simple_parser/simple_parser.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/pyproject.toml +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/setup.cfg +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/SOURCES.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/dependency_links.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/entry_points.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/requires.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/SimplHDL.egg-info/top_level.txt +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/__main__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/cocotb.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/encrypt/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/encrypt/encryptflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/flake8/flake8flow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/implementationflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/lint/lintflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/modelsim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/quartusdse/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/quartusdse/quartusdseflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/quartusexport/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/quartusflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/questasim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/rivierapro/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/rivierapro/rivieraproflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/simulationflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/vcs/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/vcs/vcsflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/verible/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/verible/veribleflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/vivadoflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/vsg/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/vsg/vsgflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/xsim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/flows/xsim/xsimflow.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generator.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generators/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generators/chisel.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/generators/systemrdl.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/info.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/parser.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/parsers/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/parsers/fusesocparser.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/parsers/simplhdlparser.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/plugins.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/attributes.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/design.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/fileset.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/filetypes.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/project.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/target.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/pyedaa/vhdllibrary.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/repo.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/flake8/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/flake8/setup.cfg.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/Makefile.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/files.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/fileset.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/project.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/modelsim/run.do.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/quartus/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/quartus/project.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/quartus/run.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/modelsim.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/project.qrun.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/visualizer.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/vsim-run.do.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/Makefile.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/files.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/fileset.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/rivierapro/project.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/Makefile.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/files.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/fileset.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/pli.tab.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/project.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/synopsys_sim.setup.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vcs/vcs.parameters.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/verible/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/verible/rules.cfg.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vivado/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vivado/launch_run.sh.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vivado/project.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vivado/run.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vivado/steps.tcl.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vsg/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vsg/files.json.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/vsg/rules.yml.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/Makefile.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/__init__.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/cocotb.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/dependencies.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/files.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/fileset.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/xsim/project.mk.j2 +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/run.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/simplhdl.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/tools.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/utils.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/tests/test_dummy.py +0 -0
- {simplhdl-0.5.3 → simplhdl-0.5.4}/tox.ini +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.4"
|
|
@@ -6,6 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
from typing import Any, List, Dict, Optional
|
|
7
7
|
from argparse import Namespace
|
|
8
8
|
from jinja2 import Template
|
|
9
|
+
from simplhdl.pyedaa import ModelsimIniFile
|
|
9
10
|
from simplhdl.pyedaa.project import Project
|
|
10
11
|
from simplhdl.pyedaa.fileset import FileSet
|
|
11
12
|
from simplhdl.utils import sh, escape
|
|
@@ -225,6 +226,22 @@ class ModelSimFlow(SimulationFlow):
|
|
|
225
226
|
library = ''
|
|
226
227
|
return library
|
|
227
228
|
|
|
229
|
+
def generate(self):
|
|
230
|
+
super().generate()
|
|
231
|
+
self.copy_modelsim_ini()
|
|
232
|
+
|
|
233
|
+
def copy_modelsim_ini(self):
|
|
234
|
+
files = list(self.project.DefaultDesign.Files(ModelsimIniFile))
|
|
235
|
+
if len(files) > 1:
|
|
236
|
+
logger.warning("Multiple modelsim.ini files found in project. Only the first file will be used.")
|
|
237
|
+
for i, file in enumerate(reversed(files)):
|
|
238
|
+
if i > 0:
|
|
239
|
+
logger.warning(f"ignore {file.Path}")
|
|
240
|
+
else:
|
|
241
|
+
logger.debug(f"Copy {file.Path} to {self.builddir}")
|
|
242
|
+
logger.info(f"Use {file.Path}")
|
|
243
|
+
shutil.copy(file.Path.absolute(), self.builddir.absolute())
|
|
244
|
+
|
|
228
245
|
def execute(self, step: str) -> None:
|
|
229
246
|
self.run_hooks('pre')
|
|
230
247
|
|
|
@@ -108,7 +108,7 @@ class QuartusExportFlow(ImplementationFlow):
|
|
|
108
108
|
shutil.rmtree(self.builddir.joinpath('dni'))
|
|
109
109
|
shutil.rmtree(self.builddir.joinpath('qdb'))
|
|
110
110
|
os.remove(self.builddir.joinpath('project.tcl'))
|
|
111
|
-
except FileNotFoundError
|
|
111
|
+
except FileNotFoundError:
|
|
112
112
|
pass
|
|
113
113
|
|
|
114
114
|
def archive_project(self) -> None:
|
|
@@ -14,6 +14,7 @@ from typing import Any, List, Dict, Optional
|
|
|
14
14
|
from argparse import Namespace
|
|
15
15
|
from jinja2 import Template
|
|
16
16
|
from simplhdl.pyedaa.project import Project
|
|
17
|
+
from simplhdl.pyedaa import ModelsimIniFile
|
|
17
18
|
from simplhdl.utils import sh, escape
|
|
18
19
|
from simplhdl.flow import FlowFactory, FlowTools
|
|
19
20
|
from simplhdl.info import Info
|
|
@@ -348,6 +349,18 @@ class QuestaSimFlow(SimulationFlow):
|
|
|
348
349
|
logger.warning("Visualizer is not setup correctly")
|
|
349
350
|
return False
|
|
350
351
|
|
|
352
|
+
def copy_modelsim_ini(self):
|
|
353
|
+
files = list(self.project.DefaultDesign.Files(ModelsimIniFile))
|
|
354
|
+
if len(files) > 1:
|
|
355
|
+
logger.warning("Multiple modelsim.ini files found in project. Only the first file will be used.")
|
|
356
|
+
for i, file in enumerate(reversed(files)):
|
|
357
|
+
if i > 0:
|
|
358
|
+
logger.warning(f"ignore {file.Path}")
|
|
359
|
+
else:
|
|
360
|
+
logger.debug(f"Copy {file.Path} to {self.builddir}")
|
|
361
|
+
logger.info(f"Use {file.Path}")
|
|
362
|
+
shutil.copy(file.Path.absolute(), self.builddir.absolute())
|
|
363
|
+
|
|
351
364
|
def generate(self):
|
|
352
365
|
templatedir = resources_files(self.templates)
|
|
353
366
|
env = Environment(
|
|
@@ -362,6 +375,7 @@ class QuestaSimFlow(SimulationFlow):
|
|
|
362
375
|
for template in templates:
|
|
363
376
|
generate_from_template(template, self.builddir, self.get_globals())
|
|
364
377
|
self.copy_memory_files()
|
|
378
|
+
self.copy_modelsim_ini()
|
|
365
379
|
|
|
366
380
|
def get_qrun_version(self) -> float:
|
|
367
381
|
output = sh(['qrun', '-version'], self.builddir)
|
|
@@ -10,7 +10,9 @@ from zipfile import ZipFile
|
|
|
10
10
|
from ..generator import GeneratorFactory, GeneratorBase
|
|
11
11
|
from ..utils import md5write, md5check
|
|
12
12
|
from ..flow import FlowBase, FlowCategory
|
|
13
|
+
from ..pyedaa import SIMULATION
|
|
13
14
|
from ..pyedaa.fileset import FileSet
|
|
15
|
+
from ..pyedaa.attributes import UsedIn
|
|
14
16
|
from ..pyedaa.vhdllibrary import VHDLLibrary
|
|
15
17
|
from ..pyedaa import (
|
|
16
18
|
File, SystemVerilogSourceFile, TCLSourceFile, ConstraintFile, HDLSourceFile,
|
|
@@ -198,7 +200,10 @@ class VivadoIP(GeneratorBase):
|
|
|
198
200
|
def run(self, flow: FlowBase):
|
|
199
201
|
if flow.category == FlowCategory.SIMULATION:
|
|
200
202
|
os.makedirs(self.builddir, exist_ok=True)
|
|
201
|
-
|
|
203
|
+
ipfiles = list(self.project.DefaultDesign.DefaultFileSet.Files(fileType=VivadoIPSpecificationFile))
|
|
204
|
+
ipfiles = [f for f in ipfiles if SIMULATION in f[UsedIn]]
|
|
205
|
+
|
|
206
|
+
for ipfile in ipfiles:
|
|
202
207
|
newipfile = self.unpack_ip(ipfile)
|
|
203
208
|
files = self.get_files(newipfile.Path)
|
|
204
209
|
last_lib = ''
|
|
@@ -23,6 +23,7 @@ from simplhdl.pyedaa import (
|
|
|
23
23
|
QuartusQSYSCompressedSpecificationFile,
|
|
24
24
|
QuartusQIPSpecificationFile
|
|
25
25
|
)
|
|
26
|
+
from simplhdl.pyedaa import SIMULATION, IMPLEMENTATION
|
|
26
27
|
from simplhdl.pyedaa.fileset import FileSet
|
|
27
28
|
from simplhdl.pyedaa.attributes import UsedIn
|
|
28
29
|
from simplhdl.flow import FlowBase, FlowCategory, FlowTools
|
|
@@ -183,34 +184,42 @@ class QuartusIP(GeneratorBase):
|
|
|
183
184
|
filename._path = dest.with_suffix('.ip').absolute()
|
|
184
185
|
return filename
|
|
185
186
|
|
|
186
|
-
def run(self, flow: FlowBase) -> None:
|
|
187
|
+
def run(self, flow: FlowBase) -> None: # noqa: C901
|
|
187
188
|
seen = dict()
|
|
188
189
|
self.flow = flow
|
|
189
190
|
ip_dir = self.builddir.joinpath('ips')
|
|
190
191
|
qsys_dir = self.builddir.joinpath('qsys')
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if
|
|
194
|
-
for
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
192
|
+
all_files = list(self.project.DefaultDesign.DefaultFileSet.Files(fileType=QuartusIPSpecificationFile))
|
|
193
|
+
|
|
194
|
+
if flow.category == FlowCategory.SIMULATION:
|
|
195
|
+
files = [f for f in all_files if SIMULATION in f[UsedIn]]
|
|
196
|
+
elif flow.category == FlowCategory.IMPLEMENTATION:
|
|
197
|
+
files = [f for f in all_files if IMPLEMENTATION in f[UsedIn]]
|
|
198
|
+
elif flow.category == FlowCategory.DEFAULT:
|
|
199
|
+
return
|
|
200
|
+
else:
|
|
201
|
+
files = all_files
|
|
202
|
+
|
|
203
|
+
for file in files:
|
|
204
|
+
# The second time we see a file it is already proccessed and we just
|
|
205
|
+
# Update the file path
|
|
206
|
+
fileid = str(file.Path.resolve())
|
|
207
|
+
if fileid in seen:
|
|
208
|
+
file._path = seen.get(fileid)._path
|
|
209
|
+
continue
|
|
210
|
+
if file.FileType == QuartusQIPSpecificationFile:
|
|
211
|
+
continue
|
|
212
|
+
elif file.FileType == QuartusIPCompressedSpecificationFile:
|
|
213
|
+
file = unpack_ipfile(file, ip_dir)
|
|
214
|
+
elif file.FileType == QuartusIPSpecificationFile:
|
|
215
|
+
file = copy_ipfile(file, ip_dir)
|
|
216
|
+
elif file.FileType == QuartusQSYSCompressedSpecificationFile:
|
|
217
|
+
file = unpack_qsysfile(file, qsys_dir)
|
|
218
|
+
elif file.FileType == QuartusQSYSSpecificationFile:
|
|
219
|
+
file = copy_qsysfile(file, qsys_dir)
|
|
220
|
+
parse_file(file, flow, self.project.DefaultDesign.DefaultFileSet.VHDLLibrary)
|
|
221
|
+
# register the file as seen
|
|
222
|
+
seen[fileid] = file
|
|
214
223
|
|
|
215
224
|
|
|
216
225
|
def parse_qsys(filename: QuartusQSYSSpecificationFile) -> List[File]:
|
|
@@ -102,7 +102,9 @@ class TCLSourceFile(pm.TCLSourceFile):
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
class IPSpecificationFile(File, pm.XMLContent):
|
|
105
|
-
|
|
105
|
+
def _registerAttributes(self):
|
|
106
|
+
super()._registerAttributes()
|
|
107
|
+
FileMixIn._registerAttributes(self)
|
|
106
108
|
|
|
107
109
|
|
|
108
110
|
class NetlistFile(pm.NetlistFile, FileMixIn):
|
|
@@ -204,3 +206,10 @@ class MemoryInitFile(File):
|
|
|
204
206
|
def _registerAttributes(self):
|
|
205
207
|
super()._registerAttributes()
|
|
206
208
|
FileMixIn._registerAttributes(self)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
class ModelsimIniFile(File):
|
|
212
|
+
def _registerAttributes(self):
|
|
213
|
+
super()._registerAttributes()
|
|
214
|
+
FileMixIn._registerAttributes(self)
|
|
215
|
+
self[UsedIn] = {SIMULATION}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.5.3"
|
|
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.3 → simplhdl-0.5.4}/examples/plugins/simple_parser/src/simple_parser/__init__.py
RENAMED
|
File without changes
|
{simplhdl-0.5.3 → simplhdl-0.5.4}/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
|
|
File without changes
|
|
File without changes
|
{simplhdl-0.5.3 → simplhdl-0.5.4}/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.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/modelsim.tcl.j2
RENAMED
|
File without changes
|
{simplhdl-0.5.3 → simplhdl-0.5.4}/src/simplhdl/resources/templates/questasim/project.qrun.j2
RENAMED
|
File without changes
|
{simplhdl-0.5.3 → simplhdl-0.5.4}/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.3 → simplhdl-0.5.4}/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.3 → simplhdl-0.5.4}/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
|
|
File without changes
|