Class: HDL::SchemaChip::Evaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/hdl/chip/schema_chip/evaluator.rb

Instance Method Summary collapse

Constructor Details

#initialize(chip, schema) ⇒ Evaluator

Returns a new instance of Evaluator.



3
4
5
6
7
8
9
10
# File 'lib/hdl/chip/schema_chip/evaluator.rb', line 3

def initialize(chip, schema)
  @chip   = chip
  @schema = schema
  @parts  = partition_io
  @order  = evaluation_order(@parts, chip.inputs)

  check_multi_internal!
end

Instance Method Details

#evaluate(pins) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/hdl/chip/schema_chip/evaluator.rb', line 12

def evaluate(pins)
  results = @order.inject(pins) do |known_pins, i|
    known_pins.merge(evaluate_line(@parts[i], known_pins))
  end

  filter_outputs(results)
end