a methodology for constraint-driven essay of on-chip communications