siliconcompiler 0.28.8__py3-none-any.whl → 0.28.9__py3-none-any.whl

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.
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.28.8'
2
+ version = '0.28.9'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -81,40 +81,44 @@ def send(chip, msg_type, step, index):
81
81
  msg['To'] = ", ".join(to)
82
82
  msg['X-Entity-Ref-ID'] = uuid.uuid4().hex # keep emails from getting grouped
83
83
 
84
- if msg_type == "summary":
85
- layout_img = report_utils._find_summary_image(chip)
86
- if layout_img and os.path.isfile(layout_img):
87
- with open(layout_img, 'rb') as img_file:
88
- img_attach = MIMEApplication(img_file.read())
89
- img_attach.add_header('Content-Disposition',
90
- 'attachment',
91
- filename=os.path.basename(layout_img))
92
- msg.attach(img_attach)
93
-
94
- nodes_to_execute = get_executed_nodes(chip, flow)
95
- nodes, errors, metrics, metrics_unit, metrics_to_show, _ = \
96
- report_utils._collect_data(chip, flow=flow, flowgraph_nodes=nodes_to_execute)
97
-
98
- text_msg = get_file_template('email/summary.j2').render(
99
- design=chip.design,
100
- nodes=nodes,
101
- errors=errors,
102
- metrics=metrics,
103
- metrics_unit=metrics_unit,
104
- metric_keys=metrics_to_show)
105
- else:
106
- # Attach logs
107
- for log in (f'sc_{step}{index}.log', f'{step}.log'):
108
- log_file = f'{chip.getworkdir(step=step, index=index)}/{log}'
109
- if os.path.exists(log_file):
110
- with sc_open(log_file) as f:
111
- log_attach = MIMEApplication(f.read())
112
- log_name, _ = os.path.splitext(log)
113
- # Make attachment a txt file to avoid issues with tools not loading .log
114
- log_attach.add_header('Content-Disposition',
84
+ if cred["max_file_size"] > 0:
85
+ if msg_type == "summary":
86
+ layout_img = report_utils._find_summary_image(chip)
87
+ if layout_img and os.path.isfile(layout_img):
88
+ with open(layout_img, 'rb') as img_file:
89
+ img_attach = MIMEApplication(img_file.read())
90
+ img_attach.add_header('Content-Disposition',
115
91
  'attachment',
116
- filename=f'{log_name}.txt')
117
- msg.attach(log_attach)
92
+ filename=os.path.basename(layout_img))
93
+ msg.attach(img_attach)
94
+
95
+ nodes_to_execute = get_executed_nodes(chip, flow)
96
+ nodes, errors, metrics, metrics_unit, metrics_to_show, _ = \
97
+ report_utils._collect_data(chip, flow=flow, flowgraph_nodes=nodes_to_execute)
98
+
99
+ text_msg = get_file_template('email/summary.j2').render(
100
+ design=chip.design,
101
+ nodes=nodes,
102
+ errors=errors,
103
+ metrics=metrics,
104
+ metrics_unit=metrics_unit,
105
+ metric_keys=metrics_to_show)
106
+ else:
107
+ # Attach logs
108
+ for log in (f'sc_{step}{index}.log', f'{step}.log'):
109
+ log_file = f'{chip.getworkdir(step=step, index=index)}/{log}'
110
+ if os.path.exists(log_file):
111
+ with sc_open(log_file) as f:
112
+ file_content = f.read().splitlines()
113
+ # Limit to max_file_size
114
+ file_content = file_content[-cred["max_file_size"]:]
115
+ log_attach = MIMEApplication("\n".join(file_content))
116
+ log_name, _ = os.path.splitext(log)
117
+ # Make attachment a txt file to avoid issues with tools not loading .log
118
+ log_attach.add_header('Content-Disposition',
119
+ 'attachment',
120
+ filename=f'{log_name}.txt')
121
+ msg.attach(log_attach)
118
122
 
119
123
  records = {}
120
124
  for record in chip.getkeys('record'):
@@ -47,6 +47,13 @@
47
47
  "examples": [true],
48
48
  "type": "boolean",
49
49
  "default": true
50
+ },
51
+ "max_file_size": {
52
+ "title": "Max line in log file",
53
+ "description": "Maximum number of file lines to include in log",
54
+ "examples": [1000],
55
+ "type": "integer",
56
+ "default": 1000
50
57
  }
51
58
  },
52
59
 
@@ -16,25 +16,24 @@ def make_docs(chip):
16
16
  ####################################################
17
17
  # Target Setup
18
18
  ####################################################
19
- def setup(chip):
19
+ def setup(chip, partname=None):
20
20
  '''
21
21
  Demonstration target for running the open-source fpgaflow.
22
22
  '''
23
23
 
