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

Функциональные модели системы также известны как исполняемые спецификации. В общем это проектные спецификации и требования, транслированные в SystemC модель или иерархию моделей.

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

Функциональные модели могут быть временными (timed) или невременными (untimed). Так как мы имеем дело с функциональной спецификацией, то в процессе нисходящего проектирования (top-down) имеет смысл начать с невременной функциональной модели и затем добавить информацию о задержках в процессе детализации. Однако, так как функциональная модель не зависит от реализации, эта информация о задержках не должна рассматриваться как часть детальной реализации - это просто временные ограничения, которые должны быть переданы процессу реализации — требования к минимальной производительности системы, наложенные проектируемой системой и ее характеристиками. Так как функциональные модели обычно абстрактны, ориентированы на спецификацию и предназначены для быстрого выполнения, интерфейсы являются абстрактными, двухточечными (point-to-point), (прямая связь между модулями без промежуточных носителей), с использованием абстрактных типов данных (для эффективности), и простых механизмов, таких как FIFO с блокирующимися чтением и записью, (либо с не-блокирующимися, если в спецификацию системы заложена возможность потери данных). Это применимо и к временным функциональным моделям, но информация о задержках в этом случае может быть добавлена на основе спецификаций производительности системы.

Для моделирования алгоритмов очень часто используется такой тип функционального моделирования как поток данных (dataflow), особенно в прикладных областях обработки сигналов и изображений.

Наиболее общей моделью вычислений является сеть процессов Кана (Kahn), специальные случаи которой - статическая и динамическая модели потоков данных. Такие алгоритмические функциональные модели отображают с помощью акторов (actors) входные потоки токенов данных в выходные потоки преобразованных данных. SystemC обеспечивает эффективные способы реализации сетей процессов и моделей потоков данных - используя потоки, FIFO каналы и методы блокировки чтения/записи.

К таким функциональным моделям легко можно добавить временные задержки.

Для общего управления очень часто используются конечные автоматы. Они могут взаимодействовать с моделями потоков данных; а временные и невременные модели также могут взаимодействовать с помощью FIFO каналов.