return "{}({})".format(self.__class__.__name__, repr(self.info))
-def _lookup(description, name, number):
+def _lookup(description, name, number, loose=True):
for resource in description:
if resource[0] == name and (number is None or resource[1] == number):
return resource
- raise ConstraintError("Resource not found: {}:{}".format(name, number))
+ if loose:
+ return None
+ else:
+ raise ConstraintError("Resource not found: {}:{}".format(name, number))
def _resource_type(resource):
def add_extension(self, io):
self.available.extend(io)
- def request(self, name, number=None):
- resource = _lookup(self.available, name, number)
+ def request(self, name, number=None, loose=False):
+ resource = _lookup(self.available, name, number, loose)
+ if resource is None:
+ return None
rt, ri = _resource_type(resource)
if number is None:
resource_name = name
,.inst_ram_els_p(num_cce_instr_ram_els_p)
,.skip_ram_init_p(skip_init_p)
,.clear_freeze_p(!load_nbf_p)
+ ,.cce_ucode_filename_p("/tmp/cce_ucode.mem")
)
cfg_loader
(.clk_i(clk_i)
,.io_resp_ready_o(cfg_resp_ready_lo)
,.done_o(cfg_done_lo)
+
);
// CFG and NBF are mutex, so we can just use fixed arbitration here
from liteeth.frontend.etherbone import LiteEthEtherbone
# Core
ethcore = LiteEthUDPIPCore(
- phy = self.ethphy,
+ phy = phy,
mac_address = mac_address,
ip_address = ip_address,
clk_freq = self.clk_freq)