SimplHDL 0.2.0__tar.gz → 0.2.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.
Files changed (196) hide show
  1. {simplhdl-0.2.0 → simplhdl-0.2.2}/PKG-INFO +1 -1
  2. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/PKG-INFO +1 -1
  3. simplhdl-0.2.2/src/simplhdl/__init__.py +1 -0
  4. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/quartusflow.py +4 -1
  5. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/questasim/questasimflow.py +1 -0
  6. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/simulationflow.py +4 -2
  7. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generators/spd.py +29 -3
  8. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/__init__.py +8 -0
  9. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/design.py +2 -1
  10. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/fileset.py +15 -1
  11. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/quartus/project.tcl.j2 +4 -1
  12. simplhdl-0.2.0/src/simplhdl/__init__.py +0 -1
  13. {simplhdl-0.2.0 → simplhdl-0.2.2}/.github/workflows/publish.yml +0 -0
  14. {simplhdl-0.2.0 → simplhdl-0.2.2}/.gitignore +0 -0
  15. {simplhdl-0.2.0 → simplhdl-0.2.2}/.readthedocs.yaml +0 -0
  16. {simplhdl-0.2.0 → simplhdl-0.2.2}/LICENSE +0 -0
  17. {simplhdl-0.2.0 → simplhdl-0.2.2}/README.md +0 -0
  18. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/_static/simplhdl_dark.png +0 -0
  19. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/_static/simplhdl_light.png +0 -0
  20. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/_static/simplhdl_light_1.png +0 -0
  21. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/conf.py +0 -0
  22. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/drawing.svg +0 -0
  23. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/ghdl.rst +0 -0
  24. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/icarus.rst +0 -0
  25. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/quartus.rst +0 -0
  26. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/questasim.rst +0 -0
  27. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/vcs.rst +0 -0
  28. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/vivado.rst +0 -0
  29. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows/xsim.rst +0 -0
  30. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/flows.rst +0 -0
  31. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/index.rst +0 -0
  32. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/intel-ips.md +0 -0
  33. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/introduction.rst +0 -0
  34. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/plugins.rst +0 -0
  35. {simplhdl-0.2.0 → simplhdl-0.2.2}/docs/requirements.txt +0 -0
  36. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/adder.yml +0 -0
  37. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/hdl/adder.sv +0 -0
  38. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/sim/testbench.sv +0 -0
  39. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/sim/testbench.yml +0 -0
  40. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/syn/build.yml +0 -0
  41. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/syn/placement.xdc +0 -0
  42. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/syn/timing.xdc +0 -0
  43. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/adder/syn/top.sv +0 -0
  44. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/alu.yml +0 -0
  45. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/hdl/add.sv +0 -0
  46. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/hdl/alu.sv +0 -0
  47. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/hdl/mul.sv +0 -0
  48. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/hdl/sub.sv +0 -0
  49. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/__init__.py +0 -0
  50. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/agent.py +0 -0
  51. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/aluif.py +0 -0
  52. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/driver.py +0 -0
  53. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/monitor.py +0 -0
  54. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/sequenceitem.py +0 -0
  55. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/alu_vip/sequencer.py +0 -0
  56. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/clock_vip/__init__.py +0 -0
  57. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/clock_vip/agent.py +0 -0
  58. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/clock_vip/clockif.py +0 -0
  59. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/pyuvm.yml +0 -0
  60. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/test/__init__.py +0 -0
  61. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/test/env.py +0 -0
  62. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/test/seq_lib.py +0 -0
  63. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/test/test.py +0 -0
  64. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/pyuvm/testbench.py +0 -0
  65. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/agent.svh +0 -0
  66. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.sv +0 -0
  67. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/alu_vip.yml +0 -0
  68. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/driver.svh +0 -0
  69. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/env.svh +0 -0
  70. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/monitor.svh +0 -0
  71. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/alu_vip/sequence_item.svh +0 -0
  72. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/add_seq.svh +0 -0
  73. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/seq_lib/base_seq.svh +0 -0
  74. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/tb_env.sv +0 -0
  75. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/tb_env.yml +0 -0
  76. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/test/base_test.svh +0 -0
  77. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/tb_env/test/test_add.svh +0 -0
  78. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/testbench/alu_if.sv +0 -0
  79. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/testbench/testbench.sv +0 -0
  80. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/testbench/testbench.yml +0 -0
  81. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/sim/uvm/testcases/test_add/test_add.yml +0 -0
  82. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/syn/build.yml +0 -0
  83. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/syn/placement.xdc +0 -0
  84. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/alu/syn/timing.xdc +0 -0
  85. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/hello/build.sbt +0 -0
  86. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/hello/hello.yml +0 -0
  87. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/hello/src/main/scala/Hello.scala +0 -0
  88. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/hdl/hello/syn/build.yml +0 -0
  89. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/plugins/simple_parser/setup.py +0 -0
  90. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/plugins/simple_parser/src/simple_parser/__init__.py +0 -0
  91. {simplhdl-0.2.0 → simplhdl-0.2.2}/examples/plugins/simple_parser/src/simple_parser/simple_parser.py +0 -0
  92. {simplhdl-0.2.0 → simplhdl-0.2.2}/pyproject.toml +0 -0
  93. {simplhdl-0.2.0 → simplhdl-0.2.2}/setup.cfg +0 -0
  94. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/SOURCES.txt +0 -0
  95. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/dependency_links.txt +0 -0
  96. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/entry_points.txt +0 -0
  97. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/requires.txt +0 -0
  98. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/SimplHDL.egg-info/top_level.txt +0 -0
  99. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/__main__.py +0 -0
  100. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/cocotb.py +0 -0
  101. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flow.py +0 -0
  102. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/__init__.py +0 -0
  103. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/flake8/flake8flow.py +0 -0
  104. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/implementationflow.py +0 -0
  105. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/lint/lintflow.py +0 -0
  106. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/modelsim/__init__.py +0 -0
  107. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/modelsim/modelsimflow.py +0 -0
  108. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/quartusdse/__init__.py +0 -0
  109. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/quartusdse/quartusdseflow.py +0 -0
  110. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/questasim/__init__.py +0 -0
  111. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/rivierapro/__init__.py +0 -0
  112. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/rivierapro/rivieraproflow.py +0 -0
  113. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/vcs/__init__.py +0 -0
  114. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/vcs/vcsflow.py +0 -0
  115. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/verible/__init__.py +0 -0
  116. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/verible/veribleflow.py +0 -0
  117. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/vivadoflow.py +0 -0
  118. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/vsg/__init__.py +0 -0
  119. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/vsg/vsgflow.py +0 -0
  120. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/xsim/__init__.py +0 -0
  121. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/flows/xsim/xsimflow.py +0 -0
  122. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generator.py +0 -0
  123. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generators/__init__.py +0 -0
  124. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generators/chisel.py +0 -0
  125. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generators/ipxact.py +0 -0
  126. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/generators/systemrdl.py +0 -0
  127. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/info.py +0 -0
  128. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/parser.py +0 -0
  129. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/parsers/__init__.py +0 -0
  130. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/parsers/fusesocparser.py +0 -0
  131. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/parsers/simplhdlparser.py +0 -0
  132. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/plugins.py +0 -0
  133. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/attributes.py +0 -0
  134. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/filetypes.py +0 -0
  135. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/project.py +0 -0
  136. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/pyedaa/vhdllibrary.py +0 -0
  137. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/repo.py +0 -0
  138. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/__init__.py +0 -0
  139. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/__init__.py +0 -0
  140. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/flake8/__init__.py +0 -0
  141. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/flake8/setup.cfg.j2 +0 -0
  142. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/Makefile.j2 +0 -0
  143. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/__init__.py +0 -0
  144. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/cocotb.mk.j2 +0 -0
  145. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/dependencies.mk.j2 +0 -0
  146. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/files.j2 +0 -0
  147. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/fileset.j2 +0 -0
  148. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/modelsim.tcl.j2 +0 -0
  149. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/project.mk.j2 +0 -0
  150. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/modelsim/run.do.j2 +0 -0
  151. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/quartus/__init__.py +0 -0
  152. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/quartus/run.tcl.j2 +0 -0
  153. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/questasim/__init__.py +0 -0
  154. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/questasim/modelsim.tcl.j2 +0 -0
  155. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/questasim/project.qrun.j2 +0 -0
  156. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/questasim/visualizer.tcl.j2 +0 -0
  157. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/questasim/vsim-run.do.j2 +0 -0
  158. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/Makefile.j2 +0 -0
  159. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/__init__.py +0 -0
  160. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/cocotb.mk.j2 +0 -0
  161. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/dependencies.mk.j2 +0 -0
  162. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/files.j2 +0 -0
  163. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/fileset.j2 +0 -0
  164. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/rivierapro/project.mk.j2 +0 -0
  165. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/Makefile.j2 +0 -0
  166. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/__init__.py +0 -0
  167. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/cocotb.mk.j2 +0 -0
  168. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/dependencies.mk.j2 +0 -0
  169. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/files.j2 +0 -0
  170. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/fileset.j2 +0 -0
  171. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/pli.tab.j2 +0 -0
  172. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/project.mk.j2 +0 -0
  173. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/synopsys_sim.setup.j2 +0 -0
  174. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vcs/vcs.parameters.j2 +0 -0
  175. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/verible/__init__.py +0 -0
  176. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/verible/rules.cfg.j2 +0 -0
  177. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vivado/__init__.py +0 -0
  178. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vivado/launch_run.sh.j2 +0 -0
  179. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vivado/project.tcl.j2 +0 -0
  180. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vivado/run.tcl.j2 +0 -0
  181. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vivado/steps.tcl.j2 +0 -0
  182. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vsg/__init__.py +0 -0
  183. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vsg/files.json.j2 +0 -0
  184. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/vsg/rules.yml.j2 +0 -0
  185. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/Makefile.j2 +0 -0
  186. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/__init__.py +0 -0
  187. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/cocotb.mk.j2 +0 -0
  188. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/dependencies.mk.j2 +0 -0
  189. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/files.j2 +0 -0
  190. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/fileset.j2 +0 -0
  191. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/resources/templates/xsim/project.mk.j2 +0 -0
  192. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/simplhdl.py +0 -0
  193. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/tools.py +0 -0
  194. {simplhdl-0.2.0 → simplhdl-0.2.2}/src/simplhdl/utils.py +0 -0
  195. {simplhdl-0.2.0 → simplhdl-0.2.2}/tests/test_dummy.py +0 -0
  196. {simplhdl-0.2.0 → simplhdl-0.2.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SimplHDL
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A framework for simulating and implementing HDL designs
5
5
  Author-email: Rasmus Grøndahl Olsen <simplhdl@gmail.com>
6
6
  Maintainer-email: Rasmus Grøndahl Olsen <simplhdl@gmail.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SimplHDL
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A framework for simulating and implementing HDL designs
5
5
  Author-email: Rasmus Grøndahl Olsen <simplhdl@gmail.com>
6
6
  Maintainer-email: Rasmus Grøndahl Olsen <simplhdl@gmail.com>
@@ -0,0 +1 @@
1
+ __version__ = "0.2.2"
@@ -17,7 +17,8 @@ from ..utils import sh, generate_from_template
17
17
  from ..pyedaa import (QuartusIPSpecificationFile, VerilogIncludeFile, VerilogSourceFile,
18
18
  SystemVerilogSourceFile, VHDLSourceFile, ConstraintFile,
19
19
  EDIFNetlistFile, NetlistFile, SettingFile, QuartusSignalTapFile,
20
- QuartusIniFile, QuartusQIPSpecificationFile, QuartusQSYSSpecificationFile)
20
+ QuartusIniFile, QuartusQIPSpecificationFile, QuartusQSYSSpecificationFile,
21
+ HDLSearchPath, VerilogIncludeSearchPath)
21
22
  from ..pyedaa.project import Project
