نظام إدارة الأصول (AMS)

SystemC AMS هو امتداد لـ SystemC لوظائف الإشارات التناظرية والمختلطة والترددات اللاسلكية. [ 1 ] تم إصدار معيار SystemC AMS 2.0 في 6 أبريل 2016 تحت مسمى IEEE Std 1666.1-2016.

مواصفات اللغة

خصائص اللغة

MoC - نموذج الحوسبة

نموذج الحوسبة (MoC) هو مجموعة من القواعد التي تحدد السلوك والتفاعل بين الوحدات الأساسية في SystemC AMS. يُعرّف SystemC AMS نماذج الحوسبة التالية: تدفق البيانات الموقوت (TDF)، وتدفق الإشارة الخطي (LSF)، والشبكات الكهربائية الخطية (ELN).

TDF - تدفق البيانات الموقوت

في نموذج تدفق البيانات الموقوت (TDF)، تتبادل المكونات القيم التناظرية فيما بينها بشكل دوري بمعدل أخذ عينات محدد ، مثل كل 10 ميكروثانية. وبحسب نظرية أخذ العينات، يكفي هذا لنقل إشارات بعرض نطاق ترددي يصل إلى 50 ميجاهرتز دون حدوث تشوهات ناتجة عن التداخل. يُعرّف نموذج TDF دالةً تُستدعى بمعدل مناسب مع تقدم وقت المحاكاة. تشترك ما يُسمى بمجموعة النماذج في جدول زمني ثابت يحدد أوقات تواصلها. وهذا يُحدد الترتيب النسبي لاستدعاءات دوال المعالجة () لكل مثيل TDF في المجموعة. يسمح السلوك الدوري لنموذج TDF بالعمل بشكل مستقل عن نواة SystemC الرئيسية التي تعمل بنظام الأحداث والمستخدمة للمنطق الرقمي. processing()

ELN - الشبكات الكهربائية الخطية

توفر مكتبة الشبكات الكهربائية الخطية (ELN) الخاصة بـ SystemC مجموعة من المكونات الكهربائية القياسية التي تُمكّن من تشغيل عمليات محاكاة شبيهة ببرنامج SPICE. وتتوفر المكونات الأساسية الثلاثة، وهي المقاومات والمكثفات والمحاثات. كما تُتيح متغيرات أخرى يتم التحكم فيها بالجهد، مثل مُضخّم ناقلية التيار (مولد تيار يتم التحكم فيه بالجهد)، إنشاء معظم نماذج الترانزستورات ذات التأثير الحقلي (FET) وغيرها من نماذج أشباه الموصلات بسهولة.

يمكن حل التيار المتدفق في شبكات المقاومات ELN باستخدام برنامج مناسب لحل المعادلات الآنية. تُسمى هذه المعادلات بالمعادلات العقدية. عند تضمين مكونات متغيرة مع الزمن، مثل المكثفات والمحاثات، تُستخدم عادةً طريقة أويلر لنمذجتها. تُعد طريقة أويلر أسلوبًا بسيطًا لحل مسائل المجال الزمني باستخدام طريقة الفروق المحدودة (FDTD). على سبيل المثال، لمحاكاة مسألة شحن المكثف الموضحة في الشكل أدناه على اليسار، يتم اختيار خطوة زمنية Δt تُساوي عادةً حوالي واحد بالمائة من الثابت الزمني، ثم يتم تنفيذ التكرار الموضح في الشكل أسفل اليمين.

يقل الخطأ في طريقة أويلر تربيعيًا مع صغر الخطوات الزمنية، لكن استخدام خطوة زمنية صغيرة جدًا يؤدي إلى بطء المحاكاة في حالة محاكاة العناصر المحدودة المعقدة. مع ذلك، لا يُشكل هذا مشكلة في كثير من الحالات التي يُشغَّل فيها جزء من نظام على شريحة (SoC) أو وحدة تحكم نظام معقدة جنبًا إلى جنب مع نموذج نظام يحتوي على عدد قليل من متغيرات الحالة، مثل نظام نقل الحركة في السيارة، نظرًا لوجود فرق كبير في الثوابت الزمنية (مثل  تردد ساعة 100 ميجاهرتز مقابل أقصر ثابت زمني للقصور الذاتي وهو 1 مللي ثانية). في هذه الحالة، يكون من المنطقي محاكاة النظام الفرعي التناظري داخل محاكي RTL. علاوة على ذلك، تستخدم معظم حالات التحكم في الأنظمة تغذية راجعة سلبية ذات حلقة مغلقة، حيث تكون وحدة التحكم فعالة في إدارة نموذج النظام الذي يحتوي على خطأ طفيف تمامًا كما هو الحال مع النموذج الحقيقي.

