yosys.git
4 years agoabc9: rework submod -- since it won't move (* keep *) cells
Eddie Hung [Wed, 22 Apr 2020 00:25:15 +0000 (17:25 -0700)]
abc9: rework submod -- since it won't move (* keep *) cells

4 years agoecp5: TRELLIS_FF bypass path only in async mode
Eddie Hung [Wed, 22 Apr 2020 00:04:26 +0000 (17:04 -0700)]
ecp5: TRELLIS_FF bypass path only in async mode

4 years agotiminginfo: ignore $specify2 cells if EN is false
Eddie Hung [Wed, 22 Apr 2020 00:03:28 +0000 (17:03 -0700)]
timinginfo: ignore $specify2 cells if EN is false

4 years agoxilinx/ice40/ecp5: zinit requires selected wires, so select them all
Eddie Hung [Tue, 21 Apr 2020 22:45:05 +0000 (15:45 -0700)]
xilinx/ice40/ecp5: zinit requires selected wires, so select them all

4 years agoabc9_ops: move assert
Eddie Hung [Tue, 21 Apr 2020 22:44:56 +0000 (15:44 -0700)]
abc9_ops: move assert

4 years agoabc9: put 'aigmap' back
Eddie Hung [Tue, 21 Apr 2020 22:42:05 +0000 (15:42 -0700)]
abc9: put 'aigmap' back

4 years agoxilinx/ecp5/ice40: add (* abc9_flop *) to bypass-able cells
Eddie Hung [Tue, 21 Apr 2020 21:13:38 +0000 (14:13 -0700)]
xilinx/ecp5/ice40: add (* abc9_flop *) to bypass-able cells

4 years agoabc9_ops: fix bypass boxes using (* abc9_bypass *)
Eddie Hung [Tue, 21 Apr 2020 21:12:28 +0000 (14:12 -0700)]
abc9_ops: fix bypass boxes using (* abc9_bypass *)

4 years agoabc9_ops: tidy up, suppress error if no boxes/holes
Eddie Hung [Tue, 21 Apr 2020 19:42:09 +0000 (12:42 -0700)]
abc9_ops: tidy up, suppress error if no boxes/holes

4 years agoabc9_ops: -prep_delays to not insert delay box if input connection is const
Eddie Hung [Tue, 21 Apr 2020 19:32:30 +0000 (12:32 -0700)]
abc9_ops: -prep_delays to not insert delay box if input connection is const

4 years agoabc9_ops: cleanup; -prep_dff -> -prep_dff_submod
Eddie Hung [Tue, 21 Apr 2020 19:30:25 +0000 (12:30 -0700)]
abc9_ops: cleanup; -prep_dff -> -prep_dff_submod

4 years agoabc9_ops: add -prep_bypass for auto bypass boxes; refactor
Eddie Hung [Tue, 21 Apr 2020 19:22:39 +0000 (12:22 -0700)]
abc9_ops: add -prep_bypass for auto bypass boxes; refactor

Eliminate need for abc9_{,un}map.v in xilinx
-prep_dff_{hier,unmap} -> -prep_hier

4 years agoabc9_ops: -reintegrate to handle $_FF_; cleanup
Eddie Hung [Thu, 16 Apr 2020 21:03:54 +0000 (14:03 -0700)]
abc9_ops: -reintegrate to handle $_FF_; cleanup

4 years agoxaiger: no longer use nonstandard even/odd to designate +ve/-ve polarity
Eddie Hung [Thu, 16 Apr 2020 21:02:42 +0000 (14:02 -0700)]
xaiger: no longer use nonstandard even/odd to designate +ve/-ve polarity

4 years agoaiger: -xaiger to return $_FF_ flops
Eddie Hung [Thu, 16 Apr 2020 21:01:54 +0000 (14:01 -0700)]
aiger: -xaiger to return $_FF_ flops

4 years agoabc9: not enough to techmap_fail on (* init=1 *), hide them using $__
Eddie Hung [Thu, 16 Apr 2020 19:08:59 +0000 (12:08 -0700)]
abc9: not enough to techmap_fail on (* init=1 *), hide them using $__

4 years agoabc9: test to use box file instead of auto
Eddie Hung [Thu, 16 Apr 2020 17:49:33 +0000 (10:49 -0700)]
abc9: test to use box file instead of auto

