1. Stratix 10 SoC GHRD工程自定义设计实战
作为FPGA开发者,当我们拿到Intel(原Altera)的Stratix 10 SoC器件时,最快速的上手方式就是从官方提供的GHRD(Golden Hardware Reference Design)工程开始。这个参考设计就像一套精装修的样板房,我们只需要根据实际需求调整内部布局,而不用从打地基开始。今天我就以Stratix 10 1SX110器件为例,分享如何基于GHRD工程进行定制化开发。
1.1 工程框架调整策略
GHRD工程的Platform Designer系统包含15个模块,根据重要性可以分为三类:
-
必须保留的核心模块(删除会导致系统无法运行):
- clk_100:主时钟模块
- rst_in:复位控制模块
- user_rst_clkgate_0:用户复位门控
- ocm:片上存储器控制器
- S10_hps:HPS硬核处理器系统
- emif_hps:HPS内存接口
-
建议保留的辅助模块(增强系统稳定性):
- src_prb_rst:源探测复位
- sysid:系统ID识别
- jtg_mst:JTAG主控
- fpga_m2ocm_pb:FPGA到OCM的AXI桥
-
可自定义的外设模块:
- subsys_periph.qsys(外设子系统)
- subsys_mge.qsys(FPGA网口子系统)
在我的实际项目中,硬件板卡没有配备FPGA网口,但需要验证LED、按键和开关功能。因此我移除了整个subsys_mge.qsys网口子系统,保留了subsys_periph.qsys外设子系统。这种模块化设计思路让定制变得非常简单——就像乐高积木一样,只需要替换或移除不需要的功能模块。
经验分享:当FPGA器件型号或板级资源与GHRD参考设计不同时(如本例使用1SX110而非参考设计的1SX280),仅调整框架是不够的,还需要修改HPS配置和内存接口参数,这将在下文详细说明。
2. HPS配置细节修改
2.1 HPS外设接口重配置
HPS(Hard Processor System)作为SoC的ARM核心部分,其外设配置必须与硬件板卡严格匹配
