7 |# u D( U4 t& z+ T
. c5 V L* M9 b
Altera的SoC FPGA启动过程总体可以使用上图来概括,fpga和ARM的配置和启动又可以分为3种不同情况(Xilinx似乎只有一种情况)。分别是fpga和arm彼此独立配置和启动、FPGA先配置然后通过fpga启动arm,第三种情况是HPS先启动然后通过arm来配置fpga逻辑。下面分别对此进行简单介绍。. _& o- J# t7 N$ t7 n8 Q u
# U# ]! c( w0 C5 ~1、fpga和hps单独配置和启动3 J3 x* i @7 u$ N( m
这种情况fpga从非HPS源配置,属于标准的fpga配置模式。同样,HPS获取Preloader也与fpga无关。如下图所示: 9 t2 [$ E; ^8 K/ s6 T* w5 g/ X. Z( Y
& t! N( `- u3 G. o
9 W J% P8 ]+ M! H9 i
2、fpga首先配置 * x7 ^$ v/ X" N+ V! q' e fpga通过传统的方式进行配置,然后HPS通过FPGA逻辑进行启动。 7 u- Y9 e! O) o" |0 M# ^ 1)、首先需要等待init_done信号 + P$ _$ e1 T! N/ b0 N! ?: D 2)、HPS的BootROM代码透过HPStoFPGA桥执行Preloader 2 t, B* N' ^; C1 b( Z 3)、Preloader可以存放在FPGA内部RAM或者存放在外部存储器 % S* S8 b+ i/ l' n下图展示了此过程:; i g% Z, b' D* p 5 \6 O7 l6 a4 j+ ]* k+ _
5 c& @( ^( Y+ A& @3 ~
3 i& d9 f" w( Z9 \& Y3、HPS先启动,然后通过HPS配置fpga逻辑2 V$ r$ [1 p& I
/ P: @$ O, f( ]$ t- M# C0 V4 w) g
HPS从与fpga无关的启动源启动,然后HPS的软件通过fpga管理器来配置fpga逻辑。注意,fpga的配置信息存储在Flash存储器或者其他可访问的通信接口处。下图展示了这种配置启动模式: q" {" N5 j7 w0 r5 F- t% j: k5 G* A/ P9 V