Есть ли способ добавить утверждение для примитива SystemVerilog или только в модуль (ячейку), обертывающий примитив? простое добавление утверждения не компилируется
primitive mux (q, d0, d1, s);
output q;
input s, d0, d1;
table
// d0 d1 s : q
0 ? 0 : 0 ;
1 ? 0 : 1 ;
? 0 1 : 0 ;
? 1 1 : 1 ;
0 0 x : 0 ;
1 1 x : 1 ;
endtable
//assert(s != x) else $error("s has value x"); - add this assertion
endprimitive
Единственная конструкция, разрешенная внутри определяемого пользователем примитива (UDP), — это таблица. Вам нужно будет обернуть UDP в модуль, чтобы добавить что-нибудь еще.