Получить исходную ссылку на все расширения структуры в Specman

Я знаком с командой collect в Specman, которая возвращает все расширения указанного метода. Однако show source для определенной структуры возвращает только определение базовой структуры, а не все расширения. Есть ли в Specman команда, эквивалентная collect, но для структур/юнитов?


person user3444042    schedule 06.10.2015    source источник
comment
Кстати, чтобы получить расширения метода, вы также можете использовать команду show source в виде: show source type.method.*   -  person Yuri Tsoglin    schedule 07.10.2015


Ответы (1)


в Specman нет такой команды, но поскольку e — невероятно гибкий язык, вы можете добавить любую команду, которая вам может понадобиться, используя мощные макросы e.

Например, чтобы реализовать то, что вы хотите, вы можете создать макрос, который использует механизм отражения, чтобы получить все слои желаемой структуры, а затем распечатать соответствующие исходные строки:

define <struct_collect'command> "s_collect <any>" as {
var line_num:int;
var st:rf_struct = rf_manager.get_struct_by_name("<1>");
if (st==NULL) {
    out(append("struct name does not exist : <1>"));
} else {
    for each in st.as_a(rf_like_struct).get_layers() {
        line_num=it.get_source_line_num();
        out(append("In file ",it.get_module().get_name()," line ",line_num, " : ",files.get_text_lines(it.get_module().get_full_file_name(), line_num,line_num)));

    };    
  };  
};

вы можете улучшить этот макрос, записав результаты в файл или организовать его по-другому.

Ваше здоровье

person yuvalg    schedule 06.10.2015