Univerzalna metodologija preverjanja (UVM) je priljubljen način za pomoč pri preverjanju zasnov SystemVerilog in vključuje konfiguracijski sistem ki ima na žalost nekaj težav s hitrostjo in uporabo. Rich Edelman iz Siemens EDA je napisal podroben dokument na 20 straneh na temo, kako se izogniti tem težavam, jaz pa sem ga pregledal, da bi za vas povzel poudarke. Inženirji za preverjanje uporabljajo konfiguracijsko zbirko podatkov UVM za nastavitev vrednosti, nato pa za pridobitev vrednosti pozneje v svojem preizkusu UVM. En primer nastavitve in pridobivanja vrednosti 'T' je:
uvm_config#(T)::set(scope, instance_path_name, field_name, value); uvm_config#(T)::get(scope, instance_path_name, field_name, value);
Pri povezovanju preskusne naprave UVM z napravo, ki se preskuša, se uporabi konfiguracijska baza podatkov za posredovanje virtualnih vmesnikov. Pri uporabi konfiguracije UVM obstajajo tri težave:
- Velika koda, približno 2,600 vrstic kode
- Zahteva natančno ujemanje tipa, zato 'int' in 'bit' nista enaka
- Počasna koda
Razmislite o primeru počasne kode, saj lahko s tisoči klicev set() z uporabo imen z nadomestnimi znaki traja do 30 minut, da dokončate fazo 'set' in 'get'.
Rich predlaga novo rešitev za konfiguracije UVM, ki ima veliko višje hitrosti, v primerjavi z le nekaj sekundami.
Če se vaša koda UVM izogiba uporabi nadomestnih znakov in ima malo ukazov 'set', bo vaša koda delovala hitreje.
Možne rešitve za težave s konfiguracijo UVM so:
- Namesto tega uporabite globalno spremenljivko
- Uporabi konfiguracijo UVM z enim nizom()
- Uporabite konfiguracijo UVM z nekaj set()
- Uporabite konfiguracijsko drevo
- Poskusite nekaj drugega
Ta zadnji pristop poskusa nečesa drugačnega je nova rešitev, ki še naprej uporablja API set() in get(), nato pa poenostavi z odstranitvijo parametrizacije konfiguracij, odstrani prednost in odstrani spremembo algoritma iskanja. Rezultat tega novega pristopa so visoke hitrosti.
Vaš novi konfiguracijski element je definiran v izpeljanem razredu iz 'config_item', spodnji primer pa prikazuje 'int value' kot lastnost, ki se nastavlja. Za namene odpravljanja napak dodate funkcijo lepega tiskanja.
razred my_special_config_item razširja config_item; funkcija nova (ime niza = "my_special_config_item"); super.novo(ime); končna funkcija int vrednost; virtualni funkcijski niz convert2string(); return $sformatf("%s - value=%0d <%s>", get_name(), value, super.convert2string()); končna funkcija končni razred
'config_item' ima atribut imena in to ime se poišče skupaj z imenom primerka. Konfiguracijski objekt ima tudi funkcijo get_name() za vrnitev imena. Za iskanje katerega koli »instance_name.field_name« konfiguracijska zbirka podatkov uporablja asociativno polje za hitro iskanje in hitrost ustvarjanja.
Za sledljivost lahko ugotovite, kdo je nastavil ali kdo je poklical get, ker sta ime datoteke in številka vrstice polji v klicih funkcij set() in get().
set(null, "top.ab*", "SPEED", my_speed_config, `__FILE__, `__LINE__) get(null, "top.abcdmonitor1", "SPEED", speedconfig, `__FILE__, `__LINE__)
Čakalno vrsto dostopnika je mogoče natisniti med odpravljanjem napak, da vidite, kdo je poklical set() in get().
Za podporo nadomestnih znakov je treba dodati mehanizem iskanja z vsebniki. Razmislite o imenu primerka 'top.abcd*_0'.
Del imena primerka z nadomestnimi znaki se obravnava z uporabo vsebniškega drevesa namesto z asociativnim poljem.
Povzetek
Skupna raba podatkov med modulom/primerkom in svetom, ki temelji na razredu, v preizkusni napravi UVM se lahko izvede z uporabo podatkovne baze konfiguracije UVM, le bodite pozorni na upočasnitve hitrosti. Če vaša metodologija uporablja veliko konfiguracij, potem razmislite o uporabi uvedenega novega pristopa, ki ima paket, ki uporablja približno 300 vrstic kode namesto 2,600 vrstic kode v konfiguracijski datoteki zbirke podatkov UVM.
Preberite celoten dokument na 20 straneh, Izogibanje konfiguracijski norosti na enostaven način pri Siemens EDA.
Sorodni dnevniki
Delite to objavo prek:
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://semiwiki.com/eda/339885-making-uvm-faster-through-a-new-configuration-system/
- :ima
- : je
- :ne
- $GOR
- 30
- 300
- 600
- a
- O meni
- dodajte
- dodajanje
- algoritem
- Prav tako
- an
- in
- kaj
- API
- pristop
- SE
- Array
- AS
- At
- izogniti
- zaveda
- b
- BE
- ker
- počutje
- spodaj
- med
- by
- se imenuje
- poziva
- CAN
- primeru
- spremenite
- razred
- Koda
- Primerjava
- dokončanje
- konfiguracija
- Razmislite
- Posoda
- Zabojniki
- se nadaljuje
- Oblikovanje
- datum
- Baze podatkov
- opredeljen
- Izpeljano
- modeli
- podrobno
- naprava
- drugačen
- opravljeno
- med
- lahka
- Inženirji
- Eter (ETH)
- Primer
- Se razširi
- FAST
- hitreje
- Nekaj
- Področja
- file
- Najdi
- za
- iz
- polno
- funkcija
- dobili
- pridobivanje
- Globalno
- več
- pomoč
- Poudarki
- Kako
- Kako
- HTTPS
- if
- in
- vključuje
- primer
- Namesto
- vmesniki
- Uvedeno
- Vprašanja
- IT
- jpg
- samo
- Zadnja
- pozneje
- vrstica
- linije
- Pogledal
- iskanje
- veliko
- Izdelava
- ujemanje
- max širine
- Mehanizem
- Metodologija
- minut
- min
- veliko
- Ime
- Imena
- Novo
- nova rešitev
- Številka
- predmet
- of
- on
- ONE
- samo
- or
- ven
- paket
- Papir
- del
- mimo
- faza
- platon
- Platonova podatkovna inteligenca
- PlatoData
- plus
- Popular
- Prispevek
- prednost
- Težave
- nepremičnine
- predlaga
- namene
- odstrani
- odstranjevanje
- obvezna
- Rezultati
- vrnitev
- Rich
- Run
- Obseg
- sekund
- glej
- nastavite
- nastavitev
- Razstave
- Siemens
- poenostavlja
- počasi
- upočasnitve
- So
- Rešitev
- rešitve
- nekaj
- Nekaj
- hitrost
- hitrosti
- String
- Povzamemo
- Super
- podpora
- sistem
- T
- Bodite
- ob
- Test
- da
- O
- njihove
- POTEM
- Tukaj.
- te
- ta
- tisoče
- 3
- skozi
- čas
- do
- vrh
- temo
- Sledljivost
- Drevo
- poskuša
- tip
- pod
- na žalost
- Universal
- Uporaba
- uporaba
- uporablja
- uporabo
- vrednost
- Vrednote
- spremenljivka
- Preverjanje
- preverjanje
- preko
- Virtual
- način..
- ki
- WHO
- bo
- z
- svet
- Napisal
- jo
- Vaša rutina za
- zefirnet