SimplHDL 0.8.2__tar.gz → 0.10.1__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 (175) hide show
  1. {simplhdl-0.8.2/src/SimplHDL.egg-info → simplhdl-0.10.1}/PKG-INFO +71 -68
  2. simplhdl-0.10.1/README.md +105 -0
  3. simplhdl-0.10.1/pyproject.toml +128 -0
  4. simplhdl-0.10.1/src/simplhdl/__init__.py +6 -0
  5. simplhdl-0.10.1/src/simplhdl/__main__.py +52 -0
  6. simplhdl-0.10.1/src/simplhdl/cli/arguments.py +38 -0
  7. simplhdl-0.10.1/src/simplhdl/cli/info.py +220 -0
  8. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/cli/run.py +12 -17
  9. simplhdl-0.10.1/src/simplhdl/cocotb.py +192 -0
  10. simplhdl-0.10.1/src/simplhdl/plugin/__init__.py +5 -0
  11. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/plugin/flow.py +7 -6
  12. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/plugin/generator.py +6 -22
  13. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/plugin/implementationflow.py +3 -2
  14. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/plugin/loader.py +2 -3
  15. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/plugin/parser.py +8 -6
  16. simplhdl-0.10.1/src/simplhdl/plugin/simulationflow.py +231 -0
  17. simplhdl-0.10.1/src/simplhdl/project/attributes.py +64 -0
  18. simplhdl-0.10.1/src/simplhdl/project/base.py +68 -0
  19. simplhdl-0.10.1/src/simplhdl/project/design.py +141 -0
  20. simplhdl-0.10.1/src/simplhdl/project/files.py +446 -0
  21. simplhdl-0.10.1/src/simplhdl/project/fileset.py +220 -0
  22. simplhdl-0.10.1/src/simplhdl/project/project.py +150 -0
  23. simplhdl-0.10.1/src/simplhdl/simplhdl.py +52 -0
  24. simplhdl-0.10.1/src/simplhdl/tools.py +16 -0
  25. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl/utils.py +27 -13
  26. {simplhdl-0.8.2 → simplhdl-0.10.1/src/simplhdl.egg-info}/PKG-INFO +71 -68
  27. {simplhdl-0.8.2/src/SimplHDL.egg-info → simplhdl-0.10.1/src/simplhdl.egg-info}/SOURCES.txt +17 -17
  28. {simplhdl-0.8.2/src/SimplHDL.egg-info → simplhdl-0.10.1/src/simplhdl.egg-info}/entry_points.txt +2 -2
  29. simplhdl-0.10.1/src/simplhdl.egg-info/requires.txt +30 -0
  30. simplhdl-0.10.1/src/simplhdl_chisel/chisel.py +44 -0
  31. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_encrypt/encrypt/encryptflow.py +36 -43
  32. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_fusesocparser/fusesocparser.py +8 -8
  33. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/flake8/flake8flow.py +17 -19
  34. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/lint/lintflow.py +17 -12
  35. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/resources/templates/verible/rules.cfg.j2 +1 -1
  36. simplhdl-0.10.1/src/simplhdl_lint/resources/templates/vsg/files.json.j2 +7 -0
  37. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/verible/veribleflow.py +22 -27
  38. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/vsg/vsgflow.py +22 -36
  39. simplhdl-0.10.1/src/simplhdl_modelsim/modelsim/modelsimflow.py +298 -0
  40. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/cocotb.mk.j2 +10 -3
  41. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/project.mk.j2 +6 -7
  42. simplhdl-0.10.1/src/simplhdl_parser/simplhdlparser.py +117 -0
  43. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_peakrdl/systemrdl.py +73 -73
  44. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_quartus/quartusdse/quartusdseflow.py +21 -26
  45. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_quartus/quartusexport/quartusexportflow.py +70 -71
  46. simplhdl-0.10.1/src/simplhdl_quartus/quartusflow.py +155 -0
  47. simplhdl-0.10.1/src/simplhdl_quartus/resources/templates/quartus/project.tcl.j2 +67 -0
  48. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_quartus/resources/templates/quartus/run.tcl.j2 +1 -1
  49. simplhdl-0.10.1/src/simplhdl_quartus/spd.py +412 -0
  50. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_questasim/questasim/questasimflow.py +129 -152
  51. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_questasim/resources/templates/questasim/modelsim.tcl.j2 +0 -1
  52. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_questasim/resources/templates/questasim/project.qrun.j2 +6 -9
  53. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/cocotb.mk.j2 +6 -3
  54. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/project.mk.j2 +7 -8
  55. simplhdl-0.10.1/src/simplhdl_rivierapro/rivierapro/rivieraproflow.py +241 -0
  56. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/project.mk.j2 +1 -1
  57. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/synopsys_sim.setup.j2 +2 -2
  58. simplhdl-0.10.1/src/simplhdl_vcs/vcs/vcsflow.py +236 -0
  59. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/ipxact.py +96 -91
  60. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/vivado/project.tcl.j2 +64 -42
  61. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/vivado/run.tcl.j2 +13 -1
  62. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/vivado/steps.tcl.j2 +3 -3
  63. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/project.mk.j2 +1 -1
  64. simplhdl-0.10.1/src/simplhdl_vivado/vivadoflow.py +153 -0
  65. simplhdl-0.10.1/src/simplhdl_vivado/xsim/xsimflow.py +209 -0
  66. simplhdl-0.10.1/tests/test_design.py +232 -0
  67. simplhdl-0.10.1/tests/test_files.py +158 -0
  68. simplhdl-0.10.1/tests/test_fileset.py +109 -0
  69. simplhdl-0.8.2/README.md +0 -112
  70. simplhdl-0.8.2/pyproject.toml +0 -95
  71. simplhdl-0.8.2/src/SimplHDL.egg-info/requires.txt +0 -18
  72. simplhdl-0.8.2/src/simplhdl/__init__.py +0 -5
  73. simplhdl-0.8.2/src/simplhdl/__main__.py +0 -95
  74. simplhdl-0.8.2/src/simplhdl/cli/info.py +0 -161
  75. simplhdl-0.8.2/src/simplhdl/cocotb.py +0 -181
  76. simplhdl-0.8.2/src/simplhdl/plugin/__init__.py +0 -5
  77. simplhdl-0.8.2/src/simplhdl/plugin/simulationflow.py +0 -226
  78. simplhdl-0.8.2/src/simplhdl/pyedaa/__init__.py +0 -256
  79. simplhdl-0.8.2/src/simplhdl/pyedaa/attributes.py +0 -21
  80. simplhdl-0.8.2/src/simplhdl/pyedaa/design.py +0 -90
  81. simplhdl-0.8.2/src/simplhdl/pyedaa/fileset.py +0 -89
  82. simplhdl-0.8.2/src/simplhdl/pyedaa/project.py +0 -197
  83. simplhdl-0.8.2/src/simplhdl/pyedaa/repo.py +0 -93
  84. simplhdl-0.8.2/src/simplhdl/pyedaa/target.py +0 -31
  85. simplhdl-0.8.2/src/simplhdl/pyedaa/vhdllibrary.py +0 -40
  86. simplhdl-0.8.2/src/simplhdl/simplhdl.py +0 -47
  87. simplhdl-0.8.2/src/simplhdl/tools.py +0 -17
  88. simplhdl-0.8.2/src/simplhdl_chisel/chisel.py +0 -44
  89. simplhdl-0.8.2/src/simplhdl_lint/resources/templates/vsg/files.json.j2 +0 -7
  90. simplhdl-0.8.2/src/simplhdl_modelsim/modelsim/modelsimflow.py +0 -307
  91. simplhdl-0.8.2/src/simplhdl_parser/simplhdlparser.py +0 -156
  92. simplhdl-0.8.2/src/simplhdl_quartus/quartusflow.py +0 -159
  93. simplhdl-0.8.2/src/simplhdl_quartus/resources/templates/quartus/project.tcl.j2 +0 -67
  94. simplhdl-0.8.2/src/simplhdl_quartus/spd.py +0 -398
  95. simplhdl-0.8.2/src/simplhdl_rivierapro/rivierapro/rivieraproflow.py +0 -263
  96. simplhdl-0.8.2/src/simplhdl_vcs/vcs/vcsflow.py +0 -248
  97. simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/vivado/launch_run.sh.j2 +0 -12
  98. simplhdl-0.8.2/src/simplhdl_vivado/vivadoflow.py +0 -159
  99. simplhdl-0.8.2/src/simplhdl_vivado/xsim/xsimflow.py +0 -221
  100. simplhdl-0.8.2/tests/test_dummy.py +0 -3
  101. {simplhdl-0.8.2 → simplhdl-0.10.1}/LICENSE +0 -0
  102. {simplhdl-0.8.2 → simplhdl-0.10.1}/setup.cfg +0 -0
  103. {simplhdl-0.8.2/src/simplhdl_encrypt → simplhdl-0.10.1/src/simplhdl/project}/__init__.py +0 -0
  104. {simplhdl-0.8.2/src/SimplHDL.egg-info → simplhdl-0.10.1/src/simplhdl.egg-info}/dependency_links.txt +0 -0
  105. {simplhdl-0.8.2/src/SimplHDL.egg-info → simplhdl-0.10.1/src/simplhdl.egg-info}/top_level.txt +0 -0
  106. {simplhdl-0.8.2/src/simplhdl_encrypt/encrypt → simplhdl-0.10.1/src/simplhdl_encrypt}/__init__.py +0 -0
  107. {simplhdl-0.8.2/src/simplhdl_fusesocparser → simplhdl-0.10.1/src/simplhdl_encrypt/encrypt}/__init__.py +0 -0
  108. {simplhdl-0.8.2/src/simplhdl_lint → simplhdl-0.10.1/src/simplhdl_fusesocparser}/__init__.py +0 -0
  109. {simplhdl-0.8.2/src/simplhdl_lint/resources → simplhdl-0.10.1/src/simplhdl_lint}/__init__.py +0 -0
  110. {simplhdl-0.8.2/src/simplhdl_lint/resources/templates → simplhdl-0.10.1/src/simplhdl_lint/resources}/__init__.py +0 -0
  111. {simplhdl-0.8.2/src/simplhdl_lint/resources/templates/flake8 → simplhdl-0.10.1/src/simplhdl_lint/resources/templates}/__init__.py +0 -0
  112. {simplhdl-0.8.2/src/simplhdl_lint/resources/templates/verible → simplhdl-0.10.1/src/simplhdl_lint/resources/templates/flake8}/__init__.py +0 -0
  113. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/resources/templates/flake8/setup.cfg.j2 +0 -0
  114. {simplhdl-0.8.2/src/simplhdl_lint/resources/templates/vsg → simplhdl-0.10.1/src/simplhdl_lint/resources/templates/verible}/__init__.py +0 -0
  115. {simplhdl-0.8.2/src/simplhdl_lint/verible → simplhdl-0.10.1/src/simplhdl_lint/resources/templates/vsg}/__init__.py +0 -0
  116. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_lint/resources/templates/vsg/rules.yml.j2 +0 -0
  117. {simplhdl-0.8.2/src/simplhdl_lint/vsg → simplhdl-0.10.1/src/simplhdl_lint/verible}/__init__.py +0 -0
  118. {simplhdl-0.8.2/src/simplhdl_modelsim → simplhdl-0.10.1/src/simplhdl_lint/vsg}/__init__.py +0 -0
  119. {simplhdl-0.8.2/src/simplhdl_modelsim/modelsim → simplhdl-0.10.1/src/simplhdl_modelsim}/__init__.py +0 -0
  120. {simplhdl-0.8.2/src/simplhdl_modelsim/resources → simplhdl-0.10.1/src/simplhdl_modelsim/modelsim}/__init__.py +0 -0
  121. {simplhdl-0.8.2/src/simplhdl_modelsim/resources/templates → simplhdl-0.10.1/src/simplhdl_modelsim/resources}/__init__.py +0 -0
  122. {simplhdl-0.8.2/src/simplhdl_modelsim/resources/templates/modelsim → simplhdl-0.10.1/src/simplhdl_modelsim/resources/templates}/__init__.py +0 -0
  123. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/Makefile.j2 +0 -0
  124. {simplhdl-0.8.2/src/simplhdl_parser → simplhdl-0.10.1/src/simplhdl_modelsim/resources/templates/modelsim}/__init__.py +0 -0
  125. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/dependencies.mk.j2 +0 -0
  126. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/files.j2 +0 -0
  127. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/fileset.j2 +0 -0
  128. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/modelsim.tcl.j2 +0 -0
  129. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_modelsim/resources/templates/modelsim/run.do.j2 +0 -0
  130. {simplhdl-0.8.2/src/simplhdl_peakrdl → simplhdl-0.10.1/src/simplhdl_parser}/__init__.py +0 -0
  131. {simplhdl-0.8.2/src/simplhdl_quartus/quartusdse → simplhdl-0.10.1/src/simplhdl_peakrdl}/__init__.py +0 -0
  132. {simplhdl-0.8.2/src/simplhdl_quartus/quartusexport → simplhdl-0.10.1/src/simplhdl_quartus/quartusdse}/__init__.py +0 -0
  133. {simplhdl-0.8.2/src/simplhdl_quartus/resources → simplhdl-0.10.1/src/simplhdl_quartus/quartusexport}/__init__.py +0 -0
  134. {simplhdl-0.8.2/src/simplhdl_quartus/resources/templates → simplhdl-0.10.1/src/simplhdl_quartus/resources}/__init__.py +0 -0
  135. {simplhdl-0.8.2/src/simplhdl_quartus/resources/templates/quartus → simplhdl-0.10.1/src/simplhdl_quartus/resources/templates}/__init__.py +0 -0
  136. {simplhdl-0.8.2/src/simplhdl_questasim/questasim → simplhdl-0.10.1/src/simplhdl_quartus/resources/templates/quartus}/__init__.py +0 -0
  137. {simplhdl-0.8.2/src/simplhdl_questasim/resources → simplhdl-0.10.1/src/simplhdl_questasim/questasim}/__init__.py +0 -0
  138. {simplhdl-0.8.2/src/simplhdl_questasim/resources/templates → simplhdl-0.10.1/src/simplhdl_questasim/resources}/__init__.py +0 -0
  139. {simplhdl-0.8.2/src/simplhdl_questasim/resources/templates/questasim → simplhdl-0.10.1/src/simplhdl_questasim/resources/templates}/__init__.py +0 -0
  140. {simplhdl-0.8.2/src/simplhdl_rivierapro → simplhdl-0.10.1/src/simplhdl_questasim/resources/templates/questasim}/__init__.py +0 -0
  141. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_questasim/resources/templates/questasim/visualizer.tcl.j2 +0 -0
  142. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_questasim/resources/templates/questasim/vsim-run.do.j2 +0 -0
  143. {simplhdl-0.8.2/src/simplhdl_rivierapro/resources → simplhdl-0.10.1/src/simplhdl_rivierapro}/__init__.py +0 -0
  144. {simplhdl-0.8.2/src/simplhdl_rivierapro/resources/templates → simplhdl-0.10.1/src/simplhdl_rivierapro/resources}/__init__.py +0 -0
  145. {simplhdl-0.8.2/src/simplhdl_rivierapro/resources/templates/rivierapro → simplhdl-0.10.1/src/simplhdl_rivierapro/resources/templates}/__init__.py +0 -0
  146. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/Makefile.j2 +0 -0
  147. {simplhdl-0.8.2/src/simplhdl_rivierapro → simplhdl-0.10.1/src/simplhdl_rivierapro/resources/templates}/rivierapro/__init__.py +0 -0
  148. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/dependencies.mk.j2 +0 -0
  149. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/files.j2 +0 -0
  150. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_rivierapro/resources/templates/rivierapro/fileset.j2 +0 -0
  151. {simplhdl-0.8.2/src/simplhdl_vcs → simplhdl-0.10.1/src/simplhdl_rivierapro/rivierapro}/__init__.py +0 -0
  152. {simplhdl-0.8.2/src/simplhdl_vcs/resources → simplhdl-0.10.1/src/simplhdl_vcs}/__init__.py +0 -0
  153. {simplhdl-0.8.2/src/simplhdl_vcs/resources/templates → simplhdl-0.10.1/src/simplhdl_vcs/resources}/__init__.py +0 -0
  154. {simplhdl-0.8.2/src/simplhdl_vcs/resources/templates/vcs → simplhdl-0.10.1/src/simplhdl_vcs/resources/templates}/__init__.py +0 -0
  155. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/Makefile.j2 +0 -0
  156. {simplhdl-0.8.2/src/simplhdl_vcs → simplhdl-0.10.1/src/simplhdl_vcs/resources/templates}/vcs/__init__.py +0 -0
  157. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/cocotb.mk.j2 +0 -0
  158. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/dependencies.mk.j2 +0 -0
  159. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/files.j2 +0 -0
  160. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/fileset.j2 +0 -0
  161. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/pli.tab.j2 +0 -0
  162. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/simv-run.do.j2 +0 -0
  163. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vcs/resources/templates/vcs/vcs.parameters.j2 +0 -0
  164. {simplhdl-0.8.2/src/simplhdl_vivado → simplhdl-0.10.1/src/simplhdl_vcs/vcs}/__init__.py +0 -0
  165. {simplhdl-0.8.2/src/simplhdl_vivado/resources → simplhdl-0.10.1/src/simplhdl_vivado}/__init__.py +0 -0
  166. {simplhdl-0.8.2/src/simplhdl_vivado/resources/templates → simplhdl-0.10.1/src/simplhdl_vivado/resources}/__init__.py +0 -0
  167. {simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/vivado → simplhdl-0.10.1/src/simplhdl_vivado/resources/templates}/__init__.py +0 -0
  168. {simplhdl-0.8.2/src/simplhdl_vivado/resources/templates/xsim → simplhdl-0.10.1/src/simplhdl_vivado/resources/templates/vivado}/__init__.py +0 -0
  169. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/Makefile.j2 +0 -0
  170. {simplhdl-0.8.2/src/simplhdl_vivado → simplhdl-0.10.1/src/simplhdl_vivado/resources/templates}/xsim/__init__.py +0 -0
  171. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/cocotb.mk.j2 +0 -0
  172. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/dependencies.mk.j2 +0 -0
  173. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/files.j2 +0 -0
  174. {simplhdl-0.8.2 → simplhdl-0.10.1}/src/simplhdl_vivado/resources/templates/xsim/fileset.j2 +0 -0
  175. /simplhdl-0.8.2/src/simplhdl/pyedaa/filetypes.py → /simplhdl-0.10.1/src/simplhdl_vivado/xsim/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
