efinix: read pll names from database
This commit is contained in:
parent
1fd99b366a
commit
f426872e0c
|
@ -80,6 +80,21 @@ class EfinixDbParser():
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_block_instance_names(self, block):
|
||||||
|
dmap = self.get_device_map(self.device)
|
||||||
|
die = self.get_die_file_name(dmap)
|
||||||
|
tree = et.parse(self.efinity_db_path + 'die/' + die)
|
||||||
|
root = tree.getroot()
|
||||||
|
|
||||||
|
peri = root.findall('efxpt:periphery_instance', namespaces)
|
||||||
|
names = []
|
||||||
|
for p in peri:
|
||||||
|
if p.get('block') == block:
|
||||||
|
names.append(p.get('name'))
|
||||||
|
|
||||||
|
print(f"block {block}: names:{names}")
|
||||||
|
return names
|
||||||
|
|
||||||
def get_pll_inst_from_gpio_inst(self, dmap, inst):
|
def get_pll_inst_from_gpio_inst(self, dmap, inst):
|
||||||
die = self.get_die_file_name(dmap)
|
die = self.get_die_file_name(dmap)
|
||||||
tree = et.parse(self.efinity_db_path + 'die/' + die)
|
tree = et.parse(self.efinity_db_path + 'die/' + die)
|
||||||
|
|
|
@ -22,9 +22,6 @@ class EfinixPlatform(GenericPlatform):
|
||||||
self.timing_model = self.device[-2:]
|
self.timing_model = self.device[-2:]
|
||||||
self.device = self.device[:-2]
|
self.device = self.device[:-2]
|
||||||
|
|
||||||
self.pll_available = ['PLL_TL0', 'PLL_TR0', 'PLL_TR1', 'PLL_TR2', 'PLL_TR3', 'PLL_BR0', 'PLL_BR1', 'PLL_BR2', 'PLL_BL0']
|
|
||||||
self.pll_used = []
|
|
||||||
|
|
||||||
if os.getenv("LITEX_ENV_EFINITY", False) == False:
|
if os.getenv("LITEX_ENV_EFINITY", False) == False:
|
||||||
msg = "Unable to find or source Efinity toolchain, please either:\n"
|
msg = "Unable to find or source Efinity toolchain, please either:\n"
|
||||||
msg += "- Set LITEX_ENV_EFINITY environment variant to Efinity path.\n"
|
msg += "- Set LITEX_ENV_EFINITY environment variant to Efinity path.\n"
|
||||||
|
@ -40,6 +37,8 @@ class EfinixPlatform(GenericPlatform):
|
||||||
raise ValueError("Unknown toolchain")
|
raise ValueError("Unknown toolchain")
|
||||||
|
|
||||||
self.parser = EfinixDbParser(self.efinity_path, self.device)
|
self.parser = EfinixDbParser(self.efinity_path, self.device)
|
||||||
|
self.pll_available = self.parser.get_block_instance_names('pll')
|
||||||
|
self.pll_used = []
|
||||||
|
|
||||||
def get_verilog(self, *args, special_overrides=dict(), **kwargs):
|
def get_verilog(self, *args, special_overrides=dict(), **kwargs):
|
||||||
so = dict(common.efinix_special_overrides)
|
so = dict(common.efinix_special_overrides)
|
||||||
|
|
Loading…
Reference in New Issue