| //- @BaseClass defines/binding BaseClass |
| virtual class BaseClass; |
| //- @data defines/binding Data |
| //- Data childof BaseClass |
| int data; |
| |
| //- @f1 defines/binding F1 |
| //- F1 childof BaseClass |
| //- F1.complete incomplete |
| //- @x1 defines/binding _ |
| extern task f1(int x1); |
| |
| //- @getData defines/binding GetData1 |
| //- GetData1 childof BaseClass |
| //- GetData1.complete incomplete |
| //- @x defines/binding X |
| //- X childof GetData1 |
| //- @y defines/binding Y |
| //- Y childof GetData1 |
| pure virtual task getData(int x, int y); |
| endclass |
| |
| //- @ChildClass defines/binding ChildClass |
| //- ChildClass extends BaseClass |
| class ChildClass extends BaseClass; |
| //- @getData defines/binding GetData |
| //- GetData overrides GetData1 |
| //- GetData childof ChildClass |
| //- GetData.complete definition |
| //- @x defines/binding X1 |
| //- X1 childof GetData |
| //- @y defines/binding Y1 |
| //- Y1 childof GetData |
| virtual task getData(int x, int y); |
| //- @data ref Data |
| data = 15; |
| endtask |
| endclass |
| |
| //- @tb defines/binding TB |
| module tb(); |
| //- @ChildClass ref ChildClass |
| //- @child defines/binding Child |
| //- Child childof TB |
| ChildClass child; |
| initial begin |
| //- @child ref Child |
| child = new(); |
| //- @getData ref GetData |
| //- @child ref Child |
| child.getData(1, 2); |
| end |
| endmodule |