diff --git a/tools/oneclick/base/mmm_config.py b/tools/oneclick/base/mmm_config.py index a7e9b70a78076203ffce8903d879cc8b9b601b67..e0062541dd16e963f1865eaf16908a43057dd3e7 100644 --- a/tools/oneclick/base/mmm_config.py +++ b/tools/oneclick/base/mmm_config.py @@ -41,43 +41,62 @@ peripherals_vhdl2python = { 'reg_wdi' : "reg_wdi",\ 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.mmmFileName = mmmFileName - self.mmmLibraryName = mmmLibraryName - # mmm config 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.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified'); + self.mmmRootDir = mmmRootDir + self.mmmFileName = mmmFileName + self.mmmLibraryName = mmmLibraryName + 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 = [] - for d in self.mmm.dicts: - name = self.mmm.get_key_value('mmm_name', d) - if name == mmmLibraryName: - self.mmm.remove_all_but_the_dict_from_list(d) - - self.board_select = self.mmm.get_key_values('board_select') - - if self.board_select == 'unb1': - self.board_peripherals_path = mmmRootDir + "/boards/uniboard1/libraries/unb1_board/unb1_board_peripherals.cfg" - elif self.board_select == 'unb2': - self.board_peripherals_path = mmmRootDir + "/boards/uniboard2/libraries/unb2_board/unb2_board_peripherals.cfg" - - 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) - - # 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 + # mmm config from files + if self.mmmFileName != '': + 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.mmmLibraryName=='': sys.exit('Error: No mmmLibraryName specified'); + + for d in self.mmm.dicts: + name = self.mmm.get_key_value('mmm_name', d) + if name == mmmLibraryName: + 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') + + if self.board_select == 'unb1': + self.board_peripherals_path = mmmRootDir + "/boards/uniboard1/libraries/unb1_board/unb1_board_peripherals.cfg" + elif self.board_select == 'unb2': + self.board_peripherals_path = mmmRootDir + "/boards/uniboard2/libraries/unb2_board/unb2_board_peripherals.cfg" + + 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.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): n = max(1, n)