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.



2523
2524
2525
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2523

def initialize(sequencer)
  @sequencer = sequencer
end

Instance Method Details

#to_cObject

Convert to C code.



2544
2545
2546
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2544

def to_c
  return "yield();"
end

#to_rubyObject

Convert to Ruby code.



2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 2528

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