Выпуск #4/2005
А.Пеженков, Д.Радченко.
Аппаратные эмуляторы на платформе ZEBU компании EVE
Аппаратные эмуляторы на платформе ZEBU компании EVE
Просмотры: 2625
Французская компания EVE (www.eve-team.com) основана известными специалистами в области аппаратной верификации и средств отладки электронных систем. Несмотря на то, что это произошло совсем недавно, в апреле двухтысячного года, уже восемь из десяти крупнейших фирм-производителей электроники с успехом применяют эмуляторы компании в своих разработках. Сегодня задача, которую ставят перед собой специалисты EVE, – создание новых, более эффективных аппаратных средств верификации и отладки сложных систем, доступных широкому кругу разработчиков.
Создатели новейших электронных систем сталкиваются с необходимостью их тщательной верификации на стадии проектирования, иначе стоимость и временные затраты на перепроектирование могут сделать разработку экономически невыгодной. Практически все современные проекты включают разработку как аппаратуры, так и программного обеспечения. Соответственно, средства проектирования должны обеспечивать возможность программно-аппаратной верификации системы. Для систем, работающих в режиме реального времени, особенно важно, чтобы функционирование программной части учитывало реальные временные характеристики аппаратуры. Сегодня это фактически означает, что аппаратная часть проекта должна моделироваться на уровне регистровых передач (RTL-уровне). Однако специфика программно-аппаратной верификации состоит в том, что отладка программной части требует больших объемов моделирования. Производительности программ RTL-моделирования, которые широко представлены на рынке и с успехом применяются при разработке аппаратуры, оказывается недостаточно.
Традиционный метод отладки встроенного программного обеспечения с использованием системы моделирования набора инструкций (ISS) на основе высокоуровневой поведенческой модели процессора (обычно С/С++) обеспечивает производительность до 10 млн. условных операций (циклов) в секунду, или 10 МГц (условное обозначение, принятое при оценке производительности систем аппаратной верификации). Но при стыковке с программами RTL-моделирования общая производительность падает ниже 20 кГц, чего явно недостаточно. Чтобы уменьшить временные затраты на верификацию, используют аппаратные эмуляторы на базе специализированных процессоров (позволяющие повысить производительность до 500 кГц), а также прототипирование системы на базе ПЛИС.
Компания EVE предложила новый подход к организации аппаратной поддержки процесса верификации, который реализован в виде программно-аппаратной платформы с довольно странным названием ZeBu (сокращение словосочетания "Zero Bugs" – "отсутствие ошибок").
НАЗНАЧЕНИЕ ПЛАТФОРМЫ ZeBu
Подход, предложенный компанией EVE, позволяет объединить лучшие черты традиционных систем эмуляции и прототипирования. Платформа ZeBu предоставляет разработчику удобный инструмент для создания и последующей проверки прототипа программно-аппаратной системы на базе использования набора стандартных перепрограммируемых ПЛИС. Важно, что этот инструмент удобен как для верификации аппаратной части, так и для отладки встроенного программного обеспечения.
На рис.1 изображена трехмерная диаграмма в координатах "производительность – стоимость – уровень возможностей отладки", которая характеризует потенциал платформы ZeBu по сравнению с другими средствами верификации: программными системами моделирования; аппаратными эмуляторами; системами прототипирования на базе ПЛИС. Оценка приведена для проектов объемом порядка одного миллиона эквивалентных вентилей. Из диаграммы видно, что системы прототипирования на базе ПЛИС обеспечивают наивысшую производительность, но возможности отладки здесь существенно меньше, чем при использовании других средств верификации. К тому же, создание для каждой новой системы своего прототипа – фактически отдельная разработка со всеми вытекающими отсюда последствиями. Программные системы моделирования наиболее дешевы и обеспечивают максимальный уровень отладки, но производительность их явно недостаточна. Для аппаратных эмуляторов характерны высокие показатели производительности и уровня отладки, но высокая стоимость делает их недоступными для широкого круга разработчиков.
На этом фоне возможности платформы ZeBu смотрятся очень привлекательно. По стоимости она сравнима с программными системами моделирования, а по производительности и уровню отладки – с аппаратными эмуляторами. Фактически ZeBu – это универсальное решение для аппаратной поддержки верификации проектов различных типов и сложности, включая IP-модули, ПЛИС, заказные СБИС и системы-на-кристалле. И все же основное достоинство этой платформы, определяющее преимущественную область ее применения, – возможность совместной отладки аппаратной и программной части проекта еще до реализации его в кремнии. Другая важная область применения – отладка ПЛИС-прототипов. Здесь использование платформы ZeBu позволяет обеспечить плавный переход от RTL-описания проекта к аппаратному ПЛИС-прототипу. Причем верификацию полученного прототипа можно проводить, используя то же тестовое окружение, которое разрабатывалось для проверки RTL-модели.
СОСТАВ, АРХИТЕКТУРА И ПРИНЦИПЫ РАБОТЫ ZeBu
Компания EVE предлагает два варианта аппаратных эмуляторов на базе платформы ZeBu: персональный эмулятор ZeBu-ZV и системный эмулятор ZeBu-XL. Различаются они в основном логической емкостью, объемом оперативной памяти и производительностью. Модель ZV реализована в виде стандартной PCI платы, которая вставляется непосредственно в персональный компьютер разработчика. На плате размещены две микросхемы Virtex2 6000/8000 (суммарная емкость порядка полутора миллиона эквивалентных вентилей), на базе которых реализуется верифицируемый проект, и 16 Mбайт статической памяти. Максимальная производительность в определенных режимах использования может достигать 12 MГц. ZeBu-ZV позиционируется как персональный эмулятор для верификации небольших проектов и отдельных блоков. Модель XL, выполненая в виде отдельного блока, имеет модульную конфигурацию. Ее логическая емкость, в зависимости от числа подсоединенных микросхем ПЛИС (до 64-х Virtex2 8000), может изменяться от трех миллионов до пятидесяти миллионов эквивалентных вентилей. Общий объем статической и динамической оперативной памяти – 50 Mбайт. Максимальная производительность – до 30 MГц.
Архитектура персонального эмулятора на платформе ZeBu-ZV представлена на рис.2. Две ПЛИС Virtex2 6000 (или 8000) и 128 Мбит статической оперативной памяти используются для реализации прототипа верифицируемого устройства (ВУ). Остальные ресурсы платы, включая две ПЛИС Virtex2 3000, предназначены для организации перенастраиваемого тестового окружения (Reconfigurable Test Bench – RTB). Соединение эмулятора с персональным компьтером производится через интерфейс PCI.
Основная задача RTB – обеспечение взаимодействия между ВУ и внешним тестовым окружением в процессе совместной эмуляции. К другим задачам RTB относятся:
· управление оперативной памятью (Memory Server);
· управление подачей тактовых сигналов (Clock Server);
· управление динамической трассировкой состояний сигналов проекта (Dуnamic Traces);
· поддержка функций логического анализа (Logic Analyzer);
· поддержка встроенного (синтезируемого) тестового окружения (Embedded Test Bench);
· сопряжение с аппаратной частью функциональных моделей шин (на уровне транзакций) для стандартов JTAG, RS232, LCD, Ethernet, USB, PCI, AMBA (HW Transactors).
Интерфейс блока RTB реализован на базе C/C++ API, благодаря чему обеспечивается возможность сопряжения с моделями на языках Verilog/VHDL/HVL, SystemC и С/C++ на уровне сигналов, а также возможность взаимодействия на уровне транзакций, позволяющего значительно увеличить производительность эмуляции. Описание программной части системы сопряжения на уровне транзакций может быть реализовано с помощью С/С++, с использованием механизма каналов языка SystemC, а также средств системы ТestBenchPlus. Для потактовой эмуляции могут использоваться наборы тестовых векторов, полученные в результате работы совместно с программными системами моделирования. Интерфейс
Z-SmartIce обеспечивает подключение программных отладчиков (SW Program), а интерфейс Z-IcePod – аппаратное сопряжение верифицируемого проекта с системой, в которой этот проект должен функционировать.
Блок RTB – сердце эмулятора ZeBu. Он как раз и позволяет трансформировать ПЛИС-прототип в аппаратный эмулятор с развитыми средствами отладки. Собственно аппаратный прототип отлаживаемого проекта создается на базе входящих в состав эмулятора микросхем ПЛИС с помощью стандартных средств логического синтеза, таких как FPGA Compiler, DC-FPGA, Synplify Pro, Leonardo, XST. Полученное после работы этих программ EDIF-описание на уровне логических вентилей обрабатывется компилятором zCompil (входит в состав платформы ZeBu), который оптимизирует структуру проекта на вентильном уровне с учетом моделей памяти, шин и схемы синхронизации. Окончательное размещение, трассировка и генерация конфигурационного файла для программирования ПЛИС выполняются с использованием системы ISE. Отладка прототипа обеспечивается средствами RTB, который предоставляет широкий спектр возможностей для создания тестового окружения и анализа правильности функционирования. В числе этих возможностей:
· динамический доступ в режиме чтение/запись ко всем регистрам и памяти;
· доступ к внутренним сигналам;
· встроенный логический анализатор;
· интеграция с системами логического моделирования (VCS, Modelsim, NC-Sim) и моделирования на системном уровне (SystemC и TestBuilder).
Блок RTB управляет синхронизацией, доступом к встроенным блокам памяти SRAM, обеспечивает аппаратный интерфейс для наблюдения за состоянием входов/выходов и внутренних сигналов. Заметим, что контроль состояния внутренних сигналов может осуществляться без проведения полной перекомпиляции проекта. Это существенное преимущество, значительно повышаюшее возможности эмулятора. Функциональные возможности RTB обеспечивают поддержку различных режимов верификации, и разработчик может выбрать оптимальный для своего проекта вариант.
РЕЖИМЫ ВЕРИФИКАЦИИ НА БАЗЕ ПЛАТФОРМЫ ZeBu
В таблице приведены основные режимы верификации проекта, которые можно организовать на платформе ZeBu, и характеристика их производительности. По виду используемого тестового окружения все режимы можно разделить на две группы: режимы с использованием программного тестового окружения и режимы с использованием аппаратного тестового окружения. В первую группу входят:
· эмуляция совместно со стандартными системами RTL-моделирования. Блок RTB обеспечивает сопряжение с любой системой моделирования, в которой поддерживается стандарт IEEE Verilog PLI, например VCS или ModelSim;
· эмуляция с C/C++-моделями на уровне поведения сигналов (на базе предоставляемого C/C++ API);
· эмуляция с SystemC-моделями на уровне поведения сигналов, в том числе с применением синтезируемых SystemC компонентов;
· использование тестовых векторов. Оптимален для регрессивного тестирования. Применяются наборы тестовых векторов, полученные в процессе потактовой эмуляции (уже упомянутые режимы с использованием систем логического моделирования, C/C++, SystemC описаний). Использование готовых тестовых векторов позволяет увеличить производительность, поскольку можно обойтись без внешнего тестового окружения. Кроме того, в этом режиме производится сравнение получаемых результатов с ожидаемыми;
· эмуляция с C++/SystemC-моделями на уровне описания транзакций. Этот режим рекомендуется в тех случаях, когда в тестируемом проекте применяются стандартные интерфейсы, например Ethernet, PCI, USB, Sonet и т.п. Тестовые данные описываютя в терминах пакетов, фреймов и блоков, что уменьшает объем передаваемых между компьютером и эмулятором данных, а также значительно повышает общую производительность.
В группу режимов с аппаратным тестовым окружением (обеспечивают увеличение производительности в несколько раз, а то и на порядок) входят:
· эмуляция с использованием синтезируемого тестового окружения. В этом режиме все проверки производятся на аппаратном уровне, тестовое окружение встраивается непосредственно в RTB. В результате обеспечивается наивысшая из всех режимов производительность;
· эмуляция с программными отладчиками. В этом режиме программный отладчик подключается через интерфейс Z-SmartIce;
· аппаратная эмуляция в составе системы. Интеграция с компонентами системы производится через интерфейс Z-IcePod, причем интеграция может осуществляться как с внешним аппаратным окружением, так и с ранее реализованными встроенными блоками.
В заключение хотелось бы отметить гибкость и доступность предлагаемых компанией EVE решений. Даже не самый крупный дизайн-центр в состоянии позволить себе покупку системного эмулятора, а инженеры, работающие исключительно с программным обеспечением, могут приобрести версию ZeBu Replicates без возможности аппаратной эмуляции, ориентированную только на отладку встроенных программ. Но, пожалуй, наиболее привлекательная возможность из всех, предлагаемых разработчику, – вставить плату аппаратного эмулятора в свой персональный компьютер.
Традиционный метод отладки встроенного программного обеспечения с использованием системы моделирования набора инструкций (ISS) на основе высокоуровневой поведенческой модели процессора (обычно С/С++) обеспечивает производительность до 10 млн. условных операций (циклов) в секунду, или 10 МГц (условное обозначение, принятое при оценке производительности систем аппаратной верификации). Но при стыковке с программами RTL-моделирования общая производительность падает ниже 20 кГц, чего явно недостаточно. Чтобы уменьшить временные затраты на верификацию, используют аппаратные эмуляторы на базе специализированных процессоров (позволяющие повысить производительность до 500 кГц), а также прототипирование системы на базе ПЛИС.
Компания EVE предложила новый подход к организации аппаратной поддержки процесса верификации, который реализован в виде программно-аппаратной платформы с довольно странным названием ZeBu (сокращение словосочетания "Zero Bugs" – "отсутствие ошибок").
НАЗНАЧЕНИЕ ПЛАТФОРМЫ ZeBu
Подход, предложенный компанией EVE, позволяет объединить лучшие черты традиционных систем эмуляции и прототипирования. Платформа ZeBu предоставляет разработчику удобный инструмент для создания и последующей проверки прототипа программно-аппаратной системы на базе использования набора стандартных перепрограммируемых ПЛИС. Важно, что этот инструмент удобен как для верификации аппаратной части, так и для отладки встроенного программного обеспечения.
На рис.1 изображена трехмерная диаграмма в координатах "производительность – стоимость – уровень возможностей отладки", которая характеризует потенциал платформы ZeBu по сравнению с другими средствами верификации: программными системами моделирования; аппаратными эмуляторами; системами прототипирования на базе ПЛИС. Оценка приведена для проектов объемом порядка одного миллиона эквивалентных вентилей. Из диаграммы видно, что системы прототипирования на базе ПЛИС обеспечивают наивысшую производительность, но возможности отладки здесь существенно меньше, чем при использовании других средств верификации. К тому же, создание для каждой новой системы своего прототипа – фактически отдельная разработка со всеми вытекающими отсюда последствиями. Программные системы моделирования наиболее дешевы и обеспечивают максимальный уровень отладки, но производительность их явно недостаточна. Для аппаратных эмуляторов характерны высокие показатели производительности и уровня отладки, но высокая стоимость делает их недоступными для широкого круга разработчиков.
На этом фоне возможности платформы ZeBu смотрятся очень привлекательно. По стоимости она сравнима с программными системами моделирования, а по производительности и уровню отладки – с аппаратными эмуляторами. Фактически ZeBu – это универсальное решение для аппаратной поддержки верификации проектов различных типов и сложности, включая IP-модули, ПЛИС, заказные СБИС и системы-на-кристалле. И все же основное достоинство этой платформы, определяющее преимущественную область ее применения, – возможность совместной отладки аппаратной и программной части проекта еще до реализации его в кремнии. Другая важная область применения – отладка ПЛИС-прототипов. Здесь использование платформы ZeBu позволяет обеспечить плавный переход от RTL-описания проекта к аппаратному ПЛИС-прототипу. Причем верификацию полученного прототипа можно проводить, используя то же тестовое окружение, которое разрабатывалось для проверки RTL-модели.
СОСТАВ, АРХИТЕКТУРА И ПРИНЦИПЫ РАБОТЫ ZeBu
Компания EVE предлагает два варианта аппаратных эмуляторов на базе платформы ZeBu: персональный эмулятор ZeBu-ZV и системный эмулятор ZeBu-XL. Различаются они в основном логической емкостью, объемом оперативной памяти и производительностью. Модель ZV реализована в виде стандартной PCI платы, которая вставляется непосредственно в персональный компьютер разработчика. На плате размещены две микросхемы Virtex2 6000/8000 (суммарная емкость порядка полутора миллиона эквивалентных вентилей), на базе которых реализуется верифицируемый проект, и 16 Mбайт статической памяти. Максимальная производительность в определенных режимах использования может достигать 12 MГц. ZeBu-ZV позиционируется как персональный эмулятор для верификации небольших проектов и отдельных блоков. Модель XL, выполненая в виде отдельного блока, имеет модульную конфигурацию. Ее логическая емкость, в зависимости от числа подсоединенных микросхем ПЛИС (до 64-х Virtex2 8000), может изменяться от трех миллионов до пятидесяти миллионов эквивалентных вентилей. Общий объем статической и динамической оперативной памяти – 50 Mбайт. Максимальная производительность – до 30 MГц.
Архитектура персонального эмулятора на платформе ZeBu-ZV представлена на рис.2. Две ПЛИС Virtex2 6000 (или 8000) и 128 Мбит статической оперативной памяти используются для реализации прототипа верифицируемого устройства (ВУ). Остальные ресурсы платы, включая две ПЛИС Virtex2 3000, предназначены для организации перенастраиваемого тестового окружения (Reconfigurable Test Bench – RTB). Соединение эмулятора с персональным компьтером производится через интерфейс PCI.
Основная задача RTB – обеспечение взаимодействия между ВУ и внешним тестовым окружением в процессе совместной эмуляции. К другим задачам RTB относятся:
· управление оперативной памятью (Memory Server);
· управление подачей тактовых сигналов (Clock Server);
· управление динамической трассировкой состояний сигналов проекта (Dуnamic Traces);
· поддержка функций логического анализа (Logic Analyzer);
· поддержка встроенного (синтезируемого) тестового окружения (Embedded Test Bench);
· сопряжение с аппаратной частью функциональных моделей шин (на уровне транзакций) для стандартов JTAG, RS232, LCD, Ethernet, USB, PCI, AMBA (HW Transactors).
Интерфейс блока RTB реализован на базе C/C++ API, благодаря чему обеспечивается возможность сопряжения с моделями на языках Verilog/VHDL/HVL, SystemC и С/C++ на уровне сигналов, а также возможность взаимодействия на уровне транзакций, позволяющего значительно увеличить производительность эмуляции. Описание программной части системы сопряжения на уровне транзакций может быть реализовано с помощью С/С++, с использованием механизма каналов языка SystemC, а также средств системы ТestBenchPlus. Для потактовой эмуляции могут использоваться наборы тестовых векторов, полученные в результате работы совместно с программными системами моделирования. Интерфейс
Z-SmartIce обеспечивает подключение программных отладчиков (SW Program), а интерфейс Z-IcePod – аппаратное сопряжение верифицируемого проекта с системой, в которой этот проект должен функционировать.
Блок RTB – сердце эмулятора ZeBu. Он как раз и позволяет трансформировать ПЛИС-прототип в аппаратный эмулятор с развитыми средствами отладки. Собственно аппаратный прототип отлаживаемого проекта создается на базе входящих в состав эмулятора микросхем ПЛИС с помощью стандартных средств логического синтеза, таких как FPGA Compiler, DC-FPGA, Synplify Pro, Leonardo, XST. Полученное после работы этих программ EDIF-описание на уровне логических вентилей обрабатывется компилятором zCompil (входит в состав платформы ZeBu), который оптимизирует структуру проекта на вентильном уровне с учетом моделей памяти, шин и схемы синхронизации. Окончательное размещение, трассировка и генерация конфигурационного файла для программирования ПЛИС выполняются с использованием системы ISE. Отладка прототипа обеспечивается средствами RTB, который предоставляет широкий спектр возможностей для создания тестового окружения и анализа правильности функционирования. В числе этих возможностей:
· динамический доступ в режиме чтение/запись ко всем регистрам и памяти;
· доступ к внутренним сигналам;
· встроенный логический анализатор;
· интеграция с системами логического моделирования (VCS, Modelsim, NC-Sim) и моделирования на системном уровне (SystemC и TestBuilder).
Блок RTB управляет синхронизацией, доступом к встроенным блокам памяти SRAM, обеспечивает аппаратный интерфейс для наблюдения за состоянием входов/выходов и внутренних сигналов. Заметим, что контроль состояния внутренних сигналов может осуществляться без проведения полной перекомпиляции проекта. Это существенное преимущество, значительно повышаюшее возможности эмулятора. Функциональные возможности RTB обеспечивают поддержку различных режимов верификации, и разработчик может выбрать оптимальный для своего проекта вариант.
РЕЖИМЫ ВЕРИФИКАЦИИ НА БАЗЕ ПЛАТФОРМЫ ZeBu
В таблице приведены основные режимы верификации проекта, которые можно организовать на платформе ZeBu, и характеристика их производительности. По виду используемого тестового окружения все режимы можно разделить на две группы: режимы с использованием программного тестового окружения и режимы с использованием аппаратного тестового окружения. В первую группу входят:
· эмуляция совместно со стандартными системами RTL-моделирования. Блок RTB обеспечивает сопряжение с любой системой моделирования, в которой поддерживается стандарт IEEE Verilog PLI, например VCS или ModelSim;
· эмуляция с C/C++-моделями на уровне поведения сигналов (на базе предоставляемого C/C++ API);
· эмуляция с SystemC-моделями на уровне поведения сигналов, в том числе с применением синтезируемых SystemC компонентов;
· использование тестовых векторов. Оптимален для регрессивного тестирования. Применяются наборы тестовых векторов, полученные в процессе потактовой эмуляции (уже упомянутые режимы с использованием систем логического моделирования, C/C++, SystemC описаний). Использование готовых тестовых векторов позволяет увеличить производительность, поскольку можно обойтись без внешнего тестового окружения. Кроме того, в этом режиме производится сравнение получаемых результатов с ожидаемыми;
· эмуляция с C++/SystemC-моделями на уровне описания транзакций. Этот режим рекомендуется в тех случаях, когда в тестируемом проекте применяются стандартные интерфейсы, например Ethernet, PCI, USB, Sonet и т.п. Тестовые данные описываютя в терминах пакетов, фреймов и блоков, что уменьшает объем передаваемых между компьютером и эмулятором данных, а также значительно повышает общую производительность.
В группу режимов с аппаратным тестовым окружением (обеспечивают увеличение производительности в несколько раз, а то и на порядок) входят:
· эмуляция с использованием синтезируемого тестового окружения. В этом режиме все проверки производятся на аппаратном уровне, тестовое окружение встраивается непосредственно в RTB. В результате обеспечивается наивысшая из всех режимов производительность;
· эмуляция с программными отладчиками. В этом режиме программный отладчик подключается через интерфейс Z-SmartIce;
· аппаратная эмуляция в составе системы. Интеграция с компонентами системы производится через интерфейс Z-IcePod, причем интеграция может осуществляться как с внешним аппаратным окружением, так и с ранее реализованными встроенными блоками.
В заключение хотелось бы отметить гибкость и доступность предлагаемых компанией EVE решений. Даже не самый крупный дизайн-центр в состоянии позволить себе покупку системного эмулятора, а инженеры, работающие исключительно с программным обеспечением, могут приобрести версию ZeBu Replicates без возможности аппаратной эмуляции, ориентированную только на отладку встроенных программ. Но, пожалуй, наиболее привлекательная возможность из всех, предлагаемых разработчику, – вставить плату аппаратного эмулятора в свой персональный компьютер.
Отзывы читателей