|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 G3 q% p2 q+ s" B4 l
拿到板子有2 3天了,板子到手第一件事情当然跑跑例程 熟悉开发流程 希望这块帖子能帮助一些初学者熟悉FPGA到HPS的通信 |$ r# X" Y5 f) a
开发环境:WIN7 64位 quartus 14.0以及相关的组件 本次实验只用到了QSYS和SoC EDS 14.0 Command Shell0 d9 h L, w+ P
硬件:PC机一台 DE1-SOC 开发板一块 网线 usb jtag各一根 一张4G以上的TF卡
7 G, W% b2 }, ], N& ?6 Z- W8 y在开始之前先稍微介绍下de1-soc和其配套资料 , t# A3 R+ w% q& a
& o% k: h: U9 n6 o大概框图就是酱 HPS FPGA 其实要了解的多太多 soc的内部结构真的需要好好研究 没事就看看文档吧
P0 l8 g% ?6 u/ j7 ~友晶的板子在大家的眼里不外乎2个印象 第一个当然就是精美 高大上 第二个就是价格了
o* w3 [' t: ^' o) d但是这块板子的性价比我可以说除了某些淘宝初学者的低端板卡 性价比是相当高的
' Q% U. s) A: h8 y2 r% I. v1 I , ^' W* K4 o$ ]5 O- w
大部分资料均在友晶官网下载$ F% W! u. O: e% y6 Y
http://www.terasic.com.cn/cgi-bi ... 182&No=870&PartNo=4
. n- K1 X" Y S' i/ o基本够用 除了opencl暂时用不到 其余的都下下来吧 本次实验用到了DE1_SoC_SD.img(yocto linux)和tools里面的一些小工具 驱动。
: B- v1 ?; s& t; s% J, K$ r$ X
/ T" s: O& M6 I# E0 X/ b大概看了一下 FPGA一侧的资料和以往友晶的de1 de2系列差不多 之前玩过的可以跳过了
) @7 Q& ?1 X+ A: w1 A0 |1 e: G: L# Q亮点是给OPENCL开发的资料 不过暂时玩不转 等待牛人出的书 希望能在活动结束前出版(据我了解至少有2本OPENCL的书 一本是西电已经出版的DE1soc配套书籍 讲得不多 另外一本是一名成电教师所编写 估计明年年后能出来)" a/ j- E: ~1 K: d: ]) i6 p
* l. ?/ L D; V# m
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------8 s0 D% {# i7 O" r0 q( R U+ Y
闲话到这里了 现在开始本次HPSFPGA实验
. Q* E: a* x8 g' a首先开始第一部分
, N+ S7 l& N5 o6 A9 F2 p/ K- j* F * J$ B" K: q. M7 T4 f7 h
系统架构如图所示; H. X& n: ]& f! K7 w
1.新建一个工程HPSFPGA 器件选取什么的就省略啦
0 W& j. i8 S, L2.点击assignmens中的inport assignmens 选择附件中的DE1SOC.QSF 点击OK
) e" l; b: e! I; F, z9 k7 O ; }- d3 ]. T# b" K6 E
3.点击右上角qsys按钮
# H3 m$ F9 Z* I9 C将一个勾点掉
3 ?3 n* M* G s$ F" `
. y5 }7 P; T3 O+ b将框中的清空: i. S& S2 n3 v! p; G
8 j, S: U1 I1 v: S然后点击左上角ip目录 processors and Peripherals---Peripherals--- PIO (Parallel I/O) $ H2 |7 [: p1 s, x8 O1 ?* a
按顺序新建2个10位的外设 分别命名为led和sw
* n+ e) ]& o5 [! G1 U# `2 l5 n# K参数分别如图 led------ output 10bit 将地址最后3为改为3ff
/ X0 _% Q: c) }3 v) h" N
# L; A) e$ q& b L5 o9 u) k/ Z连接CLK RESET S1 双击后面的external_connection 名字改为如图所示( L4 K& {( R6 t ^6 u) p
3 E0 y( A" J2 |- \* \/ p. `% ^
3 T% p7 D( ]8 l% I# j& N' Msw--------input 10位
" }4 Y5 Z% _6 y# ?/ O5 C6 i/ w2 }
4 a+ D1 y8 s: W2 f- _4 d0 F& ^连接CLK RESET S1 双击后面的external_connection 名字改为如图所示+ p( S( [' w0 ~( _" [& F- u
( M) [. d9 \* \) T4 G* H0 s% k/ |8 O! F
然后点击System----Assign base address、- A$ k3 {! f8 r0 ~9 {
- [% q. X y& Y$ ^
' g/ d' F! x% ~0 ?( \( H9 B5 b; K4 y& _
接下来开始繁琐得设置各个参数 双击HPS_00 ?8 k- P$ J. d1 Y8 d" a
5 }0 a- X/ z2 }6 }
( y" K! Z$ j" x0 ?
- J, q) b: [/ ]- { 0 f; W4 U4 y( _; _. s
' [: A2 n* j/ T' a: d& i/ r% z6 w ; P% i! n% c# m h+ K: j
4 ^+ B' \( Y, U: n5 f* [
4 h$ A0 d* b) x * Q! `, _# W) f
$ l. j3 v0 T7 A6 @
; @( N' c9 H; q* x/ V/ q7 p' o+ H
到这里qsys的设置就完成了 generate hdl
. v/ Y) _9 _" V" K; ^回到quartus 将附件中的HPSFPGA.vhd加入工程之中 点击TOOLS----TCL script
8 @& n7 Q1 R) e8 _. G- n7 g0 ~* v运行图中第一个和第二个文件2 @. E0 G1 N0 U1 R
, H: E, W8 k6 t: I, \, L4 x0 v9 n6 a
然后编译工程 生成sof文件 工程到此成功3 j0 a! a: F F
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
' c5 @* Y! F* S0 ~2 f/ X* f接下来开始第二部分7 B/ M4 Q: e: _6 Z* B
编写llinux yocto下的程序,运行在hps中
" t5 [) R1 i7 J首先是sh文件 可以参考附件中的generate.sh$ ]7 P) R" X! \+ K0 a+ z
#!/bin/sh
7 `4 n( u: l6 a+ Jsopc-create-header-files \' H# v; ` U; P
"./hps_fpga.sopcinfo" \
: K3 n8 f9 }' B5 y' N- x--single hps_0.h \
3 u! D. o7 H. z4 ]' ?--module hps_0
4 J9 b" W9 N5 N3 U* S. o) R% q; ^. p- F
打开SoC EDS 14.0 Command Shell 按图所示生成hps_0(这个文件包含了qsys组件的信息,我们这次用的是led和switch)
4 U; {1 m! _" b0 g4 m( [8 v 4 U; N; v6 o8 g7 O
然后编写程序 也可以直接拷贝附件中的main.c和makefile* B) z6 f1 L. F3 i3 W3 O; }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
, D5 x; r2 P" a+ P* Z9 ?第三部分
4 D H! [: ]$ E! Q2 }: x& A按照官方文档制作sd卡的image 电脑安装串口通信软件和驱动
0 J1 p$ E# t. _$ E然后将sd卡放入开发板 打开电源
% \2 x" M$ f& f: s% F5 b7 f I可看到如下信息
3 W& }4 j$ E! s7 r, @: Q
1 p9 U0 x% ^' {- c, o& A6 {: |+ ]9 I系统为yocto 1.3
6 k8 G/ a% B0 ^. n# A: S0 K回到quartus 将soc文件下载进开发板
) j" M% a5 W. G; M0 ]( _; `1 i " ^+ W6 D3 q! c) Z" H8 }; m1 Q
* `( c4 j7 H: ~7 Y5 o& d7 O
" I1 c" o( `, e! J/ O& k, \' H/ J& {% e: g
在按图串口输入一下命令 root ifconfig eth0 192.168.110.10
! W# Q1 S0 l- U1 z
) P! S) T# ]3 w$ `- `5 i用网线将PC机和开发板相连 并将PC本地IP设置为192.168.110.9
9 b. V8 w6 A/ D0 |& t, kping一下
5 p N! i2 l- M& R# q6 s4 s5 S7 \ 8 R% P1 z, q& O& t
输入 scp FPGAHPS root@192.168.110.10:/home/root; O b) V: U' R# ?
( V( P' f6 O$ a* B! F; L0 a( e( z- w9 {+ `0 s. t
密码默认为:terasic
8 L; Y' a# b% f3 t+ @6 l9 V. l; Y7 Y$ D# {( Y) l
串口输入ls 可以看见HPSFPGA文件* N- F. U* `+ U0 S0 l/ [+ I( o
- L8 r7 f6 {5 \! \按图所示输入命令 实验成功完成
% \! b" h+ [: o2 |+ T( } |
|