Symmetric Cryptographic Accelerator Hard IP User Guide
ID
714305
Date
11/28/2025
Public
4.1. Installing and Licensing IP Cores
4.2. Specifying the IP Parameters and Options
4.3. Generated File Structure
4.4. Symmetric Cryptographic Accelerator Hard IP Flow
4.5. Dynamically Disabling the SM4 Capability
4.6. Error Handling
4.7. Error Reporting
4.8. Resetting the IP
4.9. Channel Definition and Allocation
4.10. Byte Ordering
4.11. AXI-ST Single Packet Mode
4.12. AXI-ST Multiple Packet Mode
5.3.5. MAC Dropping on Decryption
The Symmetric Cryptographic Accelerator Hard IP support a feature to drop the 16 byte MAC tag on decryption request. The feature is available for MACsec only.
To enable this feature, set the decrypt_drop_mac_en parameter to 1. This feature is independent to ICV comparison feature where the ICV comparison result sent out to user is unaffected by this feature.
| Profile | MACsec | MACsec | MACsec | MACsec | MACsec | |||
|---|---|---|---|---|---|---|---|---|
| MAC_IV_tweak_en | 0 | 1 | 1 | 1 | 1 | |||
| data_en | 1 | 0 | 1 | 1 | 1 | |||
| next_packet_en | 0 | 1 | 1 | 1 | 0 | |||
| tlast | 0 | 1 | 1 | 1 | 1 | |||
| num_empty_bytes | 0 | 64 | 48 to 63 | 32 to 63 | 16 to 63 | |||
| DATA | ||||||||
| data[127:0] | AAD/Text | MAC | AAD/Text | AAD/Text | AAD/Text | |||
| data[255:128] | AAD/Text | AAD/Text | MAC | AAD/Text | AAD/Text | |||
| data[391:256] | AAD/Text | AAD/Text | AAD/Text | MAC | AAD/Text | |||
| data[511:392] | AAD/Text | AAD/Text | AAD/Text | AAD/Text | MAC | |||
| Profile | MACsec | MACsec | MACsec | MACsec | MACsec | |||
|---|---|---|---|---|---|---|---|---|
| tvalid | 1 | 1 | 1 | 1 | 1 | |||
| MAC_IV_tweak_en | 0 | 1 | 1 | 1 | 1 | |||
| data_en | 1 | 0 | 1 | 1 | 1 | |||
| next_packet_en | 0 | 1 | 1 | 1 | 0 | |||
| tlast | 1 | 0 | 1 | 1 | 1 | |||
| tkeep | All 1's | 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 0000_0000 0000_0000 |
1111_1111 1111_1111 1111_1111 1111_1111 0000_0000 0000_0000 1111_1111 1111_1111 |
1111_1111 1111_1111 0000_0000 0000_0000 1111_1111 1111_1111 1111_1111 1111_1111 |
0000_0000 0000_0000 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 |
|||
| tuser_last_segment0 | 0 | 0 | 1 | 0 | 0 | |||
| tuser_last_segment1 | 0 | 0 | 0 | 1 | 0 | |||
| tuser_last_segment2 | 0 | 0 | 0 | 0 | 1 | |||
| tuser_last_segment3 | 1 | 0 | 0 | 0 | 0 | |||
| DATA | ||||||||
| data[127:0] | AAD/Text | IDLE | AAD/Text | AAD/Text | AAD/Text | |||
| data[255:128] | AAD/Text | AAD/Text | IDLE | AAD/Text | AAD/Text | |||
| data[391:256] | AAD/Text | AAD/Text | AAD/Text | IDLE | AAD/Text | |||
| data[511:392] | AAD/Text | AAD/Text | AAD/Text | AAD/Text | IDLE | |||
If MAC is located in segment 0 and there is no subsequent packets in segment 1, 2, or 3, the tvalid signal deasserts since all segments are the IDLE bytes after the MAC dropping.