Skip to content
Snippets Groups Projects
Commit 68748b68 authored by Pepping's avatar Pepping
Browse files

Chaned the constructor so it can also be called without reading a file...

Chaned the constructor so it can also be called without reading a file directly from file. A mmm_conf can now also be generated using the methods add_peripheral and add_input_clk 
parent c43b6b30
No related branches found
No related tags found
No related merge requests found
...@@ -41,13 +41,26 @@ peripherals_vhdl2python = { 'reg_wdi' : "reg_wdi",\ ...@@ -41,13 +41,26 @@ peripherals_vhdl2python = { 'reg_wdi' : "reg_wdi",\
class MmmConfig: class MmmConfig:
def __init__(self, mmmRootDir = os.environ['RADIOHDL'], mmmFileName='mmm.cfg', mmmLibraryName=''): def __init__(self, mmmRootDir = os.environ['RADIOHDL'], mmmFileName='', mmmLibraryName=''):
""" """
""" """
self.mmmRootDir = mmmRootDir self.mmmRootDir = mmmRootDir
self.mmmFileName = mmmFileName self.mmmFileName = mmmFileName
self.mmmLibraryName = mmmLibraryName self.mmmLibraryName = mmmLibraryName
# mmm config files self.peripherals = []
self.input_clks = []
self.board_select = 'unb1'
self.designName = ''
self.mmmName = ''
self.VhdlOutputPath = ''
self.VhdlFileName = ''
self.QsysName = ''
self.QsysFileName = ''
self.custom_peripherals = []
self.board_peripherals = []
# mmm config from files
if self.mmmFileName != '':
self.mmm = common_dict_file.CommonDictFile(mmmRootDir, mmmFileName) # library dict files self.mmm = common_dict_file.CommonDictFile(mmmRootDir, mmmFileName) # library dict files
if self.mmm.nof_dicts==0: sys.exit('Error : No mmm config file found') if self.mmm.nof_dicts==0: sys.exit('Error : No mmm config file found')
if self.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified'); if self.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified');
...@@ -57,6 +70,15 @@ class MmmConfig: ...@@ -57,6 +70,15 @@ class MmmConfig:
if name == mmmLibraryName: if name == mmmLibraryName:
self.mmm.remove_all_but_the_dict_from_list(d) self.mmm.remove_all_but_the_dict_from_list(d)
self.designName = self.mmm.get_key_values('mmm_name')
self.mmmName = "mmm_" + self.mmm.get_key_values('mmm_name')
self.VhdlOutputPath = cm.expand_file_path_name(self.mmm.get_key_values('vhdl_output_path'), self.mmm.filePaths[0])
self.VhdlFileName = self.mmmName + '.vhd'
self.QsysName = "qsys_" + self.designName
self.QsysFileName = self.QsysName + '.vhd'
self.input_clks = self.mmm.get_key_values('input_clks')
self.custom_peripherals_temp = self.mmm.get_key_values('custom_peripherals').split()
self.custom_peripherals = self.chunks(self.custom_peripherals_temp, 3)
self.board_select = self.mmm.get_key_values('board_select') self.board_select = self.mmm.get_key_values('board_select')
if self.board_select == 'unb1': if self.board_select == 'unb1':
...@@ -67,18 +89,15 @@ class MmmConfig: ...@@ -67,18 +89,15 @@ class MmmConfig:
self.board_peripherals_dict = self.mmm.read_dict_file(self.board_peripherals_path , ' ') self.board_peripherals_dict = self.mmm.read_dict_file(self.board_peripherals_path , ' ')
self.board_peripherals = self.chunks(self.mmm.get_key_values('board_peripherals', dicts=self.board_peripherals_dict).split(), 3) self.board_peripherals = self.chunks(self.mmm.get_key_values('board_peripherals', dicts=self.board_peripherals_dict).split(), 3)
# Keep list of HDL library names
self.designName = self.mmm.get_key_values('mmm_name')
self.mmmName = "mmm_" + self.mmm.get_key_values('mmm_name')
self.VhdlOutputPath = cm.expand_file_path_name(self.mmm.get_key_values('vhdl_output_path'), self.mmm.filePaths[0])
self.VhdlFileName = self.mmmName + '.vhd'
self.QsysName = "qsys_" + self.designName
self.QsysFileName = self.QsysName + '.vhd'
self.input_clks = self.mmm.get_key_values('input_clks')
self.custom_peripherals_temp = self.mmm.get_key_values('custom_peripherals').split()
self.custom_peripherals = self.chunks(self.custom_peripherals_temp, 3)
self.peripherals = self.board_peripherals + self.custom_peripherals self.peripherals = self.board_peripherals + self.custom_peripherals
def add_peripheral(self, peripheral):
self.custom_peripherals.append(peripheral)
self.peripherals = self.board_peripherals + self.custom_peripherals
def add_input_clk(self, input_clk):
self.input_clks.append(input_clk)
def chunks(self, l, n): def chunks(self, l, n):
n = max(1, n) n = max(1, n)
return [l[i:i + n] for i in range(0, len(l), n)] return [l[i:i + n] for i in range(0, len(l), n)]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment