3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-10 19:27:07 +00:00
Commit graph

3147 commits

Author SHA1 Message Date
Eddie Hung aa552cefa3
Merge pull request #1927 from YosysHQ/eddie/design_remove_assert
kernel: Design::remove(RTLIL::Module *) to check refcount_modules_
2020-04-16 08:06:12 -07:00
Eddie Hung a9ec0defb9 kernel: add design -delete option 2020-04-16 08:05:18 -07:00
Marcelina Kościelnicka 2f8541a92e opt_expr: Fix X and CO outputs for $alu identity-mapping rules. 2020-04-16 11:48:29 +02:00
Eddie Hung 33b0ac9269
Merge pull request #1933 from YosysHQ/eddie/zinit_more
zinit: handle $__DFFS?E?_[NP][NP][01] too
2020-04-15 08:36:25 -07:00
N. Engelhardt 0b7a5879e5
Merge pull request #1830 from boqwxp/qbfsat
Add `qbfsat` command to integrate exists-forall solving and specialization
2020-04-15 17:33:50 +02:00
David Shah 7ad8b24280
Merge pull request #1897 from YosysHQ/dave/bram-rejection-fix
memory_bram: Fix ignorance of valid, matched rules
2020-04-15 16:10:38 +01:00
Marcelina Kościelnicka 38a0c30d65 Get rid of dffsr2dff.
This pass is a proper subset of opt_rmdff, which is called by opt, which
is called by every synth flow in the coarse part.  Thus, it never
actually does anything and can be safely removed.
2020-04-15 16:22:37 +02:00
Marcelina Kościelnicka 85166633bc opt_clean: Add missing assignments to opt.did_something. 2020-04-15 16:20:56 +02:00
Marcelina Kościelnicka d7da491002 setundef: Improve error messages.
Fixes #1092.
2020-04-15 16:13:28 +02:00
Marcelina Kościelnicka 4c52691a58 abc9_ops: Add a check ensuring that connected port actually exists. 2020-04-15 08:11:15 +02:00
Eddie Hung a8ab74285b zinit: handle $__DFFS?E?_[NP][NP][01] too 2020-04-14 13:08:23 -07:00
Marcelina Kościelnicka 6c16fd760b opt_expr: Add more $alu optimizations.
Detect the places in the $alu where the carry bit is constant (due to
const A[i] == B[i] ^ BI) and split it into smaller $alu at these points.

Also, make the existing const-carry detection for low bits more generic
(now handles cases where both BI and CI are constant, but not equal to
one another).

Fixes #1912.
2020-04-14 21:48:13 +02:00
Marcelina Kościelnicka 7a36728b2f dffinit: Avoid setting init parameter to zero-length value.
Fixes #1704.
2020-04-14 19:52:19 +02:00
Eddie Hung 75bb2c8c24 design: do not delete when iterating over Design::modules() directly 2020-04-14 10:43:05 -07:00
Eddie Hung 3a27906ac6 abc9_exe: verify -> &verify -s 2020-04-14 08:21:26 -07:00
Eddie Hung 843201ec96 techmap: fix error message 2020-04-14 08:17:02 -07:00
Alberto Gonzalez 4ccaf048a5
Simplify passes/techmap/abc.cc and remove superfluous RTLIL::SigSpec constructions.
Co-Authored-By: Eddie Hung <eddie@fpgeh.com>
2020-04-14 02:39:44 +00:00
Eddie Hung b75c5bf743 zinit: resolve one more comment by @mwkmwkmwk 2020-04-13 15:25:37 -07:00
Eddie Hung c6afce7638 zinit: fix review comments from @mwkmwkmwk 2020-04-13 15:16:51 -07:00
Eddie Hung 70bca35f9c zinit: operate on $adff, erase (* init *) entries on consumption 2020-04-13 14:28:53 -07:00
Eddie Hung 1cdfdbc6d1 Fix S/R comment; thanks @mwkmwkmwk 2020-04-13 13:45:18 -07:00
Eddie Hung 4617aa8ccd zinit to transform set/reset value of $_DFF_[NP][NP][01]_ 2020-04-13 13:45:18 -07:00
Eddie Hung b97a9cd3f3 Supress error for unhandled \init if whole module selected 2020-04-13 13:16:49 -07:00
Marcelina Kościelnicka 840bb17089 opt_expr: Optimize multiplications with low 0 bits in operands.
Fixes #1500.
2020-04-13 16:52:22 +02:00
Alberto Gonzalez e300766fb3
Use pool instead of std::set. 2020-04-11 09:41:09 +00:00
Alberto Gonzalez 73bd7fb01d
Use dict instead of std::map. 2020-04-11 06:53:59 +00:00
David Shah 85672a6c1f memory_bram: Fix ignorance of valid, matched rules
Signed-off-by: David Shah <dave@ds0.me>
2020-04-10 21:48:04 +01:00
whitequark 93ef516d91
Merge pull request #1603 from whitequark/ice40-ram_style
ice40/ecp5: add support for both 1364.1 and Synplify/LSE RAM/ROM attributes
2020-04-10 14:51:01 +00:00
Miodrag Milanovic 0d789c5a3b Support custom PROGRAM_PREFIX 2020-04-10 10:38:40 +02:00
Marcelina Kościelnicka 516857f3ba [NFCI] Deduplicate builtin FF cell types list
A few passes included the same list of FF cell types.  Make it a global
const instead.

