Class: RubyHDL::High::Sync

Inherits:
Statement show all
Defined in:
lib/HDLRuby/std/sequencer_sw.rb

Overview

Describes a SW synchronization of a signal.

Instance Method Summary collapse

Methods inherited from Statement

#each_statement, #each_statement_deep

Constructor Details

#initialize(sequencer) ⇒ Sync

Returns a new instance of Sync.



2755
2756
2757
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2755

def initialize(sequencer)
  @sequencer = sequencer
end

Instance Method Details

#to_cObject

Convert to C code.



2776
2777
2778
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2776

def to_c
  return "yield();"
end

#to_python(l = "") ⇒ Object

Convert to Python code.



2781
2782
2783
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2781

def to_python(l = "")
  return "#{l}yield()"
end

#to_rubyObject

Convert to Ruby code.



2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2760

def to_ruby
  # Update the inputs and outputs.
  res = ""
  RubyHDL::High.global_sblock.each_signal do |signal|
    case signal.dir
    when :input
      res << signal.to_ruby + " = RubyHDL.#{signal.name}\n"
    when :output
      res << "RubyHDL.#{signal.name} = " + signal.to_ruby + "\n"
    end
  end
  res << "Fiber.yield"
  return res
end