// dataSize - Sirina podatka. Iste su sirine AB, BB i ALU. Dozvoljene vrednost 8 i 16
"dataSize", "8"

// numberOfRegisters - Broj registara opste namene u procesoru. Dozvoljene vrednost 0, 2, 4, 8, 16, 32 i 64
"numberOfRegisters", "32"

// GPRARStartPosition - Pozicija unutar reci na magistrali koja odredjuje pocetni bit koji specificira kom registru opste namene se pristupa.
// Primer: ako biti 2 do 5 odredju registar opste namene onda je pocetna pozicija 2.
"GPRARStartPosition", "0"

// GPRNumberOfBits - Broj bita potrebnih za adresiranje unutar registarskog fajla od numberOfRegisters registara.
"GPRNumberOfBits", "5"

// memdelay - Kasnjenje memorije. Dozvoljena vrednost > 0 i < 256
"memdelay", "5"

// addressableUnit - Sirina adresibilne jedinice. Iste je sirine DBUS, MDR i IR0-IR3. Dozvoljena vrednost 8 i 16
"addressableUnit", "8"

// konfiguracija za fetch1 jedinicu se sastoji od veceg broja redova u kojima su opisani trostaticki baferi koji izbacuju sadrzaj na interne magistrale.
// U jednom redu se nalazi konfiguracija za jedno trostaticko kolo.
// Konfiguracija za trostaticko kolo se zadaje po formatu: Naziv jedinice ("FETCH1"), Tip ("TRI"), Naziv logickog kola ("IRAD", dozvoljene su samo vrednosti: IRAD  Instrukcijeki registar polje adresa/podatak, IRJA  Instrukcijeki registar polje adresa skoka, IRPOM  Instrukcijeki registar polje pomeraj, IRBR Instrukcijeki registar polje sa brojem registra/ulaza), Broj ulaznih pinova signala ("16"), Naziv signala povezanog na ulaz E trostatickog kola ("Oper1.IRDAout3"), Naziv signala povezanog na ulaze 0..n-1 trostatickog bafera ("IR23", dozvoljene vrednosti su IRX i IRXX), Naziv izlaza trostatickog kola ("IRAD")
// primer konfiguracija fetch1 jedinice
"FETCH1", "TRI", "IRAD", "16", "Oper1.IRDAout3", "IR0", "IR1", "IR2", "IR3", "IR4", "IR5", "IR6", "IR7", "IR8", "IR9", "IR10", "IR11", "IR12", "IR13", "IR14", "IR15", "IRAD"
"FETCH1", "TRI", "IRJA", "16", "Oper1.IRJAout2", "IR8", "IR9", "IR10", "IR11", "IR12", "IR13", "IR14", "IR15", "IR16", "IR17", "IR18", "IR19", "IR20", "IR21", "IR22", "IR23", "IRJA"
"FETCH1", "TRI", "IRPOM", "16", "Oper1.IRPOMout3", "IR16", "IR17", "IR18", "IR19", "IR20", "IR21", "IR22", "IR23", "IR23", "IR23", "IR23", "IR23", "IR23", "IR23", "IR23", "IR23", "IRPOM"
"FETCH1", "TRI", "IRBR", "8", "Oper1.IRBRout3", "IR24", "IR25", "IR26", "IR27", "IR28", "IR29", "IR30", "IR31", "IRBR"

