Commit Graph

31 Commits

Author SHA1 Message Date
AdvaySingh1 972e4780c9 Removed extra struct partition pass 2026-03-26 16:58:09 -07:00
AdvaySingh1 f9f31afcb4 Makefile pass changes 2026-03-20 12:42:51 -07:00
AdvaySingh1 daf5108434 Added inital cone_parition.cc pass. TODO: check with larger designs 2026-03-19 16:30:11 -07:00
AdvaySingh1 1711da5506 Moved the struct_partition pass to Silimate 2026-03-19 15:06:50 -07:00
Akash Levy 96104b4431 Merge branch 'main' into sat_clkgate 2026-03-03 20:57:42 -08:00
tondapusili f46b8d2a44 silimate: add opt_timing_balance pass and tests 2026-02-27 09:13:39 -08:00
AdvaySingh1 a8e4fccc56 Removed simulation and isValidGatingSignal function 2026-02-17 14:07:22 -08:00
AdvaySingh1 b53acb0ff0 Added pass in Makefile.inc 2026-02-10 14:33:17 -08:00
tondapusili d592f312ab mux_push implementation 2026-02-05 16:49:59 -08:00
tondapusili 643427d9c9 Add negopt pass with comprehensive pattern matching
This commit introduces the negopt pass with pre/post optimization modes
for handling negation patterns in arithmetic circuits.

Pre-optimization patterns (expose for tree balancing):
- manual2sub: (a + ~b) + 1 → a - b
- sub2neg: a - b → a + (-b)
- negexpand: -(a + b) → (-a) + (-b) [with output width fix]
- negneg: -(-a) → a
- negmux: -(s ? a : b) → s ? (-a) : (-b)

Post-optimization patterns (cleanup/rebuild):
- negrebuild: (-a) + (-b) → -(a + b)
- muxneg: s ? (-a) : (-b) → -(s ? a : b)
- neg2sub: a + (-b) → a - b

All patterns use nusers() for fanout checking (standard Yosys style).
Comprehensive test coverage with positive/negative cases and formal
verification via equiv_opt.
2026-02-03 17:21:21 -08:00
Stan Lee a52689a1fa
Merge branch 'main' into main 2026-01-21 15:46:06 -08:00
Akash Levy 947139aca1 Remove opt_balance_tree from silimate (now in opt) 2026-01-21 15:15:21 -08:00
Stan Lee 60a81a2676 reg rename pass reads from vcd for original widths 2026-01-20 15:35:13 -08:00
Stan Lee 15026033a3 annotate original register width 2026-01-19 11:19:41 -08:00
Stan Lee 4a1af73ec0 activity pass and a vcd writer bug fix 2026-01-16 16:32:04 -08:00
Akash Levy 33ddae41c3 Remove lut2bmux from silimate after upstreaming 2026-01-14 20:24:26 -08:00
Mohamed Gaber 32d952944d
new pass `read_liberty2json`
Moves the processing of liberty2json translated-files to c++. Essentially a 1:1 translation of the original internal code as much as possible, with the addition of strict type-checking.
2025-11-04 13:37:55 +02:00
Akash Levy 66abd04b5a Remove annotate_logic_depth 2025-10-01 20:57:51 -07:00
Akash Levy c8d8c4f408 Add fanoutbuf pass 2025-10-01 19:23:45 -07:00
Akash Levy 17e3ed3258 Remove annotate_unqcoef (for now) 2025-10-01 19:23:13 -07:00
Akash Levy 507d43a9b8 Fixups 2025-09-28 06:16:07 -07:00
Mohamed Gaber 46ba89059a splitlarge: new pass to split wide arithmetic operators
Adds a new pass, `splitlarge`, that recursively divides $add/$sub
cells into smaller cells until each cell's width doesn't exceed a
given max_width (128 by default.) An $add/$sub cell's width for
this purpose is defined as the higher of the widths of its two
inputs.

A test was written in Tcl for it, which tests this matrix:
- cell: $add/$sub
- b: unsigned, signed
- a: unsigned, signed

This is the first test for a Silimate pass in Tcl and thus
`run-test.sh` was modified to include it.
2025-05-15 17:45:08 +03:00
Akash Levy f488b0e74c Add lut2bmux, annotate_unqcoef, and seed tests 2025-03-31 05:55:54 -07:00
Akash Levy 161ff0fa3f Add muxmode pass and tests 2025-03-30 17:54:18 -07:00
Akash Levy dacd882383 Remove selectconst 2025-03-28 17:40:40 -07:00
Akash Levy d9af46538c opt_expand peepopt (still needs testing) 2025-03-17 04:12:06 -07:00
Akash Levy dc75774c5b Breakreduce pass (still needs testing) 2025-03-17 04:10:08 -07:00
Akash Levy 18393156db
Update Makefile.inc 2025-02-24 16:18:05 -08:00
Alain Dargelas 767b498603 Fixes 2025-02-20 10:30:04 -08:00
Akash Levy 1b13b5d6ea Move segv and reenable loops.v test 2025-02-14 10:02:30 -08:00
Akash Levy fd811ddaee Cleanup 2025-02-14 08:48:27 -08:00