22
23
  from ..pyedaa.attributes import UsedIn
23
24
 
@@ -97,6 +98,8 @@ class QuartusFlow(ImplementationFlow):
97
98
  template = environment.get_template('project.tcl.j2')
98
99
  project_updated = generate_from_template(
99
100
  template, self.builddir,
101
+ HDLSearchPath=HDLSearchPath,
102
+ VerilogIncludeSearchPath=VerilogIncludeSearchPath,
100
103
  VerilogIncludeFile=VerilogIncludeFile,
101
104
  VerilogSourceFile=VerilogSourceFile,
102
105
  SystemVerilogSourceFile=SystemVerilogSourceFile,
@@ -346,6 +346,7 @@ class QuestaSimFlow(SimulationFlow):
346
346
  ]
347
347
  for template in templates:
348
348
  generate_from_template(template, self.builddir, self.get_globals())
349
+ self.copy_memory_files()
349
350
 
350
351
  def get_qrun_version(self) -> float:
351
352
  output = sh(['qrun', '-version'], self.builddir)
@@ -56,6 +56,8 @@ class SimulationFlow(FlowBase):
56
56
  os.environ['MODULE'] = self.cocotb.module()
57
57
 
58
58
  def get_globals(self) -> Dict[str, Any]:
59
+ incdirs = self.project.DefaultDesign.DefaultFileSet.IncludeDirs(usedin='simulation', isrecursive=True)
60
+ incdirpaths = {f.Path.absolute() for f in incdirs}
59
61
  globals = dict()
