基于quartus的FPGA实际开发流程

前言:
在写这篇文章之前,大量的查找FPGA的开发流程资料。感觉网络上的开发流程书写都是复制粘贴,没有任何的实质性的实践流程,都是泛泛而谈,有思想却很空洞。现在我总结一下使用quartus软件进行FPGA开发流程的介绍,另外本人是高校在读生,只从在读生的角度看待问题。

我认为的开发流程:
首先是确定完成的思路框架,其中重点包括需要达到什么功能,选择什么芯片及工具,划分为几个模块进行。在这个工程开始时,首先应该对这方面有一定的材料积累。不能什么东西都从头开始写,这样工作量太大。想好了怎么划分模块之后就可以开始正式的开发。
然后就是设计输入,这里主要是使用HDL进行编程,在上面完成整体的框架构思之后,这个时候模块化思想就开始起作用了。首先是开始第一个子模块的编程,完成所有子模块之后在开始等顶层模块的编写。这时候的子模块编写的先后顺序应该是根据数据的传输过程的先后顺序来的,这样能够更好的确定思路。

在设计输入的同时,应该做好的的功能仿真。其实硬件逻辑编写与仿真不应该有先后顺序,应该是同时进行的,这样才能一边修改一边验证。只是说在具体说话上应该先完成程序的编写才有仿真的对象。

然后就是使用quartus软件进行编译,包括综合,映射、布局布线等等,这里软件本身就能自动完成,只需要看其最终的结果是否符合要求。然后继续修改,在仿真,在综合。直到符合要求。

然后进行时序约束,再综合。然后进行时序仿真。这个时候还是使用modelsim进行时序仿真,这个时候比之前的功能仿真还要添加更过的时序方面的文件,包括网表文件,延时文件以及元件库等。之后进行仿真,这个过程是比较复杂的(一般简单的开发是不太用的着的)。最后观察波形是否符合要求。

然后就是板级仿真,本实验室没有板级仿真仪器,所以没有仿真过。这个一般是高速电路需要的。没有具体了解过,所以这个就不提,一般是用不着的。

最后是板级在线调试。这个时候需要开发板进行实际的验证以及在线调试,使用的工具是quartus自带的signaltap 工具来实现的

**总结来说就是,
**想好怎么做,
设计输入加功能仿真(当然也可综合,这里是实现逻辑功能,达到目的,quartus加modelsim),
综合(包括编译,映射,布局布线等quartus),
时序约束加时序仿真(这里考虑时序的问题quartus加modelsim),
板级仿真(不做),
在线调试(signaltap)

最后说一句,编程与仿真是一个反复的过程,不是顺序的一二一。需要先编程,再仿真(发现问题),再编程,再仿真。。。。。知道达到目的。

最后总结一下网络上的FPGA开发流程

1、设计思路
这就是想好怎么做
2、设计输入
就是使用工具进行编程
3、综合编译
使用软件综合
4、功能仿真
使用Modelsim仿真,验证功能是否达到。
5、布局布线
quartus软件能自动布局布线,这里还需要时序约束。
6、时序仿真
时序约束仿真
7、板级仿真
没有工具,没有使用到这一步
8、芯片在线调试
signaltap在线调试

发布了7 篇原创文章 · 获赞 2 · 访问量 559

猜你喜欢

转载自blog.csdn.net/weixin_44167319/article/details/95045452