Плоские и иерархические схемы: для чего необходима динамическая компиляция схем
Задавайте иерархию схем
Для проектов плат систематизация является крайне важным аспектом, и обычно легко предвидеть, когда необходимо использовать плоскую или иерархическую схему. Когда я начал работать над одним из своих первых проектов и его сложность стала возрастать, стало быстро очевидно, что я не смогу уместить все компоненты и соединения на одном листе и будет крайне сложно отслеживать цепи на схеме.
Теперь, когда у меня есть некоторый опыт в систематизации проектов в различные функциональные блоки и модули, стало намного проще понимать, когда нужно начинать с иерархических структур. Если вы всё ещё не уверены, какая методология для чего нужна и как она работает в вашем средстве проектирования, читайте далее.
Плоская или иерархическая схема – какую следует использовать?
Как бы нам ни хотелось, не все ответы на инженерные вопросы могут быть однозначными. Как раз один из таких вопросов – когда использовать плоскую схему, а когда – иерархическую. В общем случае, когда ваш проект становится более сложным и включает в себя всё большее количество дискретных компонентов или использует компоненты с большим количеством выводов (например, ПЛИС), следует рассмотреть использование иерархических схем. Ответ также может зависеть от того, как вы организуете проект.
Листы плоской схемы определяются таким образом, что между ними нет каких-либо взаимозависимостей – сигналы не задаются как идущие из схемы А в схему Б. В действительности, общими цепями в таких схемах являются только цепи питания. Это отличает их от иерархических схем. При использовании такой методологии, выходной (входной) порт из схемы А связан со входным (выходным) портом схемы Б. Это создает сложные зависимости между множеством листов схем.
Мне нравится представлять иерархические проекты в виде блок-схем. На изображении ниже показан пример различных функциональных блоков (блоки 1 – 4) и девяти схем (обозначенных с A по I). Здесь я начал с определения взаимосвязей между функциональными блоками. Внутри каждого из функциональных блоков есть множество схем, у которых могут быть сложные взаимосвязи. Каждая из этих схем содержит в себе набор компонентов, необходимых для выполнения только определенной функции.
Пример иерархии, заданной в виде блок-схемы
В иерархической схеме и проекте платы необходимо определять взаимосвязи между документами для отслеживания цепей в проекте и выполнения анализа целостности сигналов. Эти связи не всегда очевидны при работе над новым проектом, но начав с блок-схемы, как показано выше, вы сможете получить представление о связях между схемами.
Определение иерархических связей – динамическая компиляция
При создании нового продукта в базовой САПР, у вас может не быть возможности определять иерархические связи непосредственно в системе проектирования. Это вынуждает использовать плоские проекты по умолчанию, и когда вы передадите данные на плату, вам придется вручную отслеживать иерархию проекта. Это, возможно, подойдет для простых проектов с небольшим количеством соединений, но для более сложных проектов появляется риск серьезных ошибок.
В плоских проектах также нет взаимосвязей, необходимых для проведения DRC, анализа и определения связности в проекте. В итоге у вас может быть два различных функциональных блока без связи друг с другом, которые не могут взаимодействовать между собой, пока это не определено вручную. Обычно иерархия определяется в процессе компиляции, при которой система анализирует заданные пользователем входные/выходные соединения, существующие в двух схемах, и поток данных определяет иерархические связи между схемами.
Ранее было необходимо выполнять компиляцию вручную, и этот процесс мог занимать много времени. Проектировщикам приходилось откладывать компиляцию, пока в проекте не были выполнены значительные изменения, что влекло за собой риски проектных ошибок или создания круговой иерархии. Хотя в последних версиях повышалась скорость формирования списков цепей для определения иерархии, значительным шагом вперед стала динамическая компиляция.
При динамической компиляции, иерархические связи между схемами определяются в процессе создания и изменения схем. Это значительно ускоряет создание схем и предотвращает появление ошибок проектирования. Если вы используете унифицированное ПО для проектирования, где средства компиляции и проверки DRC созданы на одном ядре, динамическая компиляция позволит быстро обнаружить ошибки проектирования. Проектировщики, работающие над сложными изделиями, могут сосредоточиться на разработке, а не на отслеживании цепей и соединений компонентов в схемах. Вам не придется беспокоиться о том, какой из двух подходов к проектированию следует выбрать – нужно лишь аккуратно систематизировать схемы, и динамический компилятор позаботится об остальном.
Altium Designer 20 автоматически компилирует схемы в процессе их создания.
Эта возможность доступна в новой версии Altium Designer®. Динамическая компиляция избавляет от необходимости выбирать между плоской и иерархической схемой. Вместо этого, вы можете сосредоточиться на обеспечении нужной функциональности, не заботясь о создании сложной иерархии схем вручную. Вы получите доступ к широкому набору средств пред- и посттопологического анализа, которые позволят вам изучить поведение проекта с точки зрения целостности сигналов. У вас также будет доступ к полному набору функциональных возможностей для создания многоканальных проектов, управления компонентами и конструирования плат в единой платформе.
Вы можете загрузить бесплатную пробную версию Altium Designer и узнать больше о лучших в отрасли инструментах конструирования, анализа и планирования производства. Поговорите с экспертом Altium сегодня, чтобы узнать больше.