Verilog-AMS

Verilog-AMS هي لغة مشتقة من لغة وصف الأجهزة Verilog، وتتضمن امتدادات الإشارات التناظرية والمختلطة (AMS) لتحديد سلوك الأنظمة التناظرية وأنظمة الإشارات المختلطة. وهي تُوسّع حلقات المحاكاة القائمة على الأحداث في Verilog/ SystemVerilog / VHDL ، بإضافة مُحاكي زمني مستمر، يُمكن استخدامه لحل المعادلات التفاضلية في المجال التناظري، بالإضافة إلى مسائل أخرى. ويرتبط كلا المجالين ارتباطًا وثيقًا: إذ يُمكن للأحداث التناظرية أن تُحفّز إجراءات رقمية، والعكس صحيح. [ 1 ]

ملخص

تم وضع معيار Verilog-AMS بهدف تمكين مصممي أنظمة الإشارات التناظرية والمختلطة والدوائر المتكاملة من إنشاء واستخدام وحدات نمطية تُغلف أوصافًا سلوكية عالية المستوى، بالإضافة إلى أوصاف هيكلية للأنظمة والمكونات. [ 2 ] [ 3 ] [ 4 ]

Verilog-AMS هي لغة نمذجة قياسية في الصناعة لدوائر الإشارات المختلطة. توفر هذه اللغة دلالات نمذجة مستمرة وأخرى قائمة على الأحداث، مما يجعلها مناسبة للدوائر التناظرية والرقمية والمختلطة (تناظرية/رقمية). وهي مناسبة بشكل خاص للتحقق من صحة الدوائر المتكاملة التناظرية والمختلطة ودوائر الترددات الراديوية شديدة التعقيد. [ 5 ]

لا تُعدّ لغتا Verilog وVerilog/AMS لغات برمجة إجرائية، بل لغتا وصف أجهزة تعتمدان على الأحداث (HDLs). ولذلك، توفران ميزات لغوية متطورة وقوية لتعريف ومزامنة الإجراءات والأحداث المتوازية. من جهة أخرى، يمكن تشغيل العديد من الإجراءات المُعرّفة في عبارات برنامج HDL بالتوازي (بشكل مشابه إلى حد ما للخيوط والمهام الصغيرة في اللغات الإجرائية، ولكن بدقة أكبر بكثير). مع ذلك، يمكن ربط Verilog/AMS بلغات إجرائية مثل لغة ANSI C باستخدام واجهة Verilog الإجرائية للمحاكي، مما يُسهّل تنفيذ مجموعات الاختبار، ويسمح بالتفاعل مع التعليمات البرمجية القديمة أو معدات منصة الاختبار.

كان الهدف الأصلي للجنة Verilog-AMS هو لغة واحدة لكل من التصميم التناظري والرقمي، ولكن بسبب التأخيرات في عملية الدمج، بقيت في Accellera بينما تطورت Verilog إلى SystemVerilog وانتقلت إلى IEEE.

مثال على الكود

Verilog/AMS هي مجموعة فرعية من لغة وصف الأجهزة الرقمية Verilog، لذا فإن جميع التعليمات في المجال الرقمي تعمل كما في Verilog (انظر هناك للاطلاع على أمثلة). جميع الأجزاء التناظرية تعمل كما في Verilog-A .

يوضح مثال الكود التالي في Verilog-AMS محولًا رقميًا تناظريًا (DAC) وهو مثال على المعالجة التناظرية التي يتم تشغيلها بواسطة إشارة رقمية:

