想学习一门技术之前,我们先会从编程语言入手。就像学习FPGA,往往是从VHDL或者Verilog开始入手学习的。
当然,任何编程语言的学习都不能一劳永逸,因为任何经验技巧都是在实践的过程中才能学到,FPGA的学习当然也不例外。下面就以我的个人经验,来为大家解析一下FPGA的学习技巧。
什么是FPGA?
FPGA 是一种硬件可重构的体系结构。它的英文全称是Field Programmable Gate Array,中文名是现场可编程门阵列。
FPGA就是一个可以通过编程来改变内部结构的芯片。
FPGA工程师,小白具体要怎么学?
作为一个初次学习FPGA新手来说,从零基础入门到进阶为FPGA工程师,需要具备哪些基础知识、学习哪些技能呢?
1.Verilog语言及其于硬件电路之间的关系。
2.器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系)
3.开发工具(熟练掌握Synplify,Quartus,ISE,Modelsim)
4.数字电路(组合电路,触发器,特别是D触发器构成分频器,奇数倍分频占空比为50%,时序电路,并且能用Verilog语言描叙)
5.熟悉FPGA设计流程(仿真,综合,布局布线,时序分析)
6.熟练掌握资源估算(特别是slice,lut,ram等资源的估算)
7.同步设计原理
8.熟练掌握基本概念(如建立时间,保持时间,流量(即所做FPGA设计的波特率)计算,延迟时间计算(所做FPGA设计),竞争冒险,消除毛刺的方法等等)
9.具备具体设计经验(对应届生而言如毕业设计)
10.良好的设计思路(流水线设计即熟称打拍子,在速率资源功耗之间的折中考虑)
FPGA学习重点
1. 看代码,建模型
只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的。
2. 用数学思维来简化设计逻辑
学习FPGA不仅逻辑思维很重要,好的数学思维也能让你的设计化繁为简,所以啊,那些看见高数就头疼的同学需要重视一下这门课程。
3. 时钟与触发器的关系
一直流传这样的一句话“时钟是时序电路的控制者”,可以说是FPGA设计的圣言。FPGA的设计主要是以时序电路为主,因为组合逻辑电路再怎么复杂也变不出太多花样,理解起来相对就比较容易。但是时序电路就不同了,它的所有动作都是在时钟一拍一拍的节奏下转变触发,可以说时钟就是整个电路的控制者,控制不好,电路功能就会混乱。
最后简单说一下体会吧,归结起来就是多实践、多思考、多问。实践出真知,看100遍别人的方案不如自己去实践一下。实践的动力一方面来自兴趣,一方面来自压力。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。
好书推荐
Intel FPGA数字信号处理 系统设计权威指南
本书内容涵盖了信号处理基本理论、CORDI算法的FPGA实现、Intel FPGA数字信号处理工具、傅里叶变换的FPGA实现、离散余弦变换的FPGA实现、数字滤波器的FPGA实现、多速率信号处理的FPGA实现,以及其他常用数字滤波器的FPGA实现。
计算机视觉技术
本书旨在建立计算机视觉技术的基础知识体系,为读者进入人工智能视觉领域奠定基础。本书适合作为中职、高职高专及应用型本科人工智能通识课的教材,也可作为人工智能的普及读物供广大读者自学或参考。
云计算机基础与openstack
本书以实践为宗旨,采用自动部署工具带领读者一步一步构建企业云平台,同时还分享了OpenStack的最佳实践方法,帮助读者深入了解企业级私有化云平台的优势和特点。本书内容丰富,注重系统性、实践性和可操作性,对每个技术点都有相应的操作示例,便于读者快速掌握要点。
Verilog HDL设计实例手册
本书以Intel的FPGA芯片为目标器件,以Quartus Prime、Platform Designer(PD)、Nios II-Eclipse为软件工具,以Verilog HDL为设计语言,选择C4_MB“口袋实验板”为目标板,通过精选设计案例,诠释用FPGA实现数字系统设计的思路与方法。本书对参加电子设计竞赛的学生和指导老师也具有参考价值。
人工智能数据处理
《人工智能数据处理》一书从基础实用内容开始,并辅以编程基础知识和综合案例,关注数据的采集、数据预处理、数据的可视化、数据的标注,以及大数据的相关应用等大数据的处理知识。
学习之路上,IC修真院与你同行。