Triscend Corp. (Калифорния, США), основанная в мае 1997 г., первой в мире реализовала прогрессивную и перспективную идею создания конфигурируемой микропроцессорной системы на площади одного кремниевого кристалла. Для изделий этого класса существует термин CSoC (Configurable System on a Chip — «реконфигурируемая пользователем система на кристалле»). Доля продукции CSoC у Triscend составляет 100 %, то есть все усилия фирмы сосредоточены именно на развитии и совершенствовании микроэлектронных изделий класса «реконфигурируемая система на кристалле».
Основателями фирмы Triscend являются специалисты, работавшие ранее в Xilinx и Intel. Обладая большим практическим опытом на рынке встраиваемых приложений, они заметили, что значительную часть конечных систем составляют изделия, которые включают в себя три базовых компонента, а именно: микропроцессорное/микроконтроллерное ядро, массив программируемой логики и блок памяти. Поэтому конечным решением стало объединение этих трех базовых блоков для создания разнообразных микропроцессорных систем с богатым набором периферийных узлов в одном кремниевом кристалле.
Triscend Corp. объединила в одной микросхеме скоростное ядро промышленного стандарта «turbo» 8032 с типовым набором периферийных узлов, матрицу конфигурируемой системной логики FPGA с объемом от 6500 до 40 000 эквивалентных логических вентилей, набор фиксированных вспомогательных периферийных узлов, скоростную шину для внутреннего обмена данными и массив статической памяти. Такое изделие класса CSoC, поддерживаемое мощным и интуитивно понятым программным пакетом, позволяет разработчикам в кратчайшие сроки создавать специализируемые процессорные платформы для телекоммуникаций и рынка разнообразных встраиваемых применений, значительно выигрывая в скорости вывода на рынок новых разработок.
Triscend Corp. активно привлекает сторонние фирмы и компании для реализации различных идей, которые можно «положить на реконфигурируемый кристалл». В настоящее время партнерами Triscend являются такие известные фирмы, как ARM, Cadence, Sharp, Synopsys, Synplicity и UMC. С апреля 1999 г. и по настоящее время корпорация Triscend серийно выпускает семейство скоростных конфигурируемых микроконтроллеров Е5 с ядром «turbo» 8032, обеспечивающим производительность до 10 MIPS на тактовой частоте 40 МГц. Данное семейство CSoC допускает полностью автономное функционирование с использованием единственного внешнего устройства энергонезависимой памяти для хранения конфигурации и исполняемого кода. В конце октября 2000 г. анонсировано новое семейство CSoC— А7, у которого в качестве процессорного ядра выступает уже 32-разрядный ARM7TDMI, и изделия этого класса с нетерпением ожидают многие разработчики во всем мире. Массовое производство микросхем семейства A7 начнется в середине января 2001 г., когда будет реализовано полноценное программное обеспечение поддержки разработки. В настоящее время продукция Triscend Corp. выпускается по технологии 0,35 мкм, а переход к более совершенным проектным нормам 0,25 мкм и 0,18 мкм планируется в середине 2001 г.
Основными областями для использования кристаллов CSoC являются телекоммуникации, Интернет-приложения, проводные и беспроводные сетевые решения, интеллектуальная носимая аппаратура, медицинское оборудование, охранные системы, системы промышленной автоматики, контроля и управления и многое другое. По сути, любое массовое приложение средней сложности, использующее ядро 8051 и набор нестандартных периферийных узлов, может быть переведено на новый уровень техники и технологии при минимальных затратах. Кроме того, многочисленные потребители заказных/полузаказных микросхем класса ASIC получают отличную альтернативу — реконфигурируемый заказной кристалл средней сложности с фиксированным процессорным ядром. При этом заметно снижаются сроки вывода конечной продукции на рынок и устраняются значительные начальные капиталовложения. Применение конфигурируемой системы на кристалле обеспечивает также более полное удовлетворение всех потребностей пользователя в зависимости от его задачи, при этом риск получить фиксированный кристалл с логическими ошибками сводится практически к нулю. Доступное обновление как аппаратной части, так и программного кода придает конечным изделиям дополнительную гибкость, не говоря уже о том, что многочисленные наработанные заранее IP-ядра могут быть с успехом включены на кристалл из уже имеющихся библиотек.
Рис. 1
Устройства класса CSoC, как следует из названия, объединяют на одном кристалле различные узлы, характерные для процессорной системы, — ядро микропроцессора, блок памяти и набор периферийных устройств, причем последние могут быть как фиксированными (встроенными), так и конфигурируемыми разработчиком. Характерная для микросхем CSoC возможность построения реконфигурируемых пользователем устройств позволяет рассматривать системы на кристалле с двух различных точек зрения. С одной стороны, конфигурируемая система на кристалле может быть обычной микропроцессорной системой с шинной архитектурой, где главенствующим элементом является процессорное ядро. В этом случае микросхема CSoC становится вариантом микроконтроллера с изменяемой пользователем периферией.
С другой стороны, конфигурируемая система на кристалле может быть набором независимых аппаратных узлов и блоков памяти, интерфейс между которыми не является предопределенным и может быть выбран разработчиком «под задачу». Эти два подхода опре- деляют как различие архитектур конфигурируемых систем на кристалле у различных производителей, так и особенности построения и использования программных средств поддержки разработок.
Для микросхем семейства Е5 производства корпорации Triscend характерна шинная архитектура. Здесь все основные функциональные узлы системы на кристалле соединяются друг с другом при помощи конфигурируемой системной шины CSI (Configurable System Interconnect bus). Шинная архитектура предполагает наличие на шине CSI ведущих (master) и ведомых (slave) устройств. В микросхемах Е5 ведущими устройствами могут быть микроконтроллерное ядро, контроллер прямого доступа к памяти (DMA) и JTAG-интерфейс. Если требуется, чтобы размещенное в матрице программируемой логики периферийное устройство также было ведущим на шине CSI, то оно должно работать в тандеме с контроллером DMA, который в этом случае является «промежуточным мастером».
Ключевые узлы первой в мире реконфигурируемой системы на кристалле семейства Е5:
- высокопроизводительное микропроцессорное ядро, ставшее промышленным стандартом (полная совместимость с 8051/52, производительность до 10 MIPS на 40 МГц).
- до 64 Кбайт ОЗУ;
- конфигурируемая логическая матрица FPGA емкостью до 3200 ячеек (около 40000 эквивалентных логических вентилей);
- специализированная скоростная внутренняя системная шина;
- блок аппаратной внутрисхемной отладки.
Раcсмотрим подробнее архитектуру описываемой системы. Можно выделить следующие основные аппаратные блоки, общие для всех микросхем семейства Е5:
- высокопроизводительный «турбо»-микроконтроллер, совместимый по данным и коду с устройствами архитектуры MCS-51. В отличие от традиционного ядра 8032, где длительность машинного цикла составляет 12 периодов тактового генератора, длительность машинного цикла микроконтроллерного ядра Е5 составляет всего 4 такта. Это обеспечивает производительность до 10 MIPS при тактовой частоте 40 МГц. «Турбо»-микроконтроллер Е5 предоставляет и другие преимущества по сравнению со стандартным ядром 8051. Это, например, второй регистр-указатель данных (DPTR), программируемый сторожевой таймер (Watchdog timer) и возможность программного управления циклами ожидания (wait-states). Кроме того, в Е5 количество источников прерываний увеличено до 12, и прерывания имеют три уровня приоритета;
- реконфигурируемая логическая матрица CSL (Configurable System Logic matrix). Различные устройства семейства Е5 содержат от 256 до 3200 логических ячеек на кристалле. Логическая ячейка с высоким быстродействием и гибкой архитектурой позволяет эффективно реализовывать комбинаторные и последовательностные логические функции, арифметические функции и устройства памяти. Программируемые межсоединения между системной шиной, логическими ячейками и блоками ввода/вывода позволяют создавать двунаправленные шины с защитой от конфликтов. Реконфигурируемая архитектура и простой в использовании синхронный интерфейс с шиной CSI дают разработчику возможность создавать разнообразные собственные периферийные устройства;
- высокопроизводительная конфигурируемая системная шина CSI включает в себя две независимые 8-разрядные шины данных (одна на чтение, другая на запись) и 32-разрядную шину адреса. Скорость передачи по системной шине составляет до 40 Мбайт в секунду. Как уже отмечалось, шина CSI обеспечивает связь между программируемой логической матрицей, периферийными узлами и ядром микроконтроллера. Наличие специализированных селекторов (дешифраторов адресов) позволяет осуществ- лять прямой доступ к устройствам, реализованным в конфигурируемой логической матрице. Важной особенностью является то, что блок селекторов реализован вне программируемой логической матрицы и, следовательно, ресурсы последней не расходуются «вхолостую» на построение адресных дешифраторов. К другим особенностям системной шины Е5 можно отнести поддержку режима Multi-master c циклическим арбитражем, возможность обращения ко внешним устройствам (с использованием блока сопряжения с внешней памятью) и поддержку циклов ожидания. Открытый стандарт шины обеспечивает совместимость «снизу вверх» со всеми новыми устройствами класса CSoC производства Triscend Corp.;
- блок программируемых портов ввода-вывода PIO (Programmable Input-Output ports) позволяет создавать порты ввода, вывода и двунаправленные порты как для микроконтроллера, так и для реализованной в программируемой логической матрице периферии. Каждый выход может быть запрограммирован на работу в одном из двух режимов: обычном (выходной ток 4 мА) или мощном (выходной ток 12 мА). Наличие специализированной цепи слежения за состоянием входа (BusMinder) позволяет избегать «плавающих» входов и, как следствие, характерного для них повышенного энергопотребления. При отсутствии активного источника сигнала BusMinder удерживает на входах портов ввода последнее присутствовавшее активное состояние (режим weak-follower). Каждый разряд в PIO имеет возможность индивидуального переключения в энергосберегающий режим. Все порты ввода/вывода системы на кристалле семейства Е5 совместимы со стандартными TTL-сигналами, что позволяет использовать эти микросхемы Triscend Corp. совместно с уже существующими цифровыми электронными устройствами без использования специальных преобразователей уровня;
- блок сопряжения с внешней памятью MIU (Memory Interface Unit) предназначен для подключения к CSoC семейства Е5 внешних устройств памяти как с параллельным, так и с последовательным интерфейсом. Напрямую к микросхемам Е5 можно подключать внешнюю память емкостью до 256К х8, но дополнительно количество адресных линий может быть увеличено до 32. При работе с «медленными» внешними устройствами возможно программное управление циклами ожидания. Блок сопряжения с внешней памятью также может быть использован для доступа с внутренней системной шины к различным внешним периферийным устройствам;
- контроллер прямого доступа к памяти DMA (Direct Memory Access сontroller) содержит два независимых канала. Скорость передачи данных при прямом доступе к памяти составляет до 40 Мбайт в секунду (то есть 1 байт за такт). Существуют различные режимы работы контроллера DMA — передача одиночного байта или передача блока данных. В любом случае передача данных по каналу прямого доступа к памяти сопровождается подсчетом циклической контрольной суммы. При одновременном использовании обоих каналов DMA возможна организация обмена данными между различными областями памяти без участия микроконтроллера. Еще одной важной особенностью данного контроллера является то, что канал прямого доступа может использоваться реализованным в программируемой логической матрице периферийным устройством в качестве «промежуточного мастера» на системной шине;
- блок JTAG-интерфейса служит для загрузки конфигурации и исполняемого кода, а также для внутрисхемной отладки устройств, содержащих в своем составе микросхемы Е5. JTAG-интерфейс реализует стандарт IEEE 1149.1 и поддерживает следующие операции: SAMPLE/PRELOAD, EXTEST, INTEST, BYPASS, IDCODE. Кроме того, блок JTAG-интерфейса предоставляет разработчику доступа к внутренней системной шине и всем адресуемым регистрам конфигурируемой системы на кристалле семейства Е5;
- специализированный блок внутрисхемной отладки (In-System Debugging Hardware Breakpoint Unit) позволяет задавать различные условия останова при выполнении микроконтроллером программы. Условия, например, могут быть следующими: обращение по определенному адресу, выполнение определенной инструкции микропроцессора, чтение определенного значения по шине данных и др. Одновременно можно задавать две точки останова. Если заданное условие выполняется, то исполнение про- граммы приостанавливается, и разрешается доступ ко всем адресуемым регистрам микросхемы семейства Е5 через JTAG-интерфейс;
- блок управления энергопотреблением обеспечивает индивидуальное разрешение или запрещение энергосберегающих режимов для всех узлов системы на кристалле. Кроме этого, он также предоставляет возможность индивидуального управления энергопотреблением для каждого разряда во всех портах ввода/вывода. При включении режима Power Down для всех блоков суммарное энергопотребление кристалла Е5 составляет не более 50 мкА;
- система тактирования позволяет использовать в качестве задающего генератора либо внешний осциллятор, либо внутренний генератор Е5, стабилизированный внешним кварцевым резонатором.
Микросхема | Системное ОЗУ | Количество ячеек конфигурируемой логической матрицы | Количество выводов PIO |
TE502 | 8K x 8 | 256 | 92 |
TE505 | 16K x 8 | 512 | 124 |
TE512 | 32K x 8 | 1152 | 188 |
TE520 | 40K x 8 | 2048 | 252 |
TE532 | 64K x 8 | 3200 | 316 |
- параллельный — с использованием внешнего устройства памяти (FLASH, PROM, SRAM) с восьмиразрядной шиной данных;
- последовательный — с использованием внешнего конфигурационного ПЗУ с последовательным интерфейсом (аналогично конфигурированию микросхем FPGA);
- конфигурация через JTAG-интерфейс;
- «Stealth»-режим. В данном режиме вся информация о конфигурации кристалла хранится в его внутреннем ОЗУ, и в случае пропадания питающего напряжения поддерживается резервной батареей. При возврате основного напряжения питания автоматически происходит цикл реконфигурации. В этом режиме разработчик может запретить общение по JTAG-интерфейсу и доступ к внутреннему ОЗУ через блок сопряжения с памятью. Таким образом, используя «stealth»-режим, разработчик может создавать системы на кристалле с защитой от копирования.
FastChip предоставляет пользователю полноэкранный графический интерфейс, позволяющий управлять всем процессом разработки системы на кристалле — от создания конфигурационного файла до внутрисхемной отладки устройства через JTAG-интерфейс. Для начального знакомства среда разработки FastChip содержит удобный интерактивный справочник и тренировочный курс проектирования системы на кристалле.
Как уже говорилось выше, CSoC семейства Е5 содержит микроконтроллерное ядро и репрограммируемую логическую матрицу FPGA. Поэтому среда FastChip имеет интерфейс со стандартными программными средствами разработки как для микроконтроллерного ядра, так и для программируемой логики. FastChip позволяет обмениваться исходными файлами на языках ассемблера и С со средой разработки приложений для микроконтроллера. При этом FastChip принимает обратно в качестве исходного готовый файл в hex- формате. Аналогично обстоит дело и с обменом файлами со средами разработки приложений для программируемой логики — FastChip может генерировать исходные файлы на языке VHDL и импортировать файлы в формате EDIF.
Среда FastChip содержит библиотеку параметризируемых логических модулей, которые могут быть включены в разрабатываемый проект по принципу Drag-and-Drop. Каждый модуль также может быть экспортирован в виде исходного VHDL-файла. Корпорация Triscend предоставляет обширную библиотеку модулей для схемного описания логических устройств с использованием пакетов WorkView Office и OrCad Capture, которые охватывают достаточно широкий диапазон обычно требуемых устройств. Это элементы и узлы стандартной микропроцессорной периферии (параллельные и последовательные порты, блоки памяти, расширители прерываний, драйверы индикации и т. д.), типовые вычислительные узлы (счетчики, регистры, сумматоры и т. д.), устройства памяти (RAM, ROM, FIFO), узлы коммуникационных интерфейсов (UART, SPI, I2C, HDLC) и др. Наличие в составе библиотеки программируемых элементов типа LUTs (Look-Up Tables) и триггеров, совпадающих по структуре с конфигурируемыми логическими элементами FPGA, создает предпосылки для разработки проекти- ровщиком любой конфигурации системной логики кристалла. Несомненным достоинством интегрированной в FastChip библиотеки является и то, что все входящие в нее модули верифицированы и могут быть реализованы в любой микросхеме CSoC производства Triscend Corp., в том числе и в будущих кристаллах семейства A7. Библиотека параметризируемых модулей постоянно пополняется, ее обновления доступны на сайте Triscend Corp. http://www.triscend.com/. Библиотечные модули можно использовать совместно с уже разработанными пользователем аппаратными блоками.
Рассмотрим, как протекает процесс проектирования с использованием среды поддержки разработок FastChip.
Сначала осуществляется инициализация и настройка периферийных контроллеров (DMA, сопряжение с внешней памятью и др.). При этом, если программа для микроконтроллера пишется на языке С, среда FastChip генерирует файл заголовка (.h) для компилятора, а если программа пишется на ассемблере — то включаемый ассемблерный файл.
Затем к проекту подключаются устройства, реализованные в программируемой логической матрице, и задается их размещение в адресном пространстве микроконтроллера. При этом могут быть использованы параметризированные модули из библиотеки FastChip или импортированные EDIF-файлы. Импортированные EDIF-файлы могут быть получены посредством синтеза VHDL-описания (например, в синтезаторе Synopsys FPGA Express) или посредством преобразования схемного файла при графическом вводе (например, при использовании Workview Office или OrCAD Capture). На этом же этапе должны быть сконфигурированы порты ввода/вывода и обеспечена привязка входных и выходных сигналов к физическим выводам микросхемы. Завершается этап созданием обновленного файла заголовка (или включаемого файла), в который добавляется информация о распределении адресного пространства микроконтроллера и новых периферийных устройствах, размещенных в программируемой логической матрице.
Третий этап заключается в создании исполняемого кода для микроконтроллерного ядра. Корпорация Triscend рекомендует использовать среду разработки фирмы Keil, содержащую ассемблер, компилятор С и полноэкранный отладчик-симулятор dScope. Однако допускается использование и других програм- мных продуктов (например, компиляторов фирм IAR Systems, Franklin Software, Tasking и др.). В этом случае разработчик проекта лишается возможности проведения последующей пошаговой аппаратной отладки проекта на целевой плате. После завершения компиляции (или ассемблирования) полученный hex-файл импортируется в FastChip, где осуществляется связь программной и аппаратной частей проекта. Полученный в результате выполнения процедуры связи итоговый hex-файл может быть уже использован отладчиком dScope для программной симуляции всего устройства в целом.
После этого готовый проект загружается через JTAG-интерфейс в физическое устройство. Процессом загрузки управляет среда FastChip. В зависимости от режима конфигурации загрузка может производиться либо во внутреннее ОЗУ системы на кристалле, либо во внешнее Flash-ПЗУ.
И наконец, на последнем этапе разработчик осуществляет внутрисхемную отладку проекта непосредственно на целевой плате. Отладка производится в среде dScope через JTAG-интерфейс.
Рассмотрев весь путь создания проектов в программной среде FastChip, можно сделать вывод, что ему присущи все черты, характерные для разработки проектов на основе микропроцессора: распределение периферийных устройств в адресном пространстве микроконтроллера на системной шине, разработка и отладка исполняемой программы для микроконтроллера и внутрисхемная отладка на целевой плате с использованием JTAG — интерфейса. Отличие заключается только в наличии конфигурируемой аппаратной части проекта. Для ускорения процесса разработки корпорация Triscend выпускает специальные отладочные платы.
В заключение хочется отметить, что весь комплекс средств для проектирования устройств класса CSoC, начиная от архитектуры самих кристаллов и заканчивая ресурсами САПР, представляет собой современное мощное средство проектирования, которое позволяет решать сложные инженерные задачи для разнообразных конечных приложений.