SpinalHDL's multiple clock domain support via lexical scoping is excellent.

Save for things like SV interfaces (which are equivalently implemented in a far better way using Scala's type system), SpinalHDL can emit pretty much any Verilog you can imagine.