60
62
  globals['libraries'] = (list(self.project.DefaultDesign.VHDLLibraries.values()))
61
63
  globals['external_libraries'] = list(self.project.DefaultDesign.ExternalVHDLLibraries.values())
@@ -65,7 +67,7 @@ class SimulationFlow(FlowBase):
65
67
  globals['cocotbtop'] = self.cocotb.top
66
68
  globals['cocotbhdltype'] = self.cocotb.duttype
67
69
  globals['cocotbdut'] = self.cocotb.dut
68
- globals['incdirs'] = {f.Path.parent for f in self.project.DefaultDesign.DefaultFileSet.Files(VerilogIncludeFile)} # noqa E501
70
+ globals['incdirs'] = incdirpaths
69
71
  globals['VerilogSourceFile'] = VerilogSourceFile
70
72
  globals['SystemVerilogSourceFile'] = SystemVerilogSourceFile
71
73
  globals['VHDLSourceFile'] = VHDLSourceFile
@@ -139,7 +141,7 @@ class SimulationFlow(FlowBase):
139
141
  hashfile=self.hashfile.name)
140
142
  template = environment.get_template('fileset.j2')
141
143
  output = base.with_suffix('.fileset')
142
- includes = {f.Path.parent.absolute() for f in files if isinstance(f, VerilogIncludeFile)}
144
+ includes = self.get_globals()['incdirs']
143
145
  files = [f.Path.absolute() for f in files if not isinstance(f, VerilogIncludeFile)]
