This project implements a simplified Memory Management Unit (MMU) using Verilog HDL. The design performs virtual-to-physical address translation, memory protection, page validation, and permission checking. The project demonstrates fundamental concepts used in modern processors and operating systems.
- Virtual Address Translation
- Physical Address Generation
- Page Table Lookup
- Valid Bit Verification
- Read Permission Checking
- Write Permission Checking
- Page Fault Detection
- Protection Fault Detection
- Verilog RTL Implementation
- Self-Checking Testbench
- GTKWave Verification
Virtual Address ↓ Page Number Extraction ↓ Page Table Lookup ↓ Valid Bit Check ↓ Permission Check ↓ Frame Mapping ↓ Physical Address Output
| Parameter | Value |
|---|---|
| Virtual Address Width | 16 bits |
| Physical Address Width | 16 bits |
| Page Size | 256 Bytes |
| VPN Width | 8 bits |
| Offset Width | 8 bits |
MMU-Design-Verilog-HDL/
├── rtl/ ├── tb/ ├── reports/ ├── simulation/ ├── waveforms/ ├── README.md └── .gitignore
- Verilog HDL
- Visual Studio Code
- Icarus Verilog
- GTKWave
iverilog -o mmu_sim rtl/mmu.v tb/mmu_tb.v
vvp mmu_sim
gtkwave waveforms/mmu.vcd| Test Case | Result |
|---|---|
| Valid Translation | PASS |
| Invalid Page | PASS |
| Write Protection Fault | PASS |
| Valid Read Access | PASS |
The generated waveform verifies:
- Successful address translation
- Page fault generation
- Protection fault generation
- Translation validity
- Processor Design
- Virtual Memory Systems
- Operating Systems
- Embedded Systems
- Secure Computing
- Computer Architecture Education
- Translation Lookaside Buffer (TLB)
- ASID Support
- LRU Replacement
- Multi-level Page Tables
- Page Table Walker
- AXI Interface