siliconcompiler 0.28.6__py3-none-any.whl → 0.28.8__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.6'
2
+ version = '0.28.8'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -133,7 +133,7 @@ def graph(metrics, nodes, node_to_step_index_map, graph_number):
133
133
 
134
134
  data, metric_unit = report.get_chart_data(_get_report_chips(), metric, nodes_as_step_and_index)
135
135
  if metric_unit:
136
- y_axis_label = f'{metric}({metric_unit})'
136
+ y_axis_label = f'{metric} ({metric_unit})'
137
137
 
138
138
  # Prepare plot data
139
139
  filtered_data = {
@@ -142,7 +142,12 @@ def graph(metrics, nodes, node_to_step_index_map, graph_number):
142
142
  color_label: []
143
143
  }
144
144
 
145
- if not nodes.empty:
145
+ labels = {
146
+ "runs": state.get_key(state.GRAPH_JOBS),
147
+ "nodes": [f'{step}{index}' for step, index in data]
148
+ }
149
+
150
+ if nodes:
146
151
  # filtering through data
147
152
  for job_name in state.get_key(state.GRAPH_JOBS):
148
153
  for step, index in data:
@@ -154,7 +159,7 @@ def graph(metrics, nodes, node_to_step_index_map, graph_number):
154
159
  filtered_data[y_axis_label].append(data[(step, index)][job_name])
155
160
 
156
161
  # Setup chart
157
- x_axis = altair.X(x_axis_label, axis=altair.Axis(labelAngle=-75))
162
+ x_axis = altair.X(x_axis_label, axis=altair.Axis(labelAngle=-75), sort=labels[x_axis_label])
158
163
 
159
164
  y_axis = y_axis_label
160
165
  if log_scale and chart_type != 'bar':
@@ -183,9 +188,9 @@ def graph(metrics, nodes, node_to_step_index_map, graph_number):
183
188
  streamlit.altair_chart(chart, use_container_width=True, theme='streamlit')
184
189
 
185
190
 
186
- def viewer(metric_dataframe, node_to_step_index_map, metric_to_metric_unit_map):
187
- metrics = metric_dataframe.index.map(lambda x: metric_to_metric_unit_map[x])
188
- nodes = metric_dataframe.columns
191
+ def viewer(node_to_step_index_map):
192
+ nodes, metrics = report.get_chart_selection_options(_get_report_chips())
193
+ metrics = sorted(metrics)
189
194
 
190
195
  job_selector_col, graph_adder_col = streamlit.columns(2, gap='large')
191
196
  with job_selector_col:
@@ -91,6 +91,6 @@ def layout():
91
91
 
92
92
  if "Graphs" in tabs:
93
93
  with tabs["Graphs"]:
94
- graph.viewer(metric_dataframe, node_to_step_index_map, metric_to_metric_unit_map)
94
+ graph.viewer(node_to_step_index_map)
95
95
 
96
96
  _common.check_rerun()
@@ -112,6 +112,6 @@ def layout():
112
112
  components.file_viewer(chip, f'{chip.getworkdir()}/{chip.design}.png')
113
113
 
114
114
  if tab_selected == "Graphs":
115
- graph.viewer(metric_dataframe, node_to_step_index_map, metric_to_metric_unit_map)
115
+ graph.viewer(node_to_step_index_map)
116
116
 
117
117
  _common.check_rerun()
@@ -105,6 +105,6 @@ def layout():
105
105
  components.file_viewer(chip, f'{chip.getworkdir()}/{chip.design}.png')
106
106
 
107
107
  if tab_selected == "Graphs":
108
- graph.viewer(metric_dataframe, node_to_step_index_map, metric_to_metric_unit_map)
108
+ graph.viewer(node_to_step_index_map)
109
109
 
110
110
  _common.check_rerun()
@@ -335,9 +335,28 @@ def get_files(chip, step, index):
335
335
  return logs_and_reports
336
336
 
337
337
 
338
+ def get_chart_selection_options(chips):
339
+ '''
340
+ Returns all the nodes and metrics available in the provided chips
341
+
342
+ Args:
343
+ chips (list) : A list of dictionaries with the form
344
+ {'chip_object': chip, 'chip_name': name}.
345
+ '''
346
+ nodes = set()
347
+ metrics = set()
348
+ for chip_and_chip_name in chips:
349
+ chip = chip_and_chip_name['chip_object']
350
+ nodes_list, _, _, _, chip_metrics, _ = \
351
+ utils._collect_data(chip, format_as_string=False)
352
+ nodes.update(set([f'{step}{index}' for step, index in nodes_list]))
353
+ metrics.update(set(chip_metrics))
354
+ return nodes, metrics
355
+
356
+
338
357
  def get_chart_data(chips, metric, nodes):
