Verilog-AMS (de la Verilog A nalog Mixed - S ignal Simulation) este un limbaj de descriere hardware și de modelare creat de Accellera pe baza Verilog-A și Verilog-D cu caracteristici suplimentare, al căror scop este să lucreze cu analogi , analogici. sisteme digitale și circuite integrate , utilizarea modulelor, la niveluri înalte de descriere comportamentală și structurală a sistemelor și componentelor sale.
Verilog-AMS - limbaj de descriere hardware ( HDL ); Verilog ( IEEE 1364 -1995 Verilog HDL )). Caracteristicile modulelor Verilog-AMS pot fi descrise matematic și prin parametrii interni ai modulului respectiv. Structura unei componente poate fi descrisă și în termenii subcomponentelor asociate acesteia. Această descriere poate fi folosită în diferite discipline. Componentele și arhitectura Verilog-AMS HDL constau din specificația completă IEEE 1364-1995 Verilog HDL (Verilog-D) pentru descrierea sistemelor analogice (Verilog-A) plus extensiile Verilog-AMS HDL.
Verilog-AMS HDL este folosit pentru a descrie pini , porturi și rețele . Când lucrați cu dispozitive analogice, sunt utilizate legile de conservare a formei generalizate , cum ar fi Kirchhoff și potențialul (KPL și KFL). Ele sunt definite în termeni de cantități (cum ar fi tensiunea și curentul ) asociate cu comportamentul circuitelor analogice. Verilog-AMS HDL poate fi, de asemenea, utilizat pentru a descrie sisteme digitale (în IEEE 1364 -1995 Verilog HDL) și sisteme mixte (analogic-digitale) folosind descrieri discrete și continue așa cum sunt definite în LRM.
Verilog-AMS HDL extinde caracteristicile limbajului de simulare digitală (IEEE 1364-1995 Verilog HDL) oferind singurul limbaj unificat compatibil cu semantica analogică și digitală.
Un sistem este foarte bine gândit, fiind o colecție de componente înrudite care interacționează, componentele în sine pot fi și sisteme atunci când este definit un sistem ierarhic. Dacă o componentă nu are nicio subcomponentă, atunci este o primitivă. Fiecare primitivă este asociată cu zero sau mai multe rețele. Fiecare rețea este asociată cu un semnal care poate trece prin mai multe niveluri ale ierarhiei. Comportamentul fiecărei componente este determinat de valorile din rețea. Dacă toate rețelele care sunt conectate la un semnal sunt în domeniul discret, semnalul este digital. Dacă sunt în domeniul continuu, semnalul este analog. Un semnal care este un agregat din rețelele ambelor domenii se numește semnal mixt. În mod similar, un port , un port analog și un port digital și un port conectat la analog și digital este un port mixt. Componentele sunt conectate la noduri prin porturi și circuite pentru a forma o ierarhie. Dacă semnalul este analog sau mixt, acesta este asociat cu nodul, în timp ce semnalul digital nu este asociat cu nodul. Indiferent de numărul de rețele analogice dintr-un semnal analog sau mixt, semnalul analogic este reprezentat doar de un singur nod. Acest lucru asigură că semnalul mixt sau analogic are o singură semnificație, potențial față de masă. Pentru a modela sisteme , este necesar să aveți o descriere completă a sistemului și a tuturor componentelor sale. Descrierile sistemelor sunt de obicei date structural, adică conțin modele de componente și modul în care acestea sunt legate, folosind o descriere comportamentală sau structurală. Descriere comportamentală - descriere matematică , la nivelul semnalelor în porturile componentelor.
O caracteristică importantă a sistemelor este că există două valori asociate fiecărui nod, potențialul ( valoarea tensiunii în sistemele electrice ) și curentul (debitul în sistemele electrice). Potențialul nodului este conectat la toate porturile și rețelele continue conectate la nod, iar circuitele văd același potențial. Fluxul este împărțit ca flux de la toate porturile și rețelele învecinate din nod și se însumează la zero (0). Astfel, nodul acționează ca un mic punct de interconectare unde potențialul este același în tot nodul și unde nu se poate acumula curent. Astfel, nodul combină Legea lui Kirchhoff și Legile curente (KPL și KFL). Când un element este conectat la un nod printr-un port sau o rețea, acesta poate afecta fie potențialul la nod, fie curentul la nod prin port sau rețea. Cu sistemele conservatoare este de asemenea posibil să se definească comportamentul ramurilor. O ramură este o cale de curgere între două noduri printr-un element. Fiecare ramură are asociat un potențial (diferența de potențial dintre cele două noduri) și un flux. Descrierea comportamentală a unui element este o colecție de ramuri înrudite.
Ca rezultat al conexiunilor de porturi de rețele analogice, un nod poate fi conectat la mai multe rețele cu caracteristici diferite. Modelele de flux de semnal pot fi descrise ca potențialele ieșirilor modulului, funcțiile potențialelor la intrări, sunt independente de flux. De exemplu - un adept de tensiune în schimbare :
moduleshiftPlus5(in, out); intrare în; ieșire; tensiune in, out; //semnal tensiune-curent, //dar numai potențial începe analogic V(out) <+ 5,0 + V(in); Sfârşit modul finalDacă multe astfel de module au fost conectate în serie, atunci ar fi necesar să se conserve sarcina (adică, suma curenților) la orice nod trecut. Dacă, pe de altă parte, ieșirea acestui dispozitiv ar fi conectată la un nod, atunci ieșirea dispozitivului ar fi controlată de o sursă de tensiune . În acest caz, curentul prin sursă ar ajuta la menținerea încărcării în nod.
Abordarea este de a scrie componentele caracteristicii de descriere folosind semantică conservatoare, cu excepția portului, valorile sunt necesare pentru toți constituenții care sunt de fapt utilizați în descriere. Astfel, porturile de semnal necesită doar potențialul care este definit.
De exemplu, luați în considerare un amplificator de tensiune diferențială și un rezistor . Amplificatoarele sunt descrise folosind porturi de semnal de tensiune sau curent, în timp ce rezistențele folosesc porturi mixte.
În acest caz, se declară doar tensiunea pe porturi, deoarece în corpul modelului este folosită doar tensiunea.
modul voltage_amplifier (out, in) ; intrare în ; ieșire; voltage out , // Valoarea tensiunii este determinată de funcția V(). în; parametru real GAIN_V = 10,0 ; analogic V(out) <+ GAIN_V * V(in) ; modul finalAici doar curentul este folosit în corpul modelului
module current_amplifier (out, in) ; intrare în ; ieșire; current out , // Valoarea curentă este determinată de funcția I(). în; parametru real GAIN_I = 10,0 ; analogic I(out) <+ GAIN_I * I(in) ; modul finalDescrierea rezistorului se referă la tensiunea și curentul de pe porturi.
rezistența modulului (a, b); inout a, b; electrice a, b ; //V() și I() funcții parametru real R = 1,0 ; analogic V(a,b) <+ R * I(a,b); modul final