Continue Discussion 10 replies
Sep '14

power_uvm_ifb Imported from Blogger

Nice post! Thank you for introducing me to interface classes. Somehow I missed this in the new LRM… :slight_smile:

Sep '14

power_uvm_ifb Imported from Blogger

I found this section in the LRM interesting as well:

interface class IntfClass;
pure virtual function bit funcBase();
pure virtual function bit funcExt();
endclass
class BaseClass;
virtual function bit funcBase();
return (1);
endfunction
endclass
class ExtClass extends BaseClass implements IntfClass;
virtual function bit funcExt();
return (0);
endfunction
endclass
ExtClass fulfills its requirement to implement IntfClass by providing an implementation of funcExt
and by inheriting an implementation of funcBase from BaseClass.

This would allow you to write a library of ~implementations~ of an interface class. Then the implementation class can pull off the shelf which implementation it wants to use (or “extend” from)!

Jan '15

anonymous_ifb Imported from Blogger

Thank you for the article. I came across one more class “process class” in SV, which is used to monitor the progress of threads generated using fork.

1 reply
Jan '15 ▶ anonymous_ifb

TudorTimi Verification Gentleman

I wouldn’t call the ‘process’ class another type of class. It’s just a built in class, not a different class construct. Nevertheless, I’ll keep it in mind and maybe we’ll see a post on working with processes in the future.

Mar '15

ankit_gopani_ifb Imported from Blogger

Hi Tudor,

Thanks for reading my blog post “ASIC with Ankit: Class - The Classic Feature - Part II” and thanks for touching up on interface class. This is a nice post with useful and required information. Thanks for sharing !

Thanks,
ASIC With Ankit

Oct '15

dhairya_ifb Imported from Blogger

Awesome post Tudor… This has great clarity on interface class…

Jul '16

justrajdeep_ifb Imported from Blogger

Hi Tudor,
Nice post.

Quick question:
Can this abstract class be passed using config db from the module ?

1 reply
Jul '16 ▶ justrajdeep_ifb

TudorTimi Verification Gentleman

I think you mean doing a uvm_config_db #(some_interface_class)::set(…), right? I’m pretty sure this should be possible.

May '18

ajeeth_ifb Imported from Blogger

Tudor,
I notice that the ‘driver’ class and ‘insurer’ class encapsulates the interface classes drivable_if and insurable interface respectively. Is this always needed? If so, could you please throw some more light as to why?

1 reply
Jun '20 ▶ ajeeth_ifb

TudorTimi Verification Gentleman

The don’t encapsulate the interfaces. They implement them.