/* 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