前言
本文旨在记录FPGA开发的学习内容,方便本人后续的回顾与复习同时,也希望与读者进行相关交流。文章内容可能存在错误,还望指正。
一、概述
FPGA开发目标:
设计一套HDL硬件描述语言,使其能够在指定的硬件平台上实现需要的功能,同时要保证功能正常、性能稳定。(本质是在设计一个逻辑电路!)
对于不同的开发平台(Quartus、Xilinx、Lattice等),其开发流程都是一致的。
二、开发流程
1.设计定义
结合需求,对要实现的功能做出逻辑描述,给出其中的逻辑关系。
2.设计输入
将设计定义中的逻辑关系使用不同方法表达出来.
方法有,编写逻辑(使用Verilog代码描述逻辑),绘制原理图,调用IP核等。
3.分析综合
主要是对设计输入的内容进行分析,得为逻辑门级别的电路内容。
例如,Verilog语句“if-else”综合后会生成多路数据选择器。
分析和综合,对于不同的FPGA芯片而言,需要使用专业的EDA工具才能进行。
4.功能仿真
(当使用纯Verilog代码来描述逻辑时,也可称为逻辑仿真。但实际上,大多数时间在设计过程中会采用IP核,此时已经不再是单一的逻辑仿真了)
用于验证设计输入经过综合后形成的逻辑电路是否正确,会形成理想的、没有误差的波形图,用于检查设计输入的逻辑是否满足设计者的要求。(这一步虽然可以用于检查设计输入中的语法错误,但并不是最主要的)。
5.布局布线
在指定的器件上将设计的逻辑电路实现。即将逻辑电路,应用到设计者所选用的器件上。
与分析综合相似,布局布线同样对于FPGA芯片和EDA工具有要求。
(到了这一步,设计者所选用的器件型号才真正地发挥了作用,至于逻辑电路是怎样应用到FPGA的查找表中的,这里不做详细展开)。
6.设计验证
设计验证的方法主要分为两种,一是时序仿真(后仿真),二是静态时序分析。时序仿真较为复杂,在对于大规模的设计中耗时较长,而静态时序分析则需要使用专门的分析工具?
7.板级调试
将设计下载到目标板上,查看运行结果。
需要对I/O端口进行分配、注意电平选择以及结合目标板的接口进行匹配。
三、补充
仿真是可靠的!
对于模拟电,现阶段的仿真软件已经可以将寄生参数等影响考虑进去,对于数字电路,是基本接近真实情况的。
总结
以上就是本人对于FPGA开发过程的概述,初次接触相关内容可能理解不足,后续将进一步补充内容。