Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000429.doc
Скачиваний:
23
Добавлен:
30.04.2022
Размер:
4.02 Mб
Скачать
  1. Языки моделирования цифровых библиотек

    1. Обзор средств, существующих в настоящее время

Развитие использования С/С++ для описания архитектуры в настоящее время идет по двум направлениям:

  • разработка библиотек на С++ — SystemC (www.systemc.org) и Cynlib (www.ForteDS.com), которые должны использоваться совместно со стандартным компилятором С++;

  • разработка специального языка, основанного на синтаксисе ANSI C и имеющего специальные конструкции для моделирования «железа» — Handel C (www.celoxica.com) и SpecC (www.specc.org).

Концептуально библиотеки гораздо лучше удовлетворяют требованиям. Такой подход дает реальный шанс реализовать «программу максимум» — программное средство для ведения проекта от модели до изделия, также это достаточно удачный первый шаг — альтернатива языкам HDL. К минусам таких библиотек можно отнести достаточно сложный синтаксис языка С++.

Специальные языки с синтаксисом, похожим на С, не обеспечивают универсальности и не подходят для системного описания. Также кажется сомнительным, что изучение специальных конструкций такого языка будет много проще изучения Verilog HDL.

Библиотеки SystemC распространяются свободно и, следовательно, для симуляции потребуется только компилятор С++ (поддерживается свободный GCC, а для Windows — либо GCC+cygwin, либо Microsoft VC++). Крупные фирмы Cadence, Synopsys поддерживают SystemC. Synopsys предлагает в настоящее время средство RTL-синтеза описаний SystemC, поддерживающее синтезируемое подмножество языка, и обещает реализовать поведенческий синтез («behavioral synthesis»). Существуют свободные средства, транслирующие описание на VHDL в описание на SystemC.

Cynlib также является свободной библиотекой, во многом подобной SystemC, но синтаксис описания аппаратуры более сложный. Для упрощения предлагается препроцессор Cyn++, который транслирует конструкции, похожие на Verilog HDL, в Cynlib. На основе GDB предлагается отладчик, работающий с конструкциями Cynlib. Для синтеза предлагается коммерческий продукт Cynthesizer, который транслирует исходник С++ (Cynlib) в описание Verilog/VHDL. Также есть средство, выполняющее преобразование из Verilog/VHDL в С++ c использованием Cynlib. В последние версии Cynlib включена поддержка SystemC [3].

Разработка новых языков (основанных на ANSI C) менее поддерживается разработчиками коммерческого и свободного программного обеспечения, так как требуется не только средство синтеза, но и симулятор. То есть принципиального выигрыша по сравнению с Verilog/VHDL в данном случае нет. Плюсом данного подхода, по сравнению с использованием библиотек С++, является простота синтаксиса и легкость изучения языка. Целесообразность замены существующих языков описания аппаратуры новыми кажется сомнительной — функциональность языка такая же, как и в Verilog/VHDL, а отличия от С значительны. При моделировании системы, часть которой описана на С, нет выигрыша от использования такого языка и связки Verilog + PLI.

Следует заметить, что применяются и другие подходы для объединения разработки программной и аппаратной части проекта одним универсальным языком. Например, JHDL на основе Java. Но разработка этих проектов находится в зачаточной стадии и использование любого другого объектно-ориентированного языка, кроме С++, не имеет в настоящее время выигрыша перед SystemC или Cynlib.

Таким образом, наиболее заслуживающим внимания направлением является SystemC. Значительным плюсом свободно распространяемой библиотеки можно считать то, что для моделирования системы не нужны коммерческие продукты. То есть дорогостоящие симуляторы, требующиеся для моделирования описаний на Verilog/VHDL, не требуются для симуляции модели SystemC.