Line 187... |
Line 187... |
serr_if( ifc == nil,
|
serr_if( ifc == nil,
|
'Interface not defined',
|
'Interface not defined',
|
instance: @name+":"+ifc_name.to_s )
|
instance: @name+":"+ifc_name.to_s )
|
|
|
serr_if( !ifc.is_a?( SOCMaker::IfcDef ),
|
serr_if( !ifc.is_a?( SOCMaker::IfcDef ),
|
'Interface definition is not SOCMaker::IfcDef (use SOCM_IFC)',
|
'Interface definition is not SOCMaker::IfcDef (please use SOCM_IFC)',
|
instance: @name+":"+ifc_name.to_s )
|
instance: @name+":"+ifc_name.to_s )
|
end
|
end
|
|
|
# check instance parameters
|
# check instance parameters
|
@inst_parameters.each do |name, param |
|
@inst_parameters.each do |name, param |
|
serr_if( param == nil,
|
serr_if( param == nil,
|
'Instance parameter not defined',
|
'Instance parameter not defined',
|
instance: @name+":"+name.to_s )
|
instance: @name+":"+name.to_s )
|
|
|
serr_if( !param.is_a?( SOCMaker::Parameter ),
|
serr_if( !param.is_a?( SOCMaker::Parameter ),
|
'Instance parameter not SOCMaker::Parameter (use SOCM_PARAM)',
|
'Instance parameter not SOCMaker::Parameter (please use SOCM_PARAM)',
|
instance: @name+":"+name.to_s )
|
instance: @name+":"+name.to_s )
|
end
|
end
|
|
|
# check instance parameters
|
# check instance parameters
|
@static_parameters.each do |name, sparam |
|
@static_parameters.each do |name, sparam |
|
serr_if( sparam == nil,
|
serr_if( sparam == nil,
|
'Static parameter not defined',
|
'Static parameter not defined',
|
instance: @name+":"+name.to_s )
|
instance: @name+":"+name.to_s )
|
|
|
serr_if( !sparam.is_a?( SOCMaker::SParameter ),
|
serr_if( !sparam.is_a?( SOCMaker::SParameter ),
|
'Static parameter not SOCMaker::Parameter (use SOCM_SPARAM)',
|
'Static parameter not SOCMaker::Parameter (please use SOCM_SPARAM)',
|
instance: @name+":"+name.to_s )
|
instance: @name+":"+name.to_s )
|
end
|
end
|
|
|
|
end
|
|
|
|
|
|
def consistency_check
|
|
|
end
|
end
|
|
|
|
|
def get_files
|
def get_files
|
Line 319... |
Line 321... |
|
|
end
|
end
|
|
|
end
|
end
|
|
|
def implements_port?( ifc_name, port_spec_name )
|
|
tmp = @interfaces[ ifc_name.to_sym ].
|
|
ports.select{ |key,hash| hash.defn == port_spec_name.to_s }.keys
|
|
|
|
perr_if( tmp.size > 1,
|
|
"The port #{port_spec_name} of interface #{ifc_name} is implemented
|
|
multiple times" )
|
|
|
|
return tmp.size == 1
|
|
end
|
# def implements_port?( ifc_name, port_spec_name )
|
|
# tmp = @interfaces[ ifc_name.to_sym ].
|
|
# ports.select{ |key,hash| hash.defn == port_spec_name.to_s }.keys
|
|
|
|
# perr_if( tmp.size > 1,
|
|
# "The port #{port_spec_name} of interface #{ifc_name} is implemented
|
|
# multiple times" )
|
|
|
|
# return tmp.size == 1
|
|
# end
|
|
|
def param_ok?( param_name, param_value )
|
def param_ok?( param_name, param_value )
|
param = inst_parameters[ param_name.to_sym ]
|
param = inst_parameters[ param_name.to_sym ]
|
param = static_parameters[ param_name.to_sym ] if param == nil
|
param = static_parameters[ param_name.to_sym ] if param == nil
|
return false if param == nil
|
return false if param == nil
|
end
|
end
|
|
|
|
|
|
|
def verify( is_soc = false )
|
|
|
|
# check interfaces
|
|
@interfaces.each do |ifc_name, ifc|
|
|
ifc.verify
|
|
end
|
|
|
|
# check instance parameters
|
|
@inst_parameters.each do |name, param |
|
|
param.verify
|
|
end
|
|
|
|
# check instance parameters
|
|
@static_parameters.each do |name, sparam |
|
|
sparam.verify
|
|
end
|
|
|
|
end
|
|
|
|
def ==(o)
|
def ==(o)
|
|
|
tmp = ( o.class == self.class )
|
tmp = ( o.class == self.class )
|
return tmp if !tmp
|
return tmp if !tmp
|
|
|