Когда вы говорите «аппаратное» проектирование, я знаю, что вы, вероятно, говорите о решениях для печатных плат и дискретных компонентов, но у меня есть некоторый опыт проектирования ASIC, которые могут быть полезны на концептуальном уровне.
Когда мы проектируем ASIC, который является довольно сложным, мы используем иерархию с самого начала. Одна из главных причин этого заключается в том, что по мере того, как проекты становятся больше, ваша способность тщательно оценивать и моделировать их уменьшается. Кроме того, проекты ASIC могут стать довольно большими, и без хорошо организованной иерархии может быть трудно управлять всем проектом.
У нас есть сильная культура повторного использования наших строительных блоков. Например, если у нас есть дизайн операционного усилителя, который кто-то потратил много времени на разработку и проверку, этот дизайн будет упакован, чтобы другой дизайнер мог легко импортировать этот дизайн в свое рабочее пространство. У нас есть централизованный сервер для хранения этих пакетов, поэтому все необходимые вам части легко найти.
В то время как отдельный блок может быть разработан для конкретной схемы (например, опорное напряжение для ОУ), как правило, может быть повторно использовано без модификации оригинального дизайна. Цикл разработки длится месяц или дольше и включает проверку макета. Проектирование одного из этих блоков требует времени, чтобы ознакомиться с набором задач, поэтому даже если этот блок не идеален, вы, вероятно, все равно попытаетесь его использовать.