// konfiguracija za fetch2 jedinicu se sastoji od veceg broja redova u kojima su opisani dekoderi koji se koriste u datoj jedinici.
// U jednom redu se nalazi konfiguracija za jedan dekoder.
// konfiguracija za dekoder se zadaje po formatu: Naziv jedinice ("FETCH2"), Tip ("DC"), Naziv dekodera ("DC1"), Broj kontrolnih signala ("2"), Naziv signala povezanog na ulaz E ("START"), Naziv signala povezanog na ulaz 0 dekodeta ("IR30"), Naziv signala povezanog na ulaz 1 dekodeta ("IR31"), Naziv izlaza 0 dekodeta ("Go"), ...
// Broj kontrolnih signala moze da ima vrednost 1, 2, 3 ili 4. Nazivi izlaznih pinova dekodera moraju da imaju jedinstveno ime. 
// Ime nekog pina moze da se sastoji od je jednog ili vise slova, znakova, ili znaka _
// voditi racuna da ostale jedinice procesora koriste ove pinove i da im pristupaju preko imena.
// primer konfiguracija fetch2 jedinice
"FETCH2", "DC", "DC1", "2", "START", "IR30", "IR31", "G0", "G1", "G2", "G3"
"FETCH2", "DC", "DC2", "3", "G0", "IR27", "IR28", "IR29", "G0_PG0", "G0_PG1", "G0_PG2", "G0_PG3", "G0_PG4", "G0_PG5", "G0_PG6", "G0_PG7"
"FETCH2", "DC", "DC3", "3", "G0_PG0", "IR24", "IR25", "IR26", "NOP", "HALT", "G0_PG0_2", "G0_PG0_3", "INTD", "INTE", "TRPD", "TRPE"
"FETCH2", "DC", "DC4", "3", "G0_PG1", "IR24", "IR25", "IR26", "G0_PG1_0", "JMP", "JSR", "RTS", "INT", "RTI", "G0_PG1_6", "G0_PG1_7"
"FETCH2", "DC", "DC5", "3", "G0_PG2", "IR24", "IR25", "IR26", "BEQL", "BNEQL", "BNEG", "BNNEG", "BOVF", "BNOVF", "BCAR", "BNCAR"
"FETCH2", "DC", "DC6", "3", "G0_PG3", "IR24", "IR25", "IR26", "BGRT", "BGRTE", "BLSS", "BLSSE", "BGRTU", "BGRTEU", "BLSSU", "BLSSEU"
"FETCH2", "DC", "DC7", "3", "G0_PG4", "IR24", "IR25", "IR26", "LDB", "LDW", "STB", "STW", "POPB", "POPW", "PUSHB", "PUSHW"
"FETCH2", "DC", "DC8", "3", "G0_PG5", "IR24", "IR25", "IR26", "LDIVTP", "STIVTP", "LDIMR", "STIMR", "LDSP", "STSP", "G0_PG5_6", "G0_PG5_7" 
"FETCH2", "DC", "DC9", "3", "G0_PG6", "IR24", "IR25", "IR26", "ADD", "SUB", "INC", "DEC", "AND", "OR", "XOR", "NOT"
"FETCH2", "DC", "DC10", "3", "G0_PG7", "IR24", "IR25", "IR26", "ASR", "LSR", "ROR", "RORC", "ASL", "LSL", "ROL", "ROLC"
"FETCH2", "DC", "DC11", "3", "1", "IR21", "IR22", "IR23", "regdir", "regind", "memdir", "memind", "regindpom", "bxpom", "pcpom", "imm"


