HARDWARE SECURITY

From AES to RTLLesson 2 / 2

AES-128 RTL Beginner Guide

A beginner guide that reads AES-128 RTL as a hardware floor plan: data movement, round control, FSM timing, S-boxes, MixColumns, valid signals, and the practical checks that keep an RTL implementation understandable.

12 min read

Read RTL as the hardware floor plan

This guide is not asking you to write a perfect AES core on the first pass. Start by reading RTL as a floor plan: where data enters, where it waits, which block transforms it, and when the controller says the result is valid.

AES gives the algorithmic steps. RTL turns those steps into clocked hardware with registers, datapaths, round control, and timing rules.

When the signal names feel dense, ask three questions: where is the data now, where does it move next, and what control signal allows that move?

AES-128 教學圖 1
Visual plate 1 from the original classroom sequence.

Start from the datapath before writing modules

AES-128 RTL becomes much easier when the state mapping, round structure, and valid/ready timing are defined first. Otherwise, byte order and control timing become recurring bugs.

A clean design separates the key schedule, round transformation, final round, and control FSM while keeping the state layout consistent with the AES specification.

AES-128 教學圖 2
Visual plate 2 from the original classroom sequence.

Good RTL is also good documentation

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 3
Visual plate 3 from the original classroom sequence.

Good RTL is also good documentation (3)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 4
Visual plate 4 from the original classroom sequence.

Good RTL is also good documentation (4)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 5
Visual plate 5 from the original classroom sequence.

Good RTL is also good documentation (5)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 6
Visual plate 6 from the original classroom sequence.

Good RTL is also good documentation (6)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 7
Visual plate 7 from the original classroom sequence.

Good RTL is also good documentation (7)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 8
Visual plate 8 from the original classroom sequence.

Good RTL is also good documentation (8)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 9
Visual plate 9 from the original classroom sequence.

Good RTL is also good documentation (9)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 10
Visual plate 10 from the original classroom sequence.

Good RTL is also good documentation (10)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 11
Visual plate 11 from the original classroom sequence.

Good RTL is also good documentation (11)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 12
Visual plate 12 from the original classroom sequence.

Good RTL is also good documentation (12)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 13
Visual plate 13 from the original classroom sequence.

Good RTL is also good documentation (13)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

AES-128 教學圖 14
Visual plate 14 from the original classroom sequence.

Good RTL is also good documentation (14)

Clear sub-block boundaries, explicit input/output definitions, and simple test vectors make the implementation easier to review and reuse. The goal is not just a working AES core, but a core that can be verified and maintained.

References

  1. NIST FIPS 197: Advanced Encryption Standard: The authoritative byte-level AES algorithm reference.

Learning guide

From AES to RTL

0 / 2

Prerequisites

  • AES round operations and synchronous logic

What I learned

  • Partition AES into datapath and control
  • Define valid/ready behavior
  • Keep byte ordering consistent

Key terms

Open glossary →

Further reading

Knowledge check

1. What should control round sequencing?
2. Why fix byte ordering early?
3. What does valid indicate?

Thanks for reading.

Take the concept with you, not just the terminology.

#AES#AES-128#RTL#Verilog#Digital IC#Hardware Architecture#Cryptography#S-Box#MixColumns#FSM#Hardware Security