Skip to content

The flops keyword is not put into the liberty file #64

@Blebowski

Description

@Blebowski

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:

flops: [P0002, P0003]

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions