4.2 FPGA/CPLD开发流程
本节将通过一个最基础、最简单的入门例程,来同步分析FPGA/CPLD的开发流程,以帮助读者从设计中来,到开发中去,了解整个开发流程。
下面参照Altera公司关于FPGA设计流程(如图4.1所示)的阐述,进行扼要的分析。
图4.1 FPGA设计流程
Step1:设计源于Idea,如果没有一个设计的框架,则不能盲目地进行开发。因此第一步是设计的来源。
Step2:通过Verilog HDL或原理图、IP核等方式设计电路。
Step3:利用Quartus II进行电路综合。
Step4:利用Quartus II进行逻辑电路的布局布线。
Step5:使用第三方软件进行仿真测试、逻辑验证等。
Step6:固化FPGA/CPLD。
这是一个最简单的开发流程,当然也是FPGA设计的精髓。没有经过仿真、验证的设计,任何人也不可能保证电路的稳定性。因此,从思维出现到Quartus II综合,有必要进行第三方工具的仿真测试,在结果满足预期的前提下,再进行硬件验证。在本书中,笔者主要基于Quartus II的开发与Modelsim的测试验证,两款软件相辅相成,其联调设计开发流程如图4.2所示。
图4.2 Quartus Ⅱ与Modelsim联调设计开发流程
由图4.2可知,产生方案且论证通过后,进行的是Verilog HDL的设计,同步进行Modelsim的功能仿真测试,以保证设计功能的正确性。Quartus Ⅱ与Modelsim软件开发同时进行,完成功能仿真之后,通过Quartus Ⅱ综合电路进行布局布线。完成全编译后,通过Modelsim进行必要的时序仿真,以更深层次地对时序电路进行测试。时序仿真通过后,才可进行最后的FPGA板卡硬件测试,继续优化代码,完善设计。
Testbench仿真测试在实际开发项目中占的比重很大,甚至有可能超过Verilog HDL的设计。一个完整的工程设计,势必有完整的设计方案、经过千锤百炼的Verilog HDL及一整套的Testbench测试体系。笔者简要地设计了Testbench仿真测试框图,如图4.3所示。
图4.3 Testbench仿真测试框图
在FPGA开发中,正确的思路都是“由顶层到底层”设计框架,继而展开每一个子模块的设计。因此,针对Quartus Ⅱ与Modelsim的同步联调机制,首先在Quartus Ⅱ与Modelsim中分别设计整个项目的设计与测试顶层框架;接着针对每一个设计模块单独进行Testbench测试;在每一个Verilog HDL设计模块的仿真测试都通过的前提下,继续进行整个顶层框架的仿真测试。只有掌握这样的思路后,才能在FPGA工程设计量比较大的项目中,更好地管理整个仿真测试体系,让开发变得更简单。