Оператор 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 ответ

Решение

Это ошибка в вашем инструменте. Тем не менее, второй `" не нужен и дает вам результаты, которые вы ищете.

Другие вопросы по тегам