Оператор SystemVerilog stringify (`") и разрывы строк
Я использую оператор SystemVerilog stringify, `"
в макросе, как показано ниже. Случай намеренно изобретен, чтобы показать ошибку:
module my_test();
`define print(x) $fwrite(log_file, `"x`")
`define println(x) $fwrite(log_file, `"x\n`")
integer log_file;
initial begin
log_file = $fopen("result.txt", "w");
`print(A);
`print(B);
`println(C);
`println(D);
`print(E);
`print(F);
end
endmodule
Это дает вывод (без завершающего перевода строки):
ABC
`D
`EF
Почему там `
s в выводе, но только из println
?
Это задокументированное поведение в спецификации или ошибка в моем симуляторе (Aldec Active-HDL)?
1 ответ
Решение
Это ошибка в вашем инструменте. Тем не менее, второй `"
не нужен и дает вам результаты, которые вы ищете.