- Name: SimplHDL
3
- Version: 0.8.2
2
+ Name: simplhdl
3
+ Version: 0.10.1
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>
@@ -26,12 +26,15 @@ License: MIT License
26
26
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
27
  SOFTWARE.
28
28
 
29
- Project-URL: Homepage, https://github.com/SimplHDL
30
29
  Project-URL: Documentation, https://simplhdl.readthedocs.io/en/latest/
31
- Project-URL: Repository, https://github.com/SimplHDL/simplhdl.git
30
+ Project-URL: Homepage, https://github.com/SimplHDL
32
31
  Project-URL: Issues, https://github.com/SimplHDL/simplhdl/issues
32
+ Project-URL: Repository, https://github.com/SimplHDL/simplhdl.git
33
33
  Classifier: Development Status :: 4 - Beta
34
- Classifier: Programming Language :: Python :: 3
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Operating System :: OS Independent
37
+ Classifier: Programming Language :: Python :: 3 :: Only
35
38
  Classifier: Programming Language :: Python :: 3.8
36
39
  Classifier: Programming Language :: Python :: 3.9
37
40
  Classifier: Programming Language :: Python :: 3.10
@@ -39,92 +42,93 @@ Classifier: Programming Language :: Python :: 3.11
39
42
  Classifier: Programming Language :: Python :: 3.12
