Class: SystemRDL::Evaluator::MemDefinition

Inherits:
ComponentDefinition show all
Includes:
BlockComponent, InstTypeAwareComponent
Defined in:
lib/systemrdl/evaluator/mem.rb

Instance Attribute Summary

Attributes inherited from ComponentDefinition

#definitions, #id

Attributes included from Common

#component, #parent, #token_range

Instance Method Summary collapse

Methods inherited from ComponentDefinition

#assign_default_property, #connect, #create_instances, #evaluate, #find_default_property, #initialize, #upper_layers

Methods included from Common

#connect, #initialize

Constructor Details

This class inherits a constructor from SystemRDL::Evaluator::ComponentDefinition

Instance Method Details

#finalize(instance) ⇒ Object



20
21
22
23
24
25
# File 'lib/systemrdl/evaluator/mem.rb', line 20

def finalize(instance)
  check_virtual_field_pos(instance)
  allocate_addresses(instance)
  check_address_operations(instance)
  check_reg_size(instance)
end

#layerObject



27
28
29
# File 'lib/systemrdl/evaluator/mem.rb', line 27

def layer
  :mem
end

#revalidate(instance) ⇒ Object



16
17
18
# File 'lib/systemrdl/evaluator/mem.rb', line 16

def revalidate(instance)
  check_virtual_field_sw(instance)
end

#support_inst_type?(inst_type) ⇒ Boolean

Returns:



31
32
33
# File 'lib/systemrdl/evaluator/mem.rb', line 31

def support_inst_type?(inst_type)
  inst_type == :external
end

#validate(instance) ⇒ Object



9
10
11
12
13
14
# File 'lib/systemrdl/evaluator/mem.rb', line 9

def validate(instance)
  check_positive_value(instance, :mementries)
  check_memwidth(instance)
  check_regwidth(instance)
  check_virtual_field_sw(instance)
end