/*
Interpretation Explanation
? 0, 1, X ? means the variable can be 0, 1 or x
b 0, 1 Same as ?, but x is not included
f (10) Falling edge
r (01) Rising edge
p (01),(0x),(x1),(1z),(z1) Rising edge including x and z
n (10),(1x),(x0),(0z),(z0) Falling edge including x and z
* (??) All transitions
- no change No Change
*/
primitive mux2to1(y, a0, a1, s);
output y;
input a0, a1, s;
table
// a0, a1, s : y
1 ? 0 : 1;
0 ? 0 : 0;
? 1 1 : 1;
? 0 1 : 0;
// 1 1 ? : 1;
// 0 0 ? : 0;
endtable
endprimitive
primitive dff_p(q, clk, d);
output q;
input clk, d;
reg q;
table
// clk, d : q : q+
r 0 : ? : 0;
r 1 : ? : 1;
f ? : ? : -;
? * : ? : -;
endtable
endprimitive
primitive tff_p(q, clk, t, srst_n);
output q;
input clk, t, srst_n;
reg q;
table
// clk, t, srst : q : q+
r ? 0 : ? : 0;
r 0 1 : ? : -;
r 1 1 : 0 : 1;
r 1 1 : 1 : 0;
f ? ? : ? : -;
? * ? : ? : -;
? ? * : ? : -;
endtable
endprimitive