diff options
| -rw-r--r-- | interchange/DeviceResources.capnp | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/interchange/DeviceResources.capnp b/interchange/DeviceResources.capnp index 0b22a41..5a52bec 100644 --- a/interchange/DeviceResources.capnp +++ b/interchange/DeviceResources.capnp @@ -339,6 +339,33 @@ struct Device {          constant @2 : ConstantType;      } +    # These structures are used to define default constant values for unused +    # or missing cell pins. For each cell type, we have a list of pins and +    # what to do with those pins (which will be to tie it to 0 or 1 in most +    # cases). +    enum CellPinValue { +      # leave floating +      float        @0; +      # connect to ground +      gnd          @1; +      # connect to vcc +      vcc          @2; +    } + +    struct DefaultCellConnection { +      # What is the name of this cell pin? +      name    @0 : StringIdx $stringRef(); +      # The default constant value for the pin if missing or disconnected +      value   @1 : CellPinValue; +    } + +    struct DefaultCellConnections { +      # The type of the cell we're providing a list of defaults for +      cellType @0 : StringIdx $stringRef(); +      # The list of default cell pin values +      pins     @1 : List(DefaultCellConnection); +    } +      # When either constant signal can be routed to an input site pin, which      # constant should be used by default?      # @@ -383,6 +410,9 @@ struct Device {          anyName @10 : Void;          name    @11 : StringIdx $stringRef();      } + +    # How to treat missing/disconnected cell pins +    defaultCellConns       @12 : List(DefaultCellConnections);    }    ######################################  | 
