def displaySimTime index
  puts "Line #{index} : Simulation time is #{Vpi::simulation_time}"
end

def atXEdge aHandle
  wait until aHandle.anyedge?
end

def atPosEdge aHandle
  wait until aHandle.posedge?
end

def atNegEdge aHandle
  wait until aHandle.negedge?
end


top  = Cadd_tb2
clk0 = top.clk0
clk1 = top.clk1

always do # t0
  atXEdge(clk0)
  displaySimTime "#{__LINE__} : clk0 = #{clk0.intVal} (anyedge)"
  wait
end

always do # t1
  atXEdge(clk0)
  displaySimTime "#{__LINE__} : clk0 = #{clk0.intVal} (anyedge)"
  wait
end

always do # t2
  atPosEdge(clk1)
  displaySimTime "#{__LINE__} : clk1 = #{clk1.intVal} (posedge)"
  wait
end

always do # t3
  atNegEdge(clk1)
  displaySimTime "#{__LINE__} : clk1 = #{clk1.intVal} (negedge)"
  wait
end

always do # t4
  wait 11
  displaySimTime "#{__LINE__}"
end


wait 80
displaySimTime "#{__LINE__}"
finish