40
43
  Classifier: Programming Language :: Python :: 3.13
41
44
  Classifier: Programming Language :: Python :: 3.14
42
- Classifier: Intended Audience :: Developers
43
- Classifier: License :: OSI Approved :: MIT License
44
- Classifier: Operating System :: OS Independent
45
45
  Requires-Python: >=3.8
46
46
  Description-Content-Type: text/markdown
47
47
  License-File: LICENSE
48
- Requires-Dist: importlib-resources; python_version < "3.9"
49
- Requires-Dist: pySVModel==0.3.5
50
- Requires-Dist: pyEDAA.ProjectModel==0.4.3
51
- Requires-Dist: pyyaml
52
- Requires-Dist: types-PyYAML
53
48
  Requires-Dist: argcomplete
54
- Requires-Dist: jinja2
55
- Requires-Dist: GitPython
56
- Requires-Dist: rich
57
- Requires-Dist: vsg
58
- Requires-Dist: flake8
59
49
  Requires-Dist: black
60
- Requires-Dist: systemrdl-compiler
50
+ Requires-Dist: flake8
51
+ Requires-Dist: gitpython
52
+ Requires-Dist: importlib-resources; python_version < "3.9"
53
+ Requires-Dist: jinja2
54
+ Requires-Dist: matplotlib
55
+ Requires-Dist: networkx
61
56
  Requires-Dist: peakrdl-html