The zinit pass also seems to include a list like that, but given that
it seems to be completely broken at the time (see #1568 discussion),
I'm going to pretend I didn't see that.
2020-04-09 18:05:06 +02:00
N. Engelhardt 7f33d43e3b
Merge pull request #1890 from boqwxp/cleanup_memory_collect
Clean up `passes/memory/memory_collect.cc`.
2020-04-09 14:01:29 +02:00
N. Engelhardt ed738b8ddb
Merge pull request #1889 from boqwxp/cleanup_memory_unpack
Clean up `passes/memory/memory_unpack.cc`.
2020-04-09 14:00:44 +02:00
Alberto Gonzalez de5e6fa56a
Clean up passes/sat/qbfsat.cc.
Makes various cosmetic fixes, removes superfluous `hasPort()` check, and uses `emplace_back()` instead of `push_back()`.
2020-04-09 07:47:44 +00:00
Alberto Gonzalez 652050b273
Clean up passes/memory/memory_collect.cc. 2020-04-09 05:43:05 +00:00
Alberto Gonzalez 685dc37d27
Clean up passes/memory/memory_unpack.cc. 2020-04-09 05:38:36 +00:00
Alberto Gonzalez 83222193af
Clean up passes/techmap/hilomap.cc. 2020-04-09 05:28:32 +00:00
whitequark 42e7e44207
Merge pull request #1857 from whitequark/splitnets-skip-processes
splitnets: skip modules with processes
2020-04-09 04:03:30 +00:00
Alberto Gonzalez 64a5936bd7
Clean up passes/cmds/connect.cc. 2020-04-08 22:11:06 +00:00
Alberto Gonzalez 194354e128
Remove $anyconst cells before specialization to eliminate warnings and the need to run opt_clean. 2020-04-07 03:29:54 +00:00
whitequark b350398c04
Merge pull request #1874 from boqwxp/cleanup_show
Clean up `passes/cmds/show.cc`.
2020-04-06 18:32:20 +00:00
whitequark 8ca12e0c42
Merge pull request #1861 from boqwxp/cleanup_hierarchy_submod
Clean up `passes/hierarchy/submod.cc`.
2020-04-06 18:32:10 +00:00
Alberto Gonzalez f4346a0400
Use more descriptive variable name.
Co-Authored-By: whitequark <whitequark@whitequark.org>
2020-04-06 14:48:27 +00:00
Alberto Gonzalez d6de14a0d6
Use more descriptive variable name.
Co-Authored-By: whitequark <whitequark@whitequark.org>
2020-04-06 14:37:07 +00:00
whitequark ebf23cd62e
Merge pull request #1870 from boqwxp/cleanup_setattr
Clean up `passes/cmds/setattr.cc`.
2020-04-06 11:04:49 +00:00
whitequark df95dc7d4a
Merge pull request #1872 from boqwxp/cleanup_copy
Clean up private member usage in `passes/cmds/copy.cc`.
2020-04-06 11:03:46 +00:00
whitequark 41f0c38478
Merge pull request #1871 from boqwxp/cleanup_splice
Clean up `passes/cmds/splice.cc`.
2020-04-06 11:03:34 +00:00
whitequark db66371915
Merge pull request #1869 from boqwxp/cleanup_connwrappers
Clean up `passes/cmds/connwrappers.cc`.
2020-04-06 11:01:44 +00:00
whitequark 30934e425d
Merge pull request #1868 from boqwxp/cleanup_delete
Clean up `passes/cmds/delete.cc`.
2020-04-06 10:58:38 +00:00
whitequark d3615ee445
Merge pull request #1867 from boqwxp/cleanup_stat
Clean up `passes/cmds/stat.cc`.
2020-04-06 10:58:02 +00:00
whitequark 75d39c6fdf
Merge pull request #1866 from boqwxp/cleanup_test_autotb
Clean up `passes/tests/test_autotb.cc`.
2020-04-06 10:56:45 +00:00
whitequark 79c6149069
Merge pull request #1865 from boqwxp/cleanup_dfflibmap
Clean up `passes/techmap/dfflibmap.cc`.
2020-04-06 10:56:22 +00:00
whitequark 8340660518
Merge pull request #1863 from boqwxp/cleanup_techmap_extract
Clean up `passes/techmap/extract.cc`.
2020-04-06 10:55:50 +00:00
whitequark 0d69d532e0
Merge pull request #1859 from boqwxp/design_duplicate
Add `-push-copy` option to the `design` command.
2020-04-06 10:39:26 +00:00
Alberto Gonzalez 57f48f94c2
Clean up passes/cmds/show.cc. 2020-04-06 08:51:25 +00:00
Alberto Gonzalez fdeeb48e62
Clean up private member usage in passes/cmds/bugpoint.cc. 2020-04-06 08:35:09 +00:00
Alberto Gonzalez 2dd09ab611
Clean up private member usage in passes/cmds/copy.cc. 2020-04-06 08:26:10 +00:00
Alberto Gonzalez 5e9c88501e
Clean up passes/cmds/splice.cc. 2020-04-06 07:42:46 +00:00
Alberto Gonzalez 2e27ddd511
Clean up passes/cmds/setattr.cc. 2020-04-06 06:52:18 +00:00
Alberto Gonzalez 968230261f
Clean up passes/cmds/connwrappers.cc. 2020-04-06 06:11:25 +00:00
Alberto Gonzalez 1226d41c61
Clean up passes/cmds/delete.cc. 2020-04-06 05:09:43 +00:00
Alberto Gonzalez b39a0d77ab
Clean up passes/cmds/stat.cc. 2020-04-06 04:39:18 +00:00
Alberto Gonzalez 438d2e0025
Clean up passes/tests/test_autotb.cc. 2020-04-06 04:25:21 +00:00
Alberto Gonzalez f3e282a97c
Clean up passes/techmap/dfflibmap.cc. 2020-04-06 03:02:40 +00:00
Alberto Gonzalez 9168701881
Clean up pseudo-private member usage and simplify passes/techmap/abc.cc. 2020-04-05 21:31:18 +00:00
Alberto Gonzalez 64a32ead38
Clean up passes/techmap/extract.cc. 2020-04-05 19:36:23 +00:00
Alberto Gonzalez 5431ce694c
Clean up passes/hierarchy/submod.cc. 2020-04-05 04:39:54 +00:00
Alberto Gonzalez 5fedd0931c
Use newly-renamed -push-copy option. 2020-04-04 22:22:54 +00:00
Alberto Gonzalez 0ca3a8e94f
Improve style in passes/sat/qbfsat.cc. 2020-04-04 22:13:27 +00:00
Alberto Gonzalez 1db73e8dd2
Gracefully report error when module has nothing to prove. 2020-04-04 22:13:27 +00:00
Alberto Gonzalez 8f0f13cad2
Suppress yosys-smtbmc output unless the new -show-smtbmc option is provided. 2020-04-04 22:13:27 +00:00
Alberto Gonzalez ce033a8e36
Fix handling of -sat and -unsat options when the solver returns unknown. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez 6af8b767b4
Use log_push() and log_pop() and show the satisfiable model when -specialize is not specified.
Co-Authored-By: N. Engelhardt <nak@symbioticeda.com>
2020-04-04 22:13:26 +00:00
Alberto Gonzalez d311a80222
Clean up qbfsat command and fix AND-reduction of miter outputs. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez 125a583c57
Use the -duplicate option rather than -save and -load with an explicit name.
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
2020-04-04 22:13:26 +00:00
Alberto Gonzalez 86fc49a9d6
Use internal run_command() API instead of popen().
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
2020-04-04 22:13:26 +00:00
Alberto Gonzalez 09b2264837
Clean up manual casting.
Co-Authored-By: David Shah <dave@ds0.me>
2020-04-04 22:13:26 +00:00
Alberto Gonzalez acf96b6b0b
Remove unimplemented -timeout option. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez bb101e0b3a
Implement the -assume-outputs, -sat, and -unsat options for the qbfsat` command. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez 5527063f66
Add NDEBUG guards to qbfsat assertions. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez 3a4fd4a999
Implement -specialize-from-file option for the qbfsat command. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez b9e79e0bb7
Implement -write-solution option for the qbfsat command. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez d07ac2612b
Clean up passes/sat/qbfsat.cc. 2020-04-04 22:13:26 +00:00
Alberto Gonzalez 437afa1f0c
Updated yosys-smtbmc to optionally dump raw bit strings, and fixed hole value recovery using that mode. 2020-04-04 22:13:25 +00:00
Alberto Gonzalez a4598d64ef
Hole value recovery and specialization implementation for qbfsat command. 2020-04-04 22:13:25 +00:00
Alberto Gonzalez 2fff574741
Barebones implementation of qbfsat command. 2020-04-04 22:13:25 +00:00
Alberto Gonzalez fb878b2a70
Initial skeleton for qbfsat command. 2020-04-04 22:13:25 +00:00
Alberto Gonzalez a0416fe167
Rename -duplicate to -push-copy.
Co-Authored-By: whitequark <whitequark@whitequark.org>
2020-04-04 21:26:11 +00:00
Alberto Gonzalez 409e2ac09d
Add -duplicate option to the design command. 2020-04-03 16:46:35 +00:00
whitequark 745251a31f splitnets: skip modules with processes. 2020-04-03 11:27:19 +00:00
whitequark e0def9e4d9 memory_map: add -attr option, to respect inference attributes.
Before this commit, memory_map (which is always a part of a synth
script) would always pick up any $mem cell that was not processed
by a preceding pass and lower it down to $dff/$mux cells.
This is undesirable for two reasons:
  * If there is an explicit inference attribute set on a $mem cell,
    e.g. (* ram_block *), then it is arguably incorrect to map such
    a memory to $dff/$mux cells.
  * If memory_map tries to lower a memory that was intended to
    be mapped to a large BRAM, it often takes extraordinarily long
    time to finish, produces an extremely large log file, and outputs
    an unusable design.

After this commit, properly invoked memory_map will not map any
memory that has an explicit inference attribute specified, solving
the first issue, and alleviating the second. The default behavior
is not changed.
2020-04-03 05:51:40 +00:00
Eddie Hung 5f662b1c43
Merge pull request #1767 from YosysHQ/eddie/idstrings
IdString: use more ID::*, make them easier to use, speed up IdString::in()
2020-04-02 11:47:25 -07:00
Eddie Hung 956ecd48f7 kernel: big fat patch to use more ID::*, otherwise ID(*) 2020-04-02 09:51:32 -07:00
Marcin Kościelnicki 2d3753d730 iopadmap: Fix z assignment to inout port
Fixes #1841.
2020-04-02 18:15:04 +02:00
Claire Wolf 22ef5701c0
Merge pull request #1842 from YosysHQ/mwk/fix-deminout-xz
deminout: prevent any constant assignment from demoting to input
2020-04-02 18:14:34 +02:00
Eddie Hung fdafb74eb7 kernel: use more ID::* 2020-04-02 07:14:08 -07:00
Eddie Hung 37f42fe102
Merge pull request #1845 from YosysHQ/eddie/kernel_speedup
kernel: speedup by using more pass-by-const-ref
2020-04-02 07:13:33 -07:00
Eddie Hung c90324662c
Merge pull request #1828 from YosysHQ/eddie/celltypes_speedup
kernel: share a single CellTypes within a pass
2020-04-01 14:17:45 -07:00
Eddie Hung 4ae7f3a8ed
Merge pull request #1790 from YosysHQ/eddie/opt_expr_xor
opt_expr: optimise $xor/$xnor/$_XOR_/$_XNOR_ -s with constant inputs
2020-04-01 14:17:01 -07:00
Eddie Hung e79bc45975
Merge pull request #1789 from YosysHQ/eddie/opt_expr_alu
opt_expr: improve performance on $alu and $sub
2020-04-01 14:11:09 -07:00
Eddie Hung 1bb5a5215f
Merge pull request #1761 from YosysHQ/eddie/opt_merge_speedup
opt_merge: speedup
2020-03-31 14:50:32 -07:00