Core-assisted approach accelerates debug of FPGA DDR II interfaces
In this "How To" tutorial, a debug methodology is described and applied to a real FPGA-based DDR II high-speed memory controller debug example.
By Brad Frieden, Agilent Technologies
With IO rates of several hundred megahertz, FPGAs have become an excellent medium for implementation of high-speed memory controllers. Fast memory storage and retrieval often involve implementing DDR or DDR II memory architectures. Using traditional debug methods, it would be difficult to rapidly debug and validate FPGA systems that interface to DDR memories. However, the evolution of core-assisted debug makes the task dramatically more efficient. In this article, a debug methodology is described and applied to a real DDR II debug example where the design was implemented with Xilinx Virtex 4 FPGAs.
The target system
Let's look at a 200 MHz data rate DDR II memory subsystem, where the designer only had 10 pins available for debug, yet he wanted to look at many signals in the design. Normally, it can be a time-consuming process to manually route signals out to those 10 pins, and then change the design each time new signals are desired. But things are much easier with a core-assisted approach.
The Digital system under test performed data acquisition and processing. Digital data from the outside world was placed into DDR II memory, and then read back from memory upon demand for processing. System prototyping was accomplished using a Xilinx development board that contained Virtex 4 FPGAs. A DDR II memory controller was implemented in a Virtex 4 FPGA and interfaced to external memory control and data paths as shown in Fig 1.
By Brad Frieden, Agilent Technologies
With IO rates of several hundred megahertz, FPGAs have become an excellent medium for implementation of high-speed memory controllers. Fast memory storage and retrieval often involve implementing DDR or DDR II memory architectures. Using traditional debug methods, it would be difficult to rapidly debug and validate FPGA systems that interface to DDR memories. However, the evolution of core-assisted debug makes the task dramatically more efficient. In this article, a debug methodology is described and applied to a real DDR II debug example where the design was implemented with Xilinx Virtex 4 FPGAs.
The target system
Let's look at a 200 MHz data rate DDR II memory subsystem, where the designer only had 10 pins available for debug, yet he wanted to look at many signals in the design. Normally, it can be a time-consuming process to manually route signals out to those 10 pins, and then change the design each time new signals are desired. But things are much easier with a core-assisted approach.
The Digital system under test performed data acquisition and processing. Digital data from the outside world was placed into DDR II memory, and then read back from memory upon demand for processing. System prototyping was accomplished using a Xilinx development board that contained Virtex 4 FPGAs. A DDR II memory controller was implemented in a Virtex 4 FPGA and interfaced to external memory control and data paths as shown in Fig 1.
To read the full article, click here
Related Semiconductor IP
- NPU IP
- JPEG XL Encoder
- I2C Master/Slave Controller Core
- NVMe Validation Test Suite
- Hybrid Memory Cube Verification IP
Related Articles
- An IP core based approach to the on-chip management of heterogeneous SoCs
- How to use FPGAs to implement high-speed RLDRAM II interfaces
- Reusable debug infrastructure in multi core SoC : Embedded WiFi case study
- A New Approach to In-System Silicon Validation and Debug
Latest Articles
- Terracotta: Enabling the Adoption of New DRAM Techniques via a Flexible DRAM Interface and Memory Controller
- A Framework for Accelerating Transformer Inference on RISC-V for Edge AI
- An Interleaved Parallel Dependent Quantization Hardware Architecture for H.266/VVC
- A Formal Security Analysis of CAN XL
- A Secure dToF LiDAR SoC with Dual-Domain Fingerprinting and Event-Driven AFE Circuit Achieving Sensor-Level Attack Resilience