// U jednom redu se nalazi konfiguracija za jedno logicko kolo.
// Konfiguracija za logicko kolo se zadaje po formatu: Naziv jedinice ("FETCH3"), Tip ("OR"), Naziv logickog kola ("ORgradr"), Broj relevantnih pinova signala ("2"), Naziv signala povezanog na ulaz 0 logickog kola ("Fetch2.STB"), Naziv signala povezanog na ulaz 1 logickog kola ("Fetch2.STW"), Naziv izlaznog pina logickog kola ("ORgradr_0")
// Naziv jedinice je "FETCH3"
// Dozvoljeni tipovi logickih kola su: AND, OR, NAND, NOR, XOR, NOT, SPLIT
// Naziv logickog kola se sastoji od je jednog ili vise slova, znakova, ili znaka _. Voditi racuna da naziv logickog kola bude jedinstven.
// Broj relevantnih pinova mora biti je veci od 0, kod NOT mora biti 1. Kod komponente SPLIT relevantni su izlazni pinovi dok su kod ostalih komponen.
// Nazivi signala povezanih na ulaze:
// - za signale generisan u drugim jedinicama se sastoji od: naziva jedinice i naziva signala koji su razdvojenih znakom ".".
// - za signale generisan u ovoj jedinicama se sastoji od: 
//  - naziva jedinice i naziva signala koji razdvojenih znakom ".", ili 
//  - samo od naziva signala.
// Naziv izlaznog pina logickog kola, predstavlja signal koji se moze koristiti u ostatku sistema, se sastoji od je jednog ili vise slova, znakova, ili znaka _. Voditi racuna da naziv izlaza logickog kola bude jedinstven.
// primer konfiguracija fetch3 jedinice
"FETCH3", "OR", "ORgropr", "10", "Fetch2.G3", "Fetch2.G2", "Fetch2.G1", "Fetch2.G0_PG5_7", "Fetch2.G0_PG5_6", "Fetch2.G0_PG1_7", "Fetch2.G0_PG1_6", "Fetch2.G0_PG1_0", "Fetch2.G0_PG0_3", "Fetch2.G0_PG0_2", "gropr"
"FETCH3", "OR", "ORgradr", "2", "Fetch2.STB", "Fetch2.STW", "ORgradr_0"
"FETCH3", "OR", "ORgradrMode", "1", "Fetch2.imm", "ORgradrMode_0"
"FETCH3", "OR", "ORL1", "12", "Fetch2.G0_PG7", "Fetch2.NOT", "Fetch2.DEC", "Fetch2.INC", "Fetch2.G0_PG5", "Fetch2.PUSHW", "Fetch2.PUSHB", "Fetch2.POPW", "Fetch2.POPB", "Fetch2.RTI", "Fetch2.RTS", "Fetch2.G0_PG0", "l1"
"FETCH3", "OR", "ORL2_brnch", "3", "Fetch2.G0_PG3", "Fetch2.G0_PG2", "Fetch2.INT", "l2_brnch"
"FETCH3", "OR", "ORL2_arlog_codes", "9", "Fetch2.XOR", "Fetch2.OR", "Fetch2.AND", "Fetch2.SUB", "Fetch2.ADD", "Fetch2.STW", "Fetch2.STB", "Fetch2.LDW", "Fetch2.LDB", "ORL2_arlog_codes_0"
"FETCH3", "OR", "ORL2_arlog_addressModes", "2", "Fetch2.regdir", "Fetch2.regind", "ORL2_arlog_addressModes_0"
"FETCH3", "OR", "ORL3_jump", "2", "Fetch2.JSR", "Fetch2.JMP", "L3_jump"
"FETCH3", "OR", "ORL3_arlog_codes", "6", "Fetch2.XOR", "Fetch2.OR", "Fetch2.AND", "Fetch2.SUB", "Fetch2.ADD", "Fetch2.LDB", "ORL3_arlog_codes_0"
"FETCH3", "OR", "ORL3_arlog_addressModes", "1", "Fetch2.imm", "ORL3_arlog_addressModes_0"
"FETCH3", "OR", "ORstore", "2", "Fetch2.STB", "Fetch2.STW", "store"
"FETCH3", "AND", "ANDgradr", "2", "ORgradr_0", "ORgradrMode_0", "gradr"
"FETCH3", "AND", "ANDL2_arlog", "2", "ORL2_arlog_codes_0", "ORL2_arlog_addressModes_0", "L2_arlog"
"FETCH3", "AND", "ANDL3_arlog", "2", "ORL3_arlog_codes_0", "ORL3_arlog_addressModes_0", "L3_arlog"
// "FETCH3", "SPLIT", "SIBUS1", "16", "Bus1.IBUS1", "N0", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9", "N10", "N11", "N12", "N13", "N14", "N15"

// U jednom redu se nalazi konfiguracija za jedno logicko kolo. Konfiguracija je data po istom foramtu kao i za prethodne stepene.
// Dozvoljeno je postaviti parametar sa brojem ulaznih pinova za jedno OR logicko kolo, kao i imenovati ulazne signale povezane na svaki pin tok logickog OR kola
// Nije dozvoljeno dodavati nove komponente, preimenovati postojece komponente, niti menjati naziv izlaznim pinovaima.
// primer konfiguracija exec3 jedinice
"EXEC3", "OR", "NZOR", "18", "Fetch2.LDB", "Fetch2.POPB", "Fetch2.ADD", "Fetch2.SUB", "Fetch2.INC", "Fetch2.DEC", "Fetch2.AND", "Fetch2.OR", "Fetch2.XOR", "Fetch2.NOT", "Fetch2.ASR", "Fetch2.LSR", "Fetch2.ROR", "Fetch2.RORC", "Fetch2.ASL", "Fetch2.LSL", "Fetch2.ROL", "Fetch2.ROLC", "NZOR"

