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

Моделирование на уровне транзакций позволяет абстрагировать взаимодействие между модулями, так что функции модулей определяются точно, а взаимодействие между ними оптимизировано для ускорения симуляции. Эта оптимизация достигается с помощью использования абстрактных типов данных для описания передаваемой между модулями информации вместо индивидуальных битовых сигналов, определяемых индивидуальными событиями; а также с помощью интерфейсных методов, вместо сигнальных событий. В общем, симуляция на уровне сигналов и выводов заменяется эффективными методами обращений, которые передают целые структуры данных. Это позволяет увеличить скорость симуляции в 100-1000 раз по сравнению с симуляцией на RTL.

Вдобавок к этому при моделировании на уровне транзакций некоторые транзакции вначале могут вообще игнорироваться. Из полного набора транзакций шины некоторые транзакции ошибок или аварийной остановки могут не моделироваться вообще, или моделироваться только на следующем этапе, с целью концентрации начальных усилий на ключевых транзакциях передачи данных (передача слов и пакетные чтение/запись) поддерживаемых моделью шины. Стадия арбитража (выяснение приоритетов доступа к шине) может игнорироваться в начальном моделировании, и будет добавлена на следующем этапе, либо в процессе детализации на основе подстановки (из библиотеки).

У специалистов, связанных с OSCI (Open SystemC Initiative), существует большой интерес в определении стандартного набора типов транзакций, с целью их использования в системном моделировании и в обеспечении взаимодействия разных IP моделей, включая транзакции, как с точки зрения SW программиста ("программная модель»), так и с точки зрения аппаратного проектировщика ("аппаратная модель с точностью до такта»). Методы детализации на основе библиотечной подстановки могут поддерживать использование таких транзакционных моделей на указанных уровнях, на основе стандартного набора API интерфейсов.

Моделирование на уровне транзакций особенно важно для платформоориентированных SoC моделей, для обеспечения корректного моделирования и изучения различных эффектов в коммуникациях на высоком уровне, таких как загрузка шины, конфликты на шине, а также влияния шины на общую производительность системы. При этом эти платформоориентированные модели могут быть детализированы с точностью до такта, что необходимо для аппаратного проектирования, и могут послужить в качестве эталонных моделей или тестовых платформ в процессе аппаратного проектирования.

      1. Уровень rtl и связь с реализацией

Язык SystemC позволяет детализировать существующую модель или создать новые модели и точно определить степень синтезабельности RTL моделей, в VHDL или Verilog.

В RTL модели вычислений все коммуникации между процессами должны проходить на уровне сигналов; процессы могут представлять последовательную или комбинаторную логику - в первом случае они чувствительны к фронтам синхроимпульсов, а во втором - ко входному набору сигналов. Порты RTL модулей должны соответствовать разъемам и соединениям конечной реализации, и, конечно же, они должны быть определены с точностью до такта.

В маршруте проектирования нет необходимости в детализации SystemC модели до RTL уровня, разве что по соображениям удобства. Возможность взаимодействия с программами HW симуляции позволяет объединить вместе модели на SystemC и HDL; поведенческий синтез позволяет избежать SystemC моделей на RTL уровне; также возможна трансляция подмножества SystemC в конструкции RTL.