4 years agoabc9: restore selected_modules()
Eddie Hung [Thu, 16 Apr 2020 17:40:33 +0000 (10:40 -0700)]
abc9: restore selected_modules()

4 years agosynth_*: no need to explicitly read +/abc9_model.v
Eddie Hung [Thu, 16 Apr 2020 17:25:41 +0000 (10:25 -0700)]
synth_*: no need to explicitly read +/abc9_model.v

4 years agoRevert "Merge pull request #1917 from YosysHQ/eddie/abc9_delay_check"
Eddie Hung [Thu, 16 Apr 2020 17:25:22 +0000 (10:25 -0700)]
Revert "Merge pull request #1917 from YosysHQ/eddie/abc9_delay_check"

This reverts commit 759283fa65b1195ebe3a5bc6890ec622febca0eb, reversing
changes made to f41c7ccfff4bf104c646ca4b85e079a0f91c9151.

4 years agoabc9: add flop boxes to basic $_DFF_P_ and $_DFF_N_ too
Eddie Hung [Thu, 16 Apr 2020 17:24:02 +0000 (10:24 -0700)]
abc9: add flop boxes to basic $_DFF_P_ and $_DFF_N_ too

4 years agokernel: TimingInfo to clamp -ve setup/edge-sensitive delays to zero
Eddie Hung [Thu, 16 Apr 2020 17:21:08 +0000 (10:21 -0700)]
kernel: TimingInfo to clamp -ve setup/edge-sensitive delays to zero

4 years agoabc9_ops: -prep_dff_map to error if async flop found
Eddie Hung [Wed, 15 Apr 2020 23:29:11 +0000 (16:29 -0700)]
abc9_ops: -prep_dff_map to error if async flop found

4 years agoUncomment negative setup times; clamp to zero for connectivity
Eddie Hung [Wed, 19 Feb 2020 01:59:33 +0000 (17:59 -0800)]
Uncomment negative setup times; clamp to zero for connectivity

4 years agoabc9: remove redundant wbflip
Eddie Hung [Wed, 15 Apr 2020 23:18:37 +0000 (16:18 -0700)]
abc9: remove redundant wbflip

4 years agoxaiger: always sort input/output bits by port id
Eddie Hung [Wed, 15 Apr 2020 23:16:30 +0000 (16:16 -0700)]
xaiger: always sort input/output bits by port id

redundant for normal design, but necessary for holes

4 years agoabc9: generate $abc9_holes design instead of <name>$holes
Eddie Hung [Wed, 15 Apr 2020 23:13:57 +0000 (16:13 -0700)]
abc9: generate $abc9_holes design instead of <name>$holes

4 years agoabc9_ops: more robust
Eddie Hung [Wed, 15 Apr 2020 22:50:57 +0000 (15:50 -0700)]
abc9_ops: more robust

4 years agoabc9: suppress warnings when no compatible + used flop boxes formed
Eddie Hung [Wed, 15 Apr 2020 22:41:55 +0000 (15:41 -0700)]
abc9: suppress warnings when no compatible + used flop boxes formed

4 years agoxilinx: update abc9_dff tests
Eddie Hung [Wed, 15 Apr 2020 19:28:03 +0000 (12:28 -0700)]
xilinx: update abc9_dff tests

4 years agoxilinx: remove no-longer-relevant test
Eddie Hung [Wed, 15 Apr 2020 19:27:26 +0000 (12:27 -0700)]
xilinx: remove no-longer-relevant test

4 years agoaiger/xaiger: use odd for negedge clk, even for posedge
Eddie Hung [Wed, 15 Apr 2020 19:15:36 +0000 (12:15 -0700)]
aiger/xaiger: use odd for negedge clk, even for posedge

Since abc9 doesn't like negative mergeability values

4 years agoabc9: cleanup
Eddie Hung [Wed, 15 Apr 2020 16:38:29 +0000 (09:38 -0700)]
abc9: cleanup

4 years agoRevert "ecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init"
Eddie Hung [Tue, 14 Apr 2020 19:56:28 +0000 (12:56 -0700)]
Revert "ecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init"

This reverts commit 8c702b6cc0221a00021a3e4661c883bb591c924b.