// U jednom redu se nalazi konfiguracija za jedan uslov visestrukog uslovnog skoka kod koda operacije 
// Konfiguracija za logicko kolo se zadaje po formatu: Naziv jedinice ("KMOPR1"), Naziv logickog uslova za visestruki uslovni skok ("Fetch2.NOP"),
// Adresa u mikroprogramskoj memoriji ("62"). Adresa u mikroprogramskoj memoriji moze biti  data kao decimalna ili heksadecimalna vrednost. 
// Decemalna vrednost sadrzi samo decimalne cifre, dok heksadecimalna vrednost sadrzi heksadecimalne cifre i zavrsava se slovom "h";
// Broj ulaza nije ogranicen
// primer konfiguracija kmopr1 jedinice
"KMOPR1", "Fetch2.NOP", "62"
"KMOPR1", "Fetch2.HALT", "63"
"KMOPR1", "Fetch2.INTD", "64"
"KMOPR1", "Fetch2.INTE", "65"
"KMOPR1", "Fetch2.TRPD", "66"
"KMOPR1", "Fetch2.TRPE", "67"
"KMOPR1", "Fetch2.LDB", "68"
"KMOPR1", "Fetch2.LDW", "70"
"KMOPR1", "Fetch2.STB", "71"
"KMOPR1", "Fetch2.STW", "77"
"KMOPR1", "Fetch2.POPB", "86"
"KMOPR1", "Fetch2.POPW", "91"
"KMOPR1", "Fetch2.PUSHB", "99"
"KMOPR1", "Fetch2.PUSHW", "104"
"KMOPR1", "Fetch2.LDIVTP", "113"
"KMOPR1", "Fetch2.STIVTP", "114"
"KMOPR1", "Fetch2.LDIMR", "115"
"KMOPR1", "Fetch2.STIMR", "116"
"KMOPR1", "Fetch2.LDSP", "117"
"KMOPR1", "Fetch2.STSP", "118"
"KMOPR1", "Fetch2.ADD", "119"
"KMOPR1", "Fetch2.SUB", "121"
"KMOPR1", "Fetch2.INC", "123"
"KMOPR1", "Fetch2.DEC", "125"
"KMOPR1", "Fetch2.AND", "127"
"KMOPR1", "Fetch2.OR", "129"
"KMOPR1", "Fetch2.XOR", "131"
"KMOPR1", "Fetch2.NOT", "133"
"KMOPR1", "Fetch2.ASR", "135"
"KMOPR1", "Fetch2.LSR", "135"
"KMOPR1", "Fetch2.ROR", "135"
"KMOPR1", "Fetch2.RORC", "135"
"KMOPR1", "Fetch2.ASL", "137"
"KMOPR1", "Fetch2.LSL", "137"
"KMOPR1", "Fetch2.ROL", "137"
"KMOPR1", "Fetch2.ROLC", "137"
"KMOPR1", "Fetch2.BEQL", "139"
"KMOPR1", "Fetch2.BNEQL", "139"
"KMOPR1", "Fetch2.BNEG", "139"
"KMOPR1", "Fetch2.BNNEG", "139"
"KMOPR1", "Fetch2.BOVF", "139"
"KMOPR1", "Fetch2.BNOVF", "139"
"KMOPR1", "Fetch2.BCAR", "139"
"KMOPR1", "Fetch2.BNCAR", "139"
"KMOPR1", "Fetch2.BGRT", "139"
"KMOPR1", "Fetch2.BGRTE", "139"
"KMOPR1", "Fetch2.BLSS", "139"
"KMOPR1", "Fetch2.BLSSE", "139"
"KMOPR1", "Fetch2.BGRTU", "139"
"KMOPR1", "Fetch2.BGRTEU", "139"
"KMOPR1", "Fetch2.BLSSU", "139"
"KMOPR1", "Fetch2.BLSSEU", "139"
"KMOPR1", "Fetch2.JMP", "141"
"KMOPR1", "Fetch2.INT", "142"
"KMOPR1", "Fetch2.JSR", "143"
"KMOPR1", "Fetch2.RTS", "152"
"KMOPR1", "Fetch2.RTI", "160"

