入门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.深入理解底一层次,可以更好的使用高一层次。该法则可以适用于所有编程语言。