62
- Requires-Dist: peakrdl-regblock>=1.2.0
63
57
  Requires-Dist: peakrdl-pyuvm
58
+ Requires-Dist: peakrdl-regblock>=1.2
59
+ Requires-Dist: pyyaml
60
+ Requires-Dist: rich
61
+ Requires-Dist: singleton-decorator
62
+ Requires-Dist: systemrdl-compiler
63
+ Requires-Dist: types-pyyaml
64
+ Requires-Dist: vsg
65
+ Provides-Extra: dev
66
+ Requires-Dist: flake8; extra == "dev"
67
+ Requires-Dist: mypy; extra == "dev"
68
+ Requires-Dist: robotframework; extra == "dev"
69
+ Requires-Dist: tox; extra == "dev"
70
+ Provides-Extra: docs
71
+ Requires-Dist: furo; extra == "docs"
72
+ Requires-Dist: sphinx; extra == "docs"
73
+ Requires-Dist: sphinx-pyproject; extra == "docs"
64
74
  Dynamic: license-file
65
75
 
66
76
  ## Introduction
67
77
 
68
- SimplHDL is a plugin-based command-line application for simplifying FPGA and
69
- ASIC development regardless of EDA tools and flows.
78
+ SimplHDL is a plugin-based command-line application for simplifying FPGA and ASIC development regardless of EDA tools
79
+ and flows.
70
80
 