`include "constants.vams" `include "disciplines.vams" // نموذج DAC بسيط module dac_simple ( aout , clk , din , vref ); // المعاملات parameter integer bits = 4 from [ 1 : 24 ]; parameter integer td = 1 n from [ 0 : inf ); // تأخير معالجة DAC // تعريف المدخلات/المخرجات input clk , vref ; input [ bits - 1 : 0 ] din ; output aout ; // تعريف أنواع المنافذ logic clk ; logic [ bits - 1 : 0 ] din ; electrical aout , vref ; // المتغيرات الداخلية real aout_new , ref ; integer i ; // تغيير الإشارة في الجزء التناظري analog begin @ ( posedge clk ) begin // تغيير المخرج فقط عند حافة الساعة الصاعدة aout_new = 0 ; ref = V ( vref ); for ( i = 0 ; i < bits ; i = i + 1 ) begin ref = ref / 2 ; aout_new = aout_new + ref * din [ i ]; end end V ( aout ) <+ transition ( aout_new , td , 5n ) ; // الحصول على انتقال أكثر سلاسة عند تغيير مستوى الإخراج end endmodule

يقوم نموذج محول الإشارة التناظرية إلى الرقمية بقراءة الإشارات التناظرية في الكتل الرقمية:

`include "constants.vams" `include "disciplines.vams" // نموذج محول تناظري رقمي بسيط module adc_simple ( clk , dout , vref , vin ); // المعاملات parameter integer bits = 4 from [ 1 : 24 ]; // عدد البتات parameter integer td = 1 from [ 0 : inf ); // تأخير معالجة المحول التناظري الرقمي // تعريف المدخلات/المخرجات input clk , vin , vref ; output [ bits - 1 : 0 ] dout ; // تعريف أنواع المنافذ electrical vref , vin ; logic clk ; reg [ bits - 1 : 0 ] dout ; // المتغيرات الداخلية real ref , sample ; integer i ; initial begin dout = 0 ; end// تنفيذ أخذ العينات في الكتل الرقمية للحافة الصاعدة لإشارة الساعة دائمًا @( posedge clk ) begin sample = V ( vin ); ref = V ( vref ); for ( i = 0 ; i < bits ; i = i + 1 ) begin ref = ref / 2 ; if ( sample > ref ) begin dout [ i ] <= #( td ) 1 ; sample = sample - ref ; end else dout [ i ] <= #( td ) 0 ; end end endmodule

التطبيقات

في حين أن اللغة كانت في البداية مدعومة فقط من قبل الشركات التجارية، فقد اعتمد مجتمع نمذجة الترانزستورات أجزاءً من مجموعة نمذجة السلوك "Verilog-A". يدعم مترجم ADMS هذه اللغة لمحاكيات مفتوحة المصدر مثل Xyce وngSPICE. يتوفر الآن تطبيق أكثر اكتمالاً من خلال OpenVAF. صُمم محاكي Gnucap، الذي ظهر بعد SPICE، وفقًا للوثيقة القياسية، ويتزايد دعمه للغة Verilog-AMS على مستوى المحاكاة ونمذجة السلوك.

انظر أيضاً

مراجع

  1. تم تحديد دلالات الجدولة في دليل مرجع لغة Verilog/AMS، القسم 8.
  2. مجموعة Accellera Verilog Analog Mixed-Signal، "نظرة عامة"، http://www.verilog.org/verilog-ams/htmlpages/overview.html مؤرشف بتاريخ 20 مارس 2007 في Wayback Machine
  3. دليل مرجعي للغة Verilog-AMS
  4. دليل المصمم إلى Verilog-AMS
  5. التحقق من الدوائر المتكاملة التناظرية المعقدة، مؤرشف في 18 أكتوبر 2006، على موقع Wayback Machine
  • آي. ميلر وتي. كاسانييس، "Verilog-AMS يُسهّل محاكاة الإشارات المختلطة"، وقائع المؤتمر الدولي لعام 2000 حول نمذجة ومحاكاة الأنظمة الدقيقة ، الصفحات  305-308، متاح على الرابط: https://web.archive.org/web/20070927051749/http://www.nsti.org/publ/MSM2000/T31.01.pdf

عام

تطبيقات مفتوحة المصدر