Jump to content

СистемаC АМС

SystemC AMS — это расширение SystemC для аналоговых, смешанных сигналов и радиочастотных функций. [1] Стандарт SystemC AMS 2.0 был выпущен 6 апреля 2016 года как IEEE Std 1666.1-2016.

Спецификация языка

[ редактировать ]
 ToDo: description

Особенности языка

[ редактировать ]
 ToDo: description

MoC — модель вычислений

[ редактировать ]

Модель вычислений (MoC) — это набор правил, определяющих поведение и взаимодействие между примитивом SystemC AMS. модули. SystemC AMS определяет следующие модели вычислений: синхронизированный поток данных (TDF), линейный поток сигналов. (LSF) и электрические линейные сети (ELN).

TDF — синхронизированный поток данных

[ редактировать ]

В модели временного потока данных (TDF) компоненты обмениваются друг с другом аналоговыми значениями. периодически с выбранной частотой дискретизации, например каждые 10 микросекунд. По теореме выборки этого было бы достаточно, чтобы передать сигналы с полосой пропускания до 50 МГц без артефактов наложения спектров. Модель TDF определяет метод под названием «processing()», который вызывается с соответствующей скоростью по мере продвижения времени моделирования. Так называемый кластер моделей имеет статический график того, когда им следует общаться. Это устанавливает относительный порядок вызовов методов обработки(). каждого экземпляра TDF в кластере. Периодическое поведение TDF позволяет ему работать независимо от основного Ядро SystemC, управляемое событиями, используемое для цифровой логики.

ЭЛН - Электрические линейные сети

[ редактировать ]

Библиотека электрических линейных сетей (ELN) SystemC предоставляет набор стандартные электрические компоненты, которые позволяют использовать SPICE-подобные симуляции, которые нужно запустить. Три основных компонента: резисторы, конденсаторы и индукторы, конечно, имеются. Другие варианты, управляемые напряжением, такие как преобразователь крутизны. усилитель (генератор тока, управляемый напряжением) позволяет использовать большинство полевых транзисторов и других полупроводниковые модели, которые можно легко создавать.

Ток, протекающий в сетях резисторов ELN, можно решить с помощью подходящего средства одновременного решения уравнений. Они называются узловыми уравнениями. Если включены изменяющиеся во времени компоненты, такие как конденсаторы и катушки индуктивности, метод Эйлера обычно реализуется для их моделирования. Метод Эйлера — это простой подход к решению задач во временной области с конечной разностью (FDTD). Например, для моделирования проблемы заряда конденсатора (слева ниже) выбирается временной шаг delta\_t, который обычно равен около одного процента от постоянной времени, и выполняется итерация в правом нижнем углу.

Ошибка в методе Эйлера уменьшается квадратично при меньших шагах по времени, но слишком малом времени. Шаг приводит к медленному моделированию сложной модели методом конечных элементов. Но это не является проблемой во многих ситуациях, когда часть сложной SoC или Контроллер объекта работает вместе с моделью предприятия, которая имеет всего несколько переменных состояния, например, с системой трансмиссии автомобиля, поскольку существует разница в константах времени на несколько порядков (например, тактовая частота 100 МГц по сравнению с самой короткой инерционной постоянной времени 1 ~ мс). Тогда имеет смысл моделировать аналоговую подсистему внутри симулятора RTL. Более того, в большинстве ситуаций управления предприятием используется отрицательная обратная связь с обратной связью, при этом контроллер так же хорошо справляется с управлением. модель растения с небольшими ошибками выдает себя за реальную модель.

В соответствии с формализмом ELN циклы инициализации и моделирования SystemC расширены для поддержки решения узлового потока. уравнения. Решение узлового уравнения обычно решается итеративно. вместо использования прямых методов, таких как метод исключения по Гауссу или основанный на на обратных матрицах. Итеративные методы, как правило, имеют большую стабильность. и быстры, когда государство лишь немного продвинулось от предыдущий временной шаг. Когда ядро ​​удаляет из очереди событие с опережением времени из очереди событий время моделирования увеличивается. Аналог часть симулятора поддерживает квант времени, за пределами которого узловой уравнения необходимо пересчитать. Этот квант динамически корректируется в зависимости от поведения уравнений. Если уравнения «бенди», что означает, что линейная экстраполяция с использованием метода Эйлера по квант приведет к слишком большой ошибке, шаг по времени уменьшится, в противном случае его можно постепенно увеличивать на каждом этапе. В целом, два необходимы формы итерации: первая — это итерация по времени для решения узловые уравнения с достаточной точностью. Второй находится между временные шаги. В простой реализации, как только время моделирования истечет продвинутая за пределы кванта Эйлера, аналоговая подсистема решено повторно. Если ошибки экстраполяции слишком велики, симулятор необходимо вернуться к последнему временному шагу и снова смоделировать движение вперед, используя меньший аналоговый квант. Этот механизм также является основой SPICE. симуляции. Каждая аналоговая переменная, являющаяся аргументом «перекрестия», или другая аналоговая чувствительность, затем проверяется, есть ли новые цифровые работа домена запущена. Если да, то новые события вводятся в дискретное событие. очередь на текущее время симуляции.

LSF — линейный поток сигналов

[ редактировать ]

