Как определить пользовательскую ячейку для синтеза списка соединений?
В настоящее время я работаю над дизайном процессора, в котором я хочу сравнить различные микроархитектуры по мощности, скорости и площади. Эти микроархитектуры отличаются только созданием различных компонентов, например, по-разному реализованных ALU или файлов регистров. Некоторые из этих компонентов довольно сложны и недоступны для меня в виде кода HDL. Таким образом, идея состоит в том, чтобы создать их как черные ящики в коде HDL и позволить инструменту синтеза (Synopsys Design Compiler) отобразить их в самоопределяемые ячейки для получения списка соединений.
Теперь возникает вопрос: как я могу самоопределить клетки для использования в синтезе? Конечно, у меня есть стандартная библиотека ячеек, поэтому мне нужно только "добавить" эти несколько дополнительных ячеек в библиотеку ссылок. Я не мог найти способ определить их внутри оболочки DC. Поэтому я предполагаю, что мне нужно написать дополнительный файл свободы для загрузки и ссылки на него.
Есть ли способ определить файл свободы, где мне не нужно беспокоиться о материалах заголовка, таких как параметры процесса, и нужно только определить нужные ячейки и "добавить" их в существующую библиотеку, чтобы она автоматически предполагала все параметры процесса, как указано в стандартной библиотеке ячеек?
Я предполагаю, что это не слишком редко, чтобы хотеть сделать для целей моделирования, когда никакая раскладка не запланирована. Я просто не мог найти какую-либо полезную информацию в Интернете или в руководстве пользователя. Я был бы рад, если бы кто-то мог указать мне правильное направление.
1 ответ
Я нашел решение. Можно просто написать файл свободы, содержащий только описания пользовательских ячеек, а затем прочитать его перед компиляцией через update_lib
команда. Это именно то, что я хотел.