Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ast: avoid intermediate wires/assigns when lowering to AST_MEMINIT. | whitequark | 2020-02-07 | 1 | -65/+84 |
| | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, every initial assignment to a memory generated two wires and four assigns in a process. For unknown reasons (I did not investigate), large amounts of assigns cause quadratic slowdown later in the AST frontend, in processAst/removeSignalFromCaseTree. As a consequence, common and reasonable Verilog code, such as: reg [`WIDTH:0] mem [0:`DEPTH]; integer i; initial for (i = 0; i <= `DEPTH; i++) mem[i] = 0; took extremely long time to be processed; around 80 s for a 8-wide, 8192-deep memory. After this commit, initial assignments where address and/or data are constant (after `generate`) do not incur the cost of intermediate wires; expressions like `mem[i+1]=i^(i<<1)` are considered constant. This results in speedups of orders of magnitude for common memory sizes; it now takes merely 0.4 s to process a 8-wide, 8192-deep memory, and only 5.8 s to process a 8-wide, 131072-deep one. As a bonus, this change also results in nontrivial speedups later in the synthesis pipeline, since pass sequencing issues meant that all of these intermediate wires were subject to transformations such as width reduction, even though they existed solely to be constant folded away in `memory_collect`. | ||||
* | Merge pull request #1682 from YosysHQ/eddie/opt_after_techmap | Eddie Hung | 2020-02-05 | 8 | -5/+9 |
|\ | | | | | synth_*: call 'opt -fast' after 'techmap' | ||||
| * | synth_*: call 'opt -fast' after 'techmap' | Eddie Hung | 2020-02-05 | 8 | -5/+9 |
|/ | |||||
* | shiftx2mux: fix select out of bounds | Eddie Hung | 2020-02-05 | 3 | -2/+14 |
| | |||||
* | Merge pull request #1576 from YosysHQ/eddie/opt_merge_init | Eddie Hung | 2020-02-05 | 2 | -1/+65 |
|\ | | | | | opt_merge: discard \init of '$' cells with 'Q' port when merging | ||||
| * | Merge remote-tracking branch 'origin/master' into eddie/opt_merge_init | Eddie Hung | 2020-01-28 | 190 | -4933/+9266 |
| |\ | |||||
| * | | Add $_FF_ and $_SR* courtesy of @mwkmwkmwk | Eddie Hung | 2019-12-20 | 2 | -23/+33 |
| | | | |||||
| * | | More stringent check for flop cells | Eddie Hung | 2019-12-20 | 1 | -2/+4 |
| | | | |||||
| * | | opt_merge to discard \init of '$' cells with 'Q' port when merging | Eddie Hung | 2019-12-13 | 1 | -0/+11 |
| | | | |||||
| * | | Add testcase | Eddie Hung | 2019-12-13 | 1 | -0/+49 |
| | | | |||||
* | | | Merge pull request #1650 from YosysHQ/eddie/shiftx2mux | Eddie Hung | 2020-02-05 | 4 | -39/+185 |
|\ \ \ | | | | | | | | | techmap LSB-first for compatible $shift/$shiftx cells | ||||
| * \ \ | Merge remote-tracking branch 'origin/master' into eddie/shiftx2mux | Eddie Hung | 2020-02-05 | 77 | -1944/+4467 |
| |\ \ \ | |||||
| * | | | | Update tests with reduced area | Eddie Hung | 2020-01-21 | 2 | -6/+6 |
| | | | | | |||||
| * | | | | Explicitly create separate $mux cells | Eddie Hung | 2020-01-21 | 1 | -2/+2 |
| | | | | | |||||
| * | | | | Fix tests -- when Y_WIDTH is non-pow-2 | Eddie Hung | 2020-01-21 | 1 | -3/+4 |
| | | | | | |||||
| * | | | | Move from +/shiftx2mux.v into +/techmap.v; cleanup | Eddie Hung | 2020-01-21 | 4 | -77/+73 |
| | | | | | |||||
| * | | | | New techmap +/shiftx2mux.v which decomposes LSB first; better for ABC | Eddie Hung | 2020-01-21 | 3 | -0/+149 |
| | | | | | |||||
* | | | | | abc9_ops: -reintegrate to use derived_type for box_ports | Eddie Hung | 2020-02-05 | 2 | -2/+22 |
| |/ / / |/| | | | |||||
* | | | | Merge pull request #1638 from YosysHQ/eddie/fix1631 | Eddie Hung | 2020-02-05 | 2 | -6/+143 |
|\ \ \ \ | | | | | | | | | | | clk2fflogic: work for bit-level $_DFF_* and $_DFFSR_* | ||||
| * | | | | More rigorous test | Eddie Hung | 2020-01-16 | 1 | -7/+34 |
| | | | | | |||||
| * | | | | clk2fflogic: work for bit-level $_DFF_* and $_DFFSR_* | Eddie Hung | 2020-01-15 | 2 | -6/+116 |
| | | | | | |||||
* | | | | | Merge pull request #1661 from YosysHQ/eddie/abc9_required | Eddie Hung | 2020-02-05 | 12 | -242/+809 |
|\ \ \ \ \ | | | | | | | | | | | | | abc9: add support for required times | ||||
| * | | | | | abc9_ops: -check for negative arrival/required times | Eddie Hung | 2020-01-27 | 1 | -4/+22 |
| | | | | | | |||||
| * | | | | | Fix typo | Eddie Hung | 2020-01-27 | 1 | -1/+1 |
| | | | | | | |||||
| * | | | | | Merge branch 'eddie/abc9_refactor' into eddie/abc9_required | Eddie Hung | 2020-01-27 | 26 | -246/+537 |
| |\ \ \ \ \ | |||||
| * \ \ \ \ \ | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-15 | 3 | -3/+16 |
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * | | | | | | | Update README.md for (* abc9_required *) | Eddie Hung | 2020-01-15 | 1 | -4/+9 |
| | | | | | | | | |||||
| * | | | | | | | abc9_ops: -write_box is empty, output a dummy box to prevent ABC error | Eddie Hung | 2020-01-15 | 4 | -4/+4 |
| | | | | | | | | |||||
| * | | | | | | | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-15 | 1 | -1/+2 |
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * | | | | | | | | abc9_ops: cope with (* abc9_flop *) in place of (* abc9_box_id *) | Eddie Hung | 2020-01-14 | 2 | -3/+3 |
| | | | | | | | | | |||||
| * | | | | | | | | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-14 | 2 | -27/+19 |
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * | | | | | | | | | abc9_ops: -check to check abc9_{arrival,required} | Eddie Hung | 2020-01-14 | 1 | -3/+30 |
| | | | | | | | | | | |||||
| * | | | | | | | | | abc9_ops: implement a requireds_cache | Eddie Hung | 2020-01-14 | 1 | -26/+34 |
| | | | | | | | | | | |||||
| * | | | | | | | | | abc9_ops: generate flop box ids, add abc9_required to FD* cells | Eddie Hung | 2020-01-14 | 3 | -78/+106 |
| | | | | | | | | | | |||||
| * | | | | | | | | | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-14 | 2 | -10/+1 |
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * | | | | | | | | | | abc9_ops: fix -reintegrate handling of $__ABC9_DELAY | Eddie Hung | 2020-01-14 | 1 | -2/+3 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | abc9_ops: -prep_times -> -prep_delays; add doc | Eddie Hung | 2020-01-14 | 2 | -11/+23 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | abc9_ops: cleanup | Eddie Hung | 2020-01-14 | 1 | -14/+5 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | abc9_ops: discard $__ABC9_DELAY boxes | Eddie Hung | 2020-01-14 | 1 | -7/+2 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | write_xaiger: skip if no arrival times | Eddie Hung | 2020-01-14 | 1 | -0/+3 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-14 | 22 | -389/+789 |
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * \ \ \ \ \ \ \ \ \ \ | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-12 | 11 | -156/+198 |
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required | ||||
| * | | | | | | | | | | | | log_debug() for abc9_{arrival,required} times | Eddie Hung | 2020-01-10 | 2 | -1/+15 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Add abc9_required to DSP48E1.{A,B,C,D,PCIN} | Eddie Hung | 2020-01-10 | 1 | -38/+117 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | abc9_ops -prep_times: generate flop boxes from abc9_required attr | Eddie Hung | 2020-01-10 | 2 | -78/+67 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | abc9_ops -prep_times: update comment | Eddie Hung | 2020-01-10 | 1 | -3/+4 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Add abc9_ops -check, -prep_times, -write_box for required times | Eddie Hung | 2020-01-10 | 3 | -75/+256 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | abc9_exe: -box to not require -lut | Eddie Hung | 2020-01-09 | 1 | -9/+4 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | write_xaiger: cleanup | Eddie Hung | 2020-01-09 | 1 | -17/+15 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Merge remote-tracking branch 'origin/eddie/abc9_refactor' into ↵ | Eddie Hung | 2020-01-09 | 1 | -56/+50 |
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eddie/abc9_required |