Hard Processor System Component Reference Manual: Agilex™ 5 SoCs
ID
813752
Date
8/15/2025
Public
1. Introduction to the Agilex™ 5 Hard Processor System Component
2. Configuring the Agilex™ 5 Hard Processor System Component
3. Simulating the Agilex™ 5 HPS Component
4. Simulating the Agilex™ 5 HPS bridges (H2F, LWH2F, F2SDRAM, F2H)
5. Design Guidelines
6. Document Revision History for the Hard Processor System Component Reference Manual Agilex™ 5 SoCs
2.1. Parameterizing the HPS Component
2.2. HPS-FPGA Interfaces
2.3. SDRAM
2.4. HPS Clocks, Reset, Power
2.5. I/O Delays
2.6. Pin Mux and Peripherals
2.7. Generating and Compiling the HPS Component
2.8. Using the Address Span Extender Component
2.9. Configuring the Agilex™ 5 Hard Processor System Component Revision History
2.2.1.1. Enable MPU Standby and Event Signals
2.2.1.2. Enable General Purpose Signals
2.2.1.3. Enable Debug APB* Interface
2.2.1.4. Enable System Trace Macrocell (STM) Hardware Events
2.2.1.5. Enable SWJ-DP JTAG Interface
2.2.1.6. Enable FPGA Cross Trigger Interface
2.2.1.7. Enable AMBA* Trace Bus (ATB)
2.3.1. Configurations for HPS IP
2.3.2. Configurations for HPS EMIF IP
2.3.3. Graphical Connections of HPS to HPS-EMIF
2.3.4. Configuration when using ECC
2.3.5. Configuration of HPS EMIF Calibration Settings
2.3.6. Supported Memory Protocols Among Device Families
2.3.7. IO96 Bank and Lane Usage for HPS EMIF
2.3.8. Quartus Report of I/O Bank Usage
2.3.9. Debugging with the External Memory Interface Debug Toolkit
4.3.1. my_simple_tb.sv
- Locate simple_tb.v and copy it to your own file.
- cd <project directory>/simple_tb/simple_tb/sim/
- cp simple_tb.v my_simple_tb.sv
- Edit the newly created mysimple_tb.sv file and add the function calls highlighted below, as well as the optional delay code afterward. These function calls test each bridge and details are provided in the later section.
// my_simple_tb.v `timescale 1 ps / 1 ps module simple_tb ( ); wire simple_inst_clk_bfm_clk_clk; // simple_inst_clk_bfm:clk -> [simple_inst:clk_clk, simple_inst_reset_bfm:clk] wire simple_inst_reset_bfm_reset_reset; // simple_inst_reset_bfm:reset -> simple_inst:reset_reset simple_inst_clk_bfm_ip simple_inst_clk_bfm ( .clk (simple_inst_clk_bfm_clk_clk) // output, width = 1, clk.clk ); simple_inst_reset_bfm_ip simple_inst_reset_bfm ( .reset (simple_inst_reset_bfm_reset_reset), // output, width = 1, reset.reset .clk (simple_inst_clk_bfm_clk_clk) // input, width = 1, clk.clk ); simple simple_inst ( .clk_clk (simple_inst_clk_bfm_clk_clk), // input, width = 1, clk.clk .reset_reset (simple_inst_reset_bfm_reset_reset) // input, width = 1, reset.reset ); // call the functions which test the bridges test_lwh2f lwh2f_test_m (); // <module> <define> test_h2f h2f_test_m (); test_f2sdram f2sdram_test_m (); test_f2h f2h_test_m (); initial begin $display ("\n>>>>>>>> ----- BEGIN my_simple_tb -------- >>>>>>>>>>> \n\n"); #20000000 // optional delay - if timescale is 1ps/1ps, then 20000000ps = 20us $display ("\n\n>>>>>> ----- END my_simple_tb -------- >>>>>>>>>>>>> \n"); $finish; end endmodule