aboutsummaryrefslogtreecommitdiffstats
path: root/passes
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Cleanups in ARST handling in wreduceClifford Wolf2019-02-241-10/+4
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Merge pull request #824 from litghost/fix_reduce_on_ffClifford Wolf2019-02-241-0/+13
|\ \ \ | | | | | | | | Fix WREDUCE on FF not fixing ARST_VALUE parameter.
| * | | Fix WREDUCE on FF not fixing ARST_VALUE parameter.Keith Rothman2019-02-221-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | Adds test case that fails without code change. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* | | | Merge pull request #740 from daveshah1/improve_dressClifford Wolf2019-02-221-31/+62
|\ \ \ \ | |/ / / |/| | | Improve ABC netname preservation
| * | | abc: Improved recovered netnames, also preserve src on nets with dressDavid Shah2019-02-061-4/+13
| | | | | | | | | | | | | | | | Signed-off-by: David Shah <davey1576@gmail.com>
| * | | abc: Preserve naming through ABC using 'dress' commandDavid Shah2019-02-061-29/+51
| | | | | | | | | | | | | | | | Signed-off-by: David Shah <dave@ds0.me>
* | | | Hotfix for 4c82ddfClifford Wolf2019-02-211-11/+2
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Add -params mode to force undef parameters in selected cells.Keith Rothman2019-02-211-0/+29
| | | | | | | | | | | | | | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* | | | Merge pull request #818 from YosysHQ/clifford/dffsrfixClifford Wolf2019-02-211-6/+7
|\ \ \ \ | | | | | | | | | | Fix opt_rmdff handling of $_DFFSR_???_ and $_DLATCHSR_???_, fixes #816
| * | | | Fix opt_rmdff handling of $_DFFSR_???_ and $_DLATCHSR_???_, fixes #816Clifford Wolf2019-02-211-6/+7
| | |/ / | |/| | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Fix typo in passes/pmgen/README.mdClifford Wolf2019-02-211-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Bugfix in ice40_dspClifford Wolf2019-02-211-2/+2
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Add "synth_ice40 -dsp"Clifford Wolf2019-02-201-4/+4
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Add FF support to wreduceClifford Wolf2019-02-201-1/+70
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Detect and reject cases that do not map well to iCE40 DSPs (yet)Clifford Wolf2019-02-202-2/+17
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Add actual DSP inference to ice40_dsp passClifford Wolf2019-02-173-24/+214
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Merge branch 'master' of github.com:YosysHQ/yosys into pmgenClifford Wolf2019-02-172-1/+8
|\| | |
| * | | fsm_opt: Fix runtime error for FSMs without a reset stateDavid Shah2019-02-071-1/+2
| |/ / | | | | | | | | | Signed-off-by: David Shah <dave@ds0.me>
| * | proc_clean: fix critical typo.whitequark2019-01-231-1/+1
| | |
| * | proc_clean: fix fully def check to consider compare/signal length.whitequark2019-01-181-1/+7
| | | | | | | | | | | | Fixes #790.
* | | Progress in pmgenClifford Wolf2019-01-151-3/+11
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Progress in pmgen, add pmgen READMEClifford Wolf2019-01-153-14/+260
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Fix pmgen "reject" statementClifford Wolf2019-01-151-1/+1
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Progress in pmgenClifford Wolf2019-01-153-36/+139
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Progress in pmgenClifford Wolf2019-01-153-21/+157
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Progress in pmgenClifford Wolf2019-01-155-8/+347
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Add mockup .pmg (pattern matcher generator) fileClifford Wolf2019-01-151-0/+75
|/ / | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | flowmap: clean up terminology.whitequark2019-01-081-17/+18
| | | | | | | | | | | | | | | | | | | | * "map": group gates into LUTs; * "pack": replace gates with LUTs. This is important because we have FlowMap and DF-Map, and currently our messages are ambiguous. Also clean up some other log messages while we're at it.
* | flowmap: implement depth relaxation.whitequark2019-01-087-22/+762
| |
* | Bugfix in $memrd sharingClifford Wolf2019-01-071-2/+6
| | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | Merge pull request #782 from whitequark/flowmap_dfsClifford Wolf2019-01-073-124/+243
|\ \ | | | | | | flowmap: construct a max-volume max-flow min-cut, not just any one
| * | flowmap: construct a max-volume max-flow min-cut, not just any one.whitequark2019-01-061-7/+10
| | |
| * | flowmap: add -minlut option, to allow postprocessing with opt_lut.whitequark2019-01-041-7/+21
| | |
| * | flowmap: cleanup for clarity. NFCI.whitequark2019-01-043-107/+179
| | |
| * | flowmap: improve debug graph output. NFC.whitequark2019-01-041-47/+76
| | |
| * | flowmap: add link to longer version of paper. NFC.whitequark2019-01-041-2/+3
| | |
* | | Switch "bugpoint" from system() to run_command()Clifford Wolf2019-01-071-1/+1
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | bugpoint: new pass.whitequark2019-01-072-1/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A typical use of `bugpoint` would involve a script with a pass under test, e.g.: flowmap -relax -optarea 100 and would be invoked as: bugpoint -yosys ./yosys -script flowmap.ys -clean -cells This replaces the current design with the minimal design that still crashes the `flowmap.ys` script. `bugpoint` can also be used to perform generic design minimization using `select`, e.g. the following script: select i:* %x t:$_MUX_ %i -assert-max 0 would remove all parts of the design except for an unbroken path from an input to an output port that goes through exactly one $_MUX_ cell. (The condition is inverted.)
* | | Rename cells based on the wires they drive.Scott Mansell2019-01-061-0/+66
|/ /
* | Merge pull request #775 from whitequark/opt_flowmapClifford Wolf2019-01-033-1/+875
|\ \ | | | | | | flowmap: new techmap pass
| * | flowmap: new techmap pass.whitequark2019-01-033-1/+875
| | |
* | | Merge pull request #770 from whitequark/opt_expr_cmpClifford Wolf2019-01-021-97/+134
|\ \ \ | |/ / |/| | opt_expr: refactor and improve simplification of comparisons
| * | opt_expr: improve simplification of comparisons with large constants.whitequark2019-01-021-70/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea behind this simplification is that a N-bit signal X being compared with an M-bit constant where M>N and the constant has Nth or higher bit set, it either always succeeds or always fails. However, the existing implementation only worked with one-hot signals for some reason. It also printed incorrect messages. This commit adjusts the simplification to have as much power as possible, and fixes other bugs.
| * | opt_expr: refactor simplification of unsigned X<onehot and X>=onehot. NFCI.whitequark2019-01-021-31/+37
| | |
| * | opt_expr: refactor simplification of signed X>=0 and X<0. NFCI.whitequark2019-01-021-24/+26
| | |
| * | opt_expr: simplify any unsigned comparisons with all-0 and all-1.whitequark2019-01-021-17/+69
| | | | | | | | | | | | | | | | | | Before this commit, only unsigned comparisons with all-0 would be simplified. This commit also makes the code handling such comparisons to be more rigorous and not abort on unexpected input.
* | | Merge pull request #750 from Icenowy/anlogic-ff-initClifford Wolf2019-01-021-3/+30
|\ \ \ | | | | | | | | Initialization of Anlogic DFFs
| * | | Add "dffinit -noreinit" parameterIcenowy Zheng2018-12-181-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes the FF cell might be initialized during the map process, e.g. some FPGA platforms (Anlogic Eagle and Lattice ECP5 for example) has only a "SR" pin for a FF for async reset, that resets the FF to the initial value, which means the async reset value should be set as the initial value. In this case the DFFINIT pass shouldn't reinitialize it to a different value, which will lead to error. Add a "-noreinit" parameter for the safeguard. If a FF is not technically initialized before DFFINIT pass, the default value should be set to x. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
| * | | Add "dffinit -strinit high low"Icenowy Zheng2018-12-181-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some platforms the string to initialize DFF might not be "high" and "low", e.g. with Anlogic TD it's "SET" and "RESET". Add a "-strinit" parameter for dffinit to allow specify the strings used for high and low. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
* | | | Merge pull request #773 from whitequark/opt_lut_elim_fixesClifford Wolf2019-01-021-8/+31
|\ \ \ \ | | | | | | | | | | opt_lut: elimination fixes