REPOSITORY OVERVIEWLive repository statistics
★ 5Stars
⑂ 1Forks
◯ 0Open issues
◉ 5Watchers
62/100
OPENREPOHUB HEALTH SIGNALMixed signals
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
90 Community adoption25% weight
10 Maintenance state20% weight
100 License clarity10% weight
0 Project information10% weight
75 This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
README preview
AES-128 Encryption Engine Verification using UVM
Overview
This project involves the verification of an AES-128 Encryption Engine using the Universal Verification Methodology (UVM). The AES-128 encryption engine is a hardware block that takes in a 128-bit plaintext and a 128-bit cipher key to produce a 128-bit encrypted output (ciphertext).
Block Diagram
The block diagram of the AES-128 Encryption Engine is as follows:
Verification Environment
1. Testbench Architecture
The UVM testbench is composed of several components to facilitate the verification process. The key components include:
- Top: This is the top-level component that controls the execution of the verification environment and instantiate the DUT.
- UVM Test: It sets up the test environment and initiates the stimulus (Sequences).
- UVM Environment (Env): The environment contains the agents, scoreboard and Subscriber.
- UVM Agent: The agent contains a sequencer, driver and monitor.
- Sequencer: Receives the sequences of input transactions to be applied to the DUT.
- Driver: Converts transactions from the sequencer into pin-level signals that are applied to the DUT.
- Monitor: Observes the pin-level signals and converts them back into transactions that can be analyzed.
- UVM Scoreboard: Used to compare the expected results with the actual outputs from the DUT inside scoreboard there is a reference model.
- UVM Subscriber: Used to collect coverage.
- DUT (Design Under Test): The AES-128 Encryption Engine being verified.
2. Stimulus Generation
The stimulus generation is handled by the UVM sequence, which drives different sequences of data, such as:
- Resetting the DUT.
- Randomized sequences to explore different input combinations.
3. Coverage Collection
Functional coverage is collected to ensure that all parts of the AES algorithm are exercised. The coverage model includes:
- Control Signal Coverage: Coverage on signals like
valid_in, reset_n and clock cycles during operation.
- Input Data Coverage: Coverage on different values of
plain_text and cipher_key.
- Output Data Coverage: Coverage on different values of and .
ALGORITHMICALLY RELATEDSimilar Open-Source Projects
Selected from shared topics, language and repository description—not editorial ratings.
This project implements a complete UVM-based verification environment for an AES-128 encryption/decryption RTL design written in Verilog. The goal is to verify functional correctness of the AES core using UVM testbench and Python golden reference model
42/100 healthActive repository
VerilogNo license
⑂ 0 forks◯ 0 issuesUpdated Apr 13, 2026