4 years agoabc9_ops: -prep_dff_map to check $_DFF_[NP]_.Q drives module output
Eddie Hung [Tue, 14 Apr 2020 19:35:12 +0000 (12:35 -0700)]
abc9_ops: -prep_dff_map to check $_DFF_[NP]_.Q drives module output

4 years agoabc9_ops: do away with '$abc9_cells' selection
Eddie Hung [Tue, 14 Apr 2020 18:38:44 +0000 (11:38 -0700)]
abc9_ops: do away with '$abc9_cells' selection

4 years agoabc9_ops: use new 'design -delete' and 'select -unset'
Eddie Hung [Tue, 14 Apr 2020 18:10:48 +0000 (11:10 -0700)]
abc9_ops: use new 'design -delete' and 'select -unset'

4 years agoecp5: (* abc9_flop *) gated behind YOSYS
Eddie Hung [Tue, 14 Apr 2020 17:36:07 +0000 (10:36 -0700)]
ecp5: (* abc9_flop *) gated behind YOSYS

4 years agosubmod: revert accidental change
Eddie Hung [Tue, 14 Apr 2020 15:53:07 +0000 (08:53 -0700)]
submod: revert accidental change

4 years agoRevert "Merge branch 'eddie/kernel_makeblackbox' into eddie/abc9_auto_dff"
Eddie Hung [Tue, 14 Apr 2020 15:18:04 +0000 (08:18 -0700)]
Revert "Merge branch 'eddie/kernel_makeblackbox' into eddie/abc9_auto_dff"

This reverts commit e08497c7c9d8a6f7a3eccddf2149c45d9ecff207, reversing
changes made to e366fd55122236a21c6daee6765724add840a1f9.

4 years agoxaiger: update help text
Eddie Hung [Tue, 14 Apr 2020 15:03:58 +0000 (08:03 -0700)]
xaiger: update help text

4 years agoecp5: add synth_ecp5 -dff to work with -abc9
Eddie Hung [Tue, 14 Apr 2020 14:51:23 +0000 (07:51 -0700)]
ecp5: add synth_ecp5 -dff to work with -abc9

4 years agoabc9_ops: -prep_dff_map to warn if no specify cells
Eddie Hung [Tue, 14 Apr 2020 14:49:55 +0000 (07:49 -0700)]
abc9_ops: -prep_dff_map to warn if no specify cells

4 years agoice40: synth_ice40 cleanup
Eddie Hung [Tue, 14 Apr 2020 14:48:37 +0000 (07:48 -0700)]
ice40: synth_ice40 cleanup

4 years agoecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init
Eddie Hung [Tue, 14 Apr 2020 14:31:07 +0000 (07:31 -0700)]
ecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init

4 years agokernel: Module::makeblackbox() to clear connections + delete wires last
Eddie Hung [Tue, 14 Apr 2020 02:08:46 +0000 (19:08 -0700)]
kernel: Module::makeblackbox() to clear connections + delete wires last

4 years agoice40: add synth_ice40 -dff option, support with -abc9
Eddie Hung [Tue, 14 Apr 2020 00:32:21 +0000 (17:32 -0700)]
ice40: add synth_ice40 -dff option, support with -abc9

4 years agoice40: split out cells_map.v into ff_map.v
Eddie Hung [Tue, 14 Apr 2020 00:31:44 +0000 (17:31 -0700)]
ice40: split out cells_map.v into ff_map.v

4 years agoabc9_ops: -prep_dff_map to cope with plain $_DFF_[NP]_ flops
Eddie Hung [Tue, 14 Apr 2020 00:30:29 +0000 (17:30 -0700)]
abc9_ops: -prep_dff_map to cope with plain $_DFF_[NP]_ flops

4 years agosynth_xilinx: rename dff_mode -> dff
Eddie Hung [Mon, 13 Apr 2020 23:21:08 +0000 (16:21 -0700)]
synth_xilinx: rename dff_mode -> dff

