UVM Factory機制的應用
在Reference model/Scoreboard/Subscriber中,當我們拿到一個Transaction之後,可能需要做$cast(tr, temp.clone())操作,但是有時候經過該運算后,tr中的member都變成0,這是什麼原因呢?
主要是因為沒有把相因的成員變量註冊到Factory中。
一般地,在transaction定義的class中,我們應該要把所有的成員變量都使用field automation機制進行註冊。
將成員變量註冊到Factory中之後,就可以使用以下常用的function:
- compare()
- copy()
- pack_bytes()
- unpack_bytes()
- pack()
- unpack()
- pack_ints()
- unpack_ints()
- print()