Klass MODEL
Lühikirjeldus
Kirjeldab AG mudeli
Andmeliikmed
- VARIABLE *Vars; - mudelis olevad muutujad
- GRAPH *Grps; - mudelis olevad graafid
- unsigned NodCount, - tippude arv mudelis
- VarCount, - muutujate arv mudelis
- GrpCount, - graafide arv mudelis
- FunCount, - funktsioonide arv mudelis
- InpCount, - sisendite arv
- OutCount, - väljundite arv
- CtrCount, - juhtmuutujate arv
- ConstCount; - konstantide arv
- int *Term; - viited juhtmuutujatele (CtrCount elementi)
- model_type Type; - mudeli tüüp (STRUCTURAL,
RTL, BEHAVIORAL)
- PATTERN *Patterns; - testvektorid
- unsigned VecCount; - testvektorite arv
- unsigned EndVecCount; - abimuutuja simuleerimisel
- int CurrentRow; - abimuutuja simuleerimisel
- int EndCondValue; - simuleerimise lõputingimuse
väärtus
- int EndCondVar; - simuleerimise lõputingimuse
muutuja indeks; kui EndCondVar ==-1, siis lõputingimus puudub
- unsigned ArgPtr; - abimuutuja, mida kasutatakse funktsiooni
argumentide otsimisel
- unsigned MaxVecs; - simuleerimisel genereeritavate
vektorite maksimaalne arv (lõputingimuse korral)
- int NoVecOverflow; - näitab, millega simuleerimine
lõppes (NoVecOverflow == 0, siis saadi lõputingimus, muul
juhul saavutati MaxVecs limiit ilma lõputingimust rahuldamata)
Meetodid
- void stepback(FILE *f);
- Abifunktsioon (private); astub failis sammu tagasi
- void wasteln(FILE *f);
- Abifunktsioon (private); läheb failis uuele reale
- void Copy(const MODEL &Other);
- Abifunktsioon objekti kopeerimiseks (NB! Kopeeritakse KÕIK andmeliikmed)
- void Destroy(void);
- Vabastab objekti poolt eraldatud mälu
- MODEL(void);
- Vaikimisi konstruktor
- MODEL(char *EndVar,
int EndValue,
unsigned MaxVectors);
- Konstruktor;
- EndVar - lõputingimuse muutuja nimi (0, kui lõputingimust
pole);
EndValue - lõputingimuse muutuja väärtus
MaxVectors - maksimaalne vektorite arv (lõputingimuse korral)
- ~MODEL(void);
- Destruktor, hoolitseb objekti poolt eraldatud mälu vabastamise
eest
- MODEL &operator=(const MODEL &Other);
- Ülelaaditud omistamisoperaator
- void Init(char *fileName);
- Initsialiseerib mudeli AGM failist fileName
- void Print(char *fileName);
- Väljastab mudeli AGM faili fileName
- void InitPatterns(char *fileName);
- Loeb testvektorid testvektorite failist fileName
- void PrintPatterns(char *fileName);
- Kirjutab testvektorid testvektorite faili fileName
- void AllocatePatterns();
- Eraldab mälu VecCount vektorile (vektorite pikkuseks VarCount)
- void InitPatternConstants(void);
- Paneb testvektorites konstantsete muutujate väärtused paika;
tuleb välja kutsuda enne esimest PatternSimulate väljakutset
- void GraphSimulate(const unsigned graaf, const int CurrentVec);
- Simuleerib vektori 'CurrentVec' graafi 'graaf'
- void PatternSimulate(const int CurrentVec, const int StartGraph);
- Simuleerib vektorit CurrentVec; StartGraph - graaf, kust simuleerimist
alustatakse
- int Activate(int node,int graph,int pattern,int dryrun);
- Kui graafis graph on vektori pattern väärtuste põhjal aktiveeritav tee algtipust kuni tipuni node, siis väljastatakse 1, muidu 0.
- Kui dryrun on nullist erinev, omistatakse Patternsi vastavatele liikmetele aktiveeritud tee väärtused.
- int Activate(int node1,int node2,int graph,int pattern,int dryrun);
- Kui graafis graph on vektori pattern väärtuste põhjal aktiveeritav tee tipust node1 kuni tipuni node2, siis väljastatakse 1, muidu 0.
- Kui dryrun on nullist erinev, omistatakse Patternsi vastavatele liikmetele aktiveeritud int GetVarSlice(const int vek, const int var, const RANGE range);
- Annab tagasi vek-nda vektori var-nda liikme bitilõigu range
väärtuse
- void DumpNodeFlags(const unsigned flag);
- Võtab lipu flag maha kõigis tippudes (kui programm kasutab
mingeid abilippe)
- int CalcFunction(const int varindex, const int vektor, const
int RefVar);
- Arvutab funktsiooni väärtuse (antud varindex'iga); vektor
- mitmendal vektoril arvutatakse RefVar - kasutatakse vaid behavioral mudeli
korral. See on vajalik selleks, et pidada arvet, kas võtta väärtusi
eelmisest või praegusest vektorist
- int XArguments(const int varindex, const int vektor, const
int RefVar);
- Kontrollib, kas funktsiooni (antud varindex'iga) üheks argumendiks
on X
- void InitArgSearch(void);
- Kutsutakse välja enne iga FindNextArg()-i
- int FindNextArg(const unsigned var, const unsigned current);
- Otsib rekursiivselt funktsioonimuutuja var current-ndat sisendit ja
väljastab selle muutuja indeksi, millele viimane viitab. Kui current
on liiga suur arv, siis väljastab -1
- model_type GetType(void) const;
- Tagastab mudeli tüübi
- VARIABLE GetVariable(const int index) const;
- Tagastab muutuja, mille indeks on index
- void InsertVariable(const int n, const VARIABLE Var);
- Lisab muutuja Var muutujate listi positsioonile n; NB! Suhteliselt
aeglane operatsioon!
- void AddVariable(const VARIABLE Var);
- Lisab muutuja Var muutujate listi lõppu; NB! Suhteliselt aeglane
operatsioon!
- void RemoveVariable(const int n);
- Eemaldab muutuja muutujate listi positsioonilt n; NB! Suhteliselt aeglane
operatsioon!
- GRAPH GetGraph(const int index) const;
- Tagastab graafi indeksiga index
- void InsertGraph(const int n, const GRAPH Graph);
- Lisab graafi Graph graafide listi positsioonile n; NB! Suhteliselt
aeglane operatsioon!
- void AddGraph(const GRAPH Graph);
- Lisab graafi Graph graafide listi lõppu; NB! Suhteliselt aeglane
operatsioon!
- void RemoveGraph(const int n);
- Eemaldab graafi graafide nimistust positsioonilt n; NB! Suhteliselt
aeglane operatsioon!
- PATTERN GetPattern(const int index) const;
- Tagastab index-nda testvektori
- void PutPattern(const PATTERN Vector,const int index) const;
- Omistab index-ndale testvektorile vektori Vektor.
- int GetNodCount(void) const;
- Tagastab tippude arvu
- int GetVarCount(void) const;
- Tagastab muutujate arvu
- int GetGrpCount(void) const;
- Tagastab graafide arvu
- int GetFunCount(void) const;
- Tagastab funktsioonide arvu
- int GetInpCount(void) const;
- Tagastab sisendite arvu
- int GetOutCount(void) const;
- Tagastab väljundite arvu
- int GetCtrCount(void) const;
- Tagastab juhtmuutujate arvu
- int GetConstCount(void) const;
- Tagastab konstantide arvu
- int GetVecCount(void) const;
- Tagastab vektorite arvu