Библиотека линейного потока сигналов (LSF) SystemC предоставляет набор примитивов. аналоговые операторы, такие как сумматоры и дифференциаторы, которые позволяют все основные структуры, встречающиеся в дифференциальных уравнениях, являются построен в самодокументируемой и исполняемой форме. преимущество построения системы из стандартной библиотеки операторов возможно ли «отражение»: другой код может анализировать структуру и выполнять аналитическое дифференцирование, суммирование, интегрирование и другие формы анализа, такие как анализ чувствительности для определения хороший временной шаг. Это было бы невозможно для реализации, использующей специальное кодирование. В общем программировании под рефлексией понимается программа, способная читать собственный исходный код.

Определение входа/выхода TDF:

 sca_tdf::sca_in<PortType>
 sca_tdf::sca_out<PortType>

Определение входа/выхода преобразователя TDF:

 sca_tdf::sc_in<PortType>  // DE → TDF inport
 sca_tdf::sc_out<PortType> // TDF → DE outport

Определение терминала ELN:

 sca_eln::sca_terminal
 sca_eln::sca_node         // ELN node
 sca_eln::sca_node_ref     // ELN reference node
 ToDo: description

Отслеживание

[ редактировать ]
sca_trace_file *tf = sca_create_tabular_trace_file("trace_file_name.dat");
  sca_trace(tf, <PORT|SIGNAL|NODE>, "name");

Пример кода

[ редактировать ]

Модель нижних частот временного потока данных 1-го порядка:

#include <systemc-ams>

using namespace sca_util;        // introduced for convenience: sca_util::sca_vector<TYPE> → sca_vector<TYPE>
using namespace sca_core;        // introduced for convenience: sca_core::sca_time() → sca_time()
using namespace sca_ac_analysis; // introduced for convenience: sca_ac_analysis::sca_ac() → sca_ac()

SCA_TDF_MODULE(tdf_low_pass)
{
    // TDF ports
    sca_tdf::sca_in<double>  inp;
    sca_tdf::sca_out<double> outp;

    // parameters
    double fcut;                 // cut-off frequency

    // methods
    void initialize();           // simulator callback for initialization purpose
    void ac_processing();        // simulator callback for AC behavior implementation
    void processing();           // simulator callback for time implementation

    // constructor
    SCA_CTOR(tdf_low_pass) {
    	fcut = 1.0e3;            // cut-off frequency 1kHz
    }

private:
    sca_vector<double > num;	 // numerator coefficients
    sca_vector<double > den;	 // de-numerator coefficients
    sca_vector<double > state;   // state vector
    sca_tdf::sca_ltf_nd ltf_nd;  // linear transfer function (numerator/de-numerator type)
};

линейная передаточная функция:

// initialize linear transfer function coefficients
void tdf_low_pass::initialize(){
  num(0) = 1.0;
  den(0) = 1.0;
  den(1) = 1.0/(2.0*M_PI*fcut);
}

ToDo: описание

// AC implementation
void tdf_low_pass::ac_processing(){
  sca_ac(outp) = sca_ac_ltf_nd(num, den, sca_ac(inp));
}

ToDo: описание

// time domain implementation
void tdf_low_pass::processing(){
  outp = ltf_nd(num, den, state, inp);
}

Список цепей нижних частот электрических-линейных сетей 1-го порядка:

SC_MODULE(eln_low_pass_netlist)
{
    // sca eln terminals
    sca_eln::sca_terminal n1;
    sca_eln::sca_terminal n2;

    // internal nodes
    sca_eln::sca_node_ref gnd;

    // eln modules
    sca_eln::sca_r i_r;
    sca_eln::sca_c i_c;

    SC_CTOR(eln_low_pass_netlist) : i_r("i_r"), i_c("i_c")
    {
          i_r.value = 1.0;
          i_r.p.bind(n1);
          i_r.n.bind(n2);

          i_c.value = 1.0/(2.0*M_PI*1.0e3);
          i_c.p.bind(n2);
          i_c.n.bind(gnd);
    }
};

Список соединений с линейным потоком сигналов:

Исследовательская группа SystemC AMS была основана в 2002 году для разработки и поддержки аналоговых и смешанных расширений SystemC, а также для создания рабочей группы OSCI (инициатива Open SystemC) SystemC-AMS. Исследовательская группа провела первоначальные исследования, определила и внедрила расширение SystemC, чтобы продемонстрировать осуществимость этого подхода. В 2006 году была профинансирована рабочая группа SystemC AMS, которая продолжила работу исследовательской группы внутри OSCI и теперь продолжает работу над SystemC AMS в рамках Accellera Systems Initiative, в результате чего в 2010 году появился стандарт AMS 1.0. После выпуска стандарт Accellera SystemC AMS 2.0 в 2013 году, в 2014 году этот стандарт был передан Ассоциации стандартов IEEE для дальнейшего внедрения и поддержки в отрасли. Стандарт SystemC AMS был выпущен 6 апреля 2016 года как IEEE Std 1666.1-2016. [2] [3] COSEDA Technologies предоставляет COSIDE первую коммерчески доступную среду проектирования, основанную на стандарте SystemC AMS.

  1. ^ «СистемС АМС» . Accellera.org . Проверено 1 августа 2016 г.
  2. ^ «SystemC AMS (аналоговый/смешанный сигнал)» . Accellera.org . Проверено 1 августа 2016 г.
  3. ^ «SystemC-AMS и проектирование встраиваемых систем смешанных сигналов» . www.systemc-ams.org . Проверено 1 августа 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a624afbb647cd50ed835c5d311d2422c__1722391620
URL1:https://arc.ask3.ru/arc/aa/a6/2c/a624afbb647cd50ed835c5d311d2422c.html
Заголовок, (Title) документа по адресу, URL1:
SystemC AMS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)