4 years agoxaiger: do not treat (* init=1'bx *) as 1'b0
Eddie Hung [Mon, 13 Apr 2020 23:20:15 +0000 (16:20 -0700)]
xaiger: do not treat (* init=1'bx *) as 1'b0

4 years agoabc9: cleanup
Eddie Hung [Mon, 13 Apr 2020 20:12:45 +0000 (13:12 -0700)]
abc9: cleanup

4 years agoabc9_ops: do not use (* abc9_init *)
Eddie Hung [Mon, 13 Apr 2020 20:12:37 +0000 (13:12 -0700)]
abc9_ops: do not use (* abc9_init *)

4 years agoaiger: -xaiger to parse initial state back into (* init *) on Q wire
Eddie Hung [Mon, 13 Apr 2020 20:11:25 +0000 (13:11 -0700)]
aiger: -xaiger to parse initial state back into (* init *) on Q wire

4 years agoxaiger: when -dff use (* init *) for initial state
Eddie Hung [Mon, 13 Apr 2020 20:10:57 +0000 (13:10 -0700)]
xaiger: when -dff use (* init *) for initial state

4 years agoabc9_ops: add 'dff' label for auto handling of (* abc9_flop *) boxes
Eddie Hung [Mon, 13 Apr 2020 16:38:07 +0000 (09:38 -0700)]
abc9_ops: add 'dff' label for auto handling of (* abc9_flop *) boxes

4 years agoabc9: fix behaviour and help for -box option
Eddie Hung [Thu, 9 Apr 2020 21:42:43 +0000 (14:42 -0700)]
abc9: fix behaviour and help for -box option

4 years agoaiger: -xaiger to read $_DFF_[NP]_ back with new clocks created
Eddie Hung [Thu, 9 Apr 2020 21:31:14 +0000 (14:31 -0700)]
aiger: -xaiger to read $_DFF_[NP]_ back with new clocks created

according to mergeability class, and init state as cell attr

4 years agoxaiger: output $_DFF_[NP]_ with mergeability if -dff option
Eddie Hung [Thu, 9 Apr 2020 21:26:52 +0000 (14:26 -0700)]
xaiger: output $_DFF_[NP]_ with mergeability if -dff option

4 years agoMerge pull request #2045 from YosysHQ/eddie/fix2042
Eddie Hung [Thu, 14 May 2020 16:45:54 +0000 (09:45 -0700)]
Merge pull request #2045 from YosysHQ/eddie/fix2042

verilog: error if no direction given for task arguments, default to input in SV mode

4 years agoMerge pull request #2052 from YosysHQ/claire/verific_memfix
Claire Wolf [Thu, 14 May 2020 16:45:13 +0000 (18:45 +0200)]
Merge pull request #2052 from YosysHQ/claire/verific_memfix

Add support for non-power-of-two mem chunks in verific importer

4 years agoMerge pull request #2050 from YosysHQ/eddie/opt_clean_fixes
Claire Wolf [Thu, 14 May 2020 16:31:16 +0000 (18:31 +0200)]
Merge pull request #2050 from YosysHQ/eddie/opt_clean_fixes

opt_clean: remove (* init *) regardless of -purge, remove (* init *) when consistent with sigmap, clean to behave identically

4 years agoMerge pull request #2027 from YosysHQ/eddie/verilog_neg_upto
Claire Wolf [Thu, 14 May 2020 16:06:18 +0000 (18:06 +0200)]
Merge pull request #2027 from YosysHQ/eddie/verilog_neg_upto

 ast: swap range regardless of range_left >= 0

4 years agotest: add another testcase as per @nakengelhardt
Eddie Hung [Thu, 14 May 2020 15:36:36 +0000 (08:36 -0700)]
test: add another testcase as per @nakengelhardt

4 years agoAdd support for non-power-of-two mem chunks in verific importer
Claire Wolf [Thu, 14 May 2020 12:38:13 +0000 (14:38 +0200)]
Add support for non-power-of-two mem chunks in verific importer

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoopt_clean: improve warning message
Eddie Hung [Thu, 14 May 2020 07:59:38 +0000 (00:59 -0700)]
opt_clean: improve warning message

4 years agoopt_clean: add init test
Eddie Hung [Thu, 14 May 2020 07:26:23 +0000 (00:26 -0700)]
opt_clean: add init test

4 years agoopt_clean: rminit without -purge; also remove if consistent with const..
Eddie Hung [Thu, 14 May 2020 07:24:23 +0000 (00:24 -0700)]
opt_clean: rminit without -purge; also remove if consistent with const..

warn otherwise

4 years agoopt_clean: really make 'clean' identical to 'opt_clean' by rminit too
Eddie Hung [Thu, 14 May 2020 07:19:58 +0000 (00:19 -0700)]
opt_clean: really make 'clean' identical to 'opt_clean' by rminit too

4 years agoverilog: default to input in sv mode if task/func has no dir ...
Eddie Hung [Wed, 13 May 2020 20:33:37 +0000 (13:33 -0700)]
verilog: default to input in sv mode if task/func has no dir ...

otherwise error

4 years agotests: update/extend task argument tests
Eddie Hung [Wed, 13 May 2020 17:11:45 +0000 (10:11 -0700)]
tests: update/extend task argument tests

4 years agoice40: fix ICESTORM_LC process sensitivity
Eddie Hung [Tue, 12 May 2020 22:40:48 +0000 (15:40 -0700)]
ice40: fix ICESTORM_LC process sensitivity

4 years agoice40: fix whitespace
Eddie Hung [Tue, 12 May 2020 22:40:13 +0000 (15:40 -0700)]
ice40: fix whitespace

4 years agoecp5: Add missing SERDES parameters
David Shah [Tue, 12 May 2020 20:12:26 +0000 (21:12 +0100)]
ecp5: Add missing SERDES parameters

Signed-off-by: David Shah <dave@ds0.me>
4 years agoverilog: error out when non-ANSI task/func arguments
Eddie Hung [Mon, 11 May 2020 20:00:36 +0000 (13:00 -0700)]
verilog: error out when non-ANSI task/func arguments

4 years agotests: add #2042 testcase
Eddie Hung [Mon, 11 May 2020 18:05:19 +0000 (11:05 -0700)]
tests: add #2042 testcase

4 years agoSetup tests/verilog properly
Eddie Hung [Mon, 11 May 2020 17:30:20 +0000 (10:30 -0700)]
Setup tests/verilog properly

4 years agoMerge pull request #2038 from nakengelhardt/no-libdir-flag
Claire Wolf [Fri, 8 May 2020 08:40:25 +0000 (10:40 +0200)]
Merge pull request #2038 from nakengelhardt/no-libdir-flag

Remove yosys libdir from LDFLAGS (and fix a typo)

4 years agoFix clang compiler warning
Claire Wolf [Fri, 8 May 2020 08:13:39 +0000 (10:13 +0200)]
Fix clang compiler warning

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoMerge pull request #2022 from Xiretza/fallthroughs
whitequark [Fri, 8 May 2020 05:30:32 +0000 (05:30 +0000)]
Merge pull request #2022 from Xiretza/fallthroughs

Avoid switch fall-through warnings

4 years agointel_alm: direct LUTRAM cell instantiation
Dan Ravensloft [Thu, 16 Apr 2020 11:24:04 +0000 (12:24 +0100)]
intel_alm: direct LUTRAM cell instantiation

By instantiating the LUTRAM cell directly, we avoid a trip through
altsyncram, which speeds up Quartus synthesis time. This also gives
a little more flexibility, as Yosys can build RAMs out of individual
32x1 LUTRAM cells.

While working on this, I discovered that the mem_init0 parameter of
<family>_mlab_cell gets ignored by Quartus.

4 years agoRemove yosys libdir from LDFLAGS (and fix a typo)
N. Engelhardt [Thu, 7 May 2020 17:28:18 +0000 (19:28 +0200)]
Remove yosys libdir from LDFLAGS (and fix a typo)

4 years agoMerge pull request #2005 from YosysHQ/claire/fix1990
Claire Wolf [Thu, 7 May 2020 16:11:48 +0000 (18:11 +0200)]
Merge pull request #2005 from YosysHQ/claire/fix1990

Add "nowrshmsk" attribute, fix shift-and-mask bit slice write for signed offset

4 years agoMerge pull request #2034 from YosysHQ/eddie/abc_remote
Eddie Hung [Thu, 7 May 2020 15:07:42 +0000 (08:07 -0700)]
Merge pull request #2034 from YosysHQ/eddie/abc_remote

Makefile: git fetch $(ABCURL) explicitly for local ABC checkout

4 years agoReorder cases to avoid fall-through warning
Xiretza [Thu, 7 May 2020 09:44:38 +0000 (11:44 +0200)]
Reorder cases to avoid fall-through warning

log_assert(false) never returns and thus can't fall through, but gcc
doesn't seem to think that far. Making it the last case avoids the
problem entirely.

4 years agoAdd YS_FALLTHROUGH macro to mark case fall-through
Xiretza [Mon, 4 May 2020 19:12:30 +0000 (21:12 +0200)]
Add YS_FALLTHROUGH macro to mark case fall-through

C++17 introduced [[fallthrough]], GCC and clang had their own vendored
attributes before that. MSVC doesn't seem to have such a warning at all.

4 years agoMakefile: git fetch all commits from $(ABCURL) repo
Eddie Hung [Wed, 6 May 2020 23:23:46 +0000 (16:23 -0700)]
Makefile: git fetch all commits from $(ABCURL) repo

4 years agoMerge pull request #2028 from zachjs/master
Eddie Hung [Wed, 6 May 2020 19:10:28 +0000 (12:10 -0700)]
Merge pull request #2028 from zachjs/master

verilog: allow null gen-if then block

4 years agoverilog: allow null gen-if then block
Zachary Snow [Tue, 5 May 2020 00:22:16 +0000 (20:22 -0400)]
verilog: allow null gen-if then block

4 years agotechlibs/common: more robustness when *_WIDTH = 0
Eddie Hung [Tue, 5 May 2020 15:01:27 +0000 (08:01 -0700)]
techlibs/common: more robustness when *_WIDTH = 0

4 years agoMerge pull request #2025 from YosysHQ/eddie/frontend_cleanup
Eddie Hung [Tue, 5 May 2020 14:59:40 +0000 (07:59 -0700)]
Merge pull request #2025 from YosysHQ/eddie/frontend_cleanup

frontend: cleanup to use more ID::*, more dict<> instead of map<>

4 years agoMerge pull request #2012 from whitequark/fix-wasi-abc-build
whitequark [Tue, 5 May 2020 14:03:40 +0000 (14:03 +0000)]
Merge pull request #2012 from whitequark/fix-wasi-abc-build

Fix WASI builds with abc enabled

4 years agoMerge pull request #2026 from YosysHQ/eddie/scratchpad_abc9_W
Eddie Hung [Tue, 5 May 2020 13:49:36 +0000 (06:49 -0700)]
Merge pull request #2026 from YosysHQ/eddie/scratchpad_abc9_W

synth_ice40/ecp5/xilinx: allow abc9.W to be overridden via scratchpad

4 years agoMerge pull request #2024 from YosysHQ/eddie/primitive_src
Eddie Hung [Tue, 5 May 2020 13:49:18 +0000 (06:49 -0700)]
Merge pull request #2024 from YosysHQ/eddie/primitive_src

verilog: set src attribute for primitives

4 years agoMerge pull request #2023 from YosysHQ/eddie/specify_src
Eddie Hung [Tue, 5 May 2020 13:49:06 +0000 (06:49 -0700)]
Merge pull request #2023 from YosysHQ/eddie/specify_src

verilog: fix specify src attribute

4 years agoast: swap range regardless of range_left >= 0
Eddie Hung [Mon, 4 May 2020 19:18:20 +0000 (12:18 -0700)]
ast: swap range regardless of range_left >= 0

4 years agotest: add failing test
Eddie Hung [Mon, 4 May 2020 19:18:02 +0000 (12:18 -0700)]
test: add failing test

4 years agosynth_ice40/ecp5/xilinx: allow abc9.W to be overridden via scratchpad
Eddie Hung [Mon, 4 May 2020 18:44:00 +0000 (11:44 -0700)]
synth_ice40/ecp5/xilinx: allow abc9.W to be overridden via scratchpad

4 years agoverilog: fix specify src attribute
Eddie Hung [Mon, 4 May 2020 17:53:06 +0000 (10:53 -0700)]
verilog: fix specify src attribute

4 years agofrontend: cleanup to use more ID::*, more dict<> instead of map<>
Eddie Hung [Mon, 4 May 2020 17:48:37 +0000 (10:48 -0700)]
frontend: cleanup to use more ID::*, more dict<> instead of map<>