MachXO3D ESB Implementing AES128/AES256 Encryption and Decryption

Embedded Security Block for MachXO3D Family

Advanced Encryption Standard (AES) is an encryption standard based on symmetric key algorithm, using the same key for encryption and decryption, issued by NIST in 2001.

AES is one of the most widely used encryption and decryption protocols to transmit and receive data securely. The strength of AES depends on the secret key size. In the MachXO3D family, there is an option to select from two secret key sizes, 128 bits or 256 bits. The secret key size determines the execution time of the algorithm to encrypt or decrypt a particular data stream. AES engine in the Embedded Security Block (ESB) performs AES128 or AES256 operation per FIPS197.

Lattice Semiconductor provides this Advanced Encryption Standard (AES) reference design to demonstrate how to use MachOX3D™ Embedded Security Block (ESB) to implement AES128 or AES256 encryption or decryption.


  • AES encryption and decryption
  • Data path support with WISHBONE or HSP
  • Key size selection of AES128 and AES256

Jump to

Block Diagram

Performance and Resource Utilization

Devices Family Language Utilization Operating Frequency ESB Primitive OSC Primitive Number of I/O
LCMXO3D-9400HC Verilog HDL 407 LUTs > 50 MHz Yes Yes 80


Technical Resources
Select All
Using MachXO3D ESB to implement AES128/256 Encryption/Decryption
FPGA-RD-02056 1.0 8/23/2021 PDF 415.3 KB
Using MachXO3D ESB to implement AES128/256 Encryption/Decryption - Source Code
1.0 5/21/2019 ZIP 712.9 KB

*By clicking on the "Notify Me of Changes" button, you agree to receive notifications on changes to the document(s) you selected.