回想起自己学 FPGA,已经有一段时间了,从开始的茫然,到
后来的疯狂看书,设计开发板,调电路,练习各种 FPGA 实例,到最后能独立
完成项目,一路走来,感受颇多,拿出来和大家分享,顺便介绍下自己的一点
经验所得,希望对初学者有所帮助。
废话不说了,下面进入正题,学习 FPGA 我主要经历了这么几个阶段:
①、Verilog 语言的学习,熟悉 Verilog 语言的各种语法。
②、FPGA 的学习,熟悉 QuartusII 软件的各种功能,各种逻辑算法设计,接
口模块(RS232,LCD,VGA,SPI,I2c 等)的设计,时序分析,硬件优化等,自己开始
设计简单的 FPGA 板子。
③、NiosII 的学习,熟悉 NiosII 的开发流程,熟悉开发软件 (SOPC,NiosII
IDE),了解 NiosII 的基本结构,设计 NiosII 开发板,编写 NiosII C 语言程序,调
试板子各模块功能。 先来说说第一个阶段,现在主要的硬件描述语言有
VHDL,Verilog 两种,在本科时老师一般教 VHDL,不过现在
Verilog 用的人越来越多,其更容易上手(与 C 语言语法比较类似),也更灵活,
现在的 IC 设计基本都用 Verilog。像 systemC,systemVerilog 之类的应该还在萌
芽阶段,以后可能会有较大发展。鉴于以上原因我选择了 Verilog 作为我学习的
硬件描述语言。
其实有 C 语言的基础,学起 Verilog 的语言很简单,关键要有并行的概念,
所有的 module,assign,always 都是并行的,这一点与软件语言有明显不同。
这里推荐几本评价比较好的学习 Verilog 的书籍:
①、《 verilog 数字系统设计教程》,这本书对于入门是一本很好的书,通俗
易懂,让人很快上手,它里面的例子也不错。但本书对于资源优化方面的编程
没有多少涉及到。
②、《设计与验证 Verilog HDL》,这本书虽然比较薄,但是相当精辟,讲
解的也很深入,很多概念看了这本书有种豁然开朗的感觉,呵呵。
学习 Verilog 其实不用看很多书,基本的语法部分大家都一样,关键是要自
己会灵活应用,多做练习。
Verilog 语言学了一段时间,感觉自己可以编点东西,希望自己编的程序在
板子上运行看看结果,下面就介绍我学习的第二个阶段。
刚开始我拿了实验室一块 CPLD 的开发板做练习,熟悉 QuartusII 的各种功
能,比如 IP 的调用,各种约束设置,时序分析,Logiclock 设计方法等,不过做
到后面发现 CPLD 的资源不太够(没有内嵌的 RAM、不能用 SignalTapII,LE 太
少等),而实验室没有 FPGA 开发板,所以就萌生了自己做 FPGA 开发板的意图,
刚好 Cadence 我也学的差不多了,就花了几天时间主要研究了 FPGA 配置电路
的设计,在板子上做了 Jtag 和 AS 下载口,在做了几个用户按键和 LED,其他
的口全部引出作为 IO 口,电路比较简单,板子焊好后一调就通了(心里那个爽
啊...)。我选的 FPGA 是 cycloneII 系列的 EP2C5,资源比以前的 FPGA 多了好几
倍,还有 PLL,内嵌的 RAM,可以试试 SignalTapII,用内嵌的逻辑分析仪测试
引脚波形,对于 FPGA 的调试,逻辑分析仪是至关重要的。利用这块板子我完
成了项目中的几个主要功能:RS232 通信,指令译码,配置 DDS,AD 数据高
速缓存,电子开关状态设置等,在实践中学习起来真的比平时快很多,用到什
么学什么动力更大。这个时候我主要看的数据有这几本感觉比较好:
评论0
最新资源