|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
3 i) H) Q1 `- @, s" u1 D
@: B) K$ ]) l9 v
简介:Altera的SoC FPGA启动过程总体可以使用上图来概括,fpga和ARM的配置和启动又可以分为3种不同情况(Xilinx似乎只有一种情况)。分别是fpga和arm彼此独立配置和启动、FPGA先配置然后通过fpga启动arm,第三种情况是HPS先启动然后通过arm来配置fpga逻辑。下面分别对此进行简单介绍。
3 G2 w- Q; G4 i3 S5 I8 I
; d6 U) n- i1 d1 F& F- [! q$ U5 R6 S" u" ?( i
下图是HPS启动的详细步骤:
+ l+ b# S( D9 M- y5 x, W. } - u! g0 z4 H+ N& p
2 h# F* z8 ?0 U: Q7 U0 y$ O% ?
; |2 p( C& M9 k( g D- @7 `+ t& X# EAltera的SoC FPGA启动过程总体可以使用上图来概括,fpga和arm的配置和启动又可以分为3种不同情况(Xilinx似乎只有一种情况)。分别是fpga和arm彼此独立配置和启动、FPGA先配置然后通过fpga启动arm,第三种情况是HPS先启动然后通过arm来配置fpga逻辑。下面分别对此进行简单介绍。
# A" [" x( N# t+ n+ R$ q1 c C! W0 I6 f
, _* C! h5 d# w5 F
1 D2 c- p8 b/ [% ^1 w [
1、fpga和hps单独配置和启动
: v( F7 p3 X3 x. {# a6 G! f, t
6 C0 l A% a, l T' Y- y5 u: p 这种情况fpga从非HPS源配置,属于标准的fpga配置模式。同样,HPS获取Preloader也与fpga无关。如下图所示:
3 u5 o7 M* B2 M5 W2 y H5 y* A" F9 n( L( n
4 M8 C( K6 T- m' m' r* ?/ e9 Q) ^2、fpga首先配置
, ^+ W1 w1 L9 M! H( J& ?1 ]% j" J2 T5 m! i4 k0 U9 a
fpga通过传统的方式进行配置,然后HPS通过FPGA逻辑进行启动。
8 j2 u& o$ m+ @' m* d0 V: @& S( p% ?, }4 B( [ Q9 }/ A2 w6 K
1)、首先需要等待init_done信号& Q" }( t$ x: `0 z6 t' C
9 C* ?- P1 N2 Z 2)、HPS的BootROM代码透过HPStoFPGA桥执行Preloader
: z M0 @! v; s7 F% L4 c& X
; O: L+ c2 s& {, ^ 3)、Preloader可以存放在FPGA内部RAM或者存放在外部存储器
) A: w. a4 d4 T$ ]" K9 Y
( W3 a: z6 _$ r0 S6 i下图展示了此过程:
1 C! s# B5 w; {6 Q2 j % _8 o% R, Y \/ U6 n3 B
3、HPS先启动,然后通过HPS配置fpga逻辑
2 y5 S+ K, M* d! `, A$ a y% V: Z# U0 ?$ d2 r2 Q
+ l! g+ ~; y) \
* b" I5 ?: W$ o& i, I+ W
HPS从与fpga无关的启动源启动,然后HPS的软件通过fpga管理器来配置fpga逻辑。注意,fpga的配置信息存储在Flash存储器或者其他可访问的通信接口处。下图展示了这种配置启动模式:6 g. ~7 @* @4 A0 n5 @
, D! d2 p& [$ n6 s& T! j& z* y
5 ~7 j7 a3 N4 K% T3 r |
|