24
24
  # 1. Configure fpga part
25
- part_name = chip.get('fpga', 'partname')
26
- if not part_name:
25
+ if not partname:
26
+ partname = chip.get('fpga', 'partname')
27
+
28
+ if not partname:
27
29
  raise SiliconCompilerError('FPGA partname has not been set.', chip=chip)
28
30
 
29
31
  # 2. Load all available FPGAs
30
32
  chip.use(lattice_ice40)
31
33
  chip.use(vpr_example)
32
34
 
33
- if part_name not in chip.getkeys('fpga'):
34
- raise SiliconCompilerError(f'{part_name} has not been loaded', chip=chip)
35
-
36
35
  # 3. Load flow
37
- chip.use(fpgaflow, partname=part_name)
36
+ chip.use(fpgaflow, partname=partname)
38
37
 
39
38
  # 4. Select default flow
40
39
  chip.set('option', 'flow', 'fpgaflow', clobber=False)
@@ -115,17 +115,17 @@ def get_input_files(chip, *key, add_library_files=True):
115
115
  add_library_files (bool): When True, files from library keys
116
116
  will be included
117
117
  '''
118
- step = chip.get('arg', 'step')
119
- index = chip.get('arg', 'index')
120
118
 
121
119
  files = []
122
120
  for key in __get_keys(chip, *key, include_library_files=False):
121
+ step, index = __get_step_index(chip, *key)
123
122
  files.extend(chip.find_files(*key, step=step, index=index))
124
123
 
125
124
  if add_library_files:
126
125
  for item in get_libraries(chip, include_asic=False):
127
126
  lib_key = ('library', item, *key)
128
127
  if __is_key_valid(chip, *lib_key):
128
+ step, index = __get_step_index(chip, *lib_key)
129
129
  files.extend(chip.find_files(*lib_key, step=step, index=index))
130
130
 
131
131
  return __remove_duplicates(chip, files, list(key))
@@ -11,9 +11,15 @@ def setup(chip):
11
11
  vivado.setup_task(chip, task)
12
12
 
13
13
  design = chip.top()
14
- chip.set('tool', tool, 'task', task, 'input', f'{design}_checkpoint.dcp',
14
+ chip.set('tool', tool, 'task', task, 'input', f'{design}.dcp',
15
15
  step=step, index=index)
16
- chip.set('tool', tool, 'task', task, 'output', f'{design}.bit',
16
+ chip.set('tool', tool, 'task', task, 'output', f'{design}.dcp',
17
+ step=step, index=index)
18
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.xdc',
19
+ step=step, index=index)
20
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.vg',
21
+ step=step, index=index)
22
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.bit',
17
23
  step=step, index=index)
18
24
 
19
25
 
@@ -11,9 +11,13 @@ def setup(chip):
11
11
  vivado.setup_task(chip, task)
12
12
 
13
13
  design = chip.top()
14
- chip.set('tool', tool, 'task', task, 'input', f'{design}_checkpoint.dcp',
14
+ chip.set('tool', tool, 'task', task, 'input', f'{design}.dcp',
15
15
  step=step, index=index)
16
- chip.set('tool', tool, 'task', task, 'output', f'{design}_checkpoint.dcp',
16
+ chip.set('tool', tool, 'task', task, 'output', f'{design}.dcp',
17
+ step=step, index=index)
18
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.xdc',
19
+ step=step, index=index)
20
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.vg',
17
21
  step=step, index=index)
18
22
 
19
23
 
@@ -11,9 +11,13 @@ def setup(chip):
11
11
  vivado.setup_task(chip, task)
12
12
 
13
13
  design = chip.top()
14
- chip.set('tool', tool, 'task', task, 'input', f'{design}_checkpoint.dcp',
14
+ chip.set('tool', tool, 'task', task, 'input', f'{design}.dcp',
15
15
  step=step, index=index)
16
- chip.set('tool', tool, 'task', task, 'output', f'{design}_checkpoint.dcp',
16
+ chip.set('tool', tool, 'task', task, 'output', f'{design}.dcp',
17
+ step=step, index=index)
18
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.xdc',
19
+ step=step, index=index)
20
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.vg',
17
21
  step=step, index=index)
18
22
 
19
23
 
@@ -1,4 +1,4 @@
1
- open_checkpoint "inputs/${sc_design}_checkpoint.dcp"
1
+ open_checkpoint "inputs/${sc_design}.dcp"
2
2
  if { $sc_constraint != "" } {
3
3
  write_bitstream -force -file "outputs/${sc_design}.bit"
4
4
  } else {
@@ -1,2 +1,2 @@
1
- open_checkpoint "inputs/${sc_design}_checkpoint.dcp"
1
+ open_checkpoint "inputs/${sc_design}.dcp"
2
2
  place_design
@@ -1,4 +1,4 @@
1
- open_checkpoint "inputs/${sc_design}_checkpoint.dcp"
1
+ open_checkpoint "inputs/${sc_design}.dcp"
2
2
  phys_opt_design
3
3
  power_opt_design
4
4
  route_design
@@ -28,7 +28,9 @@ source $sc_refdir/sc_$sc_task.tcl
28
28
  # Checkpoint
29
29
  ##############################
30
30
 
31
- write_checkpoint -force "outputs/${sc_design}_checkpoint"
31
+ write_checkpoint -force "outputs/${sc_design}"
32
+ write_xdc "outputs/${sc_design}.xdc"
33
+ write_verilog "outputs/${sc_design}.vg"
32
34
 
33
35
  ##############################
34
36
  # Reports / Metrics
@@ -41,4 +43,4 @@ report_clock_utilization -file "reports/clock_utilization.rpt"
41
43
  report_drc -file "reports/drc.rpt"
42
44
  report_cdc -details -file "reports/cdc.rpt"
43
45
 
44
- report_design_analysis -qor_summary -json "qor_summary.json"
46
+ report_design_analysis -qor_summary -json "reports/qor_summary.json"
@@ -12,7 +12,11 @@ def setup(chip):
12
12
 
13
13
  design = chip.top()
14
14
  chip.set('tool', tool, 'task', task, 'input', f'{design}.v', step=step, index=index)
15
- chip.set('tool', tool, 'task', task, 'output', f'{design}_checkpoint.dcp',
15
+ chip.set('tool', tool, 'task', task, 'output', f'{design}.dcp',
16
+ step=step, index=index)
17
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.xdc',
18
+ step=step, index=index)
19
+ chip.add('tool', tool, 'task', task, 'output', f'{design}.vg',
16
20
  step=step, index=index)
17
21
 
18
22
 
@@ -67,36 +67,52 @@ def normalize_version(version):
67
67
 
68
68
 
69
69
  def _parse_qor_summary(chip, step, index):
70
- if not os.path.isfile('qor_summary.json'):
70
+ if not os.path.isfile('reports/qor_summary.json'):
71
71
  return
72
72
 
73
- with sc_open('qor_summary.json') as f:
73
+ with sc_open('reports/qor_summary.json') as f:
74
74
  data = json.load(f)
75
75
 
76
76
  # Data is organized as list of tasks that Vivado has completed, with
77
77
  # metrics associated with each. The tasks appear to be in chronological
78
78
  # order, so we pull metrics from the last one.
79
79
  task = data['Design QoR Summary'][-1]
80
- setup_wns = task['Wns(ns)']
81
- setup_tns = task['Tns(ns)']
82
- hold_wns = task['Whs(ns)']
83
- hold_tns = task['Ths(ns)']
80
+ setup_wns = None
81
+ for metric in ('Wns(ns)', 'WNS(ns)'):
82
+ if metric in task:
83
+ setup_wns = task[metric]
84
+ break
85
+ setup_tns = None
86
+ for metric in ('Tns(ns)', 'TNS(ns)'):
87
+ if metric in task:
88
+ setup_tns = task[metric]
89
+ break
90
+ hold_wns = None
91
+ for metric in ('Whs(ns)', 'WHS(ns)'):
92
+ if metric in task:
93
+ hold_wns = task[metric]
94
+ break
95
+ hold_tns = None
96
+ for metric in ('Ths(ns)', 'THS(ns)'):
97
+ if metric in task:
98
+ hold_tns = task[metric]
99
+ break
84
100
 
85
101
  if setup_wns:
86
102
  record_metric(chip, step, index, 'setupwns', setup_wns,
87
- 'qor_summary.json',
103
+ 'reports/qor_summary.json',
88
104
  source_unit='ns')
89
105
  if setup_tns:
90
106
  record_metric(chip, step, index, 'setuptns', setup_tns,
91
- 'qor_summary.json',
107
+ 'reports/qor_summary.json',
92
108
  source_unit='ns')
93
109
  if hold_wns:
94
110
  record_metric(chip, step, index, 'holdwns', hold_wns,
95
- 'qor_summary.json',
111
+ 'reports/qor_summary.json',
96
112
  source_unit='ns')
97
113
  if hold_tns:
98
114
  record_metric(chip, step, index, 'holdtns', hold_tns,
99
- 'qor_summary.json',
115
+ 'reports/qor_summary.json',
100
116
  source_unit='ns')
101
117
 
102
118
 
@@ -94,6 +94,11 @@ def runtime_options(chip):
94
94
 
95
95
  options.append(f"--device {device_code[0]}")
96
96
 
97
+ # Medium-term solution: VPR performs hash digest checks that
98
+ # fail if file paths are changed between steps. We wish to
99
+ # disable the digest checks to work around this
100
+ options.append("--verify_file_digests off")
101
+
97
102
  options.append(f"--write_block_usage {__block_file}")
98
103
  options.append("--outfile_prefix outputs/")
99
104
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "openroad": {
3
3
  "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
- "git-commit": "c3e802e73aa2ca2974874e487ae481fc4f2cb8c3",
4
+ "git-commit": "8300b5293dec4c0a0ef26cd2ba7ca6101714e155",
5
5
  "docker-cmds": [
6
6
  "# Remove OR-Tools files",
7
7
  "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
@@ -66,7 +66,7 @@
66
66
  },
67
67
  "vpr": {
68
68
  "git-url": "https://github.com/verilog-to-routing/vtr-verilog-to-routing.git",
69
- "git-commit": "9dd5ff66e3ab43238f5a4cb14cafe17bc4afe527",
69
+ "git-commit": "de31f094aa4f894a5e6e0dc32c66365f4b341190",
70
70
  "auto-update": false
71
71
  },
72
72
  "icepack": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siliconcompiler
3
- Version: 0.28.8
3
+ Version: 0.28.9
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
6
6
  License: Apache License 2.0
@@ -25,55 +25,55 @@ Classifier: Topic :: Software Development :: Build Tools
25
25
  Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
- Requires-Dist: requests ==2.32.3
29
- Requires-Dist: PyYAML ==6.0.2
30
- Requires-Dist: pandas >=1.1.5
31
- Requires-Dist: Jinja2 >=2.11.3
32
- Requires-Dist: graphviz ==0.20.3
33
- Requires-Dist: distro ==1.9.0
34
- Requires-Dist: packaging <24,>=21.3
35
- Requires-Dist: psutil >=5.8.0
36
- Requires-Dist: GitPython ==3.1.43
37
- Requires-Dist: lambdapdk >=0.1.38
38
- Requires-Dist: PyGithub ==2.5.0
39
- Requires-Dist: urllib3 >=1.26.0
40
- Requires-Dist: fasteners ==0.19
41
- Requires-Dist: fastjsonschema ==2.20.0
42
- Requires-Dist: docker ==7.1.0
43
- Requires-Dist: sc-surelog ==1.84.1
44
- Requires-Dist: orjson ==3.10.11
45
- Requires-Dist: streamlit ==1.40.1 ; python_full_version != "3.9.7"
46
- Requires-Dist: streamlit-agraph ==0.0.45 ; python_full_version != "3.9.7"
47
- Requires-Dist: streamlit-antd-components ==0.3.2 ; python_full_version != "3.9.7"
48
- Requires-Dist: streamlit-javascript ==0.1.5 ; python_full_version != "3.9.7"
49
- Requires-Dist: streamlit-autorefresh ==1.0.1 ; python_full_version != "3.9.7"
50
- Requires-Dist: importlib-metadata ; python_version < "3.10"
51
- Requires-Dist: aiohttp ==3.10.11 ; python_version <= "3.8"
52
- Requires-Dist: Pillow ==10.4.0 ; python_version <= "3.8"
53
- Requires-Dist: aiohttp ==3.11.2 ; python_version >= "3.9"
54
- Requires-Dist: Pillow ==11.0.0 ; python_version >= "3.9"
28
+ Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
29
+ Requires-Dist: aiohttp==3.11.2; python_version >= "3.9"
30
+ Requires-Dist: requests==2.32.3
31
+ Requires-Dist: PyYAML==6.0.2
32
+ Requires-Dist: pandas>=1.1.5
33
+ Requires-Dist: Jinja2>=2.11.3
34
+ Requires-Dist: graphviz==0.20.3
35
+ Requires-Dist: distro==1.9.0
36
+ Requires-Dist: packaging<24,>=21.3
37
+ Requires-Dist: psutil>=5.8.0
38
+ Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
39
+ Requires-Dist: Pillow==11.0.0; python_version >= "3.9"
40
+ Requires-Dist: GitPython==3.1.43
41
+ Requires-Dist: lambdapdk>=0.1.38
42
+ Requires-Dist: PyGithub==2.5.0
43
+ Requires-Dist: urllib3>=1.26.0
44
+ Requires-Dist: fasteners==0.19
45
+ Requires-Dist: fastjsonschema==2.20.0
46
+ Requires-Dist: docker==7.1.0
47
+ Requires-Dist: importlib_metadata; python_version < "3.10"
48
+ Requires-Dist: sc-surelog==1.84.1
49
+ Requires-Dist: orjson==3.10.11
50
+ Requires-Dist: streamlit==1.40.1; python_full_version != "3.9.7"
51
+ Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
52
+ Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
53
+ Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
54
+ Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
55
+ Provides-Extra: test
56
+ Requires-Dist: pytest==8.3.3; extra == "test"
57
+ Requires-Dist: pytest-xdist==3.6.1; extra == "test"
58
+ Requires-Dist: pytest-timeout==2.3.1; extra == "test"
59
+ Requires-Dist: pytest-asyncio==0.24.0; extra == "test"
60
+ Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
61
+ Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
62
+ Requires-Dist: responses==0.25.3; extra == "test"
63
+ Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
64
+ Requires-Dist: flake8==7.1.1; extra == "test"
65
+ Requires-Dist: tclint==0.4.2; extra == "test"
66
+ Requires-Dist: codespell==2.3.0; extra == "test"
55
67
  Provides-Extra: docs
56
- Requires-Dist: Sphinx ==8.1.3 ; extra == 'docs'
57
- Requires-Dist: pip-licenses ==5.0.0 ; extra == 'docs'
58
- Requires-Dist: pydata-sphinx-theme ==0.16.0 ; extra == 'docs'
59
- Requires-Dist: sc-leflib >=0.2.0 ; extra == 'docs'
60
- Provides-Extra: examples
61
- Requires-Dist: migen ==0.9.2 ; extra == 'examples'
62
- Requires-Dist: lambdalib ==0.3.1 ; extra == 'examples'
68
+ Requires-Dist: Sphinx==8.1.3; extra == "docs"
69
+ Requires-Dist: pip-licenses==5.0.0; extra == "docs"
70
+ Requires-Dist: pydata-sphinx-theme==0.16.0; extra == "docs"
71
+ Requires-Dist: sc-leflib>=0.2.0; extra == "docs"
63
72
  Provides-Extra: profile
64
- Requires-Dist: gprof2dot ==2024.6.6 ; extra == 'profile'
65
- Provides-Extra: test
66
- Requires-Dist: pytest ==8.3.3 ; extra == 'test'
67
- Requires-Dist: pytest-xdist ==3.6.1 ; extra == 'test'
68
- Requires-Dist: pytest-timeout ==2.3.1 ; extra == 'test'
69
- Requires-Dist: pytest-asyncio ==0.24.0 ; extra == 'test'
70
- Requires-Dist: responses ==0.25.3 ; extra == 'test'
71
- Requires-Dist: PyVirtualDisplay ==3.0 ; extra == 'test'
72
- Requires-Dist: flake8 ==7.1.1 ; extra == 'test'
73
- Requires-Dist: tclint ==0.4.2 ; extra == 'test'
74
- Requires-Dist: codespell ==2.3.0 ; extra == 'test'
75
- Requires-Dist: pytest-cov ==5.0.0 ; (python_version <= "3.8") and extra == 'test'
76
- Requires-Dist: pytest-cov ==6.0.0 ; (python_version >= "3.9") and extra == 'test'
73
+ Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
74
+ Provides-Extra: examples
75
+ Requires-Dist: migen==0.9.2; extra == "examples"
76
+ Requires-Dist: lambdalib==0.3.1; extra == "examples"
77
77
 
78
78
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
79
79
 
@@ -1,7 +1,7 @@
1
1
  siliconcompiler/__init__.py,sha256=Ke_Bcryj9N6MoUq_5z_IDW3qMrUzR-3-kJVsvUenYzY,511
2
2
  siliconcompiler/__main__.py,sha256=JwWkcvaNngqgMWprEQ1cFy2Wdq9GMvk46UGTHyh_qvM,170
3
3
  siliconcompiler/_common.py,sha256=c6r0SbI2xTpNOZayFsyCDo0riJGNJSPN-0zW8R7rDBI,1488
4
- siliconcompiler/_metadata.py,sha256=CumyMn5odWcWqlPwYTx9IioZ5rx0a68RKL7IvU2SO-A,1264
4
+ siliconcompiler/_metadata.py,sha256=ISw0dgmSuNTS8xpsds6hA2uMv313WiLdIUnkF-qEI30,1264
5
5
  siliconcompiler/core.py,sha256=_T1eEY7lUsrbaEBUaG1WSAzY2JFxyz5tXEKxvoCGZaI,135718
6
6
  siliconcompiler/flowgraph.py,sha256=WLcbBWFj5DdYRRIxNy_Djm2v4yN9WELQM_ypNPB5QVM,21963
7
7
  siliconcompiler/issue.py,sha256=9ZpdEBh8QB56-bZ1YXRnjqgg9hwnFty2u1o5oI66W7M,11125
@@ -100,10 +100,10 @@ siliconcompiler/report/dashboard/utils/file_utils.py,sha256=5MKAyf7TGXQIc3yxwbP1
100
100
  siliconcompiler/scheduler/__init__.py,sha256=bkJ5S06BNXsdfjx5nPcgak_9FT8XHxgsnLIYvee5uvk,84997
101
101
  siliconcompiler/scheduler/docker_runner.py,sha256=bzGIqYpdtxoM_A4ko_LEADYAbHY89jiKHplVB1Zzh_k,8065
102
102
  siliconcompiler/scheduler/run_node.py,sha256=IWodOtT6b_MO5oXpEiF0th1Q3v7AD66jE182lY-aGv4,5063
103
- siliconcompiler/scheduler/send_messages.py,sha256=LH7zKXPzPZGc-Xxu-54rnfYSx60ATc7P7523hjylx9A,6250
103
+ siliconcompiler/scheduler/send_messages.py,sha256=Pq0Bt7LknGsQZk_bSkL0rRdpUNGz_WzS1A3UyDpBp_0,6614
104
104
  siliconcompiler/scheduler/slurm.py,sha256=CAuN5xmiWhk_k3CW6yMe5iukex4CWxp5Ox6_qAzgV5Q,7097
105
105
  siliconcompiler/scheduler/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- siliconcompiler/scheduler/validation/email_credentials.json,sha256=m141zzx3DxBt_Qztr9_Ej_-kYMP1tUc2Xj2YW_a3Pu0,1746
106
+ siliconcompiler/scheduler/validation/email_credentials.json,sha256=hkJs0U2h2Bgm1zxeXvanIJ-prPhpn_aU6e3qwIs7qA0,1997
107
107
  siliconcompiler/schema/__init__.py,sha256=Gdny2AwDdg-X3RvghOHQYl3aG2alvMuK5CsSkFGKuYU,120
108
108
  siliconcompiler/schema/schema_cfg.py,sha256=K1xySfHNenZk33NJnQcqsv-xfByxshwLf4xPQCU0vR8,183674
109
109
  siliconcompiler/schema/schema_obj.py,sha256=85NFfP1P4Gjoxw2dFMWM7B6cHx94bY2sqkGuj8nCFMo,75000
@@ -115,7 +115,7 @@ siliconcompiler/sphinx_ext/utils.py,sha256=JNktfS5nYZE_DnXRX_fwOBkc5kWgLkB0Urxbe
115
115
  siliconcompiler/targets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
116
  siliconcompiler/targets/asap7_demo.py,sha256=RBCjAx3laq2xUT7w--b9oIVx8r87QyKfBRX35JQICzw,2544
117
117
  siliconcompiler/targets/asic_demo.py,sha256=jRvbDhMZDGf-8AQ241vu8qLgloxPUToAn01Ybaaj_wo,1094
118
- siliconcompiler/targets/fpgaflow_demo.py,sha256=-2L8Xi-TIB5FBuIxxB88Y9JagTTOXDHZcNFFwPU-sno,1379
118
+ siliconcompiler/targets/fpgaflow_demo.py,sha256=0fqCaXa8_gicQCiz4m_mhI8_JY1qQlBO3mH45-YzMGA,1288
119
119
  siliconcompiler/targets/freepdk45_demo.py,sha256=O983Nwrs9h_HHlHtlUUrP0cPgdf3IlME1yWXCRgdL_A,1953
120
120
  siliconcompiler/targets/gf180_demo.py,sha256=oTs07GFFyQT0LaE7jVdoLSBuGqpOGLyL-ThQ25ZpCkc,3075
121
121
  siliconcompiler/targets/ihp130_demo.py,sha256=3nCxfM0-XpZWjhE1yQezZKBGJwtf6AjpeinPM4z6wv0,2688
@@ -138,7 +138,7 @@ siliconcompiler/templates/slurm/run.sh,sha256=uXs91H0vjLB8G8vaezxXSr3XNR2EUiXH1d
138
138
  siliconcompiler/templates/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  siliconcompiler/templates/tcl/manifest.tcl.j2,sha256=XT2pKuPSaa2GPJj1IpEl3Al5N70yqQS8jZecmpyeV4o,3547
140
140
  siliconcompiler/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- siliconcompiler/tools/_common/__init__.py,sha256=wQ0FQcg6bBRmpiUquHVaBpLabyMjSA0ecmxkohv5LlE,14483
141
+ siliconcompiler/tools/_common/__init__.py,sha256=tCH4wk6hTQwS19pkVpOiN2MW1GbsFjKkPoarELzq5FQ,14525
142
142
  siliconcompiler/tools/_common/asic.py,sha256=0-yMpvuMBy2dzN6uRFC96z8mN-7Ndzj7LhiMuR2MKtk,6469
143
143
  siliconcompiler/tools/_common/sdc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
144
  siliconcompiler/tools/_common/sdc/sc_constraints.sdc,sha256=Hz6OLebi14UTcfGXgJoNJeFo0BH_4N5XwjFe2mrey8g,2827
@@ -271,16 +271,16 @@ siliconcompiler/tools/verilator/lint.py,sha256=Lp-PXk6kYtnemN2cMuvCyZxodDIDzLEmK
271
271
  siliconcompiler/tools/verilator/parse.py,sha256=ZAYNgcK7wxRabW1mcgdGfmrcn6cLusPgK1X9vJkWUok,806
272
272
  siliconcompiler/tools/verilator/verilator.py,sha256=tSfUWzXbMPwLPGydeBhLAstZpXLt-3V4LnIfzeKWbYU,6434
273
273
  siliconcompiler/tools/vivado/__init__.py,sha256=f3DdiwAnqqXZZMWp8AAzljLE2pp0Gqarhv9LxzP1ruE,115
274
- siliconcompiler/tools/vivado/bitstream.py,sha256=eZ0Kb6XuwG0lbT9C1RBoUHC27oTaLcK4YLRgByIAU5Y,669
275
- siliconcompiler/tools/vivado/place.py,sha256=L-Z1CAQDQO4zG96rcuqcozCyfPAWvQB-iP2JWk1Kv4U,657
276
- siliconcompiler/tools/vivado/route.py,sha256=1lVPJn9zKP4YT1D-YtltcytrYYmHhCdc2SaY4-RBvto,655
277
- siliconcompiler/tools/vivado/syn_fpga.py,sha256=3C1CQJs5XibX6FbqzMsUq0Ck0TzQG57PTxzbjECFL9o,636
278
- siliconcompiler/tools/vivado/vivado.py,sha256=O59TKyGnokuKKzPcOk7PXfMfEmQFHYOkN6WTcfBPvO4,4960
274
+ siliconcompiler/tools/vivado/bitstream.py,sha256=361b51W7S_0umzGx_Q7VaXFRHpmanrJiNZCXTS5sXkg,972
275
+ siliconcompiler/tools/vivado/place.py,sha256=tvD4-pPeJ-pjptaytY7jTrbllYyYgsDv59NWPvH-eSU,844
276
+ siliconcompiler/tools/vivado/route.py,sha256=OiYWbVxBjlibDla-KTOXVbUtcg8LPsCUtuLhCc7zDfo,842
277
+ siliconcompiler/tools/vivado/syn_fpga.py,sha256=MkcB0d7RjfKhyrCtCUlgDdfbFRu1Z3NQsu8Canw74cI,834
278
+ siliconcompiler/tools/vivado/vivado.py,sha256=3k3iWV6pGivslG377tVGowOW5KvhoamzX2HXnRa4mYg,5522
279
279
  siliconcompiler/tools/vivado/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
280
- siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl,sha256=3hF8WODWWDJ5r39XNY6_9Eum9HUxPkpz8yz-sE37DhM,230
281
- siliconcompiler/tools/vivado/scripts/sc_place.tcl,sha256=0smyg_IMSoNCbJnlItnQi3JQdmSGwvBe1SJj5U37uJM,66
282
- siliconcompiler/tools/vivado/scripts/sc_route.tcl,sha256=GcMHmtYChB66igTmhtIP24xWlQjlVEw5y0Heaq1_NXQ,99
283
- siliconcompiler/tools/vivado/scripts/sc_run.tcl,sha256=46nBe16DW16S15VF_fj9T_ktHDFn7BKKXiue6ig3at8,1285
280
+ siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl,sha256=77ftp1FdB7KQ9raHYR2Dd66Fs61dwmqXeUiP4tXK_6o,219
281
+ siliconcompiler/tools/vivado/scripts/sc_place.tcl,sha256=x-3Tu9ZranEJFrqekyuFB1eru6LomCcw3IQiM0Jl_A4,55
282
+ siliconcompiler/tools/vivado/scripts/sc_route.tcl,sha256=yqkSukM7FmDvQVyz5D7xdtSbHyQHQrshHPD-0H_Asww,88
283
+ siliconcompiler/tools/vivado/scripts/sc_run.tcl,sha256=ycNYc71Sfw7KUxU4yZ8T6NCypWoRRW4nWX8yE5PZ-Q4,1359
284
284
  siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl,sha256=wBFkbSkmF7jzBz7PWqnllEFeg6vpK4RZUKLqktIM-HY,720
285
285
  siliconcompiler/tools/vpr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
286
  siliconcompiler/tools/vpr/_json_constraint.py,sha256=7cEKHmzgFKd0K3NLiIxVgiUOa1tbeSLv7M132SLuQig,2254
@@ -289,7 +289,7 @@ siliconcompiler/tools/vpr/place.py,sha256=CwzEmQELZ5IUnQ6lg964icDhmcBOxcNI32Ysdg
289
289
  siliconcompiler/tools/vpr/route.py,sha256=uD4A2fSahluRhSJayjW1rfXt9pI3wWAbLIRU_YuXwlA,4876
290
290
  siliconcompiler/tools/vpr/screenshot.py,sha256=5Ji6J9p0R0C7C9WkuCwLu2InGQpeCo_Ciif7wUXz9ng,1818
291
291
  siliconcompiler/tools/vpr/show.py,sha256=Dm0efQaOa2G6FsDeo6BpNYEp0farqKQOXeF_JLBuSYo,3120
292
- siliconcompiler/tools/vpr/vpr.py,sha256=Ydzh25XqK70tH-IAdF2ZMBfYsCqpG7I9KSAaJEtuF4s,14410
292
+ siliconcompiler/tools/vpr/vpr.py,sha256=tg6D_RqZXB7aRGnQInV01v92qnSFTwA7-3vB1x88s54,14641
293
293
  siliconcompiler/tools/xdm/__init__.py,sha256=uEo7uTPRdoARmk0E5U8yQ_MZOntO-cWJfGb6_pPA0ZQ,729
294
294
  siliconcompiler/tools/xdm/convert.py,sha256=rlirszWfNs2x9KApd3AiKpx78B3bfQ5VVWv5Nk_LSuU,2371
295
295
  siliconcompiler/tools/xyce/__init__.py,sha256=YTSk-XGtviqthGmGHb6RCDEAIMUQ7ElYZjZzpa1aSBg,1297
@@ -312,7 +312,7 @@ siliconcompiler/tools/yosys/techmaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
312
312
  siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v,sha256=M4T-ygiKmlsprl5eGGLaV5w6HVqlEepn0wlUDmOkapg,773
313
313
  siliconcompiler/tools/yosys/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
314
  siliconcompiler/tools/yosys/templates/abc.const,sha256=TAq9ThdLMYCJGrtToEU0gWcLuEtjE4Gk8huBbTm1v-I,116
315
- siliconcompiler/toolscripts/_tools.json,sha256=I7xm0H0ev5Xe8_mZG94ABEJ5NO4fnO5DBBmbleFHYIU,3959
315
+ siliconcompiler/toolscripts/_tools.json,sha256=jeawsNVi9BJWSeMiIxX0_0mDjv0-WddcU5a_Rm5uPIw,3959
316
316
  siliconcompiler/toolscripts/_tools.py,sha256=P30KY_xbbjl8eHGsPAxDcAzWvJJpiL07ZfGZZDQbdR8,7174
317
317
  siliconcompiler/toolscripts/rhel8/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
318
318
  siliconcompiler/toolscripts/rhel8/install-ghdl.sh,sha256=xCLeEUuJVI_6PVEvnTwBsTWoEHiQg0TY3x-tJXfg6Zk,459
@@ -412,9 +412,9 @@ siliconcompiler/toolscripts/ubuntu24/install-yosys.sh,sha256=zpyt0MVI7tY8kGY2GII
412
412
  siliconcompiler/utils/__init__.py,sha256=6u8A5atgPW7cbC1xrerU67rlOM0FitCgxFIu5F_n5zo,14126
413
413
  siliconcompiler/utils/asic.py,sha256=cMLs7dneSmh5BlHS0-bZ1tLUpvghTw__gNaUCMpyBds,4986
414
414
  siliconcompiler/utils/showtools.py,sha256=qc5HLqCQxUITdhp9rESf0w_blAkKVYL6JpkXQdrew00,1406
415
- siliconcompiler-0.28.8.dist-info/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
416
- siliconcompiler-0.28.8.dist-info/METADATA,sha256=gebkDkb8zph1f-QBL3MlH-uAXGcbz8b5FU6hvNiHRm4,10907
417
- siliconcompiler-0.28.8.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
418
- siliconcompiler-0.28.8.dist-info/entry_points.txt,sha256=TZVS-8akO-8Z1Z1oMjgWryzk_F9dAW74d2ArJV843pg,501
419
- siliconcompiler-0.28.8.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
420
- siliconcompiler-0.28.8.dist-info/RECORD,,
415
+ siliconcompiler-0.28.9.dist-info/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
416
+ siliconcompiler-0.28.9.dist-info/METADATA,sha256=cIK1Z_MCUEI3Zz4VBwApsmfv94-s7Y23x6jvoZ-zKUY,10831
417
+ siliconcompiler-0.28.9.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
418
+ siliconcompiler-0.28.9.dist-info/entry_points.txt,sha256=TZVS-8akO-8Z1Z1oMjgWryzk_F9dAW74d2ArJV843pg,501
419
+ siliconcompiler-0.28.9.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
420
+ siliconcompiler-0.28.9.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.5.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5