144
146
  generate_from_template(template, output, args=args, includes=includes, files=files)
145
147
  generated.append(output)
@@ -170,11 +170,13 @@ class QuartusIP(GeneratorBase):
170
170
 
171
171
  return filename
172
172
 
173
- def run(self, flow: FlowBase):
173
+ def run(self, flow: FlowBase) -> None:
174
174
  os.makedirs(self.builddir, exist_ok=True)
175
- for ipfile in self.project.DefaultDesign.DefaultFileSet.Files(fileType=QuartusIPSpecificationFile):
175
+ ipfiles = list(self.project.DefaultDesign.DefaultFileSet.Files(fileType=QuartusIPSpecificationFile))
176
+ ipfiles = filter_duplicated_files(ipfiles)
177
+ for ipfile in ipfiles:
176
178
  if ipfile.FileType == QuartusQIPSpecificationFile:
177
- return
179
+ continue
178
180
  newipfile = self.unpack_ip(ipfile)
179
181
  if flow.category == FlowCategory.SIMULATION:
180
182
  spd = Spd(newipfile.Path, flow)
@@ -183,3 +185,27 @@ class QuartusIP(GeneratorBase):
183
185
  # Add fileset to parent, then set parent to fileset to make a chain
184
186
  parent._fileSets[fileset.Name] = fileset
185
187
  parent = fileset
188
+
189
+
190
+ def filter_duplicated_files(files: List[File]) -> List[File]:
191
+ """
192
+ Filter out duplicated files from a list of files. If a file appears more than once,
193
+ the last one will override the previous ones.
194
+
195
+ Args:
196
+ files (List[File]): The list of files to filter.
197
+
198
+ Returns:
199
+ List[File]: A list of unique files.
200
+
201
+ Example:
202
+ >>> filter_duplicated_files([File('/path1/file1'), File('/path2/file1'), File('/path/file2')]
203
+ [File('/other/path/to/file1'), File('/path/to/file2')]
204
+ """
205
+ unique_files = set(files)
206
+ filtered_files = dict()
207
+ for file in unique_files:
208
+ if file.Path.name in filtered_files:
209
+ logger.warning(f"Duplicate files - {file.Path} will override {filtered_files[file.Path.name].Path}")
210
+ filtered_files[file.Path.name] = file
211
+ return list(filtered_files.values())
@@ -34,6 +34,10 @@ class HDLIncludeFile(SourceFile):
34
34
  pass
