def __init__(self, filepath):
self._filepath = os.path.abspath(filepath)
tree = ElementTree().parse(self._filepath)
self._signature = tree.find("SignatureRegister").text.upper()
project = tree.find("Project")
nifpga = project.find("CompilationResultsTree") \
.find("CompilationResults") \
.find("NiFpga")
self._base_address_on_device = int(nifpga.find("BaseAddressOnDevice").text)
self._registers = {}
for reg_xml in tree.find("VI").find("RegisterList"):
reg = Register(reg_xml)
if reg.datatype is not None:
assert reg.name not in self._registers, \
"One or more registers have the same name '%s', this is not supported" % reg.name
self._registers[reg.name] = reg
self._fifos = {}
for channel_xml in nifpga.find("DmaChannelAllocationList"):
fifo = Fifo(channel_xml)
self._fifos[fifo.name] = fifo
评论列表
文章目录