kuljot
kuljot

Reputation: 45

predict clock in user defined primitive

So basically there is udp in verilog for which we define tables. This table is maintained in memory in code.

Eg.

primitive abc(q,d,clk,not);
input d, clk, not;
output q;
reg q;

table

    |0 1 ? : ? : 0;|

    |1 1 ? : ? : 1;|

    |0 * ? : 0 : 0;|

    |1 * ? : 1 : 1;|

    |* 0 ? : ? : -;|

    |? ? * : ? : x;|

endtable
endprimitive

My question is can we predict which input in udp is clock just from the transition table (NOTE : question only for sequential udp)?

Upvotes: 1

Views: 84

Answers (1)

dave_59
dave_59

Reputation: 42698

Yes you can and tools do this—you cannot rely on the signal names to infer functionality.

The key line that shows you which is the clock/enable for a level sensitive sequencial udp is the no change line:

* 0 ? : ? : -;

This works for a level sensitivity UDPs, but doing this generically for all possible truth tables could get very complicated. You can certainly eliminate entries with the output going to X.

Upvotes: 1

Related Questions