35
35
 
36
36
 
37
+ class HDLSearchPath(HDLIncludeFile):
38
+ pass
39
+
40
+
37
41
  class HDLSourceFile(pm.HDLSourceFile, FileMixIn):
38
42
  _library: HDLLibrary
39
43
 
@@ -60,6 +64,10 @@ class HDLSourceFile(pm.HDLSourceFile, FileMixIn):
60
64
  self._library = value
61
65
 
62
66
 
67
+ class VerilogIncludeSearchPath(HDLSearchPath):
68
+ pass
69
+
70
+
63
71
  class VerilogIncludeFile(HDLIncludeFile, pm.HumanReadableContent):
64
72
  pass
65
73
 
@@ -64,5 +64,6 @@ class Design(pm.Design):
64
64
  def VHDLLibraries(self) -> Dict[str, VHDLLibrary]:
65
65
  libraries = dict()
66
66
  libraries.update(self._vhdlLibraries)
67
- libraries.update(self.DefaultFileSet.VHDLLibraries)
67
+ if self.DefaultFileSet:
68
+ libraries.update(self.DefaultFileSet.VHDLLibraries)
68
69
  return libraries
@@ -1,6 +1,6 @@
1
1
  import pyEDAA.ProjectModel as pm # type: ignore
2
2
  from simplhdl.pyedaa.attributes import UsedIn
3
- from simplhdl.pyedaa import File
3
+ from simplhdl.pyedaa import File, HDLSearchPath, VerilogIncludeSearchPath, VerilogIncludeFile
4
4
 
5
5
  from typing import Dict, Generator, List, Optional
6
6
 
@@ -73,3 +73,17 @@ class FileSet(pm.FileSet):
73
73
  for fileset in self.FileSets.values():
74
74
  dependencies += fileset.Dependencies(usedin=usedin, isrecursive=True)
75
75
  return dependencies
76
+
77
+ def IncludeDirs(self, usedin: Optional[str] = None, isrecursive: bool = False) -> List[HDLSearchPath]:
78
+ dirs = list()
79
+ if isrecursive:
80
+ for _, fileset in self.FileSets.items():
81
+ dirs += fileset.IncludeDirs(usedin=usedin, isrecursive=True)
82
+ if usedin:
83
+ items = [i for i in self._files if usedin in i[UsedIn]]
84
+ for item in items:
85
+ if isinstance(item, VerilogIncludeFile):
86
+ dirs.append(VerilogIncludeSearchPath(item.Path.parent.absolute()))
87
+ elif isinstance(item, HDLSearchPath):
88
+ dirs.append(HDLSearchPath(item.Path.parent.absolute()))
89
+ return dirs
@@ -12,8 +12,11 @@ set_parameter -name {{generic}} {{value}}
12
12
  set_global_assignment -name VERILOG_MACRO "{{define}}={{value}}"
13
13
  {% endfor %}
14
14
  {% for file in project.DefaultDesign.Files() if 'implementation' in file[UsedIn] %}
15
- {% if file.FileType == VerilogIncludeFile %}
15
+ {% if file.FileType == HDLSearchPath %}
16
+ set_global_assignment -name SEARCH_PATH "{{file.Path}}"
17
+ {% elif file.FileType == VerilogIncludeFile %}
16
18
  set_global_assignment -name VERILOG_INCLUDE_FILE "{{file.Path}}"
19
+ set_global_assignment -name SEARCH_PATH "{{file.Path.parent}}"
17
20
  {% elif file.FileType == SystemVerilogSourceFile %}
18
21
  set_global_assignment -library {{file.Library}} -name SYSTEMVERILOG_FILE "{{file.Path}}"
19
22
  {% elif file.FileType == VerilogSourceFile %}
@@ -1 +0,0 @@
1
- __version__ = "0.2.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes