AARCHMRS Schema 2.7.4

↚ Home

Fields.ImplementationDefined object

An IMPLEMENTATION DEFINED field is a field that is not fully defined by the architecture, so that implementations can insert their own fields.

object

Properties Type Description
_meta Meta
See Meta for more information.
_type
Enum
Fields.ImplementationDefined
constraints
array [
], null

If the constraints are defined (not null), then the implementer must choose the fields specified in the constraints.

Default
null
description Traits.HasDescription

If defined by the architecture, an implementation is allowed to edit this field, however an implementation must not change the original architectural meaning.

See properties.description in Fields.Field for more information.
display
  • string
  • null
See properties.display in Fields.Field for more information.
name
  • string
  • null

If the name is defined by the architecture (not null), an implementer cannot change the name of the implemented field.

See properties.name in Fields.Field for more information.
rangeset Rangeset
See properties.rangeset in Fields.Field for more information.
resets FieldResets

If reset is defined an implementer must use the reset provided.

See properties.resets in Fields.Field for more information.
volatile
  • boolean
See properties.volatile in Fields.Field for more information.
Additional Properties
Not Allowed
◊ Required
Properties marked with ◊ are required properties.
Examples
{
    "_type": "Fields.ImplementationDefined", 
    "rangeset": [
        {
            "_type": "Range", 
            "start": 0, 
            "width": 8
        }
    ]
}
{
    "_type": "Fields.ImplementationDefined", 
    "rangeset": [
        {
            "_type": "Range", 
            "start": 0, 
            "width": 8
        }
    ], 
    "constraints": [
        {
            "_type": "Fields.Field", 
            "name": "F", 
            "rangeset": [
                {
                    "_type": "Range", 
                    "start": 0, 
                    "width": 8
                }
            ], 
            "values": {
                "_type": "Valuesets.Values", 
                "values": [
                    {
                        "_type": "Values.Value", 
                        "meaning": "The first value", 
                        "value": "'00'"
                    }, 
                    {
                        "_type": "Values.Value", 
                        "meaning": "The second value", 
                        "value": "'01'"
                    }
                ]
            }
        }, 
        {
            "_type": "Fields.Reserved", 
            "rangeset": [
                {
                    "_type": "Range", 
                    "start": 0, 
                    "width": 8
                }
            ], 
            "value": "RES0"
        }
    ]
}

Schema http://json-schema.org/draft-04/schema#

{
  "additionalProperties": false,
  "examples": [
    {
      "_type": "Fields.ImplementationDefined",
      "rangeset": [
        {
          "_type": "Range",
          "start": 0,
          "width": 8
        }
      ]
    },
    {
      "_type": "Fields.ImplementationDefined",
      "rangeset": [
        {
          "_type": "Range",
          "start": 0,
          "width": 8
        }
      ],
      "constraints": [
        {
          "_type": "Fields.Field",
          "name": "F",
          "rangeset": [
            {
              "_type": "Range",
              "start": 0,
              "width": 8
            }
          ],
          "values": {
            "_type": "Valuesets.Values",
            "values": [
              {
                "_type": "Values.Value",
                "meaning": "The first value",
                "value": "'00'"
              },
              {
                "_type": "Values.Value",
                "meaning": "The second value",
                "value": "'01'"
              }
            ]
          }
        },
        {
          "_type": "Fields.Reserved",
          "rangeset": [
            {
              "_type": "Range",
              "start": 0,
              "width": 8
            }
          ],
          "value": "RES0"
        }
      ]
    }
  ],
  "info": [
    "An `IMPLEMENTATION DEFINED` field is a field that is not fully defined by the architecture, so that implementations can insert their own fields."
  ],
  "properties": {
    "_meta": {
      "$ref": "../Meta.json"
    },
    "_type": {
      "enum": [
        "Fields.ImplementationDefined"
      ]
    },
    "constraints": {
      "info": [
        [
          "If the `constraints` are defined (not null), then the implementer must choose the fields",
          "specified in the `constraints`."
        ]
      ],
      "type": [
        "array",
        "null"
      ],
      "default": null,
      "items": {
        "uniqueItems": true,
        "oneOf": [
          {
            "$ref": "Array.json"
          },
          {
            "$ref": "ConditionalField.json"
          },
          {
            "$ref": "ConstantField.json"
          },
          {
            "$ref": "Dynamic.json"
          },
          {
            "$ref": "Field.json"
          },
          {
            "$ref": "Reserved.json"
          },
          {
            "$ref": "ReservedInternal.json"
          },
          {
            "$ref": "Vector.json"
          }
        ]
      }
    },
    "description": {
      "info": [
        [
          "If defined by the architecture, an implementation is allowed to edit this field,",
          "however an implementation must not change the original architectural meaning."
        ]
      ],
      "see": "../Fields/Field.json",
      "$ref": "../Traits/HasDescription.json#/definitions/description"
    },
    "display": {
      "see": "../Fields/Field.json",
      "type": [
        "string",
        "null"
      ]
    },
    "volatile": {
      "see": "../Fields/Field.json",
      "type": "boolean"
    },
    "name": {
      "see": "../Fields/Field.json",
      "info": [
        "If the `name` is defined by the architecture (not null), an implementer cannot change the name of the implemented field."
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "rangeset": {
      "see": "../Fields/Field.json",
      "$ref": "../Rangeset.json"
    },
    "resets": {
      "see": "../Fields/Field.json",
      "$ref": "../FieldResets.json",
      "info": [
        "If reset is defined an implementer must use the reset provided."
      ]
    }
  },
  "required": [
    "rangeset"
  ],
  "title": "ImplementationDefined",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema#"
}