Specman-如何在宏中使用将exp定义为字符串?

时间:2018-07-25 07:17:25

标签: macros specman

我有以下定义(以及更多):

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“ CAFE” 1'b1 1'b0;

我想将dut_errorf的(粗体** **)表示为字符串(例如d_buff1_en_adc0_s)...我该怎么做? (不以十六进制中的定义值形式出现)

1 个答案:

答案 0 :(得分:0)

只需将其放在双引号中作为字符串的一部分:

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>);