- Категория: Forth
- Опубликовано 09 Июнь 2012
- Просмотров: 15694
«Кварк» - российская САПР системного уровня
Для современной интегральной электроники характерно постоянное повышение стоимости подготовки производства с одновременным уменьшением себестоимости изготовления одного экземпляра микросхемы. Это обуславливает высокую экономическую эффективность изготовления крупных партий однотипных полупроводниковых изделий, для которых высокие затраты на подготовку производства окупаются за счет большого объема выпуска. При этом, однако, существуют не только риски, обусловленные ошибками в выполнении разработки или подготовки производства, но и риски организационно-экономического характера, проистекающие из неверной оценки рыночной потребности в изделиях или требуемых технических характеристик. В этом случае даже устройство, выполненное в соответствии с требованиями технического задания, не может окупить затраты на разработку в связи с экономической нецелесообразностью его выпуска, обнаруживающейся уже после выполнения этих затрат.
Высокий объем безвозвратных финансовых потерь, возможных при выпуске оригинальной микроэлектронной компонентной базы, существенно ограничивает круг российских организаций, ориентирующихся на данный подход к выпуску микроэлектронной продукции. Поскольку номенклатура готовых изделий, доступных со стороны российских производителей, весьма мала, наиболее распространен порядок разработки, основанный на использовании приобретаемых электронных компонентов зарубежного производства. Производство изделий с заказом новых интегральных микросхем оказывается непривлекательным для большинства российских производителей по причинам, указанным выше — высоким уровнем безвозвратных финансовых потерь и высокой степенью риска, связанного с сильной конкуренцией со стороны зарубежных производителей интегральных схем.
При этом следует отметить малую активность российских коммерческих организаций в сфере инвестиций в разработку интегральных схем на российских предприятиях, в том числе в сборку цифровых систем на полупроводниковом кристалле из готовых компонентов зарубежной разработки. Подобный подход предоставляет заказчику то преимущество, что в результате сборки подобной системы появляется продукт с характеристиками, оптимальными для решения поставленной задачи, тогда как среди доступной элементной базы зарубежного производства может и не быть такого продукта. Однако окупаемость инвестиций в разработку новой интегральной микросхемы возможна лишь при обеспечении определенного, и достаточно большого, объема сбыта продукции на ее базе, что достижимо не для всех предприятий.
Эффективным способом повышения привлекательности вновь разрабатываемой элементной базы является предоставление потенциальным потребителям программных и аппаратных эмуляторов будущей продукции, в том числе возможности конфигурирования будущего изделия и тестирования макетов при работе с реальными объектами управления и источниками сигналов. Получение результатов испытаний макета будущей интегральной схемы является существенным аргументом в пользу начала ее массовой разработки, а низкая стоимость моделирования и макетирования минимизирует финансовые потери в случае, если использование вновь разрабатываемой микросхемы будет признано нецелесообразным.
Из описанной последовательности действий следует сильная ориентация на проработку не только технических, но и организационно-экономических аспектов проектирования СнК. Это может быть достигнуто путем сокращения времени итерации моделирования, поскольку в процессе выбора оптимального аппаратного состава СнК требуется многократная оценка характеристик различных вариантов ее исполнения. Эффективная конструкция СнК, конкурентоспособная в условиях массового выпуска, может быть получена только при условии выбора строго определенного аппаратного состава системы, в точности соответствующего поставленной задаче.
В настоящее время выявлены следующие тенденции в разработке СнК [1, 2]:
1) Увеличение логического объема устройств.
Современные технологические процессы, начиная со 130-нм, могут реализовать устройства с более чем 100 тыс. эквивалентных вентилей на кв. мм. Соответственно, микросхемы, относящиеся к недорогим устройствам (площадью до 50 кв.мм) содержат миллионы эквивалентных вентилей. Высокая плотность компонентов на полупроводниковом кристалле стимулирует реализацию со стороны системных инженеров множества функций, не ограничивая их только самыми необходимыми в данной сфере применения. Такая избыточность ставит дополнительные задачи по обеспечению интеграции компонентов для инженеров-разработчиков СнК.
2) Сложность разработки
Граница емкости эффективно реализуемой системы в настоящее время оценивается величиной от 100 тыс. до 500 тыс. эквивалентных логических вентилей. При увеличении объема сверх этих пределов технические решения, реализуемые автоматическими средствами синтеза и размещения, становятся неэффективными. В то же время СнК, которые могут быть реализованы для технологических норм 0,13 мкм и глубже, могут содержать миллионы вентилей.
3) Сложность верификации
Сложность разрабатываемой системы растет непропорционально росту ее логического объема ввиду возрастания количества взаимосвязей. Отмечаются проекты, в которых затраты на верификацию на системном уровне составляют 70% и более общих затрат на разработку.
4) Высокая стоимость исправления ошибок
С переходом к новым технологическим нормам регулярно увеличивается стоимость разработки, которая имеет наиболее характерное выражение в стоимости комплекта фотошаблонов. Эта стоимость имеет тенденцию к экспоненциальному росту: по данным исследовательской группы The Information Network, комплект фотошаблонов для 65-нм технологического процесса в среднем в 1,8 раза дороже, чем для 90-нм, а для 45-нм — в 2,2 раза дороже, чем для 65-нм. Однако кроме стоимости комплекта фотошаблонов, в стоимость разработки и исправления ошибок входят также безвозвратные инженерные затраты (NRE, nonrecurring engineering), которые могут оказаться существенно выше стоимости фотошаблонов. Кроме того, в условиях высокой конкуренции задержка выпуска продукции приводит к потере части рынка и финансовым потерям. В общей сложности, стоимость цикла разработки достигает миллионов долларов для технологических процессов с нормами 130 и 90-нм.
5) Поздняя интеграция аппаратного и программного обеспечения
Подавляющее большинство систем на базе процессоров имеет достаточно большой объем программного обеспечения, являющегося неотъемлемой составной частью обеспечения функциональности системы. Интеграция программного обеспечения обычно является завершающей стадией процесса разработки и часто является причиной снижения характеристик изделия относительно ожидаемых из-за возникновения непредвиденных ситуаций и несоответствия параметров разработанного программного обеспечения предварительным оценкам. Поздняя проверка программного обеспечения рассматривается как источник повышенного риска при разработке продуктов, включающих в себя аппаратное и программное обеспечение.
6) Изменения стандартов и требований потребителей
В процессе разработки изделия может произойти изменение общепринятых стандартов, соблюдение которых является принципиальным для целого ряда областей, таких как коммуникационные протоколы, обработка звука и видео, криптография. При этом требуется как обеспечение совместимости с существующими стандартами, так и поддержка новых вариантов.
Несмотря на то, что процессоры общего назначения могут выполнять основные задачи, как правило, для обработки звука, видео, криптографии и телекоммуникаций используются устройства с дополнительными аппаратными модулями, расширяющими полосу пропускания (производительность) в соответствующей сфере работы. Разработка новых аппаратных модулей для решения таких задач и их интеграция в микропроцессорные системы является актуальным направлением современной микроэлектроники.
Традиционный подход к разработке СнК состоит из следующих фаз:
1) Разбиение функций проекта на аппаратно и программно реализуемые.
2) Разработка компонентов
- Программирование известных алгоритмов и функций
- Разработка RTL-представления компонентов для реализации функций, для которых являются критичными производительность, площадь кристалла или потребляемая мощность
3) Интеграция путем системного моделирования, физической реализации и окончательного программирования. В случае, если цена, потребляемая мощность, производительность не удовлетворяют требованиям, цикл разработки повторяется.
Получение удовлетворительного результата за одну итерацию проектирования представляет собой редко достижимый идеальный случай. Поскольку все фазы разработки влияют друг на друга, изменения в аппаратном составе системы влекут за собой пересмотр системных моделей, программного обеспечения и разграничения аппаратно и программно решаемых задач. Кроме того, разработка и верификация RTL является трудоемкой и ответственной задачей.
Наиболее адекватная реальной конструкции верификация на физическом (или вентильном) уровне занимает чрезмерное время даже для современного уровня вычислительных устройств. Немаловажно, что моделируемые системы выполняются по схожим технологическим процессам по сравнению с современными процессорами, используемыми в рабочих станциях, на которых выполняется проектирование, таким образом, улучшение характеристик рабочих станций ввиду появления новых процессоров сопровождается соответствующим усилением требований к их производительности, связанным с тем, что происходит переход к новым технологическим процессам во всей полупроводниковой отрасли. В связи с этим на протяжении долгого времени сохраняется соотношение между циклами моделирования разрабатываемой системы и циклами тактовой частоты моделирующего процессора порядка 1 : 1 000 000. Такое соотношение делает практически невозможным интенсивную разработку СнК с многочисленными итерациями моделирования на физическом уровне. Данный вид моделирования предназначается для финальной верификации готового устройства непосредственно перед его передачей в производство.
С целью повышения производительности средств моделирования используется поведенческое или функциональное моделирование на RTL уровне. Оно включает в себя моделирование логических уровней отдельных сигналов системы, выполняемое по его поведенческому и/или структурному описанию. Отдельные операции, производимые устройством, получаются при этом в результате интерпретации совокупности сигналов, а не в качестве самостоятельно моделируемых процессов. Моделирование на уровне RTL обладает большей производительностью, чем моделирование на физическом уровне, но, тем не менее, все равно существенно медленнее, чем непосредственное выполнение операций разрабатываемым устройством. Поскольку поведенческие и структурные модели могут и не включать в себя информацию о времени распространения сигналов, либо эта информация приводится в условном смысле (номинально обозначая, что устройство вносит задержку в распространение сигналов), моделирование на уровне RTL неспособно выявить проблемы, связанные с невозможностью устройства работать на заданной тактовой частоте, обеспечение целостности сигналов, влияние помех и внешних факторов на работу устройства. Все эти вопросы должны быть разрешены позднее, с помощью физического моделирования.
Для существенного повышения производительности моделирования процессорных систем используются также эмуляторы — программы для моделирования, воспроизводящие только изменения программно-доступных ресурсов процессорной системы. При этом с помощью эмулятора невозможно выявить, например, ошибки в реализации какой-либо команды или выполнить недокументированную команду, поскольку работа эмулятора производится в строгом соответствии со спецификацией на процессор.
Эмулятор процессора может быть выполнен таким образом, чтобы эмулировать и поведение внешних по отношению к процессору устройств. В этом случае можно говорить о более или менее полном моделировании поведения всей системы. повышение производительности моделирования достигается прежде всего переходом к более высокоуровневым методам моделирования, не учитывающим подробные детали поведения моделируемой системы. Адекватность модели при этом достигается проведением предварительного моделирования на физическом уровне с определением границ устойчивой работы отдельных модулей и системы в сборе. В дальнейшем, при соблюдении выявленных условий эксплуатации, можно считать, что результаты, полученные при моделировании на уровне транзакций, могут быть перенесены и на физический уровень.
В то же время, моделирование на уровне транзакций, выполняемое только для процессора, резко снижает представительность информации о поведении системы, поскольку объем и сложность внешних воздействий, которые необходимо смоделировать, существенно возрастают. В этой связи, ориентируясь на простоту получения адекватного представления поведения системы, существует необходимость охвата моделью не только процессора, но и периферии, вплоть до всей системы, включающей в себя, частично, и внешние устройства - например, датчики, которые могут быть представлены последовательностями генерируемых ими данных. В этом случае процесс моделирования позволит получить результаты, практически не зависящие от адекватности представления моделей поведения периферийных устройств, поскольку их модели будут применены автоматически.
Таким образом, для предоставления разработчикам устройств на базе СнК эффективного средства быстрой оценки технико-экономических характеристик будущих электронных устройств, необходимо уделить особое внимание повышению производительности моделирования и полноты охвата процессов, происходящих в моделируемом устройстве. При этом можно отказаться от предоставления подробных результатов, относящихся к физическим процессам внутри кристалла, и внутренним сигналам, обеспечивающим работу системы, но не представляющими интереса для разработчиков конечного изделия.
Как правило, при отладке устройств на базе процессоров производится наблюдение за следующими величинами: содержимое регистров процессора, памяти, стека, выражений. При этом стек представляет собой фрагмент памяти, а выражения — комбинацию значений переменных в памяти и регистров. Таким образом, моделируя состояние регистров процессора и адресуемой им памяти, возможно предоставить достаточную информацию для отладки.
Для повышения полноты представления информации о моделируемом устройству к этому набору, как было упомянуто выше, предполагается добавление моделей внешних устройств. При этом источники данных моделируются путем перечисления генерируемых ими значений в различные моменты времени (таблица данных) или задания аналитических выражений. Приемники данных (выходы системы) присутствуют в модели как списки значений, представляемых в различном виде (таблица, график), или в виде более сложных моделей, в том числе выполняющихся в других программных средах.
Соотношение видов моделирования с решаемыми при этом задачами представлено в табл. 1
Таблица 1
Уровень моделирования |
Производительность |
Детализация |
Полнота |
Целевая аудитория |
Уровень транзакций |
Высокая |
Очень низкая |
Высокая, моделируется вся система |
Системный архитектор, программист |
Уровень регистровых передач (RTL) |
Средняя |
Средняя |
Средняя, моделируется разрабатываемый компонент и его окружение |
Разработчик IP-ядер |
Физический уровень |
Крайне низкая |
Высокая |
Малая, моделируется разрабатываемый компонент |
Схемотехник, технолог |
Из данных табл. 2 видно, что уровень транзакций предпочтителен для использования системными архитекторами и специалистами, определяющими аппаратный состав разрабатываемого устройства. В настоящее время интенсификация процесса разработки и внедрения новых электронных устройств может быть выполнена путем упрощения процесса оценки характеристик будущих изделий именно для этих категорий специалистов, поскольку маршруты разработки IP-ядер и их топологической реализации разработаны достаточно хорошо. Однако формулировка технического задания на разработку RTL- или топологического представления компонента или системы возможна после определения потребительских характеристик изделия и проверки (путем моделирования), каким должен быть аппаратный состав электронного устройства. Поэтому разработка новых, более эффективных маршрутов проектирования на RTL и топологическом уровнях сама по себе приводит к улучшению характеристик разрабатываемых микросхем, но не способна интенсифицировать процессы заказа новых устройств.
Возвращаясь к проблеме эффективной реализации систем большого логического объема с учетом возрастающей трудоемкости разработки и верификации, можно отметить, что в последнее время усилились тенденции к декомпозиции систем, отдельной разработке повторно используемых блоков (IP-ядер) и сборке требуемого полупроводникового устройства из набора предварительно разработанных и верифицированных компонентов универсального назначения. При необходимости, для решения конкретной технической задачи или внесения в устройство новых функциональных возможностей, добавляются новые компоненты, разработка которых не затрагивает схему, порядок работы и топологию уже созданных блоков. Подобный подход в настоящее время широко применяется в мировой микроэлектронной промышленности, где используется понятие «повторно используемых ядер» (reusable IP-cores). Они представляют собой функционально законченные компоненты, из которых производится сборка полупроводникового кристалла. Как правило, такие компоненты имеют завершенное и верифицированное представление на топологическом или структурном уровне, что освобождает разработчика системы от необходимости проводить доработку используемых им IP-ядер, а в случае фиксированного топологического представления также имеют и фиксированные характеристики производительности, потребляемой мощности и занимаемой площади, что существенно снижает влияние квалификации разработчика на характеристики разрабатываемого изделия. На практике, при построении системы из предварительно разработанных компонентов (IP-ядер) требуется провести их настройку и соединение с правильным размещением на полупроводниковом кристалле. При этом существенно уменьшается время разработки, снижаются риски получения неработоспособных компонентов и в конечном итоге, себестоимость продукции.
Для проектирования, основанного на использовании параметризованных компонентов (IP-ядер), необходимо иметь в составе средств разработки программные модули, выполняющие управление компонентами, их параметризацию, и составление списка связей между используемыми в системе компонентами на основе информации, вводимой разработчиком. Список связей, или иная информация о соединении компонентов, должен быть совместим с входными форматами промышленных САПР разработки интегральных микросхем на уровне топологии.
Исходя из проведенного анализа САПР для проектирования СнК, можно выделить следующие тенденции:
1) Сборка системы из покомпонентно разрабатываемых и верифицируемых блоков, широкое применение повторно используемых ядер (IP cores), выделение системного уровня.
2) Разграничение уровней моделирования, использование моделей уровня транзакций (TLM, Transaction Level Models).
3) Ранняя интеграция программного обеспечения в проект, совместная разработка аппаратного и программного обеспечения (Hardware & Software Co-Development).
4) Разработка специализированных языков для описания предметной области, выступающих в качестве основы для описания взаимодействия модулей системы, ее структуры, внутренних связей и алгоритмов функционирования. Кроме того, в составе САПР используются вспомогательные языки программирования, облегчающие преобразование текстов программ, согласование форматов и интеграцию отдельных программных модулей.
5) Использование открытых протоколов обмена, интеграция САПР с другими программными продуктами — математическими пакетами, средами разработки программного обеспечения с целью создания сквозной системы разработки продукции на базе микроэлектронных изделий.
Назначение и область применения
В рамках выполнения ОКР по заказу Министерства науки и образования Российской Федерации компанией «Измерительные системы» была разработана САПР системного уровня для проектирования цифровых и цифро-аналоговых устройств класса «Система на кристалле». САПР получила рабочее название «Кварк».
Исходя из выявленных тенденций в развитии систем проектирования микроэлектронной элементной базы, для САПР выделены следующие приоритеты:
- Ориентация на сборку СБИС класса «Систем на кристалле» из заранее созданных компонентов, допускающих параметризацию и повторное использование;
- Обеспечение процесса моделирования, макетирования и верификации на системном уровне, уменьшение длительности цикла «разработка — моделирование — верификация» с целью повышения производительности разработчика при выборе архитектуры СнК;
- Обеспечение ранней интеграции программного обеспечения с целью повышения адекватности оценки характеристик создаваемого изделия на ранних стадиях его разработки
- Интеграция САПР в существующие маршруты проектирования СБИС
- Обеспечение макетирования и аппаратной верификации СнК на базе ПЛИС
Назначением САПР является программное обеспечение процесса проектирования новой компонентной базы микроэлектроники класса «Система на кристалле» на основе многопроцессорных архитектур, выполняемой по глубоко субмикронным технологиям.
Область применения САПР включает в себя:
- Разработку систем на кристалле на базе ранее созданных компонентов с возможностью добавления новых компонентов в виде структурной схемы связей компонентов между собой и с системной шиной
- Ввод, редактирование и кросс-ассемблирование программ для процессорных ядер, входящих в состав СнК. Кросс-ассемблирование выполняется на базе универсального ассемблера на базе регулярной грамматики, допускающего расширение и добавление как новых макрокоманд для ассемблеров, входящих в стандартную комплектацию САПР, так и новых систем команд (ассемблеров) для вновь разрабатываемых компонентов процессоров.
- Моделирование системы на уровне транзакций. Ограничением такого подхода является возможность моделирования только цифровых компонентов без учета процессов в аналоговых цепях. Для учета этих процессов необходимо представить модели аналоговых компонентов в виде цифровых отсчетов в моменты времени, соответствующие отдельным тактам цифровой части СнК. При наличии процессорных ядер и введенных программ выполняется совместное моделирование аппаратной и программной составляющих системы.
- Экспорт созданных RTL-представлений системы в промышленные системы разработки цифровых устройств на базе ПЛИС (для макетирования и аппаратной верификации) и ASIC (для производства)
САПР предназначена для инженеров-разработчиков, системотехников, системных и прикладных программистов, осуществляющих проектирование цифровых и цифроаналоговых микросхем класса «Система на кристалле», а также изделий на их основе для решения актуальных задач измерений, управления, автоматизации, расчетов, математического моделирования в промышленности, транспорте, связи, медицине и других отраслях народного хозяйства. Поскольку уровень начальных затрат на освоение технологии проектирования с помощью данной САПР весьма мал, предполагается дополнительное распространение САПР среди организаций малого и среднего размера. Минимизация начальных затрат достигается путем введения комплексного моделирования системы с учетом как аппаратной, так и программной составляющих, что ограничивает требования к оборудованию только персональным компьютером. При этом становится возможным проведение предварительных исследований о возможности применения вновь разрабатываемой элементной базы и целесообразности ее разработки с учетом технико-экономических показателей. Снижение стоимости начала работы с данной технологией позволяет прогнозировать увеличение количества инициативных проектов, выполняемых с помощью САПР, а следовательно, и увеличение количества заказов на разработку микроэлектронных компонентов класса «Система на кристалле», производимых как государственными, так и коммерческими предприятиями. При этом для коммерческих организаций особенно привлекательным является то, что вложение крупных инвестиций откладывается до момента, когда потребуется разработка топологии СнК и переход к ее выпуску. Таким образом, организации будут иметь возможность при небольших финансовых вложениях выполнить достаточный объем конструкторских работ для принятия решения о целесообразности производства СнК.
Ограничения САПР проистекают из выбранных приоритетов. С целью повышения производительности при моделировании не производится анализ внутренних процессов в системе, как для управляющих цифровых сигналов, так и для аналоговых компонентов. Ввиду этого требуется учитывать следующие ограничения:
- При переходе к топологическому представлению требуется провести отдельные мероприятия по подтверждению адекватности моделей уровня транзакций физическим моделям компонентов. Разрабатываемые модели уровня транзакций могут и не иметь допустимой топологической реализации, что необходимо учитывать при компоновке системы. Вместе с тем проверка адекватности и взаимной согласованности моделей разного типа может быть проведена однократно на протяжении жизненного цикла модели.
- При моделировании аналоговых систем их поведение представляется в виде цифровых отсчетов в моменты времени, соответствующие фронтам сигналов, тактирующих соответствующие аналого-цифровые преобразователи. При этом так же, как и для физических моделей цифровых компонентов, не учитываются процессы, протекающие в аналоговых цепях, влияние помех, излучений, колебаний напряжения питания, температуры и других внешних факторов. Все эти влияния должны быть учтены при составлении моделей сигналов, ответственность за адекватность которых лежит на пользователе.
В то же время, подход, основанный на моделировании транзакций, обладает следующими существенными преимуществами:
- Высокая производительность моделирования за счет отбрасывания несущественных на системном уровне деталей.
- Возможность совместного моделирования аппаратной и программной части системы, интеграция с маршрутом разработки программного обеспечения.
- Моделирование системы в течение длительного интервала времени (по времени модели), что позволяет проводить комплексные исследования характеристик программно-аппаратных комплексов на основе СнК путем моделирования и верификации их поведения при исполнении программ большого объема.
- Открытый интерфейс для подключения моделей компонентов, ассемблеров и языков программирования высокого уровня, создающих образы памяти процессорных компонентов СнК, интеграция со сторонним программным обеспечением, которое может являться источником моделей внешних воздействий и получателем моделей реакции системы на них.
- Использование внутреннего управляющего языка на основе регулярной грамматики, упрощающего составление пользователем сценариев автоматической сборки системы, кросс-компиляции программного обеспечения, запуска процессов моделирования и верификации с автоматическим анализом контрольных условий и составлением отчетов в форматах, определяемых скриптами пользователя.
В рамках САПР возможно решение нескольких задач разработки СнК:
- Комплексное моделирование системы на уровне транзакций с возможностью подключения внешних программных модулей, моделирующих поведение внешних устройств
- Макетирование и верификация с помощью программно-аппаратного стенда на базе ПЛИС
- Получение топологического представления СнК, пригодного к серийному производству
Задача комплексного моделирования решается конфигурированием СнК путем выбора и параметризации ее компонентов, разработки и кросс-компиляции программного обеспечения процессорных компонентов и проведения моделирования системы на уровне транзакций. Данная разновидность использования САПР предпочтительна на ранних этапах разработки СнК и изделий на их основе, когда требуется решить задачу выбора аппаратного состава и программного обеспечения, оптимальных для выполнения требуемых функций. Здесь же возможно оценить стоимость, потребляемую мощность и площадь кристалла СнК. Эта разновидность маршрута не требует специального оборудования для проведения, ограничиваясь наличием персонального компьютера. Проведение моделирования на уровне транзакций не требует разработки топологических представлений новых компонентов, и даже их RTL-описаний. Таким образом, становится возможным моделирование систем, включающих в себя еще не разработанные компоненты, для которых, тем не менее, имеются модели уровня транзакций, которые могут выступать основой для разработки технического задания на подготовку их RTL-представления. В то время как RTL и топологическое представление могут быть выполнены однократно и в условиях соответствующих дизайн-центров, для пользователя САПР сохраняется возможность многократного уточнения моделей уровня транзакций и моделирования СнК без необходимости привлечения сторонних организаций. Все это существенно облегчает процесс разработки новых СнК на системном уровне, делает его, на данном этапе, независимым от сторонних организаций, и минимизирует затраты на разработку, ограничивая их стоимостью эксплуатации персонального компьютера и оплатой труда разработчика – пользователя САПР. В данной конфигурации САПР предполагается к широкому распространению.
При необходимости проведения аппаратной верификации логической структуры СнК или проведения испытаний в условиях реального окружения (датчиков, исполнительных устройств, другой периферии) используется разновидность маршрута, предусматривающая получение макета СнК в программно-аппаратном стенде (ПАС) на базе ПЛИС. С помощью ПАС становится возможным проведение испытаний, включающих в себя прием данных с датчиков и управлением исполнительными элементами, т.е. обмен данными на физическом уровне. Недостатком такого подхода является пониженная тактовая частота, достигаемая ПЛИС, по сравнению с проектируемым изделием, повышенные габариты и энергопотребление. Однако ввиду того, что стоимость ПАС существенно ниже, чем стоимость изготовления образца СнК, причем допустимо неограниченное реконфигурирование ПАС, данная разновидность маршрута проектирования привлекательна при наличии высокой степени риска получения непригодного к рыночной реализации изделия по причинам, независящим от технических характеристик СнК. Например, в условиях слабоизученной предметной области, и отсутствия надежных алгоритмов работы микроэлектронной части изделия, может оказаться невозможным исполнение управляющей системы, независимо от имеющегося технического уровня в области микроэлектроники. В этом случае изучение характеристик сигналов и поведения объектов, подлежащих управлению, с помощью ПАС, позволяет принять решение о целесообразности изготовления СнК без изготовления образца СнК. Аппаратная верификация на макете представляет собой следующий уровень детализации модели по сравнению с моделями уровня транзакций, так как адекватность этой модели определяется не введенными при ее разработке допущениями (которые могут оказаться некорректными), а непосредственно по результатам испытаний в окружении реальных объектов.
Для этой разновидности маршрута разработки требуется выполнить конфигурирование ПАС, которое выполняется с привлечением промышленных САПР ПЛИС и макетной платы на базе ПЛИС. Поскольку маршрут конфигурирования ПЛИС использует стандартные языки описания аппаратуры, генерируемое в САПР «Кварк» RTL-представление СнК может быть использовано в качестве входной информации для получения конфигурации ПЛИС. В состав САПР входят программные модули, экспортирующие набор файлов, достаточный для автоматической трансляции RTL-описаний системы в САПР ПЛИС ISE фирмы Xilinx. Допускается также использование макетных плат на базе ПЛИС, разработанных пользователем, для чего требуется коррекция скриптовых файлов с описанием порядка подключения выводов ПЛИС к сигналам системы.
Дополнительным недостатком макета на базе ПЛИС является отсутствие в ПЛИС конфигурируемых аналоговых блоков, с помощью которых было бы возможно провести макетирование аналоговых и аналогово-цифровых компонентов СнК. Для этого необходимо использовать подключаемые к ПЛИС внешние дискретные компоненты, обладающие теми же техническими характеристиками, что и компоненты, предполагаемые к аппаратной реализации в СнК. Следует иметь в виду, что в ряде случаев использование внешних компонентов приведет к поведению системы, отличающейся от поведения СнК, ввиду, например, увеличенных габаритов и энергопотребления макета, а также наличия печатных проводников, соединяющих ПЛИС и аналого-цифровые компоненты системы, что в совокупности дает систему с другими параметрами электромагнитного излучения, и как следствие, с пониженной помехоустойчивостью.
Маршрут проектирования СнК, основанный на использовании макета, также может быть проведен без привлечения сторонних организаций, однако требует приобретения САПР ПЛИС и специального оборудования – макетной платы и устройств программирования. Необходимое программное обеспечение и оборудование объединено в программно-аппаратном стенде (ПАС), который может быть использован для организации рабочего места конструктора СнК.
RTL-представление системы, получаемое с целью экспорта в САПР ПЛИС, может выступать в качестве исходных данных для функционального моделирования на уровне RTL с использованием широкого спектра промышленных средств моделирования. К числу таких систем относятся, например, широко распространенные продукты ModelSim компании Mentor Graphics.
Наконец, разновидность маршрута, связанная с изготовлением СнК, выполняется с привлечением дизайн-центров микроэлектроники и требует использования САПР ASIC. Разработанная САПР ориентирована на экспорт RTL-представлений, пригодных для использования совместно с системой разработки микросхем фирмы Cadence. Моделирование на физическом уровне и подготовка технологической документации требует соответствующей квалификации разработчиков, поэтому не подлежит автоматизации в рамках разработанной САПР.
Описание маршрута проектирования
На блок-схеме показаны следующие компоненты маршрута проектирования.
Программа процессора – исходные тексты программ для процессорных компонентов, выбранных для проектируемой СНК.
Ассемблер – библиотечный модуль, содержащий правила трансляции команд ассемблера в машинные коды. Ассемблеры разработаны для параметризованных компонентов процессоров, входящих в базовую поставку САПР, и должны быть разработаны для вновь создаваемых процессорных компонентов, в соответствии с правилами описания языков ассемблера. Допускается использовать сторонние средства трансляции, в случае, если они формируют образы памяти процессорных компонентов в двоичном формате.
Кросс-ассемблирование – процесс получения образов памяти процессорных компонентов проектируемой СНК путем трансляции исходных текстов программ. Кросс-ассемблирование выполняется программным модулем, входящим в состав САПР СНК.
Образ памяти процессора – область памяти инструментального компьютера, хранящая образ памяти одного из процессорных компонентов проектируемой СНК. Каждому процессорному компоненту соответствует собственный образ памяти. Образ памяти по запросу пользователя может быть сохранен во внешний файл или загружен из внешнего файла.
Ввод структуры СНК – операция по вводу требуемых компонентов СНК. Производится пользователем с использованием модуля ввода и редактирования структуры СНК с графическим интерфейсом. Допускается ввод структуры СНК путем трансляции текстового файла с описанием компонентов и порядка их соединения.
Параметризация компонентов СНК – процесс задания параметров компонентов, входящих в состав проектируемой СНК, в соответствии с документацией на эти компоненты. Производится пользователем с использованием модуля ввода и редактирования структуры СНК с графическим интерфейсом. Допускается описание параметров СНК в текстовом файле.
Структурное представление СНК – представление структуры СНК, списка использованных компонентов, связей между ними, параметров компонентов в виде файла.
Трансляция структурного представления СНК – процесс получения RTL-представления СНК из структурного представления. Выполняется программным модулем, входящим в состав САПР СНК.
RTL-представление СНК – представление проектируемой СНК на уровне регистровых передач (RTL, Register Transfer Level). Выполняется на языке описания аппаратуры VHDL и содержит
- Файл верхнего уровня, описывающий структуру, интерфейсы и состав СНК;
- Файлы параметризованных компонентов СНК из библиотеки RTL-представлений компонентов;
- Файл, содержащий общие для СНК параметры.
Тестовые воздействия на уровне транзакций – модели воздействий на СНК, представляемые в текстовом виде в формате, соответствующем спецификации на язык моделей уровня транзакций.
Модели уровня транзакций – модели параметризованных компонентов на уровне транзакций, описанные в соответствии со спецификацией на язык моделей уровня транзакций.
Моделирование на уровне транзакций – процесс вычисления последовательности состояний контрольных точек СНК на основе применения тестовых воздействий к модели СНК.
Отчет по моделированию на уровне транзакций – список состояний контрольных точек СНК в различные моменты времени. Может быть импортирован сторонними программами, осуществляющими визуализацию сигналов.
Тестовые воздействия на уровне RTL – определяемые пользователем модели воздействий на параметризованные компоненты, описанные на языке описания аппаратуры VHDL.
Конфигурация ПАС – перечень проектных ограничений для ПЛИС, на основе которой выполняется макетирование СНК, в соответствии с документацией на макетную плату и ПЛИС.
Функциональное моделирование на уровне RTL – процесс, выполняемый сторонней программой, по моделированию процессов в СНК на уровне регистровых передач.
Отчет по функциональному моделированию на уровне RTL – отчеты по моделированию на уровне регистровых передач, представляемые в машинной форме в соответствии с порядком работы сторонней программы, выполняющей моделирование.
Трансляция в ПЛИС – процесс, выполняемый сторонней программой САПР ПЛИС, заключающийся в преобразовании RTL-представления СНК в файл с конфигурационными данными, требующийся для физического программирования ПЛИС, выполняющей макетирование СНК. В реализованной версии САПР трансляция в ПЛИС выполняется на основе автоматического скриптового файла, задающего сценарий создания проекта в ПЛИС, подключения к нему файлов RTL-описаний и проектных ограничений, и запуска отдельных приложений, выполняющих отдельные этапы трансляции RTL-представления СНК.
Конфигурационные данные для ПАС – файл, содержащий данные для конфигурирования ПЛИС, на основе которой выполняется макетирование СНК.
Макетирование и верификация в ПАС – процесс, включающий в себя загрузку конфигурации СНК в ПЛИС, подачу входных воздействий и регистрацию выходных сигналов ПЛИС, выполняющей макетирование СНК. Процесс может включать в себя как визуальную, так и автоматическую регистрацию выходных сигналов, в том числе сравнению с эталонными выходными сигналами, ожидаемыми при нормальной работе макета СНК. Формирование входных воздействий и регистрация выходных сигналов обеспечивается пользователем ПАС в соответствии с документацией на ПАС.
Топологические представления параметризованных компонентов – библиотеки параметризованных компонентов в формате GDSII.
Моделирование СНК на физическом уровне – процесс, выполняемый сторонней программой, осуществляющий моделирование сигналов в отдельных элементах СНК с учетом задержек их распространения, зависимостей параметров СНК от температуры, напряжения питания, и др. факторов, требуемых для определения корректности топологического представления.
Интерфейс и системные требования
САПР работает под управлением ОС MS Windows или Linux Debian 5.0. Основным приложением САПР является модуль конфигурирования системы, графический интерфейс которого показан на рис.
Организация САПР
САПР «Кварк» содержит виртуальную вычислительную машину Quark-Forth. Машина реализована в виде статически компилируемого модуля, написанного на языке С++. Организация графического интерфейса, включая многодокументный интерфейс (MDI) основного рабочего пространства, выполнена на базе библиотеки Qt 4.5, что обеспечило переносимость приложения между ОС MS Windows и Linux. В то же время, основная функциональность САПР обеспечивается выполнением скриптов, написанных на языке Quark-Forth, которые реализуют следующие задачи:
- ввод структурной схемы СНК;
- моделирование системы на уровне транзакций;
- кросс-трансляцию ассемблерного кода для процессоров, установленных в СНК;
- генерирование RTL-представления системы на основе введенной структурной схемы, экспорт проектов для САПР Xilinx ISE (для прототипирования на базе ПЛИС) и Cadence (для получения топологического представления интегральной микросхемы в формате GDSII).
Список использованных источников:
1. Engineering the Complex SoC
2. The International Technology Roadmap for Semiconductors: 2007