October 14th, 2014

2012 Нижний Новгород

Bug или feature?

Сегодня обнаружил. Напускаем Synopsys VCS на вот такой код на Verilog-е:

`define a(d) $display ("%d", d)

module m;

    initial
    begin
        `a (1);
        $finish;
    end

endmodule


Получаем:

Error-[IFSFDT] Illegal format specifier for $display
t.v, 7
"%1"
  '%1' is not a valid format specification for display task.
  See the Verilog LRM, section 17.1.1.2.


Collapse )

Что бы это значило?

Программист, который писал препроцессор верилога в Синопсисе был неопытен или криворук
6(28.6%)
Гениальная feature! Позволяет вставлять значения внутри строк в макросах
3(14.3%)
В этом месте программист в Синопсисе мыслил не как С-программист, а как Перловец
2(9.5%)
Я хочу пост про папоротники в каньоне в Мендосино
9(42.9%)
Из-за бугра плюете?
1(4.8%)


UPD: А, совсем забыл! У кого-нибудь есть под рукой стандарт Verilog-а IEEE 1364-2005, IEEE 1364-2001 или исконный IEEE 1364-1995? IEEE 1800-2005 (SystemVerilog) говорит вот что:

Collapse )