Vés al contingut

Verilog-AMS

De la Viquipèdia, l'enciclopèdia lliure
Verilog-AMS

La finestra GTKWave amb formes d'ona d'exemple senzill d'Icarus Verilog.

Verilog-AMS és un derivat del llenguatge de descripció de maquinari Verilog que inclou extensions de senyal analògic i mixt (AMS) per tal de definir el comportament dels sistemes de senyal analògic i mixt. Amplia els bucles del simulador basat en esdeveniments de Verilog/ SystemVerilog/VHDL, mitjançant un simulador de temps continu, que resol les equacions diferencials en el domini analògic. Tots dos dominis estan acoblats: els esdeveniments analògics poden desencadenar accions digitals i viceversa.[1]

Visió general

[modifica]

L'estàndard Verilog-AMS es va crear amb la intenció de permetre als dissenyadors de sistemes de senyal analògic i mixt i circuits integrats crear i utilitzar mòduls que encapsulin descripcions de comportament d'alt nivell, així com descripcions estructurals de sistemes i components.

Verilog-AMS és un llenguatge de modelatge estàndard de la indústria per a circuits de senyal mixt. Proporciona semàntica de modelatge en temps continu i basat en esdeveniments, de manera que és adequat per a circuits analògics, digitals i mixtes analògics/digitals. És especialment adequat per a la verificació de circuits integrats analògics, de senyal mixt i de RF molt complexos.[2]

Verilog i Verilog/AMS no són llenguatges de programació procedimentals, sinó llenguatges de descripció de maquinari (HDL) basats en esdeveniments. Com a tal, proporcionen funcions de llenguatge sofisticades i potents per a la definició i sincronització d'accions i esdeveniments paral·lels. D'altra banda, moltes accions definides a les sentències del programa HDL es poden executar en paral·lel (una mica semblants als fils i tasques en llenguatges procedimentals, però molt més detallats). No obstant això, Verilog/AMS es pot combinar amb llenguatges de procediment com el llenguatge ANSI C mitjançant la interfície de procediment Verilog del simulador, que facilita la implementació de la suite de proves i permet la interacció amb codi heretat o equips de banc de proves.[3]

Exemple de codi

[modifica]

Verilog/AMS és un superconjunt de l'HDL digital de Verilog, de manera que totes les declaracions del domini digital funcionen com a Verilog (vegeu-hi exemples). Totes les peces analògiques funcionen com a Verilog-A.[4]

L'exemple de codi següent a Verilog-AMS mostra un DAC que és un exemple de processament analògic que s'activa per un senyal digital:

`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

Referències

[modifica]
  1. «[https://accellera.org/images/downloads/standards/v-ams/VAMS-LRM-2-4.pdf Verilog-AMS Language Reference Manual]» (en anglès). https://accellera.org.+[Consulta: 16 juliol 2023].
  2. «Verilog-AMS Tutorials — Documentation» (en anglès). https://verilogams.com.+[Consulta: 16 juliol 2023].
  3. «Verilog-A and Verilog-AMS Reference Manua» (en anglès). http://edadownload.software.keysight.com.+[Consulta: 16 juliol 2023].
  4. «Verilog-A/MS — Documentation» (en anglès). https://verilogams.com.+[Consulta: 16 juliol 2023].