Comment
Comment by ekiwi
Chisel imho solves the "synthesizable subset" problem quite elegantly: All Chisel constructs are simple, synthesizable circuit elements and boolean functions (+ functions on fixed size integers that can be converted into boolean functions).
All automation happens in the meta-language which in this case is Scala. Chisel was always intended for synthesizable hardware!