说在前面
- 此笔记仅供学习使用,主要是记录一些知识点,方便查看,内容包括Verilog+FPGA开发,由于作者水平有限,笔记中不妥之处在所难免,请查看笔记的读者评论指正,我将进一步完善。
1.认识FPGA
- FPGA 是 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
- FPGA是一种可以编程的数字集成电路IC,它包含可配置的逻辑块以及逻辑块之间的互连线。设计人员可以通过在现场完成对这些逻辑块和互连线的配置,以实现或改变复杂的电子系统的功能。
- FPGA在结构、速度、工艺、集成度和性能等方面都有极大的提高,与之相对应的设计方法和自动化设计工具也得到迅速的发展。
- FPGA的组成:
- 可编程输入/输出单元(I/O单元)、
- 基本可编程逻辑单元、
- 嵌入式块RAM、
- 丰富的布线资源、
- 底层嵌入功能单元、
- 内嵌专用硬核。
2.学习FPGA的意义
- 突破原有的CPU架构体系处理信息的单一模式,使原来的硬件架构可以像软件一样进行开发,使原有的通过软件指令实现的功能可以在FPGA中,通过逻辑电路来实现,极大提高处理的效率。
- 选择FPGA的另一个直接的原因是它的并行和灵活,尤其是它的可重构性。对于局部单元可重构的FPGA,更能够像人类大脑中的信息处理机制一样。即在信息处理过程中可以根据需要能够改变物理联系通道,这将带来体系结构和实现算法上的创新。现在,FPGA正好进入人工智能、深度学习的黄金时代。
3.FPGA的应用
- FPGA目前虽然还受制于较高的开发门槛以及器件本身昂贵的价格,应用的普及率上不如ARM和DSP,但是在很多的应用场合,还是必须要使用它。FPGA所固有的灵活性和并行性是其他芯片所不具备的,所以它的应用领域涵盖得很广。从技术角度来看,主要是有以下需求的应用场合:
- 逻辑粘合:使用74等基本门电路进行数字系统搭建时,会使一些简单的数字系统显得十分庞大。可编程器件的出现革命性的变革。
- 实时控制,有一些任务必须在规定的时间内完成,而通用微处理器由于其运行速度的限制而力不从心。比如高速电机和图像采集等。
- 通信领域这个FPGA应用的传统领域,发展至今依然是FPGA应用的热点和研究的热点。各种通信协议实现,如更新较快的各种有线和无线通信标准、广播视频及其编解码算法、各种加密算法等,使用FPGA比ASIC更有竞争力。
- 高速信号采集和处理,如高速AD前端或图像前端的采集和预处理,近年来持续升温的机器视觉应用也几乎是无一例外的都使用了FPGA器件。
4.FPGA的开发方法和工具
硬件描述语言(HDL)Hardware Description Language
是一种利用文字描述数字电路系统的方法,可以起到和传统的电路原理图描述相同的效果。
突破传统的“搭建”复杂电路设计的鸿沟。如同使用高级语言设计软件设计程序。
硬件描述语言和数字电路系统相互促进,共同发展。
目前,广泛使用的硬件描述语言有两种: VHDL 和 Verilog HDL。
它具有以下特点:
1) 功能强大, 灵活性强:具有功能强大的语言结构, 可用简洁明确的代码描述来进行复杂控制逻辑的设计。
2) 不依赖于器件设计:同一个设计描述, 可以采用多种不同的器件结构来实现其功能。 若需对设计进行资源利用和性能方面的优化, 也并不是要求设计者非常熟悉器件的结构才行。 相反, 你可以集中精力从事你的设计构思, 当然, 这并不是说设计者可以忽略电路结构, 诸如数据通路优化技术方面的需要。
3) 可移植性:VHDL的设计描述可以被不同的工具所支持, 可以在不同模拟工具、综合工具、工作平台中执行。
4) 性能评估能力:允许设计者采用不同的器件结构和不同的综合工具来评估设计。选用最适合你设计需求的器件。 为了衡量综合的质量, 同样可用不同的综合工具所得到的综合结果来进行分析、 评估。
5)上市时间快, 成本低。
5.Quartus 2 和 Modelsim工具的安装下载
Quartus 2 主要可以将写好的代码编写成配置文件,从而可以直接下载到芯片中,但是它的仿真功能不是太好,故推荐使用Modelsim工具进行编写和仿真,具体的下载和破解方法见下面的链接(参考别人的博客)
https://blog.csdn.net/he__yuan/article/details/80560064
里面有百度云和破解的办法(特别提醒:安装文件路径不能有中文!!!)
6.结尾
- 本片笔记主要介绍了FPGA的一些基本常识,后面将记录Verilog的语法学习。