वेरिलॉग-एएमएस

From Vigyanwiki

वेरिलोग-एएमएस हार्डवेयर विवरण भाषा का व्युत्पन्न है जिसमें एनालॉग और मिश्रित-सिग्नल सिस्टम के व्यवहार को परिभाषित करने के लिए एनालॉग और मिश्रित-सिग्नल एक्सटेंशन (एएमएस) सम्मिलित हैं। यह सतत-समय सिम्युलेटर द्वारा वेरिलोग/सिस्टम वेरलॉग/वीएचडीएल के इवेंट-आधारित सिम्युलेटर लूप का विस्तार करता है, जो एनालॉग-डोमेन में अंतर समीकरणों को हल करता है। दोनों डोमेन एनालॉग इवेंट डिजिटल क्रियाओं को ट्रिगर कर सकते हैं और इसके विपरीत युग्मित हैं: ।[1]

अवलोकन

वेरिलॉग-एएमएस मानक एनालॉग और मिश्रित सिग्नल सिस्टम और एकीकृत परिपथ के डिजाइनरों को सक्षम करने के कथन से बनाया गया था, जो कि उच्च-स्तरीय व्यवहार विवरणों के साथ-साथ सिस्टम और घटकों के संरचनात्मक विवरणों को बढ़ाने वाले मॉड्यूल को बनाने और उपयोग करने के लिए एकीकृत परिपथ का उपयोग किया जाता है।[2][3][4] वेरिलॉग-एएमएस मिश्रित सिग्नल परिपथ के लिए उद्योग मानक मॉडलिंग भाषा है। यह निरंतर-समय और घटना-चालित मॉडलिंग शब्दार्थ दोनों प्रदान करता है, और इसलिए एनालॉग, डिजिटल और मिश्रित एनालॉग/डिजिटल परिपथ के लिए उपयुक्त है। यह विशेष रूप से बहुत जटिल एनालॉग, मिश्रित-सिग्नल और आरएफ एकीकृत परिपथ के सत्यापन के लिए अनुकूल है।[5]

वेरिलॉग और वेरिलॉग/एएमएस प्रक्रियात्मक प्रोग्रामिंग भाषाएं नहीं हैं, किन्तु इवेंट-आधारित हार्डवेयर विवरण भाषाएँ (एचडीएलएस) हैं। जैसे, वे समानांतर कार्यों और घटनाओं की परिभाषा और सिंक्रनाइज़ेशन के लिए परिष्कृत और शक्तिशाली भाषा सुविधाएँ प्रदान करते हैं। दूसरी ओर, एचडीएल प्रोग्राम स्टेटमेंट में परिभाषित कई क्रियाएं समानांतर में चल सकती हैं (कुछ सीमा तक प्रक्रियात्मक भाषाओं में थ्रेड्स और टास्कलेट के समान, किन्तु बहुत अधिक ठीक-ठीक दाने) । चूँकि, वेरिलोग/एएमएस को सिम्युलेटर के वेरिलोग प्रक्रियात्मक इंटरफ़ेस का उपयोग करके एएनएसआई सी भाषा जैसी प्रक्रियात्मक भाषाओं के साथ जोड़ा जा सकता है, जो टेस्टसुइट कार्यान्वयन को कम करता है, और विरासत कोड या टेस्टबेंच उपकरण के साथ परस्पर क्रिया की अनुमति देता है।

वेरिलोग-एएमएस समिति का मूल इरादा एनालॉग और डिजिटल डिजाइन दोनों के लिए एकल भाषा थी, चूँकि विलय की प्रक्रिया में देरी के कारण यह एक्सेलेरा में रहता है, जबकि वेरिलोग सिस्टमवरिलॉग में विकसित हुआ और आईईईई में चला गया था।

कोड उदाहरण

वेरिलॉग/एएमएस वेरिलॉग डिजिटल एचडीएल का सुपरसेट है, इसलिए डिजिटल डोमेन में सभी कथन वेरिलॉग में काम करते हैं (उदाहरण के लिए वहां देखें)। सभी एनालॉग पार्ट्स वेरिलोग-ए के रूप में काम करते हैं।

वेरिलॉग-एएमएस में निम्न कोड उदाहरण डीएसी दिखाता है जो एनालॉग प्रोसेसिंग के लिए उदाहरण है जो डिजिटल सिग्नल द्वारा ट्रिगर किया गया है:

`include "constants.vams"
`include "disciplines.vams"
// Simple DAC model
module dac_simple(aout, clk, din, vref);
	
	// Parameters
	parameter integer bits = 4 from [1:24];
	parameter integer td = 1n from[0:inf);  // Processing delay of the DAC
	
	// Define input/output
	input clk, vref;
	input [bits-1:0] din;
	output aout;
		
	//Define port types
	logic clk;
	logic [bits-1:0] din;
	electrical  aout, vref;
	
	// Internal variables
	real aout_new, ref;
	integer i;
	
	// Change signal in the analog part
	analog begin
		@(posedge clk) begin // Change output only for rising clock edge	
			
			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); // Get a smoother transition when output level changes
	end
endmodule

एडीसी मॉडल डिजिटल ब्लॉक में एनालॉग सिग्नल पढ़ रहा है:

`include "constants.vams"
`include "disciplines.vams"
// Simple ADC model
module adc_simple(clk, dout, vref, vin);
	
	// Parameters
	parameter integer bits = 4 from[1:24]; // Number of bits
	parameter integer td = 1 from[0:inf);  // Processing delay of the ADC
	
	// Define input/output
	input clk, vin, vref;
	output [bits-1:0] dout;
	
	//Define port types
	electrical vref, vin;
	logic clk;
	reg [bits-1:0] dout;
	
	// Internal variables	
	real ref, sample;
	integer i;
	
	
	initial begin
		dout = 0;
	end

	// Perform sampling in the digital blocks for rising clock edge
	always @(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

क्रियान्वयन

जबकि भाषा को प्रारंभ में केवल वाणिज्यिक कंपनियों द्वारा समर्थित किया गया था, व्यवहार मॉडलिंग उपसमुच्चय के कुछ भागो, "वेरिलॉग-ए" को ट्रांजिस्टर-मॉडलिंग समुदाय द्वारा अपनाया गया था। एडीएमएस अनुवादक एक्सवाईसीई और एनजीस्पाइस जैसे ओपन-सोर्स सिमुलेटर के लिए इसका समर्थन करता है। अधिक संपूर्ण कार्यान्वयन अब ओपनवीएएफ के माध्यम से उपलब्ध है। पोस्ट-स्पाइस सिम्युलेटर ग्नुकैप को मानक दस्तावेज़ के अनुसार डिज़ाइन किया गया था, और सिम्युलेटर स्तर और व्यवहार मॉडलिंग दोनों के लिए वेरिलॉग-एएमएस के लिए इसका समर्थन बढ़ रहा है।

यह भी देखें

संदर्भ

  1. Scheduling semantics are specified in the Verilog/AMS Language Reference Manual, section 8.
  2. Accellera Verilog Analog Mixed-Signal Group, "Overview," http://www.verilog.org/verilog-ams/htmlpages/overview.html
  3. Verilog-AMS Language Reference Manual
  4. The Designer's Guide to Verilog-AMS
  5. Verification of Complex Analog Integrated Circuits Archived October 18, 2006, at the Wayback Machine

बाहरी संबंध



सामान्य

खुला स्रोत कार्यान्वयन

श्रेणी: हार्डवेयर विवरण भाषाएँ