71
- The goal is to embrase structured and reusable designs by creating a generic
72
- project model that can be used in any hdl development flow regardless of
73
- project structure and EDA tool requirements.
81
+ The goal is to embrase structured and reusable designs by creating a generic project model that can be used in any hdl
82
+ development flow regardless of project structure and EDA tool requirements.
74
83
 
75
- The plugin based architecture allows for SimplHDL to be migrated into any
76
- existing project, replacing ad-hoc simulation and implmentation scripts while
77
- providing a intuitive command-line interface for HDL design and verification
78
- engineers.
84
+ The plugin based architecture allows for SimplHDL to be migrated into any existing project, replacing ad-hoc simulation
85
+ and implementation scripts while providing a intuitive command-line interface for HDL design and verification engineers.
79
86
 
80
- I wide vararity of languges, standards and tools are supported.
87
+ I wide vararity of languages, standards and tools are supported.
81
88
 
82
89
  ### HDL languages
83
90
 
84
- * Verilog / System Verilog
85
- * VHDL
86
- * Chisel
87
- * SystemRDL
88
- * IPXact
89
- * Vivado IP containters (.xci, .xcix)
90
- * Quartus IP containers (.ip)
91
+ - Verilog / System Verilog
92
+ - VHDL
93
+ - Chisel
94
+ - SystemRDL
95
+ - IPXact
96
+ - Vivado IP containers (.xci, .xcix)
97
+ - Quartus IP containers (.ip)
91
98
 
92
99
  ### Methodologies
93
100
 
94
- * UVM
95
- * OSVMM
96
- * UVVM
97
- * Cocotb
98
- * pyuvm
101
+ - UVM
102
+ - OSVMM
103
+ - UVVM
104
+ - Cocotb
105
+ - pyuvm
99
106
 
100
107
  ### EDA Tools
101
108
 
102
- * Vivado
103
- * Quartus
104
- * Modelsim
105
- * Questasim
106
- * Xsim
107
- * Vcs
108
- * Riviera Pro
109
- * Xcelium (coming)
110
- * Verilator (coming)
111
- * Icarus (coming)
112
- * GHDL (coming)
109
+ - Vivado
110
+ - Quartus
111
+ - Modelsim
112
+ - Questasim
113
+ - Xsim
114
+ - Vcs
115
+ - Riviera Pro
116
+ - Xcelium (coming)
117
+ - Verilator (coming)
118
+ - Icarus (coming)
119
+ - GHDL (coming)
113
120
 
114
121
  ## Getting Started
115
122
 
