надо делать схемы работающие по тактам - при этом необходимо все констрейнить .
видимо то что вы назваете ассинхронными схемами это формирование задержек на логических элементах? - так делать не надо(нельзя) - при таком подходе вы не сможете быть увененны в работоспосбности схемы(если в наше время вообще можно быть в чемто уверенным ;-))
язык описание можно использовать любой - просто схематик кажется проще при освоении - на самом деле он более трудоемок и менее гибок чем языки. но это дело стереотипа мышления железячника. для программистов таких проблем как правило нет.