339
358
  '''
340
- Returns returns a a tuple where the first element is a 2d dictionary of
359
+ Returns returns a tuple where the first element is a 2d dictionary of
341
360
  data points, following the forms {step+index: {chip_name: value}} where
342
361
  each dictionary can have many keys. The second element is a string that represents the unit.
343
362
 
@@ -1,4 +1,5 @@
1
1
  from .. import _common
2
+ import json
2
3
 
3
4
 
4
5
  def get_mainlib(chip):
@@ -169,3 +170,49 @@ def get_tool_task_var(chip,
169
170
  _, value = _common.pick_key(chip, reversed(check_keys), step=step, index=index)
170
171
 
171
172
  return value
173
+
174
+
175
+ class CellArea:
176
+ def __init__(self):
177
+ self.__areas = {}
178
+
179
+ def addCell(self, name=None, module=None,
180
+ cellarea=None, cellcount=None,
181
+ macroarea=None, macrocount=None,
182
+ stdcellarea=None, stdcellcount=None):
183
+ if not name and not module:
184
+ return
185
+
186
+ if all([metric is None for metric in (
187
+ cellarea, cellcount,
188
+ macroarea, macrocount,
189
+ stdcellarea, stdcellcount)]):
190
+ return
191
+
192
+ if not name:
193
+ name = module
194
+
195
+ # ensure name is unique
196
+ check_name = name
197
+ idx = 0
198
+ while check_name in self.__areas:
199
+ check_name = f'{name}{idx}'
200
+ idx += 1
201
+ name = check_name
202
+
203
+ self.__areas[name] = {
204
+ "module": module,
205
+ "cellarea": cellarea,
206
+ "cellcount": cellcount,
207
+ "macroarea": macroarea,
208
+ "macrocount": macrocount,
209
+ "stdcellarea": stdcellarea,
210
+ "stdcellcount": stdcellcount
211
+ }
212
+
213
+ def size(self):
214
+ return len(self.__areas)
215
+
216
+ def writeReport(self, path):
217
+ with open(path, 'w') as f:
218
+ json.dump(self.__areas, f, indent=4)
@@ -3,7 +3,7 @@ import os
3
3
  import sys
4
4
 
5
5
 
6
- def show(schema, tech, input_path, output_path, screenshot=False):
6
+ def show(schema, tech, input_path, output_path, screenshot=False, report=None):
7
7
  # Extract info from manifest
8
8
  flow = schema.get('option', 'flow')
9
9
  step = schema.get('arg', 'step')
@@ -80,6 +80,14 @@ def show(schema, tech, input_path, output_path, screenshot=False):
80
80
  __screenshot(schema, layout_view, output_path)
81
81
  else:
82
82
  __screenshot_montage(schema, layout_view, xbins, ybins)
83
+ else:
84
+ if report:
85
+ rdb_id = layout_view.create_rdb(os.path.basename(report))
86
+ rdb = layout_view.rdb(rdb_id)
87
+ print(f"[INFO] reading DRC report: {report}")
88
+ rdb.load(report)
89
+
90
+ layout_view.show_rdb(rdb_id, cell_view.index())
83
91
 
84
92
 
85
93
  def __screenshot(schema, layout_view, output_path):
@@ -215,24 +223,56 @@ def main():
215
223
  if not design:
216
224
  design = schema.get('design')
217
225
 
218
- if 'show_filepath' in schema.getkeys('tool', 'klayout', 'task', task, 'var') and \
219
- schema.get('tool', 'klayout', 'task', task, 'var', 'show_filepath',
220
- step=step, index=index):
221
- sc_filename = schema.get('tool', 'klayout', 'task', task, 'var', 'show_filepath',
222
- step=step, index=index)[0]
223
- else:
224
- sc_fileext = schema.get('tool', 'klayout', 'task', task, 'var', 'show_filetype',
225
- step=step, index=index)[0]
226
- for ext in (f'{sc_fileext}.gz', sc_fileext):
227
- sc_filename = f"inputs/{design}.{ext}"
228
- if os.path.exists(sc_filename):
226
+ sc_fileext = schema.get('tool', 'klayout', 'task', task, 'var', 'show_filetype',
227
+ step=step, index=index)[0]
228
+ sc_report = None
229
+ if sc_fileext in ('lyrdb', 'ascii'):
230
+ sc_report = schema.get('tool', 'klayout', 'task', task, 'var', 'show_filepath',
231
+ step=step, index=index)[0]
232
+
233
+ sc_filename = None
234
+ for fileext in ('gds', 'oas'):
235
+ for ext in (f'{fileext}.gz', fileext):
236
+ sc_filename = f"inputs/{design}.{ext}"
237
+ if os.path.exists(sc_filename):
238
+ break
239
+ sc_filename = None
240
+ if sc_filename:
229
241
  break
230
242
 
243
+ if not sc_filename:
244
+ show_step = schema.get('arg', 'step')
245
+ if schema.valid('tool', 'klayout', 'task', task, 'var', 'show_step'):
246
+ show_index = schema.get('tool', 'klayout', 'task', task, 'var', 'show_step',
247
+ step=step, index=index)[0]
248
+ show_index = schema.get('arg', 'index')
249
+ if schema.valid('tool', 'klayout', 'task', task, 'var', 'show_index'):
250
+ show_index = schema.get('tool', 'klayout', 'task', task, 'var', 'show_index',
251
+ step=step, index=index)[0]
252
+ for fileext in ('gds', 'oas'):
253
+ if schema.valid('input', 'layout', fileext) and \
254
+ schema.get('input', 'layout', fileext, step=show_step, index=show_index):
255
+ sc_filename = schema.get('input', 'layout', fileext,
256
+ step=show_step, index=show_index)[0]
257
+ if sc_filename:
258
+ break
259
+ else:
260
+ if 'show_filepath' in schema.getkeys('tool', 'klayout', 'task', task, 'var') and \
261
+ schema.get('tool', 'klayout', 'task', task, 'var', 'show_filepath',
262
+ step=step, index=index):
263
+ sc_filename = schema.get('tool', 'klayout', 'task', task, 'var', 'show_filepath',
264
+ step=step, index=index)[0]
265
+ else:
266
+ for ext in (f'{sc_fileext}.gz', sc_fileext):
267
+ sc_filename = f"inputs/{design}.{ext}"
268
+ if os.path.exists(sc_filename):
269
+ break
270
+
231
271
  sc_exit = schema.get('tool', 'klayout', 'task', task, 'var', 'show_exit',
232
272
  step=step, index=index) == ["true"]
233
273
 
234
274
  show(schema, technology(design, schema), sc_filename, f'outputs/{design}.png',
235
- screenshot=(task == 'screenshot'))
275
+ screenshot=(task == 'screenshot'), report=sc_report)
236
276
 
237
277
  if sc_exit:
238
278
  pya.Application.instance().exit(0)
@@ -17,7 +17,8 @@ from siliconcompiler import sc_open
17
17
  from siliconcompiler import utils
18
18
  from siliconcompiler.tools._common import input_provides, add_common_file, \
19
19
  get_tool_task, record_metric
20
- from siliconcompiler.tools._common.asic import get_mainlib, set_tool_task_var, get_libraries
20
+ from siliconcompiler.tools._common.asic import get_mainlib, set_tool_task_var, get_libraries, \
21
+ CellArea
21
22
  from siliconcompiler.targets import asap7_demo
22
23
 
23
24
 
@@ -268,8 +269,12 @@ def post_process(chip):
268
269
  "timing/hold.rpt",
269
270
  "timing/hold.topN.rpt"],
270
271
  "holdpaths": ["timing/hold.topN.rpt"],
271
- "unconstrained": ["timing/unconstrained.topN.rpt"],
272
- "peakpower": [f"power/{corner}.rpt" for corner in chip.getkeys('constraint', 'timing')],
272
+ "unconstrained": ["timing/unconstrained.rpt", "timing/unconstrained.topN.rpt"],
273
+ "peakpower": [
274
+ *[f"power/{corner}.rpt" for corner in chip.getkeys('constraint', 'timing')],
275
+ *[f"images/heatmap/power_density/{corner}.png"
276
+ for corner in chip.getkeys('constraint', 'timing')]
277
+ ],
273
278
  "drvs": ["timing/drv_violators.rpt",
274
279
  "floating_nets.rpt",
275
280
  f"{chip.design}_antenna.rpt",
@@ -277,7 +282,9 @@ def post_process(chip):
277
282
  "drcs": [f"{chip.design}_drc.rpt",
278
283
  f"markers/{chip.design}.drc.rpt",
279
284
  f"markers/{chip.design}.drc.json",
280
- f"images/markers/{chip.design}.drc.png"]
285
+ f"images/markers/{chip.design}.drc.png"],
286
+ "utilization": ["images/heatmap/placement_density.png"],
287
+ "wirelength": [f"images/{chip.design}.routing.png"]
281
288
  }
282
289
  metric_reports["leakagepower"] = metric_reports["peakpower"]
283
290
 
@@ -300,6 +307,8 @@ def post_process(chip):
300
307
  chip.logger.error(f'Unable to parse metrics from OpenROAD: {e}')
301
308
  metrics = {}
302
309
 
310
+ _generate_cell_area_report(chip.top(), metrics)
311
+
303
312
  or_units = {}
304
313
  for unit, or_unit in [('time', 'run__flow__platform__time_units'),
305
314
  ('capacitance', 'run__flow__platform__capacitance_units'),
@@ -424,6 +433,114 @@ def post_process(chip):
424
433
  record_metric(chip, step, index, 'drcs', drcs, get_metric_sources('drcs'))
425
434
 
426
435
 
436
+ def _generate_cell_area_report(design, ord_metrics):
437
+ cellarea_report = CellArea()
438
+
439
+ prefix = "sc__cellarea__design__instance"
440
+
441
+ filtered_data = {}
442
+ for key, value in ord_metrics.items():
443
+ if key.startswith(prefix):
444
+ filtered_data[key[len(prefix)+2:]] = value
445
+
446
+ modules = set()
447
+ modules.add("")
448
+ for key in filtered_data.keys():
449
+ if "__in_module:" in key:
450
+ module = key[key.find("__in_module:"):]
451
+ modules.add(module)
452
+
453
+ def process_cell(group):
454
+ data = {}
455
+ for key, value in filtered_data.items():
456
+ if (group != "" and key.endswith(group)):
457
+ key = key[:key.find("__in_module:")]
458
+ data[key] = value
459
+ elif (group == "" and "__in_module" not in key):
460
+ data[key] = value
461
+
462
+ cell_type = None
463
+ cell_name = None
464
+
465
+ if not group:
466
+ cell_type = design
467
+ cell_name = design
468
+ else:
469
+ cell_type = group[len("__in_module:"):]
470
+
471
+ cellarea = None
472
+ cellcount = None
473
+
474
+ macroarea = None
475
+ macrocount = None
476
+
477
+ stdcell_types = (
478
+ 'tie_cell',
479
+ 'standard_cell',
480
+ 'buffer',
481
+ 'clock_buffer',
482
+ 'timing_repair_buffer',
483
+ 'inverter',
484
+ 'clock_inverter',
485
+ 'timing_Repair_inverter',
486
+ 'clock_gate_cell',
487
+ 'level_shifter_cell',
488
+ 'sequential_cell',
489
+ 'multi_input_combinational_cell',
490
+ 'other'
491
+ )
492
+
493
+ stdcell_info_area = []
494
+ stdcell_info_count = []
495
+ stdcellarea = None
496
+ stdcellcount = None
497
+
498
+ for key, value in data.items():
499
+ if key == 'name':
500
+ cell_name = value
501
+ elif key == 'count':
502
+ cellcount = value
503
+ elif key == 'area':
504
+ cellarea = value
505
+ elif key.startswith('count__class'):
506
+ _, cell_class = key.split(':')
507
+ if cell_class == 'macro':
508
+ macrocount = value
509
+ elif cell_class in stdcell_types:
510
+ stdcell_info_count.append(value)
511
+ elif key.startswith('area__class'):
512
+ _, cell_class = key.split(':')
513
+ if cell_class == 'macro':
514
+ macroarea = value
515
+ elif cell_class in stdcell_types:
516
+ stdcell_info_area.append(value)
517
+
518
+ if stdcell_info_count:
519
+ stdcellcount = sum(stdcell_info_count)
520
+ if stdcell_info_area:
521
+ stdcellarea = sum(stdcell_info_area)
522
+
523
+ cellarea_report.addCell(
524
+ name=cell_name,
525
+ module=cell_type,
526
+ cellarea=cellarea,
527
+ cellcount=cellcount,
528
+ macroarea=macroarea,
529
+ macrocount=macrocount,
530
+ stdcellarea=stdcellarea,
531
+ stdcellcount=stdcellcount)
532
+
533
+ if filtered_data:
534
+ return True
535
+ return False
536
+
537
+ for module in modules:
538
+ process_cell(module)
539
+
540
+ if cellarea_report.size() > 0:
541
+ cellarea_report.writeReport("reports/hierarchical_cell_area.json")
542
+
543
+
427
544
  ######
428
545
  def get_library_timing_keypaths(chip, lib):
429
546
  step = chip.get('arg', 'step')
@@ -483,3 +483,12 @@ proc sc_convert_rotation { rot } {
483
483
  default { utl::error FLW 1 "$rot not recognized" }
484
484
  }
485
485
  }
486
+
487
+ proc sc_check_version { min_required } {
488
+ set version [split [ord::openroad_version] "-"]
489
+ if { [lindex $version 0] != "v2.0" } {
490
+ return false
491
+ }
492
+
493
+ return [expr { [lindex $version 1] >= $min_required }]
494
+ }
@@ -168,3 +168,22 @@ foreach markerdb [[ord::get_db_block] getMarkerCategories] {
168
168
  $markerdb writeTR "reports/markers/${sc_design}.[$markerdb getName].rpt"
169
169
  $markerdb writeJSON "reports/markers/${sc_design}.[$markerdb getName].json"
170
170
  }
171
+
172
+ if { [sc_check_version 17038] } {
173
+ utl::push_metrics_stage "sc__cellarea__{}"
174
+ tee -file reports/cell_usage.rpt {report_cell_usage -verbose}
175
+
176
+ foreach modinst [[ord::get_db_block] getModInsts] {
177
+ tee -quiet -append -file reports/cell_usage.rpt { puts "" }
178
+ tee -quiet -append -file reports/cell_usage.rpt {
179
+ puts "########################################################"
180
+ }
181
+ tee -quiet -append -file reports/cell_usage.rpt { puts "" }
182
+
183
+ utl::metric "design__instance__name__in_module:[[$modinst getMaster] getName]" \
184
+ [$modinst getHierarchicalName]
185
+ tee -quiet -append -file reports/cell_usage.rpt \
186
+ "report_cell_usage -verbose [$modinst getHierarchicalName]"
187
+ }
188
+ utl::pop_metrics_stage
189
+ }
@@ -128,6 +128,12 @@ def runtime_options(chip):
128
128
  # If we allow VPR to sweep dangling primary I/Os and logic blocks
129
129
  # it can interfere with circuit debugging; so disable that
130
130
  options.append('--sweep_dangling_primary_ios off')
131
+ # If you don't sweep dangling primary I/Os, but sweeping nets
132
+ # VPR can crash:
133
+ options.append('--sweep_dangling_nets off')
134
+ # If you don't sweep dangling nets then the timing engine requires
135
+ # you to set an option allowing dangling nodes
136
+ options.append('--allow_dangling_combinational_nodes on')
131
137
  options.append('--sweep_constant_primary_outputs off')
132
138
  options.append('--sweep_dangling_blocks off')
133
139
 
@@ -231,6 +231,8 @@ sc_map_memory $sc_memory_libmap_files $sc_memory_techmap_files 0
231
231
 
232
232
  # Perform hierarchy flattening
233
233
  if { !$flatten_design && [lindex [sc_cfg_tool_task_get var auto_flatten] 0] == "true" } {
234
+ yosys log -push
235
+ yosys log -header "SC Auto flattening"
234
236
  set sc_hier_iterations \
235
237
  [lindex [sc_cfg_tool_task_get var hier_iterations] 0]
236
238
  set sc_hier_threshold \
@@ -240,6 +242,7 @@ if { !$flatten_design && [lindex [sc_cfg_tool_task_get var auto_flatten] 0] == "
240
242
  break
241
243
  }
242
244
  }
245
+ yosys log -pop
243
246
  }
244
247
 
245
248
  # Finish synthesis
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "openroad": {
3
3
  "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
- "git-commit": "dcba5786c8e714e3b7682a98d73de40e875699b1",
4
+ "git-commit": "c3e802e73aa2ca2974874e487ae481fc4f2cb8c3",
5
5
  "docker-cmds": [
6
6
  "# Remove OR-Tools files",
7
7
  "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
@@ -84,7 +84,7 @@ def get_default_iomap():
84
84
  # Record extensions:
85
85
 
86
86
  # High level languages
87
- hll_c = ('c', 'cc', 'cpp', 'c++', 'cp', 'cxx', 'hpp')
87
+ hll_c = ('c', 'cc', 'cpp', 'c++', 'cp', 'cxx', 'hpp', 'h')
88
88
  hll_bsv = ('bsv',)
89
89
  hll_scala = ('scala',)
90
90
  hll_python = ('py',)
@@ -92,8 +92,8 @@ def get_default_iomap():
92
92
  config_chisel = ('sbt',)
93
93
 
94
94
  # Register transfer languages
95
- rtl_verilog = ('v', 'verilog')
96
- rtl_systemverilog = ('sv',)
95
+ rtl_verilog = ('v', 'verilog', 'vh')
96
+ rtl_systemverilog = ('sv', 'svh')
97
97
  rtl_vhdl = ('vhd', 'vhdl')
98
98
 
99
99
  # Timing libraries
@@ -116,8 +116,8 @@ def get_default_iomap():
116
116
  waveform_vcd = ('vcd',)
117
117
 
118
118
  # Constraint
119
- constraint_sdc = ('sdc', )
120
- constraint_upf = ('upf', )
119
+ constraint_sdc = ('sdc',)
120
+ constraint_upf = ('upf',)
121
121
 
122
122
  # FPGA constraints
123
123
  fpga_xdc = ('xdc',)
@@ -125,6 +125,10 @@ def get_default_iomap():
125
125
  fpga_vpr_place = ('place',)
126
126
  fpga_vpr_route = ('route',)
127
127
 
128
+ # Reports
129
+ report_drc = ('lyrdb', 'ascii')
130
+ report_log = ('log',)
131
+
128
132
  # Build default map with fileset and type
129
133
  default_iomap = {}
130
134
  default_iomap.update({ext: ('hll', 'c') for ext in hll_c})
@@ -160,6 +164,9 @@ def get_default_iomap():
160
164
  default_iomap.update({ext: ('fpga', 'vpr_place') for ext in fpga_vpr_place})
161
165
  default_iomap.update({ext: ('fpga', 'vpr_route') for ext in fpga_vpr_route})
162
166
 
167
+ default_iomap.update({ext: ('report', 'drc') for ext in report_drc})
168
+ default_iomap.update({ext: ('report', 'log') for ext in report_log})
169
+
163
170
  return default_iomap
164
171
 
165
172
 
@@ -14,6 +14,8 @@ def setup(chip):
14
14
  chip.register_showtool('oas', klayout_screenshot)
15
15
  chip.register_showtool('lef', klayout_show)
16
16
  chip.register_showtool('lef', klayout_screenshot)
17
+ chip.register_showtool('lyrdb', klayout_show)
18
+ chip.register_showtool('ascii', klayout_show)
17
19
 
18
20
  chip.register_showtool('odb', openroad_show)
19
21
  chip.register_showtool('odb', openroad_screenshot)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siliconcompiler
3
- Version: 0.28.6
3
+ Version: 0.28.8
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,7 +25,6 @@ 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: aiohttp ==3.10.10
29
28
  Requires-Dist: requests ==2.32.3
30
29
  Requires-Dist: PyYAML ==6.0.2
31
30
  Requires-Dist: pandas >=1.1.5
@@ -43,13 +42,15 @@ Requires-Dist: fastjsonschema ==2.20.0
43
42
  Requires-Dist: docker ==7.1.0
44
43
  Requires-Dist: sc-surelog ==1.84.1
45
44
  Requires-Dist: orjson ==3.10.11
46
- Requires-Dist: streamlit ==1.40.0 ; python_version != "3.9.7"
47
- Requires-Dist: streamlit-agraph ==0.0.45 ; python_version != "3.9.7"
48
- Requires-Dist: streamlit-antd-components ==0.3.2 ; python_version != "3.9.7"
49
- Requires-Dist: streamlit-javascript ==0.1.5 ; python_version != "3.9.7"
50
- Requires-Dist: streamlit-autorefresh ==1.0.1 ; python_version != "3.9.7"
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"
51
50
  Requires-Dist: importlib-metadata ; python_version < "3.10"
51
+ Requires-Dist: aiohttp ==3.10.11 ; python_version <= "3.8"
52
52
  Requires-Dist: Pillow ==10.4.0 ; python_version <= "3.8"
53
+ Requires-Dist: aiohttp ==3.11.2 ; python_version >= "3.9"
53
54
  Requires-Dist: Pillow ==11.0.0 ; python_version >= "3.9"
54
55
  Provides-Extra: docs
55
56
  Requires-Dist: Sphinx ==8.1.3 ; extra == 'docs'
@@ -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=5pJMzZkLbYvufGtouHKsIxsoZIMBfPT7UXrw4Df388U,1264
4
+ siliconcompiler/_metadata.py,sha256=CumyMn5odWcWqlPwYTx9IioZ5rx0a68RKL7IvU2SO-A,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
@@ -80,7 +80,7 @@ siliconcompiler/remote/server_schema/responses/get_results.json,sha256=h4XraLW4h
80
80
  siliconcompiler/remote/server_schema/responses/remote_run.json,sha256=FWW_0m46qwIJHiTriISzChKHJF6G9RIwP0rmp1OjIuA,475
81
81
  siliconcompiler/report/__init__.py,sha256=ADa-8Jwy4fl2Wtg0ejy4Tvil805uwA4WWTdK125JKcs,388
82
82
  siliconcompiler/report/html_report.py,sha256=Wh5X7iQpfIEHcs-WrVE9dtDf-gkz3GhT_yf8kVG0O3o,2597
83
- siliconcompiler/report/report.py,sha256=Bw09BzVAm1gDBPf2jR3FrEF0434B6bSIa-E3IWbywvI,14294
83
+ siliconcompiler/report/report.py,sha256=OPJhuKAnUzP-dm-6CG6Fy45Gm_rbMapey2WKuJiouYI,14924
84
84
  siliconcompiler/report/summary_image.py,sha256=tKuoLiG6Whvnc8LHeSzU4FookpBkYYCMWUGb-ux2i8k,3570
85
85
  siliconcompiler/report/summary_table.py,sha256=Y5ByOCJQtNOXIz5n9VU_CBHOTdSE0g8ClmfflWkQcXU,3386
86
86
  siliconcompiler/report/utils.py,sha256=70klZsAKwhW55kOxBBdV9zzOU-NorMk6y6riMyKXo7c,6423
@@ -89,12 +89,12 @@ siliconcompiler/report/dashboard/state.py,sha256=qBAmLpKb0xXqf2vRbBBgYs8P71v3MGI
89
89
  siliconcompiler/report/dashboard/viewer.py,sha256=scF4MkbOdqM1pRCzGWnXeMrk4r2M4Y2cDyEIrAWCFiw,1095
90
90
  siliconcompiler/report/dashboard/components/__init__.py,sha256=BkVt0JakAj9kC5WlewdvFESwygjDmhyj85xiV8oc00I,18097
91
91
  siliconcompiler/report/dashboard/components/flowgraph.py,sha256=bjPuaWlEra4HbIUIbtCkYQMNTYueSGP0WO-r16MrBss,3525
92
- siliconcompiler/report/dashboard/components/graph.py,sha256=ueuuDxV6KOtK_akxLFqkbB_MTmiF7JwXaLGE1ZN12Ow,6683
92
+ siliconcompiler/report/dashboard/components/graph.py,sha256=m9y4lxKDgTJNp_eOdLohN1bn6uE3XEnE387xnb4HnUo,6776
93
93
  siliconcompiler/report/dashboard/layouts/__init__.py,sha256=aYhWEoQg4CiwGMCcLH4Yj__d_5tD4vyb164dP2RpURY,638
94
94
  siliconcompiler/report/dashboard/layouts/_common.py,sha256=_Iz5IxftnNKYvhQNA-PWpyv8R1uejvrVUMGmUIEvPf0,1276
95
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py,sha256=nudDr8x6IKa8zrVugtvfj166MEC84eLXwxHCagX6DMc,3470
96
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py,sha256=ORyj7xu7r6sI15IgSS8Epql7yI93n-9dzGQzxCGxbj8,4274
97
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py,sha256=zEFjSby2fyHGt-mxHV-OceHNuTEyYMSyMF3KVRclyFI,4131
95
+ siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py,sha256=ml8qPg2-g3n-HW9E4znwkaYBISyloUjD19_Ooy3iCn0,3425
96
+ siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py,sha256=09n3LqXedQOX8UizlTn9BHyepizmbwz9SIN0QB2PNkA,4229
97
+ siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py,sha256=g6lrnXJVEkTh7OQY1xCgl_q0So0XewItuY0sjnjaBCA,4086
98
98
  siliconcompiler/report/dashboard/utils/__init__.py,sha256=mkcBAlfPovfgoRv9nPbtgQSeFglwlxlSIXsEQmdsDz8,2540
99
99
  siliconcompiler/report/dashboard/utils/file_utils.py,sha256=5MKAyf7TGXQIc3yxwbP1H6xi0NGwUfzu2j3LOv1Yei0,3333
100
100
  siliconcompiler/scheduler/__init__.py,sha256=bkJ5S06BNXsdfjx5nPcgak_9FT8XHxgsnLIYvee5uvk,84997
@@ -139,7 +139,7 @@ siliconcompiler/templates/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
139
139
  siliconcompiler/templates/tcl/manifest.tcl.j2,sha256=XT2pKuPSaa2GPJj1IpEl3Al5N70yqQS8jZecmpyeV4o,3547
140
140
  siliconcompiler/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
141
  siliconcompiler/tools/_common/__init__.py,sha256=wQ0FQcg6bBRmpiUquHVaBpLabyMjSA0ecmxkohv5LlE,14483
142
- siliconcompiler/tools/_common/asic.py,sha256=gmFMY5EWm9c8zC43E-lmjMmCQsrdd852cVoHg_PVpmo,5227
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
145
145
  siliconcompiler/tools/_common/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -188,7 +188,7 @@ siliconcompiler/tools/klayout/klayout.py,sha256=w0iqtdr_tjwH31hgdpCuCZlRByev3c7r
188
188
  siliconcompiler/tools/klayout/klayout_convert_drc_db.py,sha256=WVLI_HJ2yY1_OFDzG40n0B4ULZE6bPqB-l9a8nmoO9E,5608
189
189
  siliconcompiler/tools/klayout/klayout_export.py,sha256=RHGatKDzeBSY6n9oA7PNaLe4HG75kGV4ztAhjNXio0I,8026
190
190
  siliconcompiler/tools/klayout/klayout_operations.py,sha256=okHyVcFVkwHge4hsyOVQBrxILesVtVicT70mGQM51Yk,13054
191
- siliconcompiler/tools/klayout/klayout_show.py,sha256=jZk_p9D3wZ_VjSmiRh71SQ6AduOkFEMVErKvGzWF1P8,9127
191
+ siliconcompiler/tools/klayout/klayout_show.py,sha256=G0buKR41h41VCxlkhFhWdeHiuMJHmnrVFxT8AaGzuA8,11069
192
192
  siliconcompiler/tools/klayout/klayout_utils.py,sha256=62AZwICFrlDzswKbw0H-vcVpoQPaRVjv_wbmclFvlm0,6575
193
193
  siliconcompiler/tools/klayout/operations.py,sha256=_dqcizzyo3MvNBqyLYH9zrPN9vzfJaxCGld7VK6anTc,7850
194
194
  siliconcompiler/tools/klayout/screenshot.py,sha256=ft6mFUdUtgMpEc3sULrO3LNbjReHBeGyaJdbEdW9j1k,3890
@@ -217,7 +217,7 @@ siliconcompiler/tools/openroad/dfm.py,sha256=RjdOqq7oPVSx5HzYUTSlBh4ZGnVfJqJHR0c
217
217
  siliconcompiler/tools/openroad/export.py,sha256=svZZlcUIq9FTDydpoDZdlPyoMVYIkLBUTIBD2dm8TOk,5273
218
218
  siliconcompiler/tools/openroad/floorplan.py,sha256=y7V2WOhHW0MhMJkjx4hQuTsiIKCMpcJiQEu4RaMlq_k,2804
219
219
  siliconcompiler/tools/openroad/metrics.py,sha256=SyGF-foyfJz2VZRxEdA_HCKI9wW3s8jzdBkph1WMG3E,1048
220
- siliconcompiler/tools/openroad/openroad.py,sha256=Xbs2FcTy1ooMhi6NIksidlGi4a8EAnmtUk6Gm8Ez98c,46911
220
+ siliconcompiler/tools/openroad/openroad.py,sha256=Tcte1Vk5zV2LyhNi1gycj2hW8IQ9C86GBtUG2_vP_J8,50463
221
221
  siliconcompiler/tools/openroad/physyn.py,sha256=ZgEPRTGyXe930PsXNHx1p7ITsBa6x7_EyZfW8vM0-O8,682
222
222
  siliconcompiler/tools/openroad/place.py,sha256=0eRg3n0x3zawg8jp7akDpc1KbUw4LKqeGJ2MMliXbnU,1018
223
223
  siliconcompiler/tools/openroad/rcx_bench.py,sha256=EEOsuQhB2z09dbKqQ8CVgFQyymTceKG1fgFWUbEbcxQ,3658
@@ -235,12 +235,12 @@ siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl,sha256=XufELL8Ys4kUrSSQw
235
235
  siliconcompiler/tools/openroad/scripts/sc_metrics.tcl,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
236
236
  siliconcompiler/tools/openroad/scripts/sc_physyn.tcl,sha256=hLAVeE_a__ZBgVMOSmMwCwtTDfflZptPmphaqibYvEk,115
237
237
  siliconcompiler/tools/openroad/scripts/sc_place.tcl,sha256=WMuYB-LXQP8YdcYMHTkqGzOvn1bK6X7mOm12gEK4kKY,1937
238
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl,sha256=1OtBZJiy9zZgCzD6uDqCtFJrSu1n8kO0EoeVVXx0Ctc,12426
238
+ siliconcompiler/tools/openroad/scripts/sc_procs.tcl,sha256=ZjLhdb0ddjFMn_ATbVRhGRrgUC1bi4aCfHNjbDosHIQ,12640
239
239
  siliconcompiler/tools/openroad/scripts/sc_rcx.tcl,sha256=-70AuNikbsoHd_bW-myc8QMbmJNFSK-DqKIN_HF0luc,1514
240
240
  siliconcompiler/tools/openroad/scripts/sc_rcx_bench.tcl,sha256=d_VgTJA4hwRiaJVTTBOl1LxfJ3KB7fHJjmj8eTm1GRs,682
241
241
  siliconcompiler/tools/openroad/scripts/sc_rcx_extract.tcl,sha256=Aj9J_8aiOR1WqcQvdx99WyUDcN8RafxXwtrexcS5UcU,489
242
242
  siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl,sha256=HFGXVIb8f3FPHl0qR25_I3xhx49jfIMI8WSIw0sYbSw,4844
243
- siliconcompiler/tools/openroad/scripts/sc_report.tcl,sha256=mVZaVB3bEp6DQkdzP3m-uzqAIIbslnA5lCmmkJmHZfw,5477
243
+ siliconcompiler/tools/openroad/scripts/sc_report.tcl,sha256=lrMQ5j41xIXA5a6Q_6EejAT2P0dj3gMBwwGNjKdSN2I,6208
244
244
  siliconcompiler/tools/openroad/scripts/sc_route.tcl,sha256=m1TanwYlYcPbisO92gCih4jnxyaQ5BVDB71PtOCipqI,3919
245
245
  siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl,sha256=nMbqIIcnUQ5kmdYXjeu-P2k3SOSWS1ORrUEMyGavGU0,437
246
246
  siliconcompiler/tools/openroad/scripts/sc_write.tcl,sha256=5N7ZKWU_8NdEYO-n6tuTXCmWCYtClDjHykOidKyFWdk,168
@@ -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=MjHf4J5s1Hz05SG_dOxrnQAR9hTv980339xH67hI5B4,14091
292
+ siliconcompiler/tools/vpr/vpr.py,sha256=Ydzh25XqK70tH-IAdF2ZMBfYsCqpG7I9KSAaJEtuF4s,14410
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
@@ -303,7 +303,7 @@ siliconcompiler/tools/yosys/sc_screenshot.tcl,sha256=-7Bb-HhJsZjSdSIlYCTZnZgigwB
303
303
  siliconcompiler/tools/yosys/sc_syn.tcl,sha256=ZtLbH-x9tPdZgHwcCLWZ4qQ4zqh1imLluj2LyW86P4k,2321
304
304
  siliconcompiler/tools/yosys/screenshot.py,sha256=Octzl15bG8LmXdyU-hv9QsP9GTrhoLYzdvi_yTRzXXo,5629
305
305
  siliconcompiler/tools/yosys/syn_asic.py,sha256=jEYfQTaTIPj4UHY2AKJocW3wMW2Prtgu6t55esNpZ_E,24106
306
- siliconcompiler/tools/yosys/syn_asic.tcl,sha256=kws8B7e7_2Z_Bat2_3D9SnKmuNWpuuIAHy02kpGwe5Y,11875
306
+ siliconcompiler/tools/yosys/syn_asic.tcl,sha256=MNUmV_qdkHfgDAPDb0urVwRLE65Y5xNodGOW4Zo7nTM,11957
307
307
  siliconcompiler/tools/yosys/syn_fpga.py,sha256=rF4TMBUhmtiWwdx1KJeW-cNiAnkTXmo_0htyuUE7plY,5427
308
308
  siliconcompiler/tools/yosys/syn_fpga.tcl,sha256=03w87fLgDwD65tDiUbkTBI-rKQUkMDnHI0u42UrA6D8,8030
309
309
  siliconcompiler/tools/yosys/syn_strategies.tcl,sha256=YJ5bXCdUNDZZ4EY4wBGS-9m0EeNlANBIO9e5a_6A0KA,5329
@@ -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=wTknmgxxAimBLm0crN_uDsJ40sbt-rUQFEMAbc37qiA,3959
315
+ siliconcompiler/toolscripts/_tools.json,sha256=I7xm0H0ev5Xe8_mZG94ABEJ5NO4fnO5DBBmbleFHYIU,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
@@ -321,7 +321,6 @@ siliconcompiler/toolscripts/rhel8/install-klayout.sh,sha256=lUCSc0Yr0NBUMVragNyJ
321
321
  siliconcompiler/toolscripts/rhel8/install-magic.sh,sha256=ugiH7ybdxQggs0ucUHiVtCOO142XOh5OhOmmt_aZXRs,609
322
322
  siliconcompiler/toolscripts/rhel8/install-montage.sh,sha256=pbN01ZSgiueaTfmzGusGO2-fkkZvZrfkXJ677TRRI0s,51
323
323
  siliconcompiler/toolscripts/rhel8/install-netgen.sh,sha256=--stLV3oJXJQhCyhTMZ5xFpXgmUf7lyHyPdvVzfZLWo,507
324
- siliconcompiler/toolscripts/rhel8/install-openroad.sh,sha256=pbhQLUq29Z-mW6Xht9HqvRk2LNcoEMKH_yrWbJIHMj0,641
325
324
  siliconcompiler/toolscripts/rhel8/install-slang.sh,sha256=ACEaxECARXBlLuvflv9DnToi8ShQuycBNwaDyCVB5V8,698
326
325
  siliconcompiler/toolscripts/rhel8/install-surelog.sh,sha256=5Z6yEJWnSjj-2hHUJzFyokmIm04UOKKAAND_U6779qA,955
327
326
  siliconcompiler/toolscripts/rhel8/install-sv2v.sh,sha256=WtLXu7Z2bMFsmjP_G6Dox4VXXx1u96uTBpnJJMXU8lo,549
@@ -410,12 +409,12 @@ siliconcompiler/toolscripts/ubuntu24/install-vpr.sh,sha256=W-zXV8t0BoiXWMDOPaUlt
410
409
  siliconcompiler/toolscripts/ubuntu24/install-xdm.sh,sha256=6xhhCtqqVeFaiSuIzLYMLhPBY685XMejEmcXuU_bXwg,701
411
410
  siliconcompiler/toolscripts/ubuntu24/install-xyce.sh,sha256=33Iq99sLdiVWFl4zpD2hxbK1Cq5qYiXYukbr5p9Yw4k,1805
412
411
  siliconcompiler/toolscripts/ubuntu24/install-yosys.sh,sha256=zpyt0MVI7tY8kGY2GIIZvWlXOXm0T7N9IMIZ18Oe26E,713
413
- siliconcompiler/utils/__init__.py,sha256=fdTd5f6W-45YiVY4lU2lyVWE4Y97-uRUfEXY8SpAFgU,13887
412
+ siliconcompiler/utils/__init__.py,sha256=6u8A5atgPW7cbC1xrerU67rlOM0FitCgxFIu5F_n5zo,14126
414
413
  siliconcompiler/utils/asic.py,sha256=cMLs7dneSmh5BlHS0-bZ1tLUpvghTw__gNaUCMpyBds,4986
415
- siliconcompiler/utils/showtools.py,sha256=QPlS42bkJM3EPKDcoxA0oATSFJM2TFpz-ZVCBV_7Ts4,1306
416
- siliconcompiler-0.28.6.dist-info/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
417
- siliconcompiler-0.28.6.dist-info/METADATA,sha256=Q4jplEpdLt1k-TpRSnjevgVqhFVTilZJenNEHMZUPu8,10798
418
- siliconcompiler-0.28.6.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
419
- siliconcompiler-0.28.6.dist-info/entry_points.txt,sha256=TZVS-8akO-8Z1Z1oMjgWryzk_F9dAW74d2ArJV843pg,501
420
- siliconcompiler-0.28.6.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
421
- siliconcompiler-0.28.6.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (75.5.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,31 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
6
-
7
- mkdir -p deps
8
- cd deps
9
-
10
- git clone $(python3 ${src_path}/_tools.py --tool openroad --field git-url) openroad
11
- cd openroad
12
- git checkout $(python3 ${src_path}/_tools.py --tool openroad --field git-commit)
13
- git submodule update --init --recursive
14
-
15
- deps_args=""
16
- if [ ! -z ${PREFIX} ]; then
17
- deps_args="-prefix=$PREFIX"
18
- fi
19
- sudo ./etc/DependencyInstaller.sh $deps_args
20
-
21
- cmake_args="-DENABLE_TESTS=OFF"
22
- if [ ! -z ${PREFIX} ]; then
23
- cmake_args="$cmake_args -DCMAKE_INSTALL_PREFIX=$PREFIX"
24
- fi
25
-
26
- ./etc/Build.sh -cmake="$cmake_args"
27
-
28
- cd build
29
- sudo make install
30
-
31
- cd -