في إطار منهجية ELN، تم توسيع دورات تهيئة ومحاكاة SystemC لدعم حل معادلات التدفق العقدي. يُحل حل المعادلات العقدية عادةً بطريقة تكرارية بدلاً من استخدام الطرق المباشرة مثل طريقة الحذف الغاوسي أو الطرق القائمة على معكوسات المصفوفات. تتميز الطرق التكرارية باستقرار أكبر وسرعة أعلى عندما يكون تقدم الحالة طفيفًا فقط عن الخطوة الزمنية السابقة. عند إزالة حدث متقدم زمنيًا من قائمة الأحداث، يتقدم وقت المحاكاة. يحتفظ الجزء التناظري من المحاكي بفترة زمنية محددة، يجب إعادة حساب المعادلات العقدية بعد تجاوزها. يتم تعديل هذه الفترة الزمنية ديناميكيًا بناءً على سلوك المعادلات. إذا كانت المعادلات "مرنة"، أي أن الاستقراء الخطي باستخدام طريقة أويلر على هذه الفترة الزمنية سيؤدي إلى خطأ كبير، يتم تقليل الخطوة الزمنية، وإلا يمكن زيادتها تدريجيًا في كل خطوة. بشكل عام، يلزم نوعان من التكرار: الأول هو التكرار عند كل خطوة زمنية لحل معادلات العقد بدقة كافية. والثاني هو التكرار بين الخطوات الزمنية. في تطبيق بسيط، بمجرد أن يتجاوز وقت المحاكاة كم أويلر، يُعاد حل النظام الفرعي التناظري. إذا كانت أخطاء الاستقراء كبيرة جدًا، يجب على المحاكي العودة إلى الخطوة الزمنية الأخيرة وإعادة المحاكاة باستخدام كم تناظري أصغر. هذه الآلية هي أيضًا أساس محاكاة SPICE. بعد ذلك، يتم فحص كل متغير تناظري يمثل وسيطًا لـ "تقاطع" أو حساسية تناظرية أخرى، لمعرفة ما إذا كان قد تم تشغيل عمل جديد في المجال الرقمي. إذا كان الأمر كذلك، يتم إدخال أحداث جديدة في قائمة انتظار الأحداث المنفصلة لوقت المحاكاة الحالي.

LSF - تدفق الإشارة الخطي

توفر مكتبة SystemC لتدفق الإشارات الخطية (LSF) مجموعة من المؤثرات التناظرية الأساسية، مثل الجامعات والمفاضلات، التي تُمكّن من إنشاء جميع البنى الأساسية الموجودة في المعادلات التفاضلية بصيغة موثقة ذاتيًا وقابلة للتنفيذ. تكمن ميزة بناء النظام باستخدام مكتبة مؤثرات قياسية في إمكانية "الانعكاس": حيث يمكن لبرامج أخرى تحليل البنية وإجراء التفاضل التحليلي والجمع والتكامل، بالإضافة إلى أشكال أخرى من التحليل، مثل تحليل الحساسية لتحديد خطوة زمنية مناسبة. هذا غير ممكن في حالة استخدام برمجة مخصصة. في البرمجة عمومًا، يشير الانعكاس إلى قدرة البرنامج على قراءة شفرته المصدرية .

الموانئ

تعريف منافذ الدخول والخروج في 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 sca_eln:: sca_node_ref // عقدة مرجعية لـ ELN

تَجَمَّع

المهام: الوصف

التتبع

sca_trace_file * tf = sca_create_tabular_trace_file ( "trace_file_name.dat" ); sca_trace ( tf , < PORT | SIGNAL | NODE > , "name" );

مثال على التعليمات البرمجية

تي دي إف

نموذج تمرير منخفض من الدرجة الأولى لتدفق البيانات الموقوت:

