Edit code - EDA Playground
Warning! This exercise has been opened in another tab; autosave has been disabled. Close this tab or refresh to reactivate.

 Languages & Libraries

 Tools & Simulators

 Examples

209


67
 
1
// Code your testbench here
2
3
interface some_interface();
4
  bit clk;
5
  logic some_signal;
6
  
7
  modport master(input clk, output some_signal);
8
  modport slave(input clk, input some_signal);
9
endinterface
10
11
12
package some_package;
13
  
14
  class some_master_class;
15
    virtual some_interface vif;
16
    
17
    task do_something();
18
      @(posedge vif.master.clk);
19
      vif.master.some_signal <= 1;
20
      
21
      @(posedge vif.master.clk);
22
      vif.master.some_signal <= 0;
23
    endtask
24
  endclass
25
  
26
  
27
  class some_slave_class;
28
    virtual some_interface vif;
29
    
30
    task do_something();
31
      forever @(posedge vif.slave.clk);
32
        $display("some_signal = ", vif.slave.some_signal);
33
    endtask
34
  endclass  
35
  
36
endpackage
37
38
39
module top();
40
41
  import some_package::*;
42
43
  some_interface my_if();
44
  
45
  bit clk;
46
  always #1 clk = ~clk;
47
  
48
  assign my_if.clk = clk;
49
50
51
  initial begin
52
    some_master_class master = new();
53
    some_slave_class slave = new();
54
    
55
    master.vif = my_if;
56
    slave.vif = my_if;
57
    
58
    fork
59
      master.do_something();
60
      slave.do_something();
61
    join_any
62
    
63
    $finish();
64
  end
65
66
endmodule
67
xxxxxxxxxx
1
 
1
// Code your design here
2
303 views and 0 likes     
A short description will be helpful for you to remember your playground's details
 
100:0