This project implements a configurable DDR5 memory controller generator. It allows users to specify DDR5 memory parameters through a JSON configuration file and generates a corresponding SystemVerilog implementation of the memory controller.
rtl/
: Contains SystemVerilog files for the memory controller and its submodulestb/
: Contains the testbench for verifying the memory controllerscripts/
: Contains the Python script for generating the controller from JSON configconfigs/
: Contains JSON configuration files
- Edit the JSON configuration file in the
configs/
directory to specify your DDR5 memory parameters. - Run the generator script:
python scripts/generate_controller.py
- The generated SystemVerilog files will be placed in the
rtl/
directory. - Use the testbench in
tb/
to verify the generated controller.
DDR5_Memory_Controller.sv
: Top-level memory controller moduleMC_CommandDecoder.sv
: Decodes incoming commandsMC_TimingController.sv
: Manages DDR5 timing constraintsMC_DataBuffer.sv
: Handles data buffering and transferMC_PowerManagement.sv
: Implements power management featuresMC_ConfigInterface.sv
: Provides runtime configuration interfaceDDR5_Memory_Controller_TB.sv
: Testbench for the memory controllergenerate_controller.py
: Script to generate controller from JSON configdefault_config.json
: Default configuration file
- Python 3.6+
- SystemVerilog compatible simulator (e.g., ModelSim, VCS, Xcelium)
[Add contribution guidelines here]
[Add license information here]