|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
FPGA学习步骤 Z# {5 |) z/ x
) ]: s2 Y7 e$ q% u( D
FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影。从简单的逻辑组合,到高端的图像、通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它的优点在这里无庸赘述。从个人实用角度看,对于学生,掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用fgpa可以让设计变得非常有灵活性。掌握了fpga的设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但fpga的入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。fpga的设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。1 Y/ w7 }& p) c; ], r
( Q7 t; X0 _: O; j: V3 B$ a4 ~我用FPGA做设计很多年了,远达不到精通的境界,只是熟悉使用,在这里把我对fpga的学习步骤理解写出来,仅是作为一个参考,不对的地方,欢迎大家讨论和指正。0 X' V" o3 I) `3 t
. o5 v1 g/ K" W: y4 L1、工欲善其事,必先利其器。
" `. v$ y6 B8 f计算机必不可少。目前FPGA应用较多的是Altera和xilinx这两个公司,可以选择安装quartusII或者ISE软件。这是必备的软件环境。& z# R1 U7 d$ j
硬件环境还需要下载器、目标板。虽然有人说没有下载器和目标板也可学习fpga,但那总是纸上谈兵。这就像谈女朋友, 总是嘴上说说,通个电话,连个手都没牵,能说人家是你朋友?虽说搭建硬件环境需要花费,但想想,硬件环境至多几百元钱,你要真的掌握FPGA的设计,起薪比别人都不止高出这么多。这点花费算什么?/ r7 Z, \) L7 _$ A5 Y* B' ~
% F. ?$ ~: D9 H# J: L4 D. {2、熟悉verilog语言或者vhdl语言 ,熟练使用quartusII或者ISE软件。
* R6 p: Y/ n$ T5 Z1 wVHDL和verilog各有优点,选择一个,建议选择verilog。熟练使用设计软件,知道怎样编译、仿真、下载等过程。6 F$ O2 U& a2 x$ A [8 I2 y" |
起步阶段不希望报一些培训班,除非你有钱,或者运气好,碰到一个水平高、又想把自己的经验和别人共享的培训老师,不然的话,培训完后总会感觉自己是一个冤大头。入门阶段可以在利用网络资源完成。- k& O% V- I. |# T0 q* o( M# z
" E8 s) J7 U& h" A8 d) D3、设计一个小代码,下载到目标板看看结果
& z& O7 Q% H* Q) `3 P此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到fpga外挂的flash,fpga程序能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。+ o s" r: J! T. v) i- [' J
( A) p3 j+ u0 V; n4、设计稍微复杂的代码,下载到目标板看看结果。0 E7 g3 d0 {$ K' s7 n; W
* _8 l* C! ^ U( X0 a0 Z可以设计一个UART程序,网上有参考,你要懂RS232协议和fpga内置的逻辑分析仪。网上下载一个串口调试助手,调试一番,如果通信成功了, 恭喜,水平有提高。进入下一步。
$ m& p; v1 t5 y4 h3 ]- h
S! @2 S/ i" ^/ C) _ }5、设计复杂的代码,下载到目标板看看结果。( {4 O' h0 x z% K \% o" L
譬如sdram的程序,网上也有参考,这个设计难度有点大。可用串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成功,那你就比较熟悉fpga的设计饿了7 a! t6 H9 U: L+ z: ^
; D6 Q8 k! W I x, ]4 k( U6、设计高速接口,譬如ddr2或者高速串行接口
! B2 l& p9 S8 Y- ]2 `) P$ P) o这要对fpga的物理特性非常了解,而且要懂得是时序约束等设计方法,要看大量的原厂文档,这部分成功了,那就对fpga的物理接口掌握很深,你就是设计高手了, {1 s- U1 I- ^$ }5 G
6 n# F* E* R+ d2 e. _
7、设计一个复杂的协议: y0 x& i( {+ |/ t+ T% L
譬如USB、PCIexpress、图像编解码等,锻炼对系统的整体把握和逻辑划分。完成这些,你就是一个一流的高手、
! ^2 f7 X: A1 e" @' i! b; X! s. s% I' o/ i* v& `) m5 S$ O
8、学习再学习3 N. L% ^) A& |- c! B, i
学习什么,我也不知道,我只知道“学无止境,山外有山”。
. y4 k2 v# n: N0 L1 [9 ~: U% }$ r. z; k1 C1 m8 W6 M
|
|