#include <systemc-ams>using namespace sca_util ; // تم تقديمه للتسهيل: sca_util::sca_vector<TYPE> → sca_vector<TYPE> using namespace sca_core ; // تم تقديمه للتسهيل: sca_core::sca_time() → sca_time() using namespace sca_ac_analysis ; // تم تقديمه للتسهيل: sca_ac_analysis::sca_ac() → sca_ac()SCA_TDF_MODULE ( tdf_low_pass ) { // منافذ TDF sca_tdf :: sca_in < double > inp ; sca_tdf :: sca_out < double > outp ;// المعاملات: double fcut ; // تردد القطع// الدوال void initialize (); // دالة رد نداء للمحاكي لأغراض التهيئة void ac_processing (); // دالة رد نداء للمحاكي لتنفيذ سلوك التيار المتردد void processing (); // دالة رد نداء للمحاكي لتنفيذ الوقت// الدالة البانية SCA_CTOR ( tdf_low_pass ) { fcut = 1.0e3 ; // تردد القطع 1 كيلوهرتز }private : sca_vector <double> num ; // معاملات البسط sca_vector <double> den ; // معاملات المخفض sca_vector <double> state ; // متجه الحالة sca_tdf :: sca_ltf_nd ltf_nd ; // دالة التحويل الخطي ( من نوع البسط/المخفض) } ;

دالة التحويل الخطية: ح(s)=11+12*π*وجuتs{\displaystyle H(s)={\frac {1}{1+{\frac {1}{2*\pi *f_{\mathrm {cut} }}}s}}}

// تهيئة معاملات دالة التحويل الخطية void tdf_low_pass::initialize (){ num ( 0 ) = 1.0 ; den ( 0 ) = 1.0 ; den ( 1 ) = 1.0 / ( 2.0 * M_PI * fcut ); }

المهام: الوصف

// تنفيذ AC void tdf_low_pass::ac_processing (){ sca_ac ( outp ) = sca_ac_ltf_nd ( num , den , sca_ac ( inp )); }

المهام: الوصف

// تنفيذ المجال الزمني void tdf_low_pass::processing (){ outp = ltf_nd ( num , den , state , inp ); }

شبكة التعلم الإلكترونية

قائمة توصيلات الترددات المنخفضة من الدرجة الأولى للشبكات الكهربائية الخطية:

SC_MODULE ( eln_low_pass_netlist ) { // أطراف sca eln sca_eln :: sca_terminal n1 ; sca_eln :: sca_terminal n2 ;// العقد الداخلية sca_eln :: sca_node_ref gnd ;// وحدات eln 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 ) ; } } ;

LSF

قائمة توصيلات التدفق الخطي للإشارة:

تاريخ

تأسست مجموعة دراسة SystemC AMS عام 2002 لتطوير وصيانة امتدادات الإشارات التناظرية والمختلطة للغة SystemC، ولإطلاق فريق عمل SystemC-AMS ضمن مبادرة OSCI (مبادرة النظام المفتوح SystemC). أجرت المجموعة دراسات أولية وحددت ونفذت امتدادًا للغة SystemC لإثبات جدوى هذا النهج. في عام 2006، تم تمويل فريق عمل SystemC AMS الذي واصل عمل مجموعة الدراسة داخل مبادرة OSCI، ويعمل الآن على SystemC AMS ضمن مبادرة Accellera Systems، مما أدى إلى إصدار معيار AMS 1.0 عام 2010. بعد إصدار معيار Accellera SystemC AMS 2.0 عام 2013، نُقل المعيار إلى جمعية معايير IEEE عام 2014 لاعتماده وصيانته على نطاق أوسع في الصناعة. صدر معيار SystemC AMS رسميًا في 6 أبريل 2016 تحت اسم IEEE Std 1666.1-2016. [ 2 ] [ 3 ] توفر شركة COSEDA Technologies من خلال COSIDE أول بيئة تصميم متاحة تجاريًا تعتمد على معيار SystemC AMS.

مراجع

  1. "SystemC AMS" . accellera.org . تم الاطلاع عليه بتاريخ 1 أغسطس 2016 .
  2. "SystemC AMS (Analog/Mixed-Signal)" . accellera.org . تم الاطلاع عليه بتاريخ 1 أغسطس 2016 .
  3. "SystemC-AMS وتصميم أنظمة الإشارات المختلطة المدمجة" . www.systemc-ams.org . تم الاطلاع عليه بتاريخ 1 أغسطس 2016 .