Specman - как я могу использовать определение exp как строку в макросе?

У меня есть следующее определение (и многое другое):

define d_buff1_en_adc0_s 'LV_TOP_TB/LV_TOP_inst//CAFE_MPW_TOP_inst/D_BUFF1_en_ADC0'; 

У меня есть следующий макрос:

 define <force_and_check'action> "force_and_check <signal_f'exp> <signal_c'exp> <ip_name'exp> <val_signal_f'num> <init_val_signal_f'num>" as {
   force <signal_f'exp> = <val_signal_f'num>;
   wait[2];
   check that <signal_c'exp>_s == <val_signal_f'num> else dut_errorf("%s Connectivity Error! %s is %b, but should be %b" ,<ip_name'exp>, **<signal_c'exp>**, <signal_c'exp>_s, <val_signal_f'num>);   
   force <signal_f'exp> = <init_val_signal_f'num>;
};

Пример использования макроса: force_and_check 'adc_s_event[4]' d_buff1_en_adc0_s "КАФЕ" 1'b1 1'b0;

Я хочу представить (жирный ** **) int dut_errorf в виде строки (например, как d_buff1_en_adc0_s)... Как я могу это сделать? (не представлено как значение определения в шестнадцатеричном формате)


person Sara p    schedule 25.07.2018    source источник


Ответы (1)


Просто поместите его в двойные кавычки как часть строки:

check that <signal_c'exp>_s == <val_signal_f'num>
else dut_errorf("%s Connectivity Error! <signal_c'exp> is %b, but should be %b", <ip_name'exp>, <signal_c'exp>_s, <val_signal_f'num>);   
person Yuri Tsoglin    schedule 27.07.2018