Open martin-velay opened 5 months ago
@martin-velay: Also for this issue: V3 and M7?
@andreaskurth: yes we can move it
In the list above, some assertions are already covered by the DV, should be covered within the UVM env and some others are not really important. Here are the related issues:
Finally only one assertion would be best to have as part of M7: "Wipe secret key"
Description
Here below is the list of potential assertions to be added to the DV
Note: is to be discussed
M7 backlogHMAC core block FIFO sizeHMAC core contains a 32x32-bit size FIFOM7 backlogSHA-2 block FIFOs sizesSHA-2 block contains two time a 8x64-bit size FIFOs (one for the hash and one for the digest)Done in UVMMessage endianness swapWhen CFG.endian_swap=1, input message is converted from little-endian to big-endian before feeding it to the SHA-2Done in UVMDigest endianness swapWhen CFG.digest_swap=1, each digest output register is converted to big-endian byte orderM7 backlogHMAC extra latencyHMAC should introduce a latency equals to 240 extra cyclesDone in UVMDigest clearDIGEST registers should be cleared when transition 1->0 on CFG.sha_enDone in UVMDIGEST registers writeDIGEST registers should be writable when CFG.sha_en=0, check also that they cannot be written when CFG.sha_en=1Done in UVMMessage lengthThe received Message Length calculated by the HMAC should match with these registers value such as: message_length[63:0]={MSG_LENGTH_UPPER, MSG_LENGTH_LOWER}. In SHA-256 mode all 64 bits are used, but in SHA-384/512, upper 64 bits are zero padded and only {MSG_LENGTH_UPPER, MSG_LENGTH_LOWER} are actually checked.TODO in UVMMSG_LENGTH registers writeMSG_LENGTH registers should be writable only when CFG.sha_en=0, check also that they cannot be written when CFG.sha_en=1M7 backlogMSG_LENGTH_LOWER register LSBsMessage length granularity should be in bytes, and these registers express it in bits, so the 3 LSBs from MSG_LENGTH_LOWER should be always zerosDone in UVMINTR_STATE.fifo_empty register fieldFIFO empty status interrupt