116
- SimplHDL currently works on Linux and Windows WSL. It is written in Python and can
117
- be installed with *pip*. To run SimplHDL Python 3.8 or later is required. The
118
- tools for the flows you wish to run also need to be installed and set up
119
- correctly in the shell environment. SimplHDL can be installed on your system's
120
- Python installation, but it is highly recommended to install and run SimplHDL
121
- in a Python virtual environment or a Conda environment.
123
+ SimplHDL currently works on Linux and Windows WSL. It is written in Python and can be installed with _pip_. To run
124
+ SimplHDL Python 3.8 or later is required. The tools for the flows you wish to run also need to be installed and set up
125
+ correctly in the shell environment. SimplHDL can be installed on your system's Python installation, but it is highly
126
+ recommended to install and run SimplHDL in a Python virtual environment or a Conda environment.
122
127
 
123
128
  ## Example
124
129
 
125
- To quickly try out SimplHDL follow these steps. In this example, we will use
126
- Vivado and QuestaSim. The prerequisites are that SimplHDL install installed and
127
- Vivado and QuestaSim are correctly set up in your shell environment.
130
+ To quickly try out SimplHDL follow these steps. In this example, we will use Vivado and QuestaSim. The prerequisites are
131
+ that SimplHDL install installed and Vivado and QuestaSim are correctly set up in your shell environment.
128
132
 
129
133
  1. Clone Git repository from GitHub
130
134
 
@@ -165,13 +169,12 @@ simpl vivado
165
169
  simpl vivado --gui
