入门FPGA
一、掌握HDL语言
1.没有数电基础,建议先学习数电
2.HDL是硬件描述语言,不要用软件思维去思考
3.图书:verilog HDL高级数字设计、Verilog数字系统设计教程、Verilog编程艺术
4.网站:HDLBits
4.1: http://asic-world.com/verilog/index.html
4.2: https://hdlbits.01xz.net/wiki/Main_Page
5.同步准备:Verilog_IEEE官方标准手册
6.注重编程思想
7.完成第一章学习达到的标准:要达到 在没有任何参考的情况下自己能设计一个三段式的状态机(FSM);
二、独立完成中小规模的数字电路设计
1.交通灯、电子琴、DDS等 图书:Verilog数字系统设计教程
2.开发板:Intel的Cyclone Ⅳ系列,或者Xilinx的A7系列
3.必须仿真:modelsim、QuestaSim、NC Verilog、Diamond等仿真工具 图书:WARITING TESTBENCHES Functional Verification of HDL Models
三、掌握设计方法和设计原则
1.同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计
2.图书:《FPGA权威指南》、《IP核芯志-数字逻辑设计思想》、《Altera FPGA/CPLD设计》基础篇和高级篇两本、Verilog HDL数字设计与综合
目的:掌握建模思想
3.静态时序分析(timequest),嵌入式逻辑分析仪等 -- EDA工具
4.TIPS:有一些地方不理解可以略过,后续实践中去理解。
四、学会提高开发效率
1.更换文本编辑器 如:NotePad、Sublime、VSCode、VIM等等
2.脚本语言 图书:《Vivado/Tcl零基础入门与案例实战》--高亚军 TCL、Python(无聊时学学,一劳永逸)
3.代码备份 GIT、SVN
4.文件比较器 Beyond Compare
五、增强理论基础
1. 信号处理
信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理等
2.接口应用
UART、SPI、IIC、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort
3.无线通信
信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码
4.SoC设计
计算机组成原理、单片机、计算机体系结构、编译原理
5.仪器仪表
模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用
6.控制系统
自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用
7.压缩、编码、加密、金融
数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理
8.数学和英语是本行业进步的阶梯
六、足量的实践
1.保持良好的代码风格
2.增加元件例化语句的可读性
3.绘制流程图/时序图,养成撰写文档的习惯
4.可以去论坛、GetHUB上找一些开源项目做
七、学无止境
更多的实践,在实践中感受FPGA的魔力,增长自己的知识
八、一个问题:为什么已经存在那么多的IP核,仍然需要写HDL?
1.IP核并不是万能的,不能满足所有的需求
2.大部分IP都是闭源,尽量少用闭源IP核,一旦出问题,这种黑匣子很可能让产品难产
3.深入理解底一层次,可以更好的使用高一层次。该法则可以适用于所有编程语言。