miniatura|394x394px|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.
Visió general 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.
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.
Exemple de codi 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.
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
Categoria:Programari científic