166
170
  ```
167
171
 
168
- In this example, the project specification is written in Yaml. This format is
169
- only meant as a demonstration. To integrate SimplHDL into your project, you have
170
- to write a parser plugin for your specific project specification format.
172
+ In this example, the project specification is written in Yaml. This format is only meant as a demonstration. To
173
+ integrate SimplHDL into your project, you have to write a parser plugin for your specific project specification format.
171
174
  See the documentation and plugin examples for more information.
172
175
 
173
176
  ## Links
174
177
 
175
- * Homepage:
176
- * Source: <https://github.com/SimplHDL/simplhdl>
177
- * Tracker: <https://github.com/SimplHDL/simplhdl/issues>
178
+ - Homepage:
179
+ - Source: <https://github.com/SimplHDL/simplhdl>
180
+ - Tracker: <https://github.com/SimplHDL/simplhdl/issues>
@@ -0,0 +1,105 @@
1
+ ## Introduction
2
+
3
+ SimplHDL is a plugin-based command-line application for simplifying FPGA and ASIC development regardless of EDA tools
4
+ and flows.
5
+
6
+ The goal is to embrase structured and reusable designs by creating a generic project model that can be used in any hdl
7
+ development flow regardless of project structure and EDA tool requirements.
8
+
9
+ The plugin based architecture allows for SimplHDL to be migrated into any existing project, replacing ad-hoc simulation
10
+ and implementation scripts while providing a intuitive command-line interface for HDL design and verification engineers.
11
+
12
+ I wide vararity of languages, standards and tools are supported.
13
+
14
+ ### HDL languages
15
+
16
+ - Verilog / System Verilog
17
+ - VHDL
18
+ - Chisel
19
+ - SystemRDL
20
+ - IPXact
21
+ - Vivado IP containers (.xci, .xcix)
22
+ - Quartus IP containers (.ip)
23
+
24
+ ### Methodologies
25
+
26
+ - UVM
27
+ - OSVMM
28
+ - UVVM
29
+ - Cocotb
30
+ - pyuvm
31
+
32
+ ### EDA Tools
33
+
34
+ - Vivado
35
+ - Quartus
36
+ - Modelsim
37
+ - Questasim
38
+ - Xsim
39
+ - Vcs
40
+ - Riviera Pro
41
+ - Xcelium (coming)
42
+ - Verilator (coming)
43
+ - Icarus (coming)
44
+ - GHDL (coming)
45
+
46
+ ## Getting Started
47
+
48
+ SimplHDL currently works on Linux and Windows WSL. It is written in Python and can be installed with _pip_. To run
49
+ SimplHDL Python 3.8 or later is required. The tools for the flows you wish to run also need to be installed and set up
50
+ correctly in the shell environment. SimplHDL can be installed on your system's Python installation, but it is highly
51
+ recommended to install and run SimplHDL in a Python virtual environment or a Conda environment.
52
+
53
+ ## Example
54
+
55
+ To quickly try out SimplHDL follow these steps. In this example, we will use Vivado and QuestaSim. The prerequisites are
56
+ that SimplHDL install installed and Vivado and QuestaSim are correctly set up in your shell environment.
57
+
58
+ 1. Clone Git repository from GitHub
59
+
60
+ ```console
61
+ git clone https://github.com/SimplHDL/simplhdl.git
62
+ ```
63
+
64
+ 2. install SimplHDL from source
65
+
66
+ ```console
67
+ pip install ./simplhdl
68
+ ```
69
+
70
+ 3. Run simulation
71
+
72
+ ```console
73
+ cd simplhdl/examples/hdl/alu/sim
74
+ simpl questasim
75
+ ```
76
+
77
+ 4. Run simulation interactively in Gui.
78
+
79
+ ```console
80
+ cd simplhdl/examples/hdl/alu/sim
81
+ simpl questasim --gui
82
+ ```
83
+
84
+ 5. Run implementation
85
+
86
+ ```console
87
+ cd ../syn
88
+ simpl vivado
89
+ ```
90
+
91
+ 6. Run implementation interactively in Gui.
92
+
93
+ ```console
94
+ simpl vivado --gui
95
+ ```
96
+
97
+ In this example, the project specification is written in Yaml. This format is only meant as a demonstration. To
98
+ integrate SimplHDL into your project, you have to write a parser plugin for your specific project specification format.
99
+ See the documentation and plugin examples for more information.
100
+
101
+ ## Links
102
+
103
+ - Homepage:
104
+ - Source: <https://github.com/SimplHDL/simplhdl>
105
+ - Tracker: <https://github.com/SimplHDL/simplhdl/issues>
@@ -0,0 +1,128 @@
1
+ [build-system]
2
+ build-backend = "setuptools.build_meta"
3
+ requires = [
4
+ "setuptools>=64",
5
+ "wheel",
6
+ ]
7
+
8
+ [project]
9
+ name = "simplhdl"
10
+ description = "A framework for simulating and implementing HDL designs"
11
+ readme = "README.md"
12
+ license = { file = "LICENSE" }
13
+ maintainers = [
14
+ { name = "Rasmus Grøndahl Olsen", email = "simplhdl@gmail.com" },
15
+ ]
16
+ authors = [
17
+ { name = "Rasmus Grøndahl Olsen", email = "simplhdl@gmail.com" },
18
+ ]
19
+ requires-python = ">=3.8"
20
+ classifiers = [
21
+ "Development Status :: 4 - Beta",
22
+ "Intended Audience :: Developers",
23
+ "License :: OSI Approved :: MIT License",
24
+ "Operating System :: OS Independent",
25
+ "Programming Language :: Python :: 3 :: Only",
26
+ "Programming Language :: Python :: 3.8",
27
+ "Programming Language :: Python :: 3.9",
28
+ "Programming Language :: Python :: 3.10",
29
+ "Programming Language :: Python :: 3.11",
30
+ "Programming Language :: Python :: 3.12",
31
+ "Programming Language :: Python :: 3.13",
32
+ "Programming Language :: Python :: 3.14",
33
+ ]
34
+
35
+ dynamic = [ "version" ]
36
+ dependencies = [
37
+ "argcomplete",
38
+ "black",
39
+ "flake8",
40
+ "gitpython",
41
+ "importlib-resources; python_version<'3.9'",
42
+ "jinja2",
43
+ "matplotlib",
44
+ "networkx",
45
+ "peakrdl-html",
46
+ "peakrdl-pyuvm",
47
+ "peakrdl-regblock>=1.2",
48
+ "pyyaml",
49
+ "rich",
50
+ "singleton-decorator",
51
+ "systemrdl-compiler",
52
+ "types-pyyaml",
53
+ "vsg",
54
+ ]
55
+
56
+ optional-dependencies.dev = [
57
+ "flake8",
58
+ "mypy",
59
+ "robotframework",
60
+ "tox",
61
+ ]
62
+ optional-dependencies.docs = [
63
+ "furo",
64
+ "sphinx",
65
+ "sphinx-pyproject",
66
+ ]
67
+ urls.Documentation = "https://simplhdl.readthedocs.io/en/latest/"
68
+ urls.Homepage = "https://github.com/SimplHDL"
69
+ urls.Issues = "https://github.com/SimplHDL/simplhdl/issues"
70
+ urls.Repository = "https://github.com/SimplHDL/simplhdl.git"
71
+ scripts.simpl = "simplhdl.__main__:main"
72
+ entry-points."simplhdl.plugins".chisel_generator = "simplhdl_chisel.chisel:ChiselGenerator"
73
+ entry-points."simplhdl.plugins".encrypt = "simplhdl_encrypt.encrypt.encryptflow:EncryptFlow"
74
+ entry-points."simplhdl.plugins".fusersoc_parser = "simplhdl_fusesocparser.fusesocparser:FuseSocParser"
75
+ entry-points."simplhdl.plugins".lint = "simplhdl_lint.lint.lintflow:LintFlow"
76
+ entry-points."simplhdl.plugins".modelsim = "simplhdl_modelsim.modelsim.modelsimflow:ModelSimFlow"
77
+ entry-points."simplhdl.plugins".peakrdl_generator = "simplhdl_peakrdl.systemrdl:PeakRdlGenerator"
78
+ entry-points."simplhdl.plugins".quartus = "simplhdl_quartus.quartusflow:QuartusFlow"
79
+ entry-points."simplhdl.plugins".quartus-dse = "simplhdl_quartus.quartusdse.quartusdseflow:QuartusDseFlow"
80
+ entry-points."simplhdl.plugins".quartus-export = "simplhdl_quartus.quartusexport.quartusexportflow:QuartusExportFlow"
81
+ entry-points."simplhdl.plugins".quartus_generator = "simplhdl_quartus.spd:QuartusGenerator"
82
+ entry-points."simplhdl.plugins".questasim = "simplhdl_questasim.questasim.questasimflow:QuestaSimFlow"
83
+ entry-points."simplhdl.plugins".rivierapro = "simplhdl_rivierapro.rivierapro.rivieraproflow:RivieraProFlow"
84
+ entry-points."simplhdl.plugins".simplhdl_parser = "simplhdl_parser.simplhdlparser:SimplHdlParser"
85
+ entry-points."simplhdl.plugins".vcs = "simplhdl_vcs.vcs.vcsflow:VcsFlow"
86
+ entry-points."simplhdl.plugins".vivado = "simplhdl_vivado.vivadoflow:VivadoFlow"
87
+ entry-points."simplhdl.plugins".vivado_generator = "simplhdl_vivado.ipxact:VivadoGenerator"
88
+ entry-points."simplhdl.plugins".xsim = "simplhdl_vivado.xsim.xsimflow:XsimFlow"
89
+
90
+ [tool.setuptools.dynamic]
91
+ version = { attr = "simplhdl.__version__" }
92
+
93
+ [tool.setuptools.package-data]
94
+ "*" = [ "*.j2" ]
95
+
96
+ [tool.ruff]
97
+ line-length = 120
98
+ fix = true
99
+ lint.per-file-ignores."__init__.py" = [
100
+ "F401", # don't care about unused imports
101
+ "F403", # don't care about 'from module import *'
102
+ ]
103
+ lint.isort = { known-first-party = [
104
+ "simplhdl",
105
+ "simplhdl_chisel",
106
+ "simplhdl_encrypt",
107
+ "simplhdl_fusesocparser",
108
+ "simplhdl_lint",
109
+ "simplhdl_modelsim",
110
+ "simplhdl_parser",
111
+ "simplhdl_peakrdl",
112
+ "simplhdl_quartus",
113
+ "simplhdl_questasim",
114
+ "simplhdl_rivierapro",
115
+ "simplhdl_vcs",
116
+ "simplhdl_vivado",
117
+ "tests",
118
+ ], required-imports = [
119
+ "from __future__ import annotations",
120
+ ] }
121
+ lint.preview = true
122
+
123
+ [tool.codespell]
124
+ ignore-words-list = "synopsys, edn"
125
+
126
+ [[tool.mypy.overrides]]
127
+ module = "networkx.*"
128
+ ignore_missing_imports = true
@@ -0,0 +1,6 @@
1
+ __version__ = "0.10.1"
2
+
3
+ from .__main__ import parse_arguments
4
+ from .project.project import *
5
+ from .project.fileset import *
6
+ from .project.design import *
@@ -0,0 +1,52 @@
1
+ import logging
2
+ import sys
3
+ import traceback
4
+
5
+ from rich.logging import RichHandler
6
+
7
+ from .cli.arguments import parse_arguments
8
+ from .project.project import ProjectError
9
+ from .plugin.flow import FlowError
10
+ from .plugin.generator import GeneratorError
11
+ from .plugin.loader import load_plugins
12
+ from .plugin.parser import ParserError
13
+ from .simplhdl import Simplhdl
14
+ from .utils import CalledShError
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ def main():
20
+ try:
21
+ load_plugins()
22
+ args = parse_arguments()
23
+ levels = [logging.INFO, logging.DEBUG, logging.NOTSET]
24
+ level = levels[min(args.verbose, len(levels) - 1)]
25
+ if level < logging.INFO:
26
+ show_path = True
27
+ else:
28
+ show_path = False
29
+
30
+ FORMAT = "[simplhdl.%(module)s] - %(message)s"
31
+ console = RichHandler(level=level, show_time=False, rich_tracebacks=True, show_path=show_path)
32
+ logging.basicConfig(level=5, format=FORMAT, handlers=[console])
33
+ simpl = Simplhdl(args)
34
+ simpl.run()
35
+ except (
36
+ NotImplementedError,
37
+ FileNotFoundError,
38
+ CalledShError,
39
+ ParserError,
40
+ FlowError,
41
+ GeneratorError,
42
+ ProjectError,
43
+ ) as e:
44
+ logger.debug(traceback.format_exc())
45
+ logger.error(e)
46
+ return 1
47
+ except SystemError:
48
+ return 1
49
+
50
+
51
+ if __name__ == "__main__":
52
+ sys.exit(main())
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ from pathlib import Path
5
+ from typing import Sequence
6
+
7
+ import argcomplete
8
+
9
+ from .. import __version__
10
+ from ..plugin.flow import FlowFactory
11
+
12
+
13
+ def parse_arguments(args: Sequence[str] = None, namespace: None = None) -> argparse.Namespace:
14
+ parser = argparse.ArgumentParser(
15
+ prog="simpl",
16
+ description="Simple framework for simulation and implementation of HDL designs",
17
+ )
18
+ parser.add_argument("--projectspec", type=Path, help="Project specification file")
19
+ parser.add_argument("--version", action="version", version=f"SimplHDL version {__version__}")
20
+ parser.add_argument("-v", "--verbose", action="count", default=0, help="Increase verbosity")
21
+ parser.add_argument(
22
+ "-o",
23
+ "--outputdir",
24
+ default="_build",
25
+ type=Path,
26
+ help="output directory for build files",
27
+ )
28
+ subparsers = parser.add_subparsers(
29
+ title="Flows",
30
+ description="""Different work flows for simulation and implementation
31
+ of HDL designs""",
32
+ dest="flow",
33
+ )
34
+ for flow_class in FlowFactory.get_flows().values():
35
+ flow_class.parse_args(subparsers)
36
+
37
+ argcomplete.autocomplete(parser)
38
+ return parser.parse_args(args=args, namespace=namespace)