Word-based Registers - 1.0 English

Versal Adaptive SoC Integrated 400G High Speed Channelized Cryptography Engine Subsystem Product Guide (PG372)

Document ID
PG372
Release Date
2024-01-30
Version
1.0 English

Word-based registers are concatenations of 4-byte registers to create a logical register of the required width (i.e., the word width). Examples include:

  • CAVP_TX_ENC_REQ_IV_SALT_REG – 12-Bytes
    • CAVP_ TX_ENC _REQ_IV_SALT_REG_LSB
    • CAVP_ TX_ENC _REQ_IV_SALT_REG_MID1
    • CAVP_ TX_ENC _REQ_IV_SALT_REG_MSB2
  • CAVP_ TX_ENC _REQ_KEY_REG – 16/32-bytes
    • CAVP_ TX_ENC _REQ_KEY_REG_LSB
    • CAVP_ TX_ENC _REQ_KEY_REG_MID1
    • CAVP_ TX_ENC _REQ_KEY_REG_MID2
    • CAVP_ TX_ENC _REQ_KEY_REG_MID3
    • CAVP_ TX_ENC _REQ_KEY_REG_MID4
    • CAVP_ TX_ENC _REQ_KEY_REG_MID5
    • CAVP_ TX_ENC _REQ_KEY_REG_MID6
    • CAVP_ TX_ENC _REQ_KEY_REG_MSB7
  • CAVP_TX_ENC_RESP_TAG_REG – 16-bytes
    • CAVP_TX_ENC_RESP_TAG_REG_LSB
    • CAVP_TX_ENC_RESP_TAG_REG_MID1
    • CAVP_TX_ENC_RESP_TAG_REG_MID2
    • CAVP_TX_ENC_RESP_TAG_REG_MSB3
  • CAVP_RX_DEC_REQ_IV_SALT_REG – 12-Bytes
    • CAVP_ RX_DEC _REQ_IV_SALT_REG_LSB
    • CAVP_ RX_DEC _REQ_IV_SALT_REG_MID1
    • CAVP_ RX_DEC _REQ_IV_SALT_REG_MSB2
  • CAVP_ RX_DEC _REQ_KEY_REG – 16/32-bytes
    • CAVP_ RX_DEC _REQ_KEY_REG_LSB
    • CAVP_ RX_DEC _REQ_KEY_REG_MID1
    • CAVP_ RX_DEC _REQ_KEY_REG_MID2
    • CAVP_ RX_DEC _REQ_KEY_REG_MID3
    • CAVP_ RX_DEC _REQ_KEY_REG_MID4
    • CAVP_ RX_DEC _REQ_KEY_REG_MID5
    • CAVP_ RX_DEC _REQ_KEY_REG_MID6
    • CAVP_ RX_DEC _REQ_KEY_REG_MSB7
  • CAVP_RX_DEC_REQ_TAG_REG – 16-bytes
    • CAVP_RX_DEC_RESP_TAG_REG_LSB
    • CAVP_RX_DEC_RESP_TAG_REG_MID1
    • CAVP_RX_DEC_RESP_TAG_REG_MID2
    • CAVP_RX_DEC_RESP_TAG_REG_MSB3

When accessing word-based registers, the values from the CAVP vectors can be mapped directly to the word-based register for writes, and vice-versa for reads. The CAVP values are assumed to be numbered [MSB:0], so bits [31:0] are written to *_REG_LSB, bits [63:32] are written to *_REG_MID1 and so on. Similarly when reading word-based registers, the read values are concatenated to match the CAVP format as {*_REG_MSB,…,*_REG_MID1,*_REG_LSB}.

The following figure shows an example of writing the Key register for Encryption with a 256-bit key. If 128-bit keys are used, the upper bits can be omitted. Reading is the same, but in reverse.

Figure 1. Word-based Write Example