赞
踩
放一张老石!(思维导图在文末!)
入行十年,我总结了这份FPGA学习路线:搞定这四点,你也能轻松进阶(老石谈芯).
摘要
FPGA使用的语言叫做硬件描述语言HDL,寄存器输入集语言RTL
(先不考虑高级语言C、Python编程)
主流的硬件描述语言有1 VHDL 2Verilog 3System Verilog
VHDL和Verilog各有优缺点,比如VHDL的语法更加严谨,而Verilog更加灵活,更加像C语言
入门的话,先熟练掌握一门语言即可
老石建议:先学Verilog(尤其是有C语言开发经验),有开发经验了之后再学VHDL,因为有可能在实际的项目中有一部分模块是用Verilog写的,一部分是用VHDL写的(最好至少大概能看懂)
不管学习什么语言,最主要的都有三大点
1 语法
2 如何使用这个语言做设计
3 如何使用这个语言做验证
书籍几乎都大同小异,但是建议认真的看一遍Verilog的语法,不用要死记硬别,但是需要对每一条的语法和功能做到心中有数
可以先看可生成电路的可综合的Verilog语法,不太多
再看主要用于写验证和仿真的不可综合的语法
书籍:《verilog传奇》
强烈推荐的刷题网站!!!!!:HDLBits.
建议先做,不会的时候反查 Verilog的书籍,这样通过实践来学习
RTL设计主要有组合电路和时序电路两个部分,还有一个非常重要的部分就是状态机,都应该熟练的掌握(刷题网站里都有对应的题目哦!~)
关于RTL的验证,初学者主要掌握如何写一个简单的测试平台,及如何写一些简单的测试用例
思维转变:软件编程大都是顺序执行的,但硬件编程大都是并行执行的!
在学习Verilog的时候一定要多想想它对应的硬件电路是什么样的
现在的大公司更喜欢的System Verilog
System Verilog可以看成是Verilog的超集,它加入了很多Verilog里不支持但是非常有用的功能
比如自定义类型、结构体联合体、接口
还有一些用于仿真验证的特性,比如业界常用的随机约束、UVM
也简化勒很多Verilog里的一些语法表达,不用纠结一个信号到底是wire还是reg可以直接用Logic来表示
不建议初学者一开始就学System Verilog(还没太找到好的教程)
学习编程语言很重要的就是仿真工具
这是网上的两个开源的工具:iVerilog,EDAplayground
1 电路、数电,计算机网络结构,接口,数字信号处理
推荐优先看数电!
2 和FPGA相关的知识,包括FPGA芯片的结构以及它的一些基本组成单元的结构(推荐看FPGA官方的文档)
3 了解FPGA的开发流程
入门阶段建议专注于一个平台
配合开发版的学习
比较经典的实验有:数码管、流水灯、按键、红绿灯 还有一些常见的总线的通信
还有一些数据处理和信号处理的实验
《深入浅出玩转FPGA》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。