// U jednom redu se nalazi konfiguracija za jedan uslov visestrukog uslovnog skoka kod nacina adresiranja
// Konfiguracija za logicko kolo se zadaje po formatu: Naziv jedinice ("KMADR1"), Naziv logickog uslova za visestruki uslovni skok ("Fetch2.regdir"), Adresa u mikroprogramskoj memoriji ("26"). Adresa u mikroprogramskoj memoriji moze biti  data kao decimalna ili heksadecimalna vrednost. Decemalna vrednost sadrzi samo decimalne cifre, dok heksadecimalna vrednost sadrzi heksadecimalne cifre i zavrsava se slovom "h";
// Broj ulaza nije ogranicen
// primer konfiguracija kmadr1 jedinice
"KMADR1", "Fetch2.regdir", "26"
"KMADR1", "Fetch2.regind", "30"
"KMADR1", "Fetch2.memdir", "32"
"KMADR1", "Fetch2.memind", "34"
"KMADR1", "Fetch2.regindpom", "43"
"KMADR1", "Fetch2.bxpom", "45"
"KMADR1", "Fetch2.pcpom", "48"
"KMADR1", "Fetch2.imm", "58"

// U jednom redu se nalazi konfiguracija za jedan izlaz dekodera u jedinici "Signali upravljacke jedinice"
// Konfiguracija jednog izlaza se zadaje po formatu: Naziv jedinice ("CONTRODC"), Izlaz dekodera koji se pozmatra ("2"), Uslov koji se posmatra ("Exec2.START"), Koplementarna vrednost ("#")
// Dozvoljene vrednost za: izlaz dekodera koji se posmatra [0-31]
// neki izlaza treba da imaju sledece nazive: next (preporuka da bude 0), br, bradr, bropr
//	uslov koji se posmatra - pinovi definisani u ostalim jedinicama
//	komplementarna vrednost - "" ako se ne komplementira i "#" ako se komplementira
// ukoliko su polje za uslov koji se posmatra i komplementarna vrednost onda trece polje predstavlja naziv signala
// primer konfiguracija CONTRODC jedinice
"CONTRODC", "0", "", "", "next" 
"CONTRODC", "1", "", "", "br"
"CONTRODC", "2", "Exec2.START", "#"
"CONTRODC", "3", "Bus1.hack", ""
"CONTRODC", "4", "Bus1.fcCPU", "#"
"CONTRODC", "5", "Fetch3.gropr", "#"
"CONTRODC", "6", "Fetch3.l1", ""
"CONTRODC", "7", "Fetch3.gradr", "#"
"CONTRODC", "8", "Fetch3.l2_brnch", ""
"CONTRODC", "9", "Fetch3.l2_arlog", ""
"CONTRODC", "10", "Fetch3.l3_jump", ""
"CONTRODC", "11", "Fetch3.l3_arlog", ""
"CONTRODC", "12", "Fetch3.store", ""
"CONTRODC", "13", "Fetch2.LDW", ""
"CONTRODC", "14", "Fetch2.regdir", ""
"CONTRODC", "15", "Exec4.brpom", "#"
"CONTRODC", "16", "Intr1.prekid", "#"
"CONTRODC", "17", "Intr1.PRINS", "#"
"CONTRODC", "18", "Intr1.PRCOD", "#"
"CONTRODC", "19", "Intr1.PRADR", "#"
"CONTRODC", "20", "Intr1.PRINM", "#"
"CONTRODC", "21", "Intr2.printr", "#"
"CONTRODC", "22", "", "", "bradr"
"CONTRODC", "23", "", "", "bropr"
