Problem Description
The flops keyword of sequential cells is not placed to the generated liberty file.
There is a TODO in the code here:
I would expect it to end-up in the liberty file to define the flip flop
ff (P0002,P0003) {
next_state : "D";
clocked_on : "CLK";
clear : "(!R)";
preset : "(!S)";
clear_preset_var1 : L;
}
My assumption is, that this would be achieved by:
but there is no way on how to specify which pin to put to the next_state attribute.
This is not obvious, since e.g. a scan flip-flop may be having pins like SE (Scan enable)
and SD (Scan D-Input). In such case the ff may look like:
ff(IQ,IQN) {
clocked_on : "(CK)" ;
next_state : "((SE&SD)|(D&(!SE)))" ;
}
Further, the current format of the flop specification in YAML file is unsuitable if the cell contains
two flip-flops. Modern PDK libraries sometimes contain a "multi-bit flops". In such case,
there would be two entries:
ff(IQ1,IQN1) {
clocked_on : "(CK)" ;
next_state : "D1" ;
}
ff(IQ2,IQN2) {
clocked_on : "(CK)" ;
next_state : "D2" ;
}
I would suggest making the config file behave like so:
flops may contain a single list of names, or "list of lists" if this is list of lists, there will be multiple FFs in the cell
set / reset may contain a single edge or list of edges.
Problem Description
The
flopskeyword of sequential cells is not placed to the generated liberty file.There is a TODO in the code here:
CharLib/charlib/characterizer/TestManager.py
Line 673 in 361d576
I would expect it to end-up in the liberty file to define the flip flop
My assumption is, that this would be achieved by:
but there is no way on how to specify which pin to put to the
next_stateattribute.This is not obvious, since e.g. a scan flip-flop may be having pins like
SE(Scan enable)and
SD(Scan D-Input). In such case theffmay look like:Further, the current format of the flop specification in YAML file is unsuitable if the cell contains
two flip-flops. Modern PDK libraries sometimes contain a "multi-bit flops". In such case,
there would be two entries:
I would suggest making the config file behave like so:
flopsmay contain a single list of names, or "list of lists" if this is list of lists, there will be multiple FFs in the cellset/resetmay contain a single edge or list of edges.