https://vlsiweb.com/hierarchical-and-configurable-interfaces/