Skip to content

UVM-based verification of an AHB-to-APB bridge, validating protocol compliance, address decoding, data integrity, error handling, and corner cases using constrained-random testing and functional coverage.

Notifications You must be signed in to change notification settings

wendigp/AHB_APB_Bridge_Verification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AHB to APB Bridge Verification This project focuses on Design Verification (DV) of an AHB to APB bridge using UVM (Universal Verification Methodology). The bridge connects a high-performance AHB bus to a lower-speed APB bus, ensuring proper data transfer and protocol compliance.


🧰 Project Overview • Bus protocols: AMBA AHB and APB • Methodology: UVM-based environment • Verification goals: Functional correctness, protocol checks, coverage closure • Languages used: SystemVerilog (UVM), Verilog


🏗️ Directory Structure ahb_apb_bridge_verification/ ├── images/ # Contains waveform images and diagrams ├── rtl/ ├── ahb_agt_top/ ├── apb_agt_top/ ├── tb/ ├── test/ ├── sim/ ├── README.md └── other project files


✅ Verification Features • UVM environment with reusable agents • Constrained random stimulus generation • Protocol checks via monitors and scoreboards • Self-checking tests • Functional coverage collection


💡 Key Achievements • Improved functional coverage from 84% to 96% • Added corner-case testcases • Fixed important bugs in both AHB and APB agents • Verified data integrity and control signals thoroughly


📈 Functional Coverage Report Achieved 96% functional coverage, confirming thorough design verification. ✅ HTML Coverage Report (local view) Descriptive Alt Text


📈 Write operation • AHB address phase starts with addresses A1, A2, A3, and A4 driven on HADDR.

• HWRITE signal goes high to indicate write transfer starting from the second HCLK cycle and remains high for the following cycles.

• HWDATA carries data D-1, D-2, D-3, and D-4 corresponding to each address phase.

• HREADY indicates when the slave is ready to accept data; wait states may be introduced when low.

• On APB side, PADDR mirrors the AHB addresses (A1 to A4) after decoding.

• PWRITE signal stays high to denote a write transfer on APB.

• PSEL and PENABLE signals control APB transaction phases:

• PSEL is asserted to select the APB peripheral.

• PENABLE indicates the data phase on APB.

• PWDATA shows data being transferred to APB (D-1 to D-4), aligned with APB handshake signals.

Descriptive Alt Text


🛠️ Tools Used • Simulator: QuestaSim • Language: SystemVerilog + UVM • Version control: Git


✍️ Author • Name: Shiva Bind • LinkedIn: Shiva Bind


⭐ How to Run 1️⃣ Clone the repository: git clone https://github.com/wendigp/AHB_APB_Bridge_Verification.git cd AHB_APB_Bridge_Verification 2️⃣ Compile and run specific testcases using make targets (e.g., make test1, make test2, etc.): make test1 ✅ You can run other tests similarly: make test2, make test3, etc., depending on your defined test targets in the Makefile. 3️⃣ Generate coverage (if not already generated): make cov 4️⃣ View coverage report: make view_cov


🗂️ License This project is for educational and demonstration purposes.

About

UVM-based verification of an AHB-to-APB bridge, validating protocol compliance, address decoding, data integrity, error handling, and